{"version":3,"sources":["webpack:///./app/core/index.ts","webpack:///./app/data/index.ts","webpack:///./app/data/interfaces.ts","webpack:///./vendor-modules.ts","webpack:///./app/components/security/index.ts","webpack:///./app/user-controls/credit-card-control-state.ts","webpack:///./app/assets/index.ts","webpack:///./app/user-controls/index.ts","webpack:///./app/assets/img/sprite_benefits_thumb.png","webpack:///./app/assets/img/sprite_benefits_clock.png","webpack:///./app/assets/img/sprite_benefits_notify.png","webpack:///./index.ts","webpack:///./node_modules/angular-recaptcha/index.js","webpack:///./node_modules/angular-recaptcha/release/angular-recaptcha.js","webpack:///./node_modules/ng-quill/dist/ng-quill.js","webpack:///./node_modules/quill/dist/quill.js","webpack:///./node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./app/app-component.ts","webpack:///./app/core/component-registration.ts","webpack:///./app/core/site-config.ts","webpack:///./app/core/exception.ts","webpack:///./app/core/logger.ts","webpack:///./app/core/set-scroll-height.ts","webpack:///./app/core/polyfills.ts","webpack:///./app/app.html","webpack:///./app/components/admin/index.ts","webpack:///./app/components/security/forgot-password.ts","webpack:///./app/components/security/forgot-password.html","webpack:///./app/components/security/reset-password.ts","webpack:///./app/components/security/reset-password.html","webpack:///./app/components/security/security.ts","webpack:///./app/components/security/security.html","webpack:///./app/components/security/sign-in.ts","webpack:///./app/components/security/sign-in.html","webpack:///./app/components/security/data/profile-security.ts","webpack:///./app/components/security/data/security-question.ts","webpack:///./app/components/security/data/user.ts","webpack:///./app/components/security/services/authorization.ts","webpack:///./app/components/security/services/interceptor.ts","webpack:///./app/components/security/services/password-strength.ts","webpack:///./app/components/security/user-controls/change-password-card.ts","webpack:///./app/components/security/user-controls/change-password-card.html","webpack:///./app/components/security/user-controls/password.ts","webpack:///./app/components/security/user-controls/password.html","webpack:///./app/components/security/user-controls/security-question.ts","webpack:///./app/components/security/user-controls/security-question.html","webpack:///./app/components/security/user-controls/security-question-card.ts","webpack:///./app/components/security/user-controls/security-question-card.html","webpack:///./app/components/security/user-controls/sign-in-card.ts","webpack:///./app/data/account.ts","webpack:///./app/data/country.ts","webpack:///./app/data/credit-card.ts","webpack:///./app/data/frequent-parker-account.ts","webpack:///./app/data/parking-area.ts","webpack:///./app/data/parking-media.ts","webpack:///./app/data/parking-media-request.ts","webpack:///./app/data/parking-media-type.ts","webpack:///./app/data/profile.ts","webpack:///./app/data/settings.ts","webpack:///./app/data/subdivisions.ts","webpack:///./app/data/content-template.ts","webpack:///./app/data/content-template-write.ts","webpack:///./app/data/content-type-settings.ts","webpack:///./app/data/transaction-types.ts","webpack:///./app/data/frequent-parker-activity-types.ts","webpack:///./app/data/credit-card-ticket.ts","webpack:///./app/data/recaptcha-validation.ts","webpack:///./app/components/security/user-controls/sign-in-card.html","webpack:///./app/user-controls/grid/standard-grid.ts","webpack:///./app/user-controls/grid/standard-grid.html","webpack:///./app/user-controls/address.ts","webpack:///./app/user-controls/address.html","webpack:///./app/user-controls/credit-card.ts","webpack:///./app/user-controls/credit-card.html","webpack:///./app/user-controls/email.ts","webpack:///./app/user-controls/email.html","webpack:///./app/user-controls/footer.ts","webpack:///./app/user-controls/footer.html","webpack:///./app/assets/img/HJ_logo.jpg","webpack:///./app/user-controls/header-bar.ts","webpack:///./app/user-controls/header-bar.html","webpack:///./app/assets/img/emptylogo.jpg","webpack:///./app/user-controls/nav-bar.ts","webpack:///./app/user-controls/nav-bar.html","webpack:///./app/user-controls/parking-area.ts","webpack:///./app/user-controls/parking-area.html","webpack:///./app/user-controls/parking-media.ts","webpack:///./app/user-controls/parking-media.html","webpack:///./app/user-controls/phone.ts","webpack:///./app/user-controls/phone.html","webpack:///./app/user-controls/title-bar.ts","webpack:///./app/user-controls/title-bar.html","webpack:///./app/user-controls/recaptcha.ts","webpack:///./app/user-controls/recaptcha.html","webpack:///./app/components/admin/data/account-request.ts","webpack:///./app/components/admin/data/frequent-parker-account-summary.ts","webpack:///./app/components/admin/services/account-request-service.ts","webpack:///./app/components/admin/services/accounts-service.ts","webpack:///./app/components/admin/services/frequent-parker-account-summary-service.ts","webpack:///./app/components/admin/services/user-service.ts","webpack:///./app/components/admin/account/accounts-grid.ts","webpack:///./app/components/admin/account/accounts-grid.html","webpack:///./app/components/admin/user-controls/admin-nav-bar.ts","webpack:///./app/components/admin/user-controls/admin-nav-bar.html","webpack:///./app/components/admin/account/account-detail.ts","webpack:///./app/components/admin/account/account-detail.html","webpack:///./app/components/admin/account/accounts.ts","webpack:///./app/components/admin/account/accounts.html","webpack:///./app/components/admin/admin.ts","webpack:///./app/components/admin/admin.html","webpack:///./app/components/admin/dashboard/dashboard.ts","webpack:///./app/components/admin/dashboard/dashboard.html","webpack:///./app/components/admin/dashboard/dashboard-details.ts","webpack:///./app/components/admin/dashboard/dashboard-details.html","webpack:///./app/components/admin/dashboard/dashboard-grid.ts","webpack:///./app/components/admin/dashboard/dashboard-grid.html","webpack:///./app/components/admin/pending-approval/deny-message-dialog.ts","webpack:///./app/components/admin/pending-approval/deny-message-dialog.html","webpack:///./app/components/admin/pending-approval/pending-approval.ts","webpack:///./app/components/admin/pending-approval/pending-approval.html","webpack:///./app/components/admin/pending-approval/pending-approval-details.ts","webpack:///./app/components/admin/pending-approval/pending-approval-details.html","webpack:///./app/components/admin/pending-approval/pending-approval-grid.ts","webpack:///./app/components/admin/pending-approval/pending-approval-grid.html","webpack:///./app/components/admin/setup/content-nav-widget.ts","webpack:///./app/components/admin/setup/content-nav-widget.html","webpack:///./app/components/admin/setup/setup.ts","webpack:///./app/components/admin/setup/setup.html","webpack:///./app/components/admin/setup/fpp-settings.ts","webpack:///./app/components/admin/setup/fpp-settings.html","webpack:///./app/components/admin/setup/fpp-widget.ts","webpack:///./app/components/admin/setup/fpp-widget.html","webpack:///./app/components/admin/setup/landing.ts","webpack:///./app/components/admin/setup/landing.html","webpack:///./app/components/admin/setup/timespan-formatter.ts","webpack:///./app/components/admin/users/users.ts","webpack:///./app/components/admin/users/users.html","webpack:///./app/components/admin/users/users-detail.ts","webpack:///./app/components/admin/users/users-detail.html","webpack:///./app/components/admin/users/users-grid.ts","webpack:///./app/components/admin/users/users-grid.html","webpack:///./app/components/admin/content-editor.ts","webpack:///./app/components/admin/content-editor.html","webpack:///./app/components/dashboard/index.ts","webpack:///./app/components/dashboard/data/account-activity.ts","webpack:///./app/components/dashboard/data/frequent-parker-activity.ts","webpack:///./app/components/dashboard/data/message.ts","webpack:///./app/components/dashboard/services/activities-service.ts","webpack:///./app/components/dashboard/user-controls/activity-grid.ts","webpack:///./app/components/dashboard/user-controls/activity-grid.html","webpack:///./app/components/dashboard/account-activity.ts","webpack:///./app/components/dashboard/account-activity.html","webpack:///./app/components/dashboard/account-info.ts","webpack:///./app/components/dashboard/account-info.html","webpack:///./app/components/dashboard/media.ts","webpack:///./app/assets/content/faq.html","webpack:///./app/assets/content/media-request.html","webpack:///./app/assets/content/terms.html","webpack:///./app/assets/content/blockui-template.html","webpack:///./app/assets/content/account-not-activated.html","webpack:///./app/components/dashboard/media.html","webpack:///./app/components/dashboard/message.ts","webpack:///./app/components/dashboard/message.html","webpack:///./app/components/dashboard/message-detail.html","webpack:///./app/components/dashboard/overview.ts","webpack:///./app/components/dashboard/overview.html","webpack:///./app/components/profile/index.ts","webpack:///./app/components/profile/profile.ts","webpack:///./app/components/profile/profile.html","webpack:///./app/components/public/index.ts","webpack:///./app/components/public/data/account-request.ts","webpack:///./app/components/public/user-controls/home-content-card.ts","webpack:///./app/components/public/user-controls/home-content-card.html","webpack:///./app/components/public/account-request.ts","webpack:///./app/components/public/account-request.html","webpack:///./app/components/public/user-controls/wizard-template.html","webpack:///./app/components/public/user-controls/wizard-step-template.html","webpack:///./app/components/public/account-request-terms.html","webpack:///./app/components/public/account-request-complete.ts","webpack:///./app/components/public/account-request-completed.html","webpack:///./app/components/public/faq.ts","webpack:///./app/components/public/faq.html","webpack:///./app/components/public/home.ts","webpack:///./app/components/public/home.html","webpack:///./app/components/public/terms.ts","webpack:///./app/components/public/terms.html","webpack:///./app/services/index.ts","webpack:///./app/services/customer-settings-service.ts","webpack:///./app/services/session.ts","webpack:///./app/services/themes-service.ts","webpack:///./app/services/toast-message-factory.ts","webpack:///./app/user-controls/validation-toast.html","webpack:///./app/user-controls/success-toast.html","webpack:///./app/user-controls/error-toast.html","webpack:///./app/user-controls/warning-toast.html","webpack:///./app/user-controls/confirm-toast.html","webpack:///./app/theme-config.ts","webpack:///./app/blockui-config.ts","webpack:///./index.scss"],"names":[],"mappings":";;;;;;;;;;AAAA;AACA;AA8BS,gCA9BF,gCA8BE;AA7BT;AACA;AACA;AACA;AACA;AAkBA,IAAI,aAAa,GAAG,MAAH,CAAU,UAAV,EAAsB,EAAtB,EACZ,OADY,CACJ,yBAAW,IADP,EACa,yBAAW,OADxB,EAEZ,OAFY,CAEJ,sBAAU,IAFN,EAEY,sBAAU,OAFtB,EAGZ,OAHY,CAGJ,gBAAO,IAHH,EAGS,gBAAO,OAHhB,EAIZ,SAJY,CAIF,oCAAgB,IAJd,EAIoB,oCAAgB,OAJpC,CAAjB;AAQA,kBAAe,UAAf,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAiC4D;AAhC5D;AAiCI,2BAjCG,2BAiCH;AAhCJ;AAgCsB,sCAhCf,wCAgCe;AA/BtB;AACA;AAGA,IAAI,aAAa,GAAG,MAAH,CAAU,UAAV,EAAsB,CACnC,YADmC,EAEnC,eAAW,IAFwB,CAAtB,EAId,OAJc,CAIN,kBAAQ,IAJF,EAIQ,kBAAQ,OAJhB,EAKZ,OALY,CAKJ,kBAAQ,IALJ,EAKU,kBAAQ,OALlB,EAMZ,OANY,CAMJ,yBAAW,IANP,EAMa,yBAAW,OANxB,EAOZ,OAPY,CAOJ,sCAAiB,IAPb,EAOmB,sCAAiB,OAPpC,EAQZ,OARY,CAQJ,2CAAoB,IARhB,EAQsB,2CAAoB,OAR1C,EASZ,OATY,CASJ,gDAAsB,IATlB,EASwB,gDAAsB,OAT9C,EAUZ,OAVY,CAUJ,2BAAY,IAVR,EAUc,2BAAY,OAV1B,EAWZ,OAXY,CAWJ,6BAAa,IAXT,EAWe,6BAAa,OAX5B,EAYZ,OAZY,CAYJ,4CAAoB,IAZhB,EAYsB,4CAAoB,OAZ1C,EAaZ,OAbY,CAaJ,sCAAiB,IAbb,EAamB,sCAAiB,OAbpC,EAcZ,OAdY,CAcJ,kBAAQ,IAdJ,EAcU,kBAAQ,OAdlB,EAeZ,OAfY,CAeJ,oBAAS,IAfL,EAeW,oBAAS,OAfpB,EAgBZ,OAhBY,CAgBJ,2BAAY,IAhBR,EAgBc,2BAAY,OAhB1B,EAiBZ,OAjBY,CAiBJ,mCAAgB,IAjBZ,EAiBkB,mCAAgB,OAjBlC,EAkBZ,OAlBY,CAkBJ,8CAAqB,IAlBjB,EAkBuB,8CAAqB,OAlB5C,EAmBZ,OAnBY,CAmBJ,4CAAoB,IAnBhB,EAmBsB,4CAAoB,OAnB1C,CAAjB;AAsBkB;AAOlB,kBAAe,UAAf,C;;;;;;;;;;;;;;;;;;;;;;;;;;ACoSA,IAAY,YAAZ;AAAA,WAAY,YAAZ,EAAwB;AACpB;AACA;AACA;AACA;AACA;AACA;AACH,CAPD,EAAY,+DAAY,EAAZ,CAAZ;AA2BA,IAAY,mBAAZ;AAAA,WAAY,mBAAZ,EAA+B;AAC3B;AACA;AACA;AACH,CAJD,EAAY,oFAAmB,EAAnB,CAAZ;AA0EA,IAAY,sBAAZ;AAAA,WAAY,sBAAZ,EAAkC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACH,CAZD,EAAY,6FAAsB,EAAtB,CAAZ;AAcA;AACA,IAAY,gBAAZ;AAAA,WAAY,gBAAZ,EAA4B;AACxB;AACA;AACA;AACH,CAJD,EAAY,2EAAgB,EAAhB,CAAZ;AAqHA,IAAY,aAAZ;AAAA,WAAY,aAAZ,EAAyB;AACrB;AACA;AACA;AACA;AACA;AACA;AACH,CAPD,EAAY,kEAAa,EAAb,CAAZ;;IAqDA,a;;;;AACkB,+BAAiB,gBAAjB;AACA,8BAAgB,eAAhB;AACA,uBAAS,QAAT;AACA,+BAAiB,gBAAjB;AAJlB;AAOA,IAAY,UAAZ;AAAA,WAAY,UAAZ,EAAsB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACH,CARD,EAAY,yDAAU,EAAV,CAAZ;AAyDA,IAAY,gBAAZ;AAAA,WAAY,gBAAZ,EAA4B;AACxB;AACA;AACA;AACA;AACH,CALD,EAAY,2EAAgB,EAAhB,CAAZ;AAOA,IAAY,SAAZ;AAAA,WAAY,SAAZ,EAAqB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACH,CARD,EAAY,sDAAS,EAAT,CAAZ,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7rBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;IAEA,a,GAAA;AAAA;;AACW,qBAAoB,WAApB;AACA,oBAAmB,mBAAnB;AACA,sBAAqB,YAArB;AACA,sBAAqB,YAArB;AACA,sBAAqB,YAArB;AACA,oBAAmB,oBAAnB;AACA,qBAAoB,SAApB;AACA,mBAAkB,cAAlB;AACA,oBAAmB,eAAnB;AACA,qBAAoB,SAApB;AACA,oBAAmB,SAAnB;AACA,8BAA6B,oBAA7B;AACA,iCAAgC,uBAAhC;AACA,6BAA4B,mBAA5B;AACA,2BAA0B,iBAA1B;AACA,kCAAiC,wBAAjC;AACA,mBAAkB,SAAlB;AACA,qBAAoB,WAApB;AACA,uBAAqB,aAArB;AACV,C;;AAED,IAAI,OAAO,IAAI,aAAJ,EAAX;AAEiB;AADjB,kBAAe,IAAf,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAyCiE,sBAzC1D,qBAyC0D;AAxCjE;AACA;AACA;AACA;AACA;AACA;AAEA;AAiC4D;AA/B5D,IAAI,iBAAiB,GAAG,MAAH,CAAU,cAAV,EAA0B,CAC3C,mBAD2C;AAE3C;AACA,YAH2C,EAI3C,YAJ2C,CAA1B,EAMlB,MANkB,CAMX,CAAC,eAAD,EAAkB,UAAC,aAAD,EAAgC;AACxD,kBAAc,YAAd,CAA2B,IAA3B,CAAgC,sBAAY,IAA5C;AACH,CAFS,CANW,EAShB,SATgB,CASN,0CAAwB,IATlB,EASwB,0CAAwB,YAThD,EAUhB,OAVgB,CAUR,sBAAY,IAVJ,EAUU,sBAAY,OAVtB,EAWhB,OAXgB,CAWR,mCAAgB,IAXR,EAWc,mCAAgB,OAX9B,EAYhB,OAZgB,CAYR,qCAAiB,IAZT,EAYe,qCAAiB,OAZhC,EAahB,OAbgB,CAaR,YAAK,IAbG,EAaG,YAAK,OAbR,EAchB,OAdgB,CAcR,qBAAK,IAdG,EAcG,qBAAK,OAdR,EAehB,OAfgB,CAeR,qCAAiB,IAfT,EAee,qCAAiB,OAfhC,EAgBhB,SAhBgB,CAgBN,mDAA4B,IAhBtB,EAgB4B,mDAA4B,YAhBxD,EAiBhB,SAjBgB,CAiBN,6BAAkB,IAjBZ,EAiBkB,6BAAkB,YAjBpC,EAkBhB,SAlBgB,CAkBN,8CAA0B,IAlBpB,EAkB0B,8CAA0B,YAlBpD,EAmBhB,SAnBgB,CAmBN,uDAA8B,IAnBxB,EAmB8B,uDAA8B,YAnB5D,EAoBhB,SApBgB,CAoBN,mCAAoB,IApBd,EAoBoB,mCAAoB,YApBxC,EAqBhB,SArBgB,CAqBN,wCAAuB,IArBjB,EAqBuB,wCAAuB,YArB9C,EAsBhB,SAtBgB,CAsBN,6BAAkB,IAtBZ,EAsBkB,6BAAkB,YAtBpC,EAuBhB,SAvBgB,CAuBN,0BAAgB,IAvBV,EAuBgB,0BAAgB,YAvBhC,CAArB;AA2BsB;AAAgB;AAMtC,kBAAe,cAAf,C;;;;;;;;;;ACpDA,IAAY,sBAAZ;AAAA,WAAY,sBAAZ,EAAkC;AAC9B;AACA;AACA;AACH,CAJD,EAAY,6FAAsB,EAAtB,CAAZ,E;;;;;;;;;;ACAA,IAAI,MAAc,mBAAO,CAAC,GAAR,CAAlB;AACA,IAAI,eAAuB,mBAAO,CAAC,GAAR,CAA3B;AACA,IAAI,QAAgB,mBAAO,CAAC,GAAR,CAApB;AACA,IAAI,UAAkB,mBAAO,CAAC,GAAR,CAAtB;AACA,IAAI,sBAA8B,mBAAO,CAAC,GAAR,CAAlC;AACA,IAAI,YAAY;AACZ,yBAAqB,mBADT;AAEZ,SAAK,GAFO;AAGZ,kBAAc,YAHF;AAIZ,WAAO,KAJK;AAKZ,aAAS;AALG,CAAhB;AAQS,8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAI,qBAAqB,GAAG,MAAH,CAAU,kBAAV,EAA8B,CACnD,yBAAK,QAD8C,EAEnD,yBAAK,UAF8C,EAGnD,yBAAK,SAH8C,EAInD,eAAW,IAJwC,EAKnD,mBAAe,IALoC,EAMnD,yBAAK,QAN8C,EAOnD,yBAAK,kBAP8C,EAQnD,yBAAK,qBAR8C,EASnD,yBAAK,iBAT8C,EAUnD,yBAAK,eAV8C,EAWnD,yBAAK,sBAX8C,EAYnD,yBAAK,WAZ8C,CAA9B,EAcpB,SAdoB,CAcV,2BAAiB,IAdP,EAca,2BAAiB,YAd9B,EAepB,SAfoB,CAeV,kCAAoB,IAfV,EAegB,kCAAoB,YAfpC,EAgBpB,SAhBoB,CAgBV,uBAAe,IAhBL,EAgBW,uBAAe,YAhB1B,EAiBpB,SAjBoB,CAiBV,yBAAgB,IAjBN,EAiBY,yBAAgB,YAjB5B,EAkBpB,SAlBoB,CAkBV,gCAAmB,IAlBT,EAkBe,gCAAmB,YAlBlC,EAmBpB,SAnBoB,CAmBV,0BAAgB,IAnBN,EAmBY,0BAAgB,YAnB5B,EAoBpB,SApBoB,CAoBV,oCAAqB,IApBX,EAoBiB,oCAAqB,YApBtC,EAqBpB,SArBoB,CAqBV,sCAAsB,IArBZ,EAqBkB,sCAAsB,YArBxC,EAsBpB,SAtBoB,CAsBV,uBAAe,IAtBL,EAsBW,uBAAe,YAtB1B,EAuBpB,SAvBoB,CAuBV,8BAAkB,IAvBR,EAuBc,8BAAkB,YAvBhC,EAwBpB,SAxBoB,CAwBV,wCAAwB,IAxBd,EAwBoB,wCAAwB,OAxB5C,EAyBpB,SAzBoB,CAyBV,sCAAsB,IAzBZ,EAyBkB,sCAAsB,YAzBxC,EA0BpB,SA1BoB,CA0BV,+BAAmB,IA1BT,EA0Be,+BAAmB,YA1BlC,CAAzB;AAiCA,kBAAe,kBAAf,C;;;;;;AClDA,iBAAiB,qBAAuB,0C;;;;;;ACAxC,iBAAiB,qBAAuB,0C;;;;;;ACAxC,iBAAiB,qBAAuB,0C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,GAAG,MAAH,CAAU,wBAAa,IAAvB,EAA6B,CACzB,yBAAK,SADoB,EAEzB,yBAAK,QAFoB,EAGzB,yBAAK,UAHoB,EAIzB,yBAAK,UAJoB,EAKzB,yBAAK,QALoB,EAMzB,yBAAK,SANoB,EAOzB,yBAAK,OAPoB,EAQzB,yBAAK,QARoB,EASzB,yBAAK,OAToB,EAUzB,eAAW,IAVc,EAWzB,eAAW,IAXc,EAYzB,mBAAe,IAZU,EAazB,wBAAmB,IAbM,EAczB,mBAAe,IAdU,EAezB,gBAAY,IAfa,EAgBzB,oBAAgB,IAhBS,EAiBzB,kBAAc,IAjBW,EAkBzB,iBAAa,IAlBY,CAA7B,EAoBK,KApBL,CAoBW,sBApBX,EAoBmC,wBAAa,IApBhD,EAqBK,MArBL,CAqBY,wBArBZ,EAsBK,MAtBL,CAsBY,sBAtBZ,EAuBK,SAvBL,CAuBe,wBAAa,IAvB5B,EAuBkC,wBAAa,YAvB/C,EAyBK,MAzBL,CAyBY,UAAC,iBAAD,EAAwC;AAC5C,sBAAkB,UAAlB,CAA6B,EAA7B;AACH,CA3BL,EA4BK,GA5BL,CA4BS,CAAC,gBAAD,EAAmB,UAAC,cAAD,EAA0C;AAE9D,QAAI,SAAS,QAAT,KAAsB,OAA1B,EAAmC;AAC/B,eAAO,QAAP,CAAgB,IAAhB,GAAuB,SAAS,IAAT,CAAc,OAAd,CAAsB,MAAtB,EAA8B,OAA9B,CAAvB;AACH;AAEA,mBAAuB,eAAvB,GAAyC,IAAzC;AACD,mBAAe,KAAf,GAAuB,IAAvB;AACH,CARI,CA5BT,E;;;;;;ACfA,mBAAO,CAAC,GAAgC;AACxC;;;;;;;ACDA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iFAAiF;;AAEjF;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8DAA8D;AAC9D;;;AAGA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT,KAAK;;AAEL,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,uDAAuD;AACpG,yBAAyB;AACzB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA,wCAAwC,mBAAmB;;AAE3D;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB,qBAAqB;;AAErB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,2BAA2B;AACnE,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,CAAC;;;;;;;AC1ZD;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,CAAC,wBAAO,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AAC9B,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,cAAc,GAAG,cAAc;AAC3C,YAAY,oBAAoB,GAAG,mBAAmB;AACtD,YAAY,kBAAkB,GAAG,oBAAoB;AACrD,YAAY,iBAAiB,GAAG,iBAAiB;AACjD,YAAY,qBAAqB;;AAEjC,YAAY,4CAA4C;AACxD,YAAY,sCAAsC;;AAElD,YAAY,cAAc,GAAG,mBAAmB;AAChD,YAAY,aAAa;AACzB,YAAY,cAAc;;AAE1B;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC;AACD;;;;;;;AClPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAyD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;;AAGA,4CAA4C;;;AAG5C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,mBAAmB;AACvC;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,OAAO;AACP,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,YAAY;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yFAAyF;AACzF,SAAS;AACT;AACA;AACA,SAAS;AACT,yFAAyF;AACzF;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB,wBAAwB;AACxF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,K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AACP;;AAEA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,yBAAyB,QAAQ;AACjC;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA,kDAAkD;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,2FAA2F;AAC3F;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,kCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAEjM,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAoE;AACpF,cAAc,gEAAgE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;AACX;AACA,KAAK;;AAEL;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,2DAA2D;AAC3D;AACA,OAAO,IAAI;AACX;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;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;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6BAA6B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAA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AY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,2CAA2C;AACjE,sBAAsB,uEAAuE,gBAAgB;AAC7G;AACA;AACA,wBAAwB,+BAA+B,GAAG,kBAAkB;AAC5E,wBAAwB,4BAA4B,GAAG,kBAAkB;AACzE,KAAK;AACL,wBAAwB,+BAA+B,GAAG,kCAAkC;AAC5F,wBAAwB,4BAA4B,GAAG,kCAAkC;AACzF;AACA,sBAAsB,+BAA+B,GAAG,mBAAmB;AAC3E,sBAAsB,4BAA4B,GAAG,mBAAmB;AACxE,sBAAsB,2FAA2F,GAAG,6BAA6B;AACjJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,mBAAmB,kBAAkB;AACnF,uIAAuI,oBAAoB;AAC3J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8IAA8I,eAAe;AAC7J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6IAA6I,cAAc;AAC3J;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAA2G,qBAAqB;AAChI;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA,2BAA2B;;;AAG3B;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;;AAED;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL,qCAAqC,2BAA2B;AAChE,qCAAqC,2CAA2C;AAChF;AACA,uCAAuC,2BAA2B;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,oBAAoB;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0HAA0H,yBAAyB;AACnJ;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;AAEA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;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;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,OAAO;AACP;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;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;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;;;AAGA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;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;;;AAGA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,cAAc,eAAe;AAC7B;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY,MAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,IAAI;AACf,WAAW,IAAI;AACf,YAAY,MAAM;AAClB;AACA;AACA;AACA,kCAAkC,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAA0D,OAAO;AACjE;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA,eAAe,YAAY;AAC3B;;AAEA;AACA,2DAA2D;AAC3D,+DAA+D;AAC/D,mEAAmE;AACnE,uEAAuE;AACvE;AACA,0DAA0D,SAAS;AACnE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;AACA;AACA,CAAC,IAAI;;AAEL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP,+DAA+D,oBAAoB;AACnF;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,wFAAwF,iBAAiB;AACzG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,qDAAqD,kDAAkD,8DAA8D,0BAA0B,4CAA4C,uBAAuB,kBAAkB,EAAE,OAAO,wCAAwC,EAAE,EAAE,4BAA4B,mBAAmB,EAAE,OAAO,uBAAuB,4BAA4B,kBAAkB,EAAE,8BAA8B,EAAE;;AAExe;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;AACD;;AAEA,kCAAkC,iCAAiC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,mCAAmC,EAAE,EAAE,cAAc,WAAW,UAAU,EAAE,UAAU,MAAM,yCAAyC,EAAE,UAAU,kBAAkB,EAAE,EAAE,aAAa,EAAE,2BAA2B,0BAA0B,YAAY,EAAE,2CAA2C,8BAA8B,EAAE,OAAO,6EAA6E,EAAE,GAAG,EAAE;;AAErpB,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4CAA4C;;;AAG5C;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,mIAAmI;AACnI,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;A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AE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA,sCAAsC,uCAAuC,gBAAgB;;AAE7F,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEA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c,mBAAO,CAAC,GAAS;;AAE/B;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;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,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;AC5vDY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA;AACA,QAAQ,WAAW;;AAEnB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;A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","file":"app.js","sourcesContent":["import * as ng from 'angular';\r\nimport ComponentRegistration from './component-registration';\r\nimport { SiteConfig, ISiteConfigService } from './site-config';\r\nimport { Exception, IException } from './exception';\r\nimport { Logger, ILogger } from './logger';\r\nimport { SetScrollHeight } from './set-scroll-height';\r\nimport './polyfills';\r\n\r\nexport {\r\n IApi,\r\n IAumfSettings,\r\n IClient,\r\n IConfig,\r\n IContact,\r\n ICustomerSettings,\r\n IImage,\r\n ILanguage,\r\n ILinkButton,\r\n IRegexValidations,\r\n IReserveParkingSettings,\r\n IService,\r\n ITokenizer\r\n} from './interfaces';\r\n\r\nlet CoreModule = ng.module(\"app.core\", [])\r\n .service(SiteConfig.name, SiteConfig.factory)\r\n .service(Exception.name, Exception.factory)\r\n .service(Logger.name, Logger.factory)\r\n .directive(SetScrollHeight.name, SetScrollHeight.factory);\r\n\r\n\r\nexport { ComponentRegistration, ISiteConfigService, IException, ILogger };\r\nexport default CoreModule;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/index.ts","import * as ng from 'angular';\r\nimport { Account, IAccountResource } from './account';\r\nimport { Country, ICountryResource } from './country';\r\nimport { CreditCard, ICreditCardResource } from './credit-card';\r\nimport { FrequentParkerAccount, IFrequentParkerAccountResource } from './frequent-parker-account';\r\nimport { ParkingArea, IParkingAreaResource } from './parking-area';\r\nimport { ParkingMedia, IParkingMediaResource } from './parking-media';\r\nimport { ParkingMediaRequest, IParkingMediaRequestResource } from './parking-media-request';\r\nimport { ParkingMediaType, IParkingMediaTypeResource } from './parking-media-type';\r\nimport { Profile, IProfileResource } from './profile';\r\nimport { Settings, ISettingsResource } from './settings';\r\nimport { Subdivision, ISubdivisionResource } from './subdivisions';\r\nimport { ContentTemplate, IContentTemplateResource } from './content-template';\r\nimport { ContentTemplateWrite, IContentTemplateWriteResource } from './content-template-write';\r\nimport { ContentTypeSettings, IContentTypeSettingsResource } from './content-type-settings';\r\nimport CoreModule from '../core';\r\nimport * as Dto from './interfaces';\r\nimport TransactionTypes from './transaction-types';\r\nimport FrequentParkerActivityTypes from './frequent-parker-activity-types';\r\nimport {CreditCardTicket, ICreditCardTicketResource} from \"./credit-card-ticket\";\r\nimport {ReCaptchaValidation, IReCaptchaValidationResource} from \"./recaptcha-validation\";\r\n\r\n\r\nlet dataModule = ng.module(\"app.data\", [\r\n 'ngResource',\r\n CoreModule.name\r\n\r\n]).factory(Account.name, Account.factory)\r\n .factory(Country.name, Country.factory)\r\n .factory(CreditCard.name, CreditCard.factory)\r\n .factory(CreditCardTicket.name, CreditCardTicket.factory)\r\n .factory(ReCaptchaValidation.name, ReCaptchaValidation.factory)\r\n .factory(FrequentParkerAccount.name, FrequentParkerAccount.factory)\r\n .factory(ParkingArea.name, ParkingArea.factory)\r\n .factory(ParkingMedia.name, ParkingMedia.factory)\r\n .factory(ParkingMediaRequest.name, ParkingMediaRequest.factory)\r\n .factory(ParkingMediaType.name, ParkingMediaType.factory)\r\n .factory(Profile.name, Profile.factory)\r\n .factory(Settings.name, Settings.factory)\r\n .factory(Subdivision.name, Subdivision.factory)\r\n .factory(ContentTemplate.name, ContentTemplate.factory)\r\n .factory(ContentTemplateWrite.name, ContentTemplateWrite.factory)\r\n .factory(ContentTypeSettings.name, ContentTypeSettings.factory);\r\n\r\nexport {\r\n dataModule as DataModule,\r\n IAccountResource, ICountryResource, ICreditCardResource, IFrequentParkerAccountResource,\r\n IParkingAreaResource, IParkingMediaResource, IParkingMediaRequestResource,\r\n IParkingMediaTypeResource, IProfileResource, ISettingsResource, ISubdivisionResource,\r\n IContentTemplateResource, IContentTypeSettingsResource, Dto, ICreditCardTicketResource, IReCaptchaValidationResource,\r\n TransactionTypes, FrequentParkerActivityTypes\r\n};\r\nexport default dataModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/index.ts","import * as ng from 'angular';\r\nimport * as Core from '../Core';\r\nimport {CreditCardControlState} from \"../user-controls/credit-card-control-state\";\r\n\r\n\r\ninterface IEntity extends ng.resource.IResource {\r\n id: string;\r\n $update(): ng.IPromise;\r\n}\r\n\r\ninterface IAccountsResource extends IEntity {\r\n accountId: string;\r\n}\r\n\r\nexport interface IProfile extends IAccountsResource {\r\n userId: string;\r\n frequentParkerAccountId: string;\r\n isPrimary: boolean;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n homePhone: string;\r\n mobilePhone: string;\r\n workPhone: string;\r\n fax: string;\r\n language: string;\r\n securityQuestion: ISecurityQuestion;\r\n recordVersion: string;\r\n isEnabled: boolean;\r\n username: string;\r\n passwordResetEmailWasSent: boolean;\r\n}\r\n\r\nexport interface ISecurityQuestion extends IEntity {\r\n\r\n text: string;\r\n}\r\n\r\nexport interface IAccount extends IEntity {\r\n externalId: string;\r\n name: string;\r\n address1: string;\r\n address2: string;\r\n city: string;\r\n subdivision: string;\r\n postalCode: string;\r\n country: string;\r\n balance: number;\r\n forfeitureBalance: number;\r\n blocked: boolean;\r\n recordVersion: string;\r\n pendingSync: boolean;\r\n status: AccountStatus;\r\n accountType: number;\r\n primaryContact: IProfile;\r\n primaryCreditCard: ICreditCard;\r\n frequentParkerAccountId: string;\r\n frequentParkerNumber: string;\r\n isAMUF: boolean;\r\n isDecliningBalance: boolean;\r\n isReservedParking: boolean;\r\n fullAddress: string;\r\n}\r\n\r\nexport interface ICreditCard extends IAccountsResource {\r\n creditCardType: string;\r\n expirationMonth: string;\r\n expirationYear: string;\r\n isPrimary: boolean;\r\n maskedCreditCard: string;\r\n token: string;\r\n recordVersion: string;\r\n}\r\n\r\nexport interface ICreditCardOperationTicket extends IEntity {\r\n ticket: string;\r\n}\r\n\r\nexport interface IReCaptchaValidation extends IEntity {\r\n isValid: boolean;\r\n}\r\n\r\nexport interface IParkingMedia extends IAccountsResource {\r\n userProfile: IProfile;\r\n mediaIdentifier: string;\r\n description: string;\r\n effectiveDate: string;\r\n expirationDate: string;\r\n blocked: boolean;\r\n disabled: boolean;\r\n disabledDateTime: string;\r\n disabledReasonId: number;\r\n recordVersion: string;\r\n externalId: string;\r\n accountExternalId: string;\r\n redeem: boolean;\r\n}\r\n\r\nexport interface IClaim extends IEntity {\r\n claimType: string;\r\n claimValue: string;\r\n isDeleted: string;\r\n}\r\n\r\nexport interface ILogin extends IEntity {\r\n loginProvider: string;\r\n providerKey: string;\r\n}\r\n\r\nexport interface IUser extends IEntity {\r\n username: string;\r\n firstName: string;\r\n lastName: string;\r\n password?: string;\r\n isEnabled: boolean;\r\n claims: Array;\r\n logins: Array;\r\n securityAnswer: string;\r\n\r\n}\r\n\r\nexport interface ICountry extends IEntity {\r\n officialName: string;\r\n name: string;\r\n code: number;\r\n abbrevShort: string;\r\n abbrevLong: string;\r\n subdivisionDescription: string;\r\n subdivisionRequired: boolean;\r\n subdivisionExactMatch: boolean;\r\n}\r\n\r\nexport interface IFrequentParkerAccount extends IAccountsResource {\r\n userProfileId: string;\r\n number: string;\r\n usePointsNextVisit:boolean;\r\n automaticRedemption: boolean;\r\n}\r\n\r\nexport interface IParkingArea extends IEntity {\r\n name: string;\r\n initialBalance: number;\r\n spacesAvailable: boolean;\r\n forfeitureMonthlyAmount: number;\r\n description: string;\r\n dailyRate: number;\r\n membershipCost: number;\r\n isDecliningBalance: boolean;\r\n externalId: string;\r\n}\r\n\r\nexport interface IParkingMediaRequest extends IAccountsResource {\r\n parkingMediaTypeId: string;\r\n userProfileId: string;\r\n requestDateTime: string;\r\n statusId: number;\r\n quantity: number;\r\n /*\r\n Comma separated list of user entered media identifiers.\r\n * */\r\n mediaIdentifier: string;\r\n recordVersion: string;\r\n replaceParkingMediaId: string;\r\n externalId: string;\r\n accountExternalId: string;\r\n parkingMediaRequestId: number;\r\n replaceParkingMediaMediaIdentifier: string;\r\n}\r\n\r\nexport interface IParkingMediaType extends IEntity {\r\n price: number;\r\n description: string;\r\n externalId: string;\r\n supportsUserEntry: boolean;\r\n identifierValidationExpression: string;\r\n identifierValidationErrorMessage: string;\r\n identifierValidationWatermark: string;\r\n identifierValidationTooltip: string;\r\n}\r\n\r\nexport interface ISubdivision extends IEntity {\r\n officialName: string;\r\n name: string;\r\n code: number;\r\n abbrevShort: string;\r\n abbrevLong: string;\r\n subdivisionDescription: string;\r\n subdivisionRequired: boolean;\r\n subdivisionExactMatch: boolean;\r\n}\r\n\r\nexport interface IAccountRequest extends IEntity {\r\n accountRequestId: number;\r\n accountType: string;\r\n name: string;\r\n address1: string;\r\n address2: string;\r\n city: string;\r\n country: string;\r\n subdivision: string;\r\n postalCode: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n homePhone: string;\r\n mobilePhone: string;\r\n workPhone: string;\r\n fax: string;\r\n language: string;\r\n username: string;\r\n password: string;\r\n confirm: string;\r\n securityQuestionId: string;\r\n securityAnswer: string;\r\n preferredParkingAreaId: string;\r\n alternateParkingAreaId: string;\r\n requestDateTime: string;\r\n isReserveParkingRequest: boolean;\r\n isFrequentParkerRequest: boolean;\r\n creditCardType: string;\r\n expirationMonth: string;\r\n expirationYear: string;\r\n maskedCreditCard: string;\r\n token: string;\r\n parkingMediaRequests: Array\r\n parkingMediaType: number;\r\n accountStatus: AccountStatus;\r\n accountDeniedMessage: string;\r\n recordVersion: string;\r\n accountId: string;\r\n frequentParkerNumber: string;\r\n}\r\n\r\nexport interface IAccountActivity extends IAccountsResource {\r\n date: string; \r\n firstName: string;\r\n lastName: string;\r\n MediaIdentifier: string;\r\n ParkingMediaType: string;\r\n mediaIdentifier: string;\r\n description: string;\r\n entryDateTime: string;\r\n exitDateTime: string;\r\n amount: number;\r\n beginBalance: number;\r\n endBalance: number;\r\n externalId: string;\r\n beginForfeitureBalance: number;\r\n endForfeitureBalance: number;\r\n accountExternalId: string;\r\n transactionType: number;\r\n credit: null;\r\n debit: null;\r\n parkHouseId?: number;\r\n parkHouseName?: string;\r\n}\r\n\r\nexport interface IFrequentParkerActivity extends IEntity {\r\n frequentParkerAccountId: string;\r\n accountActivityId: string;\r\n activityDateTime: string;\r\n activityType: number;\r\n points: number;\r\n beginPointBalance: number;\r\n endPointBalance: number;\r\n status: number;\r\n isDeleted: boolean;\r\n parkHouseId?: number;\r\n parkHouseName: string;\r\n}\r\n\r\nexport interface IMessage extends IEntity {\r\n externalId: number;\r\n toType: number;\r\n accountRequestId: string;\r\n effectiveDate: string;\r\n expirationDate: string;\r\n subject: string;\r\n body: string;\r\n accountIds: Array;\r\n}\r\n\r\nexport interface IModelState extends Map> {\r\n\r\n}\r\n\r\nexport interface IKeyValuePair {\r\n key: string;\r\n value: any;\r\n}\r\n\r\nexport interface IPasswordResetRequest {\r\n password: string;\r\n resetToken: string;\r\n}\r\n\r\nexport interface ISecurityQuestionAnswer {\r\n securityAnswer: string;\r\n}\r\n\r\n//export interface ISecurityQuestion {\r\n// id: string\r\n//}\r\n\r\nexport interface IChangePasswordRequest {\r\n newPassword: string;\r\n currentPassword: string;\r\n}\r\n\r\nexport interface IThemeSettings {\r\n defaultThemeName: string;\r\n themes: Array;\r\n customPalettes: Array;\r\n}\r\n\r\nexport interface ITheme {\r\n name: string\r\n primaryPalette: IPaletteDefinition;\r\n accentPalette: IPaletteDefinition;\r\n}\r\n\r\nexport interface IPaletteDefinition {\r\n paletteName: string;\r\n overrideMap: IIndexer\r\n}\r\n\r\nexport interface IPalette {\r\n name: string;\r\n settings: IIndexer\r\n}\r\n\r\ninterface IIndexer {\r\n [name: string]: Object\r\n}\r\n\r\n\r\nexport interface ISettingsBase extends IEntity {\r\n key: SettingsKeys;\r\n recordVersion: string;\r\n}\r\nexport interface ISettings extends ISettingsBase {\r\n settings: T;\r\n}\r\n\r\nexport enum SettingsKeys {\r\n Undefined = 0,\r\n FrequentParker = 1,\r\n ReservedParking = 2,\r\n ContentSettings = 3,\r\n CreditCard = 4,\r\n SiteTheme = 5\r\n}\r\n\r\nexport interface IFrequentParkerSettings {\r\n pointCalculatorFactory: string;\r\n redemptionCalculatorFactory: string;\r\n redemptionPolicyFactory: string;\r\n redemptionCalculators: Object;\r\n redemptionPolicies: Object;\r\n accrualCalculators: Object;\r\n defaultAccrualCalculator: IAccrualCalculator;\r\n defaultRedemptionCalculator: IDefaultRedemptionCalculator;\r\n enabled: boolean;\r\n schedulingBasis: SchedulingBasisType;\r\n promotionSettings: Array;\r\n parkHouses: Array;\r\n groups: Array;\r\n enableFppNumberEntry: boolean;\r\n requireFppNumberEntry: boolean;\r\n}\r\n\r\nexport enum SchedulingBasisType {\r\n Undefined = 0,\r\n EntryTime = 1,\r\n ExitTime = 2\r\n}\r\n\r\ninterface IAccrualCalculator {\r\n calculatorType: number;\r\n dollarToPointRatio: number;\r\n order: number;\r\n}\r\n\r\ninterface IDefaultRedemptionCalculator {\r\n calculatorType: string;\r\n pointToDollarRatio: string;\r\n discountVendorId: string;\r\n discountProductId: string;\r\n order: string;\r\n}\r\n\r\nexport interface IReservedParkingSettings {\r\n enabled: boolean;\r\n membershipFeeSettings: IMembershipFeeSettings;\r\n}\r\n\r\ninterface IMembershipFeeSettings {\r\n rechargeDate: string;\r\n enabled: boolean;\r\n calculatorType: string;\r\n}\r\n\r\nexport interface IContentSettings {\r\n menuButton: IMenuButton;\r\n headerLogo: ILogo;\r\n footerLogo: ILogo;\r\n contactInfo: IContactInfo;\r\n}\r\n\r\ninterface IMenuButton {\r\n label: string;\r\n hyperlink: string;\r\n}\r\n\r\ninterface ILogo {\r\n src: string;\r\n altText: string;\r\n}\r\n\r\ninterface IContactInfo {\r\n phoneNumber: string;\r\n}\r\n\r\nexport interface ICreditCardSettings {\r\n newTokenUrl: string;\r\n redirectHtml: string;\r\n redirectCss: string;\r\n creditCardServiceAppId: string;\r\n}\r\n\r\nexport interface IReCaptchaSettings {\r\n isEnabled: boolean;\r\n reCaptcha2PublicKey: string;\r\n reCaptcha3PublicKey: string;\r\n}\r\n\r\nexport interface ISiteThemeSettings {\r\n themes: Object;\r\n customPalettes: Object;\r\n}\r\n\r\nexport interface ILanguageSettings {\r\n languages: Array;\r\n}\r\n\r\nexport enum ContentTypeSettingKeys {\r\n Test = -1,\r\n FAQ = 1,\r\n Footer = 2,\r\n Terms = 3,\r\n MediaRequest = 4,\r\n AccountDenied = 5,\r\n AccountApproved = 6,\r\n RequestReceived = 7,\r\n PasswordChanged = 8,\r\n PasswordReset = 9,\r\n ProfileUpdate = 10\r\n}\r\n\r\n//TODO: Type needs Capatilized\r\nexport enum contentGroupType {\r\n Page = 1,\r\n Email = 2,\r\n Block = 3\r\n}\r\n\r\nexport interface IContentTemplate extends IEntity {\r\n contentTemplateId?: number;\r\n key?: ContentTypeSettingKeys;\r\n languageCode?: string;\r\n content?: string;\r\n subject?: string;\r\n isNew: boolean;\r\n}\r\n\r\n\r\nexport interface ITemplateToken extends IEntity {\r\n templateTokensId: number;\r\n uiToken: string;\r\n razorToken: string;\r\n}\r\n\r\nexport interface IContentTypeSettings extends IEntity {\r\n contentTypeSettingsId: number;\r\n maxContentLength: number;\r\n key: ContentTypeSettingKeys;\r\n groupType: contentGroupType;\r\n display: string;\r\n templateTokens: Array;\r\n}\r\n\r\nexport interface ICriteria {\r\n sort: Array;\r\n sortDirection: string;\r\n sortBy: string;\r\n pageSize: number;\r\n pageNumber: number;\r\n keywords: string;\r\n}\r\n\r\nexport interface IAccountCriteria extends ICriteria {\r\n name: string;\r\n city: string;\r\n subdivision: string;\r\n postalCode: string;\r\n email: string;\r\n phoneNumber: string;\r\n accountRuntimeIds: Array;\r\n externalIds: Array;\r\n isDeleted: boolean;\r\n status: number;\r\n}\r\n\r\nexport interface IAccountActivityCriteria extends ICriteria {\r\n accountId: string;\r\n startDate: string;\r\n endDate: string;\r\n minAmount: number;\r\n maxAmount: number;\r\n transactionType: number; \r\n mediaIdentifier: string;\r\n}\r\n\r\nexport interface IFrequentParkerActivityCriteria extends ICriteria {\r\n frequentParkerAccountId: string;\r\n startDate: string;\r\n endDate: string;\r\n activityType: number; \r\n isPending: boolean;\r\n includeDeleted: boolean;\r\n}\r\n\r\nexport interface IUserCriteria extends ICriteria {\r\n loginProvider: string;\r\n providerKey: string;\r\n userName: string;\r\n}\r\n\r\nexport interface IProfileCriteria extends ICriteria {\r\n accountId: string;\r\n isPrimary: boolean;\r\n keywords: string;\r\n accountRuntimeIds: Array;\r\n emailIds: Array;\r\n isAdmin: boolean;\r\n isEnabled: boolean;\r\n userName: string;\r\n}\r\n\r\nexport interface IAccountRequestCriteria extends ICriteria {\r\n accountId: string;\r\n accountRequestRuntimeIds: Array;\r\n accountRequestIds: Array;\r\n accountIds: Array;\r\n isReserveParkingRequest: boolean;\r\n isFrequentParkerRequest: boolean;\r\n accountStatus: AccountStatus;\r\n isPendingApproval: boolean;\r\n}\r\n\r\nexport interface INameValuePair {\r\n name: string;\r\n value: Object;\r\n}\r\n\r\nexport interface IAdjustment {\r\n currencyType: string;\r\n creditAmount: number;\r\n debitAmount: number;\r\n}\r\n\r\nexport interface IUserPasswordResetRequest {\r\n baseUri: string;\r\n username: string;\r\n challengeSecret: string;\r\n}\r\n\r\nexport enum AccountStatus {\r\n Undefined = 0,\r\n PendingActivation = 1,\r\n PendingApproval = 2,\r\n Active = 3,\r\n Deactivated = 4,\r\n AccountDenied = 5\r\n}\r\n\r\nexport interface IFrequentParkerAccountSummary extends ng.resource.IResource {\r\n totalAccounts: IDashboardActiveInactiveKpiResponse;\r\n currentMonthAwarded: IDashboardPointKpiResponse;\r\n lastMonthAwarded: IDashboardPointKpiResponse;\r\n currentYearAwarded: IDashboardPointKpiResponse;\r\n lastYearAwarded: IDashboardPointKpiResponse;\r\n signUpCurrentMonth: IDashboardCountKpiResponse;\r\n signUpLastMonth: IDashboardCountKpiResponse;\r\n signUpCurrentYear: IDashboardCountKpiResponse;\r\n signUpLastYear: IDashboardCountKpiResponse;\r\n currentMonthRedeemed: IDashboardPointKpiResponse;\r\n lastMonthRedeemed: IDashboardPointKpiResponse;\r\n currentYearRedeemed: IDashboardPointKpiResponse;\r\n lastYearRedeemed: IDashboardPointKpiResponse;\r\n}\r\n\r\n\r\n\r\nexport interface IDashboardKpiRequest {\r\n startDate: string;\r\n endDate: string;\r\n key: DateRanges;\r\n}\r\n\r\nexport interface IDashboardKpiResponse extends ng.resource.IResource {\r\n startDate: string;\r\n endDate: string;\r\n key: DateRanges;\r\n}\r\n\r\nexport interface IDashboardPointKpiResponse extends IDashboardKpiResponse {\r\n dollars: number;\r\n points: number;\r\n}\r\n\r\nexport interface IDashboardCountKpiResponse extends IDashboardKpiResponse {\r\n count: number;\r\n}\r\n\r\nexport interface IDashboardActiveInactiveKpiResponse extends IDashboardKpiResponse {\r\n active: number;\r\n inactive: number;\r\n}\r\n\r\nexport class DashboardKPIs {\r\n public static PointsRedeemed = \"PointsRedeemed\";\r\n public static PointsAwarded = \"PointsAwarded\";\r\n public static SignUp = \"SignUp\";\r\n public static ActiveInactive = \"ActiveInactive\";\r\n}\r\n\r\nexport enum DateRanges {\r\n Undefined = 0,\r\n CurrentMonth = 1,\r\n LastMonth = 2,\r\n CurrentYear = 3,\r\n LastYear = 4,\r\n Custom = 5,\r\n All = 6\r\n}\r\n\r\nexport interface IPromotionSettings {\r\n id: string;\r\n name: string;\r\n isDefault: boolean;\r\n isActive: boolean;\r\n groups: Array;\r\n parkHouses: Array;\r\n pointAccruedPerDollar: number;\r\n pointsRedeemedPerDollar: number;\r\n minPointRedemption: number;\r\n pointRedemptionIncrements: number;\r\n schedule: ISchedule;\r\n isNew: boolean;\r\n}\r\n\r\nexport interface IPromotionGroup {\r\n id: string;\r\n name: string;\r\n isEveryone: boolean;\r\n enabled: boolean;\r\n}\r\n\r\nexport interface IParkHouse {\r\n id: number;\r\n parkHouseId: number;\r\n name: string;\r\n isEveryone: boolean;\r\n enabled: boolean;\r\n externalId: string;\r\n}\r\n\r\nexport interface ISchedule {\r\n activeTimes: Array;\r\n scheduleType: ScheduleTypeEnum;\r\n allDay: boolean;\r\n startTime: string;\r\n endTime: string;\r\n}\r\n\r\nexport interface ICustomActiveTime {\r\n enabled: boolean;\r\n allDay: boolean;\r\n startTime: string;\r\n endTime: string;\r\n dayOfWeek: DayOfWeek\r\n}\r\n\r\nexport enum ScheduleTypeEnum {\r\n All = 1,\r\n Weekdays = 2,\r\n Weekends = 3,\r\n Custom = 4\r\n}\r\n\r\nexport enum DayOfWeek {\r\n Sunday = 0,\r\n Monday = 1,\r\n Tuesday = 2,\r\n Wednesday = 3,\r\n Thursday = 4,\r\n Friday = 5,\r\n Saturday = 6\r\n}\r\n\r\nexport interface IGeneralSettings {\r\n phoneNumber: string;\r\n email: string;\r\n receiveCreditCardUpdateEmails: boolean;\r\n allowBusinessAccounts: boolean;\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/interfaces.ts","import 'babel-polyfill';\r\nimport 'es6-shim';\r\nimport \"lodash\";\r\nimport \"moment\";\r\nimport \"angular\";\r\nimport \"angular-animate\";\r\nimport \"angular-aria\";\r\nimport \"angular-block-ui\";\r\nimport \"angular-gettext\";\r\nimport \"angular-material\";\r\nimport \"angular-messages\";\r\nimport \"angular-resource\";\r\nimport \"angular-wizard\";\r\nimport \"angular-moment\";\r\nimport \"angular-sanitize\";\r\nimport \"angular-ui-grid\";\r\nimport \"mdPickers\";\r\nimport \"./app/assets/vendor-static/angularPrint/angularPrint\";\r\nimport \"./node_modules/angular1-component-router\";\r\nimport './node_modules/angular-recaptcha'\r\nimport \"linq-es5\";\r\nimport \"url-pattern\";\r\nimport \"./node_modules/ng-quill\"\r\n\r\nclass VendorModules {\r\n public ngAnimate: string = \"ngAnimate\";\r\n public ngRouter: string = \"ngComponentRouter\";\r\n public ngSanitize: string = \"ngSanitize\";\r\n public ngMessages: string = \"ngMessages\";\r\n public ngMaterial: string = \"ngMaterial\";\r\n public ngWizard: string = \"mgo-angular-wizard\";\r\n public ngBlockUI: string = \"blockUI\";\r\n public ngPrint: string = \"AngularPrint\";\r\n public ngMoment: string = \"angularMoment\"; \r\n public ngGetText: string = \"gettext\";\r\n public ngUiGrid: string = \"ui.grid\";\r\n public ngUiGridAutoResize: string = \"ui.grid.autoResize\";\r\n public ngUiGridResizeColumns: string = \"ui.grid.resizeColumns\";\r\n public ngUiGridSelection: string = \"ui.grid.selection\";\r\n public ngUiGridPinning: string = \"ui.grid.pinning\";\r\n public ngUiGridInfiniteScroll: string = \"ui.grid.infiniteScroll\";\r\n public ngQuill: string = \"ngQuill\";\r\n public mdPickers: string = \"mdPickers\"; \r\n public vcRecaptcha: string= \"vcRecaptcha\";\r\n}\r\n\r\nlet mods = new VendorModules();\r\nexport default mods;\r\nexport { mods as Vendor }\r\n \r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./vendor-modules.ts","import * as ng from 'angular';\r\nimport { ForgotPasswordComponent, IForgotPasswordController } from './forgot-password';\r\nimport { ResetPasswordComponent, IResetPasswordController } from './reset-password'\r\nimport { SecurityComponent, ISecurityController } from './security';\r\nimport { SignInComponent, ISignInController } from './sign-in';\r\nimport { ProfileSecurity, IProfileSecurityResource } from './data/profile-security';\r\nimport { SecurityQuestion, ISecurityQuestionResource } from './data/security-question';\r\nimport { User, IUserResource } from './data/user';\r\nimport { Auth, IAuthService } from './services/authorization';\r\nimport Interceptor from './services/interceptor';\r\nimport { PasswordStrength, IPasswordStrengthService } from './services/password-strength';\r\nimport { ChangePasswordCardComponent, IChangePasswordCardController } from './user-controls/change-password-card';\r\nimport { PasswordComponent, IPasswordController } from './user-controls/password';\r\nimport { SecurityQuestionComponent, ISecurityQuestionController } from './user-controls/security-question';\r\nimport { SecurityQuestionCardComponent, ISecurityQuestionCardController } from './user-controls/security-question-card';\r\nimport { SignInCardComponent, ISignInCardController } from './user-controls/sign-in-card';\r\nimport { ICredentials, IToken } from './data/interfaces';\r\nimport * as Dto from '../../data/interfaces';\r\n\r\nlet securityModule = ng.module(\"app.security\", [\r\n 'ngComponentRouter',\r\n //'ngRouteShim',\r\n 'ngMaterial',\r\n 'ngMessages'\r\n\r\n]).config([\"$httpProvider\", ($httpProvider: ng.IHttpProvider) => {\r\n $httpProvider.interceptors.push(Interceptor.name);\r\n}])\r\n .component(ForgotPasswordComponent.name, ForgotPasswordComponent.registration)\r\n .factory(Interceptor.name, Interceptor.factory)\r\n .factory(ProfileSecurity.name, ProfileSecurity.factory)\r\n .factory(SecurityQuestion.name, SecurityQuestion.factory)\r\n .factory(User.name, User.factory)\r\n .factory(Auth.name, Auth.factory)\r\n .factory(PasswordStrength.name, PasswordStrength.factory)\r\n .component(ChangePasswordCardComponent.name, ChangePasswordCardComponent.registration)\r\n .component(PasswordComponent.name, PasswordComponent.registration)\r\n .component(SecurityQuestionComponent.name, SecurityQuestionComponent.registration)\r\n .component(SecurityQuestionCardComponent.name, SecurityQuestionCardComponent.registration)\r\n .component(SignInCardComponent.name, SignInCardComponent.registration)\r\n .component(ResetPasswordComponent.name, ResetPasswordComponent.registration)\r\n .component(SecurityComponent.name, SecurityComponent.registration)\r\n .component(SignInComponent.name, SignInComponent.registration);\r\n\r\n\r\nexport {\r\n securityModule as SecurityModule, securityModule, ICredentials, IToken,\r\n IForgotPasswordController, IResetPasswordController, ISecurityController, ISignInController,\r\n IProfileSecurityResource, ISecurityQuestionResource, IUserResource, IAuthService, IPasswordStrengthService,\r\n IChangePasswordCardController, IPasswordController, ISecurityQuestionController,\r\n ISecurityQuestionCardController, ISignInCardController, Dto, Interceptor\r\n};\r\nexport default securityModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/index.ts","export enum CreditCardControlState {\r\n ReadMode = 1,\r\n ReCaptchaValidation = 2,\r\n EditMode = 3\r\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/credit-card-control-state.ts","let faq: string = require(\"./content/faq.html\");\r\nlet mediaRequest: string = require(\"./content/media-request.html\");\r\nlet terms: string = require(\"./content/terms.html\");\r\nlet blockUI: string = require(\"./content/blockui-template.html\");\r\nlet accountNotActivated: string = require(\"./content/account-not-activated.html\");\r\nlet Templates = {\r\n accountNotActivated: accountNotActivated,\r\n faq: faq,\r\n mediaRequest: mediaRequest,\r\n terms: terms,\r\n blockUI: blockUI\r\n};\r\n\r\nexport { Templates }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/assets/index.ts","import * as ng from 'angular';\r\nimport refs from '../../vendor-modules';\r\nimport SecurityModule from '../components/security';\r\nimport DataModule from '../data';\r\nimport { StandardColumnDirective, StandardGridComponent } from './grid/standard-grid';\r\nimport { AddressComponent, IAddressController } from './address';\r\nimport { CreditCardComponent, ICreditCardController } from './credit-card';\r\nimport { EmailComponent, IEmailController } from './email';\r\nimport { FooterComponent, IFooterController } from './footer';\r\nimport { HeaderBarComponent, IHeaderBarController } from './header-bar';\r\nimport { NavBarComponent, INavBarController } from './nav-bar';\r\nimport { ParkingAreaComponent, IParkingAreaController } from './parking-area';\r\nimport { ParkingMediaComponent, IParkingMediaController } from './parking-media';\r\nimport { PhoneComponent, IPhoneController } from './phone';\r\nimport { TitleBarComponent, ITitleBarController } from './title-bar';\r\nimport {ReCaptchaComponent} from './recaptcha'\r\n\r\nlet usercontrolsModule = ng.module(\"app.userControls\", [\r\n refs.ngRouter,\r\n refs.ngMaterial,\r\n refs.ngGetText,\r\n DataModule.name,\r\n SecurityModule.name,\r\n refs.ngUiGrid,\r\n refs.ngUiGridAutoResize,\r\n refs.ngUiGridResizeColumns,\r\n refs.ngUiGridSelection,\r\n refs.ngUiGridPinning,\r\n refs.ngUiGridInfiniteScroll,\r\n refs.vcRecaptcha,\r\n])\r\n .component(AddressComponent.name, AddressComponent.registration)\r\n .component(CreditCardComponent.name, CreditCardComponent.registration)\r\n .component(EmailComponent.name, EmailComponent.registration)\r\n .component(FooterComponent.name, FooterComponent.registration)\r\n .component(HeaderBarComponent.name, HeaderBarComponent.registration)\r\n .component(NavBarComponent.name, NavBarComponent.registration)\r\n .component(ParkingAreaComponent.name, ParkingAreaComponent.registration)\r\n .component(ParkingMediaComponent.name, ParkingMediaComponent.registration)\r\n .component(PhoneComponent.name, PhoneComponent.registration)\r\n .component(TitleBarComponent.name, TitleBarComponent.registration)\r\n .directive(StandardColumnDirective.name, StandardColumnDirective.factory)\r\n .component(StandardGridComponent.name, StandardGridComponent.registration)\r\n .component(ReCaptchaComponent.name, ReCaptchaComponent.registration);\r\n\r\nexport {\r\n //StandardColumn, StandardGrid\r\n // IAddressController, ICreditCardController, IEmailController, IHeaderBarController,\r\n // INavBarController, IParkingAreaController, IParkingMediaController, IPhoneController, ITitleBarController\r\n};\r\nexport default usercontrolsModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/index.ts","module.exports = __webpack_public_path__ + \"bb391f08c9b389b9784b94946f39c140.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/img/sprite_benefits_thumb.png\n// module id = 287\n// module chunks = 0","module.exports = __webpack_public_path__ + \"b460b48967e1e345c90dba0a1fbf07bc.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/img/sprite_benefits_clock.png\n// module id = 288\n// module chunks = 0","module.exports = __webpack_public_path__ + \"379dfc1285ff00f8deede0f57ca3cfb3.png\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/img/sprite_benefits_notify.png\n// module id = 289\n// module chunks = 0","import * as ng from 'angular';\r\nimport refs from \"./vendor-modules\";\r\nimport AppComponent from \"./app/app-component\";\r\nimport AdminModule from './app/components/admin';\r\nimport DashboardModule from './app/components/dashboard';\r\nimport ProfileModule from './app/components/profile';\r\nimport PublicModule from './app/components/public';\r\nimport SecurityModule from './app/components/security';\r\nimport DataModule from './app/data';\r\nimport ServicesModule from './app/services';\r\nimport UserControlsModule from './app/user-controls';\r\nimport CoreModule from './app/core';\r\nimport themeConfig from \"./app/theme-config\";\r\nimport blockUIConfig from \"./app/blockui-config\";\r\n\r\nng.module(AppComponent.name, [\r\n refs.ngAnimate,\r\n refs.ngRouter,\r\n refs.ngMessages,\r\n refs.ngMaterial,\r\n refs.ngWizard,\r\n refs.ngBlockUI,\r\n refs.ngPrint,\r\n refs.ngMoment,\r\n refs.ngQuill,\r\n CoreModule.name,\r\n DataModule.name,\r\n ServicesModule.name,\r\n UserControlsModule.name,\r\n SecurityModule.name,\r\n AdminModule.name,\r\n DashboardModule.name,\r\n ProfileModule.name,\r\n PublicModule.name,\r\n])\r\n .value('$routerRootComponent', AppComponent.name) \r\n .config(blockUIConfig)\r\n .config(themeConfig)\r\n .component(AppComponent.name, AppComponent.registration)\r\n\r\n .config(($locationProvider: ng.ILocationProvider) => {\r\n $locationProvider.hashPrefix(\"\");\r\n })\r\n .run([\"gettextCatalog\", (gettextCatalog: ng.gettext.gettextCatalog) => {\r\n\r\n if (location.protocol === 'http:') {\r\n window.location.href = location.href.replace('http', 'https');\r\n }\r\n\r\n (gettextCatalog as any).currentLanguage = 'en';\r\n gettextCatalog.debug = true; \r\n }]);\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./index.ts","require('./release/angular-recaptcha.js');\nmodule.exports = 'vcRecaptcha';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/angular-recaptcha/index.js\n// module id = 511\n// module chunks = 0","/**\n * @license angular-recaptcha build:2018-05-09\n * https://github.com/vividcortex/angular-recaptcha\n * Copyright (c) 2018 VividCortex\n**/\n\n/*global angular, Recaptcha */\n(function (ng) {\n 'use strict';\n\n ng.module('vcRecaptcha', []);\n\n}(angular));\n\n/*global angular */\n(function (ng) {\n 'use strict';\n\n function throwNoKeyException() {\n throw new Error('You need to set the \"key\" attribute to your public reCaptcha key. If you don\\'t have a key, please get one from https://www.google.com/recaptcha/admin/create');\n }\n\n var app = ng.module('vcRecaptcha');\n\n /**\n * An angular service to wrap the reCaptcha API\n */\n app.provider('vcRecaptchaService', function(){\n var provider = this;\n var config = {};\n provider.onLoadFunctionName = 'vcRecaptchaApiLoaded';\n\n /**\n * Sets the reCaptcha configuration values which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param defaults object which overrides the current defaults object.\n */\n provider.setDefaults = function(defaults){\n ng.copy(defaults, config);\n };\n\n /**\n * Sets the reCaptcha key which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param siteKey the reCaptcha public key (refer to the README file if you don't know what this is).\n */\n provider.setSiteKey = function(siteKey){\n config.key = siteKey;\n };\n\n /**\n * Sets the reCaptcha theme which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param theme The reCaptcha theme.\n */\n provider.setTheme = function(theme){\n config.theme = theme;\n };\n\n /**\n * Sets the reCaptcha stoken which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param stoken The reCaptcha stoken.\n */\n provider.setStoken = function(stoken){\n config.stoken = stoken;\n };\n\n /**\n * Sets the reCaptcha size which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param size The reCaptcha size.\n */\n provider.setSize = function(size){\n config.size = size;\n };\n\n /**\n * Sets the reCaptcha type which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param type The reCaptcha type.\n */\n provider.setType = function(type){\n config.type = type;\n };\n\n /**\n * Sets the reCaptcha language which will be used by default is not specified in a specific directive instance.\n *\n * @param lang The reCaptcha language.\n */\n provider.setLang = function(lang){\n config.lang = lang;\n };\n\n /**\n * Sets the reCaptcha badge position which will be used by default if not specified in a specific directive instance.\n *\n * @param badge The reCaptcha badge position.\n */\n provider.setBadge = function(badge){\n config.badge = badge;\n };\n\n /**\n * Sets the reCaptcha configuration values which will be used by default is not specified in a specific directive instance.\n *\n * @since 2.5.0\n * @param onLoadFunctionName string name which overrides the name of the onload function. Should match what is in the recaptcha script querystring onload value.\n */\n provider.setOnLoadFunctionName = function(onLoadFunctionName){\n provider.onLoadFunctionName = onLoadFunctionName;\n };\n\n provider.$get = ['$rootScope','$window', '$q', '$document', '$interval', function ($rootScope, $window, $q, $document, $interval) {\n var deferred = $q.defer(), promise = deferred.promise, instances = {}, recaptcha;\n\n $window.vcRecaptchaApiLoadedCallback = $window.vcRecaptchaApiLoadedCallback || [];\n\n var callback = function () {\n recaptcha = $window.grecaptcha;\n\n deferred.resolve(recaptcha);\n };\n\n $window.vcRecaptchaApiLoadedCallback.push(callback);\n\n $window[provider.onLoadFunctionName] = function () {\n $window.vcRecaptchaApiLoadedCallback.forEach(function(callback) {\n callback();\n });\n };\n\n\n function getRecaptcha() {\n if (!!recaptcha) {\n return $q.when(recaptcha);\n }\n\n return promise;\n }\n\n function validateRecaptchaInstance() {\n if (!recaptcha) {\n throw new Error('reCaptcha has not been loaded yet.');\n }\n }\n\n function isRenderFunctionAvailable() {\n return ng.isFunction(($window.grecaptcha || {}).render);\n }\n\n\n // Check if grecaptcha.render is not defined already.\n if (isRenderFunctionAvailable()) {\n callback();\n } else if ($window.document.querySelector('script[src^=\"https://www.google.com/recaptcha/api.js\"]')) {\n // wait for script to be loaded.\n var intervalWait = $interval(function() {\n if (isRenderFunctionAvailable()) {\n $interval.cancel(intervalWait);\n callback();\n }\n }, 25);\n } else {\n // Generate link on demand\n var script = $window.document.createElement('script');\n script.async = true;\n script.defer = true;\n script.src = 'https://www.google.com/recaptcha/api.js?onload='+provider.onLoadFunctionName+'&render=explicit';\n $document.find('body')[0].appendChild(script);\n }\n\n return {\n\n /**\n * Creates a new reCaptcha object\n *\n * @param elm the DOM element where to put the captcha\n * @param conf the captcha object configuration\n * @throws NoKeyException if no key is provided in the provider config or the directive instance (via attribute)\n */\n create: function (elm, conf) {\n\n conf.sitekey = conf.key || config.key;\n conf.theme = conf.theme || config.theme;\n conf.stoken = conf.stoken || config.stoken;\n conf.size = conf.size || config.size;\n conf.type = conf.type || config.type;\n conf.hl = conf.lang || config.lang;\n conf.badge = conf.badge || config.badge;\n\n if (!conf.sitekey) {\n throwNoKeyException();\n }\n return getRecaptcha().then(function (recaptcha) {\n var widgetId = recaptcha.render(elm, conf);\n instances[widgetId] = elm;\n return widgetId;\n });\n },\n\n /**\n * Reloads the reCaptcha\n */\n reload: function (widgetId) {\n validateRecaptchaInstance();\n\n recaptcha.reset(widgetId);\n\n // Let everyone know this widget has been reset.\n $rootScope.$broadcast('reCaptchaReset', widgetId);\n },\n\n /**\n * Executes the reCaptcha\n */\n execute: function (widgetId) {\n validateRecaptchaInstance();\n\n recaptcha.execute(widgetId);\n },\n\n /**\n * Get/Set reCaptcha language\n */\n useLang: function (widgetId, lang) {\n var instance = instances[widgetId];\n\n if (instance) {\n var iframe = instance.querySelector('iframe');\n if (lang) {\n // Setter\n if (iframe && iframe.src) {\n var s = iframe.src;\n if (/[?&]hl=/.test(s)) {\n s = s.replace(/([?&]hl=)\\w+/, '$1' + lang);\n } else {\n s += ((s.indexOf('?') === -1) ? '?' : '&') + 'hl=' + lang;\n }\n\n iframe.src = s;\n }\n } else {\n // Getter\n if (iframe && iframe.src && /[?&]hl=\\w+/.test(iframe.src)) {\n return iframe.src.replace(/.+[?&]hl=(\\w+)([^\\w].+)?/, '$1');\n } else {\n return null;\n }\n }\n } else {\n throw new Error('reCaptcha Widget ID not exists', widgetId);\n }\n },\n\n /**\n * Gets the response from the reCaptcha widget.\n *\n * @see https://developers.google.com/recaptcha/docs/display#js_api\n *\n * @returns {String}\n */\n getResponse: function (widgetId) {\n validateRecaptchaInstance();\n\n return recaptcha.getResponse(widgetId);\n },\n\n /**\n * Gets reCaptcha instance and configuration\n */\n getInstance: function (widgetId) {\n return instances[widgetId];\n },\n\n /**\n * Destroy reCaptcha instance.\n */\n destroy: function (widgetId) {\n delete instances[widgetId];\n }\n };\n\n }];\n });\n\n}(angular));\n\n/*global angular, Recaptcha */\n(function (ng) {\n 'use strict';\n\n var app = ng.module('vcRecaptcha');\n\n app.directive('vcRecaptcha', ['$document', '$timeout', 'vcRecaptchaService', function ($document, $timeout, vcRecaptcha) {\n\n return {\n restrict: 'A',\n require: \"?^^form\",\n scope: {\n response: '=?ngModel',\n key: '=?',\n stoken: '=?',\n theme: '=?',\n size: '=?',\n type: '=?',\n lang: '=?',\n badge: '=?',\n tabindex: '=?',\n required: '=?',\n onCreate: '&',\n onSuccess: '&',\n onExpire: '&'\n },\n link: function (scope, elm, attrs, ctrl) {\n scope.widgetId = null;\n\n if(ctrl && ng.isDefined(attrs.required)){\n scope.$watch('required', validate);\n }\n\n var removeCreationListener = scope.$watch('key', function (key) {\n var callback = function (gRecaptchaResponse) {\n // Safe $apply\n $timeout(function () {\n scope.response = gRecaptchaResponse;\n validate();\n\n // Notify about the response availability\n scope.onSuccess({response: gRecaptchaResponse, widgetId: scope.widgetId});\n });\n };\n\n vcRecaptcha.create(elm[0], {\n\n callback: callback,\n key: key,\n stoken: scope.stoken || attrs.stoken || null,\n theme: scope.theme || attrs.theme || null,\n type: scope.type || attrs.type || null,\n lang: scope.lang || attrs.lang || null,\n tabindex: scope.tabindex || attrs.tabindex || null,\n size: scope.size || attrs.size || null,\n badge: scope.badge || attrs.badge || null,\n 'expired-callback': expired\n\n }).then(function (widgetId) {\n // The widget has been created\n validate();\n scope.widgetId = widgetId;\n scope.onCreate({widgetId: widgetId});\n\n scope.$on('$destroy', destroy);\n\n scope.$on('reCaptchaReset', function(event, resetWidgetId){\n if(ng.isUndefined(resetWidgetId) || widgetId === resetWidgetId){\n scope.response = \"\";\n validate();\n }\n })\n\n });\n\n // Remove this listener to avoid creating the widget more than once.\n removeCreationListener();\n });\n\n function destroy() {\n if (ctrl) {\n // reset the validity of the form if we were removed\n ctrl.$setValidity('recaptcha', null);\n }\n\n cleanup();\n }\n\n function expired(){\n // Safe $apply\n $timeout(function () {\n scope.response = \"\";\n validate();\n\n // Notify about the response availability\n scope.onExpire({ widgetId: scope.widgetId });\n });\n }\n\n function validate(){\n if(ctrl){\n ctrl.$setValidity('recaptcha', scope.required === false ? null : Boolean(scope.response));\n }\n }\n\n function cleanup(){\n vcRecaptcha.destroy(scope.widgetId);\n\n // removes elements reCaptcha added.\n ng.element($document[0].querySelectorAll('.pls-container')).parent().remove();\n }\n }\n };\n }]);\n\n}(angular));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/angular-recaptcha/release/angular-recaptcha.js\n// module id = 512\n// module chunks = 0","(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['quill'], factory)\r\n } else if (typeof exports === 'object') {\r\n module.exports = factory(require('quill'))\r\n } else {\r\n root.Requester = factory(root.Quill)\r\n }\r\n}(this, function (Quill) {\r\n 'use strict'\r\n\r\n var app\r\n // declare ngQuill module\r\n app = angular.module('ngQuill', [])\r\n\r\n app.provider('ngQuillConfig', function () {\r\n var config = {\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n\r\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\r\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\r\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\r\n [{ 'direction': 'rtl' }], // text direction\r\n\r\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n\r\n ['clean'], // remove formatting button\r\n\r\n ['link', 'image', 'video'] // link and image, video\r\n ]\r\n },\r\n theme: 'snow',\r\n placeholder: 'Insert text here ...',\r\n readOnly: false,\r\n bounds: document.body\r\n }\r\n\r\n this.set = function (customConf) {\r\n customConf = customConf || {}\r\n\r\n if (customConf.modules) {\r\n config.modules = customConf.modules\r\n }\r\n if (customConf.theme) {\r\n config.theme = customConf.theme\r\n }\r\n if (customConf.placeholder) {\r\n config.placeholder = customConf.placeholder\r\n }\r\n if (customConf.bounds) {\r\n config.bounds = customConf.bounds\r\n }\r\n if (customConf.readOnly) {\r\n config.readOnly = customConf.readOnly\r\n }\r\n if (customConf.formats) {\r\n config.formats = customConf.formats\r\n }\r\n }\r\n\r\n this.$get = function () {\r\n return config\r\n }\r\n })\r\n\r\n app.component('ngQuillEditor', {\r\n bindings: {\r\n 'modules': '',\r\n controller: ['$scope', '$element', '$timeout', '$transclude', 'ngQuillConfig', function ($scope, $element, $timeout, $transclude, ngQuillConfig) {\r\n var config = {}\r\n var content\r\n var editorElem\r\n var modelChanged = false\r\n var editorChanged = false\r\n var editor\r\n\r\n this.validate = function (text) {\r\n if (this.maxLength) {\r\n if (text.length > this.maxLength + 1) {\r\n this.ngModelCtrl.$setValidity('maxlength', false)\r\n } else {\r\n this.ngModelCtrl.$setValidity('maxlength', true)\r\n }\r\n }\r\n\r\n if (this.minLength > 1) {\r\n // validate only if text.length > 1\r\n if (text.length <= this.minLength && text.length > 1) {\r\n this.ngModelCtrl.$setValidity('minlength', false)\r\n } else {\r\n this.ngModelCtrl.$setValidity('minlength', true)\r\n }\r\n }\r\n }\r\n\r\n this.$onChanges = function (changes) {\r\n if (changes.ngModel && changes.ngModel.currentValue !== changes.ngModel.previousValue) {\r\n content = changes.ngModel.currentValue\r\n\r\n if (editor && !editorChanged) {\r\n modelChanged = true\r\n if (content) {\r\n editor.pasteHTML(content)\r\n } else {\r\n editor.setText('')\r\n }\r\n }\r\n editorChanged = false\r\n }\r\n\r\n if (editor && changes.readOnly) {\r\n editor.enable(!changes.readOnly.currentValue)\r\n }\r\n }\r\n\r\n this.$onInit = function () {\r\n config = {\r\n theme: this.theme || ngQuillConfig.theme,\r\n readOnly: this.readOnly || ngQuillConfig.readOnly,\r\n modules: this.modules || ngQuillConfig.modules,\r\n formats: this.formats || ngQuillConfig.formats,\r\n placeholder: this.placeholder || ngQuillConfig.placeholder,\r\n boundy: ngQuillConfig.bounds\r\n }\r\n }\r\n\r\n this.$postLink = function () {\r\n // create quill instance after dom is rendered\r\n $timeout(function () {\r\n this._initEditor(editorElem)\r\n }.bind(this), 0)\r\n }\r\n\r\n this._initEditor = function (editorElem) {\r\n var $editorElem = angular.element('
')\r\n var container = $element.children()\r\n\r\n editorElem = $editorElem[0]\r\n\r\n // set toolbar to custom one\r\n if ($transclude.isSlotFilled('toolbar')) {\r\n config.modules.toolbar = container.find('ng-quill-toolbar').children()[0]\r\n }\r\n\r\n container.append($editorElem)\r\n\r\n editor = new Quill(editorElem, config)\r\n\r\n this.ready = true\r\n\r\n // mark model as touched if editor lost focus\r\n editor.on('selection-change', function (range, oldRange, source) {\r\n if (this.onSelectionChanged) {\r\n this.onSelectionChanged({\r\n editor: editor,\r\n oldRange: oldRange,\r\n range: range,\r\n source: source\r\n })\r\n }\r\n\r\n if (range) {\r\n return\r\n }\r\n $scope.$applyAsync(function () {\r\n this.ngModelCtrl.$setTouched()\r\n }.bind(this))\r\n }.bind(this))\r\n\r\n // update model if text changes\r\n editor.on('text-change', function (delta, oldDelta, source) {\r\n var html = editorElem.children[0].innerHTML\r\n var text = editor.getText()\r\n\r\n if (html === '


') {\r\n html = null\r\n }\r\n this.validate(text)\r\n\r\n if (!modelChanged) {\r\n $scope.$applyAsync(function () {\r\n editorChanged = true\r\n\r\n this.ngModelCtrl.$setViewValue(html)\r\n\r\n if (this.onContentChanged) {\r\n this.onContentChanged({\r\n editor: editor,\r\n html: html,\r\n text: text,\r\n delta: delta,\r\n oldDelta: oldDelta,\r\n source: source\r\n })\r\n }\r\n }.bind(this))\r\n }\r\n modelChanged = false\r\n }.bind(this))\r\n\r\n // set initial content\r\n if (content) {\r\n modelChanged = true\r\n\r\n editor.pasteHTML(content)\r\n }\r\n\r\n // provide event to get informed when editor is created -> pass editor object.\r\n if (this.onEditorCreated) {\r\n this.onEditorCreated({editor: editor})\r\n }\r\n }\r\n }]\r\n })\r\n}))\r\n;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ng-quill/dist/ng-quill.js\n// module id = 513\n// module chunks = 0","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('
' + html + '


');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === '🐶', '\\uD83D\\uDC2F' === '🐯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\<'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with  \n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['', '', '', ''].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \" \";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['', '
', '', '', '
'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/quill/dist/quill.js\n// module id = 514\n// module chunks = 0","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/buffer/index.js\n// module id = 515\n// module chunks = 0","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/base64-js/index.js\n// module id = 516\n// module chunks = 0","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/ieee754/index.js\n// module id = 517\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/isarray/index.js\n// module id = 518\n// module chunks = 0","import * as ng from 'angular';\r\nimport { Moment } from 'moment';\r\nimport { Templates } from \"./assets\";\r\nimport { ComponentRegistration } from './core';\r\nimport { IAuthService } from './components/security';\r\nimport { IThemesService } from './services';\r\n\r\nlet appTemplate = require(\"./app.html\");\r\n\r\nclass AppComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('app', {\r\n templateUrl: appTemplate,\r\n controller: AppController,\r\n controllerAs: \"app\",\r\n $routeConfig: [\r\n { path: '/', component: 'home', name: 'Home', useAsDefault: true },\r\n { path: '/faq', component: 'faq', name: 'Faq' },\r\n { path: '/terms', component: 'terms', name: 'Terms' },\r\n { path: '/sign-in', component: 'signIn', name: 'SignIn' },\r\n { path: '/account-request', component: 'accountRequest', name: 'AccountRequest' },\r\n { path: '/account-request-completed', component: 'accountRequestCompleted', name: 'AccountRequestCompleted' },\r\n { path: '/forgot-password', component: 'forgotPassword', name: 'ForgotPassword' },\r\n { path: '/reset-password', component: 'resetPassword', name: 'ResetPassword' },\r\n { path: '/change-password', component: 'changePassword', name: 'ChangePassword' },\r\n { path: '/dashboard', component: 'overview', name: 'Dashboard' },\r\n { path: '/dashboard/overview', component: 'overview', name: 'Overview' },\r\n { path: '/dashboard/account-activity', component: 'accountActivity', name: 'AccountActivity' },\r\n { path: '/dashboard/account', component: 'accountInfo', name: 'AccountInfo' },\r\n { path: '/dashboard/media', component: 'media', name: 'Media' },\r\n { path: '/dashboard/message', component: 'message', name: 'Message' },\r\n { path: '/security', component: 'security', name: 'Security' },\r\n { path: '/application', component: 'application', name: 'Application' },\r\n { path: '/admin/...', component: 'admin', name: 'Admin' },\r\n { path: '/profile', component: 'profile', name: 'Profile' },\r\n ]\r\n });\r\n }\r\n}\r\n\r\ninterface IAppController {\r\n\r\n onLogoutClick(args): void;\r\n onLanguageChange(args): void;\r\n}\r\n\r\nclass AppController implements IAppController {\r\n private today: Date;\r\n private selectedLanguageCode: string;\r\n //public footerUrl: string = Templates.footer;\r\n public themeLoaded: boolean = false;\r\n public static $inject: Array = ['$rootRouter', 'gettextCatalog', 'Auth', 'Themes', 'moment'];\r\n constructor(private $router: any,\r\n private gettextCatalog: ng.gettext.gettextCatalog,\r\n private Auth: IAuthService,\r\n private Themes: IThemesService,\r\n moment: Moment\r\n ) {\r\n\r\n this.today = new Date();\r\n this.selectedLanguageCode = 'en';\r\n (window as any).moment = moment;\r\n console.log(\"main app contorller constructed.\");\r\n }\r\n\r\n public $onInit(): void {\r\n this.Themes.loadThemes()\r\n .then((loaded) => {\r\n this.themeLoaded = loaded;\r\n });\r\n }\r\n\r\n public onLogoutClick(): void {\r\n this.Auth.clearTokens();\r\n // causes auto redirect to login\r\n //$rootScope.profile = {};\r\n this.$router.navigate(['Home']);\r\n }\r\n\r\n public onLanguageChange() {\r\n this.gettextCatalog.setCurrentLanguage(this.selectedLanguageCode);\r\n }\r\n}\r\n\r\nlet appComponent = new AppComponent();\r\nexport default appComponent;\r\nexport { appComponent }\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/app-component.ts","export default class ComponentRegistration {\r\n constructor(public name: string,\r\n public registration: ng.IComponentOptions) {\r\n }\r\n} \n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/component-registration.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport * as UrlPattern from 'url-pattern';\r\nimport * as Core from './interfaces';\r\n\r\n//let SiteConfigServiceFactory: Function = ($q: ng.IQService,\r\n// $injector: ng.auto.IInjectorService) => {\r\n// return new SiteConfigService($q, $injector);\r\n//}\r\n\r\n//SiteConfigServiceFactory\r\n\r\n\r\n\r\ninterface ISiteConfigService {\r\n getResourceUri(serviceName: string): string;\r\n getClientAuthCode(id: string): string;\r\n getConfig(): any;\r\n getConfigAsync(): ng.IPromise;\r\n getClientByType(clientType): Core.IClient;\r\n getClientById(id): any;\r\n getUriMatch(uri): any;\r\n\r\n};\r\n\r\nexport class SiteConfigService implements ISiteConfigService {\r\n public static $inject: Array = ['$q', '$injector'];\r\n\r\n private cachedConfig: Core.IConfig = null;\r\n private retrieving: Boolean = false;\r\n private waitingPromises: Array> = [];\r\n private initInjector: ng.auto.IInjectorService = ng.injector(['ng']);\r\n private $http: ng.IHttpService = this.initInjector.get('$http');\r\n private options: any = {\r\n segmentNameCharset: 'a-zA-Z0-9_-'\r\n };\r\n private uriPattern: UrlPattern;\r\n\r\n constructor(private $q: ng.IQService,\r\n private $injector: ng.auto.IInjectorService) {\r\n\r\n this.uriPattern = new UrlPattern('(*)/api(/ref)/:resource(/:id)(/:child)(/:subId)', this.options);\r\n this.loadConfig();\r\n\r\n }\r\n\r\n private primaryConfigLoadPromise: ng.IPromise = null;\r\n\r\n loadConfig(): ng.IPromise {\r\n\r\n if (this.primaryConfigLoadPromise)\r\n return this.primaryConfigLoadPromise;\r\n\r\n this.primaryConfigLoadPromise = this.$http.get('site.json')\r\n .then((response: any) => {\r\n if (!(response.data && response.data.config)) {\r\n console.log('Failed to load site.json');\r\n return this.$q.reject(null);\r\n }\r\n\r\n this.cachedConfig = response.data.config;\r\n this.indexServices(this.cachedConfig);\r\n console.log('site.json Loaded');\r\n return this.$q.resolve(this.cachedConfig);\r\n })\r\n .catch((err) => {\r\n console.log('Failed to load site.json');\r\n return this.$q.reject(null);\r\n });\r\n\r\n return this.primaryConfigLoadPromise;\r\n };\r\n\r\n private getServiceUriArray(service) {\r\n return Linq.From(Object.keys(service.api))\r\n .Select((key: any) => {\r\n\r\n var x = {\r\n key: key,\r\n value: service.api[key]\r\n } as any;\r\n\r\n var fullUri = service.baseUri + x.value.relativeUri;\r\n return {\r\n key: x.key.trim().toLowerCase(),\r\n uri: fullUri,\r\n baseUri: service.baseUri.trim().toLowerCase(),\r\n relativeUri: x.value.relativeUri.trim().toLowerCase(),\r\n resource: x.value.resource ? x.value.resource.trim().toLowerCase() : '',\r\n clientId: x.value.clientId,\r\n scope: service.scope\r\n };\r\n }).ToArray();\r\n };\r\n\r\n private indexServices(config): void {\r\n\r\n var uriEnum = Linq.From(this.getServiceUriArray(config.services.asm).concat(\r\n this.getServiceUriArray(config.services.iam),\r\n this.getServiceUriArray(config.services.sts)\r\n ));\r\n\r\n var uriDict = uriEnum\r\n .ToDictionary(\r\n (x: any) => { return x.key; },\r\n (x: any) => { return x.uri; }\r\n );\r\n\r\n config.clientDict = Linq.From(this.cachedConfig.clients)\r\n .ToDictionary(\r\n (x: any) => { return x.id; },\r\n (x: any) => { return x; }\r\n );\r\n\r\n config.resourceUriDict = uriDict;\r\n config.uriEnumerable = uriEnum;\r\n };\r\n\r\n public getResourceUri(serviceName: string): string {\r\n if (this.cachedConfig !== null) {\r\n return this.cachedConfig.resourceUriDict.get(serviceName.toLowerCase());\r\n }\r\n\r\n console.error('getResourceUri(serviceName) failed for serviceName=' + serviceName + '.');\r\n };\r\n\r\n public getClientAuthCode(id: string): string {\r\n if (this.cachedConfig) {\r\n var client = this.cachedConfig.clientDict.get(id);\r\n return btoa(client.clientId + ':' + client.secret);\r\n }\r\n\r\n return null;\r\n };\r\n\r\n public getConfig(): Core.IConfig {\r\n return this.cachedConfig;\r\n };\r\n\r\n public getConfigAsync(): ng.IPromise {\r\n\r\n if (this.cachedConfig !== null) {\r\n //setTimeout(() => {\r\n return this.$q.resolve(this.cachedConfig);\r\n //}, 1);\r\n }\r\n else {\r\n return this.loadConfig().then(() => {\r\n return this.$q.resolve(this.cachedConfig);\r\n });\r\n }\r\n };\r\n\r\n public getClientByType(clientType): Core.IClient {\r\n var config = this.getConfig();\r\n return Linq.From(config.clients)\r\n .FirstOrDefault((x: any) => {\r\n return x.type === clientType.toLowerCase();\r\n });\r\n };\r\n\r\n public getClientById(id): any {\r\n var config = this.getConfig();\r\n return Linq.From(config.clients)\r\n .FirstOrDefault((x: any) => {\r\n return x.id === id;\r\n });\r\n };\r\n\r\n public getUriMatch(uri): any {\r\n\r\n if (uri === undefined) {\r\n console.error(\"getUriMatch(uri) failed for uri=undefined.\");\r\n return null;\r\n }\r\n\r\n uri = uri.trim();\r\n\r\n if (!this.cachedConfig) {\r\n console.error(\"getUriMatch(uri) failed since cachedConfig is undefined.\");\r\n return null;\r\n }\r\n\r\n var parts = this.uriPattern.match(uri);\r\n if (!parts) {\r\n // Logging this case result in number of unnecessary logs when there is nothing wrong.\r\n return null;\r\n }\r\n\r\n parts.baseUri = parts._ ? parts._.trim().toLowerCase() : '';\r\n\r\n if (parts.resource)\r\n parts.resource = parts.resource.trim().toLowerCase();\r\n\r\n if (parts.child)\r\n parts.child = parts.child.trim().toLowerCase();\r\n\r\n if (parts.resource) {\r\n var baseMatches = Linq.From(this.cachedConfig.uriEnumerable.where((x) => {\r\n // No need to call toLowerCase(x.baseUri) since x.baseUri was converted to lower case\r\n // when the object is created.\r\n return (parts.baseUri && x.baseUri === parts.baseUri || !parts.baseUri);\r\n }).toArray());\r\n\r\n if (!baseMatches.Count()) {\r\n console.error('getUriMatch(uri) failed for uri=' + uri + '. Reason: mo matches found for baseUri=' + parts.baseUri + '.');\r\n return null;\r\n }\r\n\r\n if (parts.child) {\r\n var childMatch = baseMatches.FirstOrDefault((x: any) => {\r\n return x.resource && parts.child === x.resource;\r\n });\r\n\r\n if (childMatch)\r\n return childMatch;\r\n }\r\n\r\n var baseResourceMatch = baseMatches.FirstOrDefault((x: any) => {\r\n return (parts.resource === x.resource);\r\n });\r\n\r\n if (baseResourceMatch)\r\n return baseResourceMatch;\r\n\r\n console.error('getUriMatch(uri) failed for uri=' + uri + '. Reason: no resource exists in site.config file matching resource=' + parts.resource + '.');\r\n return null;\r\n }\r\n else {\r\n console.error('getUriMatch(uri) failed for uri=' + uri + '. Reason: the resource part of the uri is undefined.');\r\n return null;\r\n }\r\n };\r\n}\r\n\r\nlet SiteConfig = {\r\n name: \"SiteConfig\",\r\n factory: ['$q', '$injector', SiteConfigService]\r\n};\r\n\r\nexport { SiteConfig, ISiteConfigService };\r\nexport default SiteConfig;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/site-config.ts","import * as ng from 'angular';\r\nimport { ILogger } from './logger';\r\n\r\ninterface IException {\r\n catcher(message: string): Function;\r\n}\r\n\r\nlet ExceptionFactory: Function = function($q: ng.IQService, logger: ILogger): IException {\r\n\r\n return new ExceptionService($q, logger);\r\n\r\n //let service = {\r\n // catcher: catcher\r\n //};\r\n\r\n //return service;\r\n };\r\n\r\nExceptionFactory.$inject = ['$q', 'logger'];\r\n\r\nclass ExceptionService implements IException {\r\n\r\n constructor(private $q: ng.IQService, private logger: ILogger) {\r\n this.$q = $q;\r\n this.logger = logger;\r\n }\r\n\r\n public catcher(message: string): Function {\r\n return (e) => {\r\n var thrownDescription;\r\n var newMessage;\r\n if (e.data && e.data.description) {\r\n thrownDescription = '\\n' + e.data.description;\r\n newMessage = message + thrownDescription;\r\n }\r\n e.data.description = newMessage;\r\n this.logger.error(newMessage);\r\n return this.$q.reject(e);\r\n };\r\n }\r\n\r\n}\r\n\r\nlet Exception = {\r\n name: \"exception\",\r\n factory: ExceptionFactory\r\n};\r\n\r\nexport { Exception, IException }\r\nexport default Exception;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/exception.ts","import * as ng from 'angular';\r\n\r\ninterface ILogger {\r\n error(message: string, data?: any, title?: string): void;\r\n info(message: string, data?: any, title?: string): void;\r\n success(message: string, data?: any, title?: string): void;\r\n warning(message: string, data?: any, title?: string): void;\r\n}\r\n\r\nlet LoggerFactory: Function = function($log: ng.ILogService): ILogger {\r\n\r\n return new LoggerService($log);\r\n\r\n };\r\n\r\nLoggerFactory.$inject = ['$log'];\r\n\r\nclass LoggerService implements ILogger {\r\n\r\n constructor(private $log: ng.ILogService, private _showToasts: Boolean = true ) {\r\n this.$log = $log;\r\n this._showToasts = _showToasts; \r\n }\r\n\r\n public get showToasts(): Boolean {\r\n return this._showToasts; \r\n }\r\n\r\n public set showToasts(val: Boolean) {\r\n this._showToasts = val;\r\n }\r\n\r\n public error(message: string, data: any, title: string): void {\r\n //toastr.error(message, title);\r\n this.$log.error('Error: ' + message, data);\r\n }\r\n\r\n public info(message: string, data: any, title: string): void {\r\n // toastr.info(message, title);\r\n this.$log.info('Info: ' + message, data);\r\n }\r\n\r\n public success(message: string, data: any, title: string): void {\r\n //toastr.success(message, title);\r\n this.$log.info('Success: ' + message, data);\r\n }\r\n\r\n public warning(message: string, data: any, title: string): void {\r\n //toastr.warning(message, title);\r\n this.$log.warn('Warning: ' + message, data);\r\n }\r\n\r\n}\r\n\r\nlet Logger = {\r\n name: \"logger\",\r\n factory: LoggerFactory\r\n};\r\n\r\nexport { Logger, ILogger }\r\nexport default Logger;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/logger.ts","import * as ng from 'angular';\r\n\r\nlet SetScrollHeightDirectiveFactory: ng.Injectable = function ($window: ng.IWindowService) {\r\n return {\r\n restrict: 'A',\r\n link: (scope: ng.IScope, element: ng.IAugmentedJQuery, attributes: ng.IAttributes) => {\r\n\r\n let setScrollHeight = () => {\r\n let clientHeight = ($window.innerHeight\n || $window.document.documentElement.clientHeight\n || $window.document.body.clientHeight);\r\n\r\n element[0].style.height = (clientHeight - (attributes as any).offsetPixels).toString() + 'px';\r\n };\n\n // add scrollbar if content is larger than element height\n element[0].style.overflowY = 'auto';\n // on change to content in watchExpression, run setScrollHeight\n scope.$watch((attributes as any).watchExpression, setScrollHeight);\n // on resize/stretch of browser, run setScrollHeight\n ng.element($window).bind('resize', () => { setScrollHeight(); });\r\n }\r\n }\r\n};\r\n\r\nSetScrollHeightDirectiveFactory.$inject = ['$window'];\r\n\r\nexport let SetScrollHeight = {\r\n name: 'setScrollHeight',\r\n factory: SetScrollHeightDirectiveFactory\r\n};\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/set-scroll-height.ts","export { };\r\n\r\ndeclare global {\r\n interface Array {\r\n includes(searchElement: T): boolean;\r\n sum(prop: string): number;\r\n remove(item: T | Predicate): Array;\r\n insert(item: T, index?: number): Array;\r\n }\r\n\r\n interface String {\r\n startsWith(str: string): boolean;\r\n includes(): boolean;\r\n isEmptyGuid(): boolean\r\n }\r\n\r\n interface Object {\r\n newGuid(): String;\r\n }\r\n\r\n type Predicate = (item: T) => boolean;\r\n}\r\n\r\n/*\r\n IE Doesn't have a .startsWith either?\r\n */\r\nif (!String.prototype.startsWith) {\r\n String.prototype.startsWith = function (str: string) {\r\n 'use strict';\r\n return this.lastIndexOf(str, 0) === 0;\r\n };\r\n}\r\n\r\nif (!String.prototype.includes) {\r\n String.prototype.includes = function () {\r\n 'use strict';\r\n return String.prototype.indexOf.apply(this, arguments) !== -1;\r\n };\r\n}\r\n\r\nif (!Array.prototype.sum) {\r\n Array.prototype.sum = function (prop: string) {\r\n 'use strict';\r\n var total = 0;\r\n for (let i = 0, _len = this.length; i < _len; i++) {\r\n total += this[i][prop];\r\n }\r\n return total;\r\n };\r\n}\r\n\r\nif (!Array.prototype.remove) {\r\n Array.prototype.remove = function (itemOrFunc: Predicate | Object) {\r\n 'use strict';\r\n var arr = this;\r\n if (typeof itemOrFunc === 'function') {\r\n let func = itemOrFunc as Function;\r\n for (var i = arr.length; i--;) {\r\n if (func(arr[i])) {\r\n arr.splice(i, 1);\r\n }\r\n }\r\n } else {\r\n 'use strict';\r\n var arr = this;\r\n let item = itemOrFunc as Object;\r\n for (var i = arr.length; i--;) {\r\n if (arr[i] === item) {\r\n arr.splice(i, 1);\r\n }\r\n }\r\n return arr;\r\n }\r\n return arr;\r\n };\r\n}\r\n\r\n\r\nif (!Array.prototype.insert) {\r\n Array.prototype.insert = function (item: any, index?: number) {\r\n let pos = index || 0\r\n this.splice(pos, 0, item);\r\n return this;\r\n };\r\n}\r\n\r\nif (!Object.newGuid) {\r\n\r\n Object.newGuid = function generateGuid() {\r\n var result: string;\r\n let i, j: number;\r\n\r\n result = '';\r\n for (j = 0; j < 32; j++) {\r\n if (j == 8 || j == 12 || j == 16 || j == 20)\r\n result = result + '-';\r\n i = Math.floor(Math.random() * 16).toString(16).toUpperCase();\r\n result = result + i;\r\n }\r\n return result.toLowerCase();\r\n }\r\n\r\n\r\n if (!String.prototype.isEmptyGuid) {\r\n String.prototype.isEmptyGuid = function generateGuid() {\r\n var test = this;\r\n return '00000000-0000-0000-0000-000000000000' == test;\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/core/polyfills.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"HubUSA.ASM.WebNg/app/app.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/app.html\n// module id = 526\n// module chunks = 0","import * as ng from 'angular';\r\nimport refs from '../../../vendor-modules';\r\nimport UserControlsModule from '../../user-controls';\r\nimport { AccountRequest, IAccountRequestResource } from './data/account-request';\r\nimport { FrequentParkerAccountSummary, IFrequentParkerAccountSummaryResource } from './data/frequent-parker-account-summary';\r\nimport { AccountRequestServices, IAccountRequestService } from './services/account-request-service';\r\nimport { AccountAdminServices, IAccountAdminService } from './services/accounts-service';\r\nimport { FrequentParkerAccountSummaryServices, IFrequentParkerAccountSummaryService } from './services/frequent-parker-account-summary-service';\r\nimport { UserAdminServices, IUserAdminService } from './services/user-service';\r\nimport { AccountsGridComponent, IAccountsGridController } from './account/accounts-grid';\r\nimport { AdminNavBarComponent } from './user-controls/admin-nav-bar';\r\nimport { AccountDetailComponent, IAccountDetailController } from './account/account-detail';\r\nimport { AccountsComponent, IAccountsController } from './account/accounts';\r\nimport { AdminComponent, IAdminController } from './admin';\r\nimport { DashboardComponent, IDashboardController } from './dashboard/dashboard';\r\nimport { DashboardDetailsComponent, IDashboardDetailsController } from './dashboard/dashboard-details';\r\nimport { DashboardGridComponent, IDashboardGridController } from './dashboard/dashboard-grid';\r\nimport { DenyMessageDialogComponent, IDenyMessageDialogController} from './pending-approval/deny-message-dialog';\r\nimport { PendingApprovalComponent, IPendingApprovalController } from './pending-approval/pending-approval';\r\nimport { PendingApprovalDetailsComponent, IPendingApprovalDetailsController } from './pending-approval/pending-approval-details';\r\nimport { PendingApprovalGridComponent, IPendingApprovalGridController } from './pending-approval/pending-approval-grid';\r\nimport { ContentNavWidgetComponent, IContentNavWidgetController } from './setup/content-nav-widget';\r\nimport { SetUpComponent, ISetUpController } from './setup/setup';\r\nimport { FppSettingsComponent, IFppSettingsController } from './setup/fpp-settings';\r\nimport { FppWidgetComponent, IFppWidgetController } from './setup/fpp-widget';\r\nimport { LandingComponent, ILandingController } from './setup/landing';\r\nimport { TimespanFormat } from './setup/timespan-formatter';\r\nimport { UsersComponent, IUsersController } from './users/users';\r\nimport { UsersDetailComponent, IUsersDetailController } from './users/users-detail';\r\nimport { UsersGridComponent, IUsersGridController } from './users/users-grid';\r\nimport { ContentEditorComponent } from './content-editor';\r\n\r\nlet adminModule = ng.module(\"app.admin\", [\r\n refs.ngRouter,\r\n refs.ngMaterial,\r\n refs.ngMessages,\r\n refs.mdPickers,\r\n UserControlsModule.name\r\n]).factory(AccountRequest.name, AccountRequest.factory)\r\n .factory(FrequentParkerAccountSummary.name, FrequentParkerAccountSummary.factory)\r\n .service(AccountRequestServices.name, AccountRequestServices.factory)\r\n .service(AccountAdminServices.name, AccountAdminServices.factory)\r\n .service(FrequentParkerAccountSummaryServices.name, FrequentParkerAccountSummaryServices.factory)\r\n .service(UserAdminServices.name, UserAdminServices.factory)\r\n .component(AccountsGridComponent.name, AccountsGridComponent.registration)\r\n .component(AdminNavBarComponent.name, AdminNavBarComponent.registration)\r\n .component(AccountDetailComponent.name, AccountDetailComponent.registration)\r\n .component(AccountsComponent.name, AccountsComponent.registration)\r\n .component(AdminComponent.name, AdminComponent.registration)\r\n .component(DashboardComponent.name, DashboardComponent.registration)\r\n .component(DashboardDetailsComponent.name, DashboardDetailsComponent.registration)\r\n .component(DashboardGridComponent.name, DashboardGridComponent.registration)\r\n .component(DenyMessageDialogComponent.name, DenyMessageDialogComponent.registration)\r\n .component(PendingApprovalComponent.name, PendingApprovalComponent.registration)\r\n .component(PendingApprovalDetailsComponent.name, PendingApprovalDetailsComponent.registration)\r\n .component(PendingApprovalGridComponent.name, PendingApprovalGridComponent.registration)\r\n .component(SetUpComponent.name, SetUpComponent.registration)\r\n .component(FppSettingsComponent.name, FppSettingsComponent.registration)\r\n .component(LandingComponent.name, LandingComponent.registration)\r\n .component(ContentNavWidgetComponent.name, ContentNavWidgetComponent.registration)\r\n .component(FppWidgetComponent.name, FppWidgetComponent.registration)\r\n .directive(TimespanFormat.name, TimespanFormat.factory)\r\n .component(ContentEditorComponent.name, ContentEditorComponent.registration)\r\n .component(UsersComponent.name, UsersComponent.registration)\r\n .component(UsersDetailComponent.name, UsersDetailComponent.registration)\r\n .component(UsersGridComponent.name, UsersGridComponent.registration);\r\n\r\nexport {\r\n IAccountRequestResource, IFrequentParkerAccountSummaryResource,\r\n IAccountRequestService, IAccountAdminService, IFrequentParkerAccountSummaryService, IUserAdminService,\r\n IAccountsGridController,\r\n IAdminController,\r\n IAccountDetailController, IAccountsController,\r\n IDashboardController, IDashboardDetailsController, IDashboardGridController,\r\n IDenyMessageDialogController,\r\n IPendingApprovalController, IPendingApprovalDetailsController, IPendingApprovalGridController,\r\n ISetUpController, IFppSettingsController, ILandingController,\r\n IFppWidgetController, IContentNavWidgetController,\r\n IUsersController, IUsersDetailController, IUsersGridController,\r\n adminModule\r\n};\r\nexport default adminModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/index.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { IAuthService, IProfileSecurityResource, IUserResource } from './';\r\nimport { ISiteConfigService } from '../../core';\r\nlet template = require('./forgot-password.html');\r\n\r\nclass ForgotPasswordComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('forgotPassword', {\r\n controller: ForgotPasswordController,\r\n templateUrl: template,\r\n controllerAs: 'forgotPassword',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IForgotPasswordController {\r\n activate(): void;\r\n onGetSecurityQuestionClick(): void;\r\n handleValidationError(formName, fieldName, fieldKey, errors): void;\r\n onGetPasswordLinkClick(): void;\r\n}\r\n\r\nclass ForgotPasswordController implements IForgotPasswordController {\r\n private static $inject: Array = ['$scope', '$window', '$rootRouter', 'User', 'SiteConfig', 'Auth', 'ProfileSecurity'];\r\n\r\n private linkRequest = {\r\n question: 'Unknown question?',\r\n baseUri: '',\r\n challengeSecret: '' // user's answer to their security question\r\n };\r\n\r\n private questionRequest: any = {};\r\n private showEnterEmailStep: Boolean = true;\r\n private showAskQuestionStep: Boolean = false;\r\n private showSentStep: Boolean = false;\r\n private errorMessages: any = {};\r\n private failedPost: Boolean = false;\r\n private emailForm: ng.IFormController;\r\n private answerForm: ng.IFormController;\r\n\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $window: ng.IWindowService,\r\n private $router: ng.Router,\r\n private User: IUserResource,\r\n private SiteConfig: ISiteConfigService,\r\n private Auth: IAuthService,\r\n private ProfileSecurity: IProfileSecurityResource) {\r\n\r\n console.log('ForgotPasswordController loaded');\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n public activate(): void {\r\n this.SiteConfig.getConfigAsync().then((config) => {\r\n this.linkRequest.baseUri = config.baseUri + \"/#/reset-password\";\r\n });\r\n console.log('ForgotPasswordController activated');\r\n }\r\n\r\n public onGetSecurityQuestionClick(): void {\r\n var form = this.emailForm;\r\n var hasServerError = false;\r\n if (this.errorMessages.modelState) {\r\n hasServerError = Linq.From(Object.keys(this.errorMessages.modelState))\r\n .Any((x) => {\r\n return (form as any).email.$error[x] !== undefined;\r\n });\r\n }\r\n\r\n\r\n\r\n if (!form.$invalid || (form.$invalid && hasServerError)) {\r\n\r\n this.ProfileSecurity.get({ username: this.questionRequest.email }).$promise\r\n .then((response: any) => {\r\n if (response && response.questionText) {\r\n this.linkRequest.question = response.questionText;\r\n this.showAskQuestionStep = true;\r\n this.showEnterEmailStep = false;\r\n this.failedPost = false;\r\n (form as any).email.$error = {};\r\n }\r\n },\r\n (error) => {\r\n if (error.status === 404) {\r\n this.failedPost = true;\r\n this.errorMessages = error.data;\r\n this.handleValidationError(\"emailForm\", \"email\", \"Email\", this.errorMessages);\r\n }\r\n else {\r\n console.log(\"Unexpected error: \" + error.status.toString());\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.failedPost = true;\r\n }\r\n }\r\n\r\n public handleValidationError(formName, fieldName, fieldKey, errors): void {\r\n var form = this[formName];\r\n var field = form[fieldName];\r\n field.$error = {};\r\n\r\n Linq.From(errors)\r\n .Where((x: any) => { return x.memberNames.indexOf(fieldKey) >= 0; }).ToArray()\r\n .forEach((x: any) => {\r\n field.$error[x.errorType] = !x.success;\r\n console.log(x.errorMessage);\r\n });\r\n }\r\n\r\n public onGetPasswordLinkClick(): void {\r\n\r\n var form = this.answerForm;\r\n var hasServerError = false;\r\n if (this.errorMessages.modelState) {\r\n hasServerError = Linq.From(Object.keys(this.errorMessages.modelState))\r\n .Any((x) => {\r\n\r\n return (form as any).challengeSecret.$error[x] !== undefined;\r\n });\r\n }\r\n\r\n\r\n if (!form.$invalid || (form.$invalid && hasServerError)) {\r\n var data = {\r\n baseUri: this.linkRequest.baseUri,\r\n challengeSecret: this.linkRequest.challengeSecret,\r\n username: this.questionRequest.email\r\n\r\n };\r\n\r\n this.User.forgotPasswordRequestLink(data).$promise\r\n .then((response) => {\r\n if (response) {\r\n this.showAskQuestionStep = false;\r\n this.showSentStep = true;\r\n (form as any).challengeSecret.$error = {};\r\n setTimeout(() => {\r\n this.$router.navigate(['Home']);\r\n }, 15000);\r\n }\r\n\r\n },\r\n (error) => {\r\n if (error.status === 400) {\r\n this.failedPost = true;\r\n this.errorMessages = error.data;\r\n this.handleValidationError(\"answerForm\", \"challengeSecret\", \"ChallengeSecret\", this.errorMessages);\r\n }\r\n else {\r\n console.log(\"Unexpected error: \" + error.status.toString());\r\n }\r\n });\r\n }\r\n else {\r\n this.failedPost = true;\r\n }\r\n }\r\n}\r\n\r\nlet fgtpwdComponent = new ForgotPasswordComponent();\r\nexport default fgtpwdComponent;\r\nexport { fgtpwdComponent as ForgotPasswordComponent, IForgotPasswordController, ForgotPasswordController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/forgot-password.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
Forgot your password?
\\n
\\n\\n\\n
\\n
You did not enter your email address
\\n
Your email address is invalid.
\\n
\\n
{{ error.errorMessage }}
\\n
\\n
\\n
\\n
A new password will be sent to this email address.
\\n Next\\n
\\n
\\n\\n\\n\\n
\\n
This field is required.
\\n
\\n
{{ error.errorMessage }}
\\n
\\n
\\n
\\n
A new password will be sent to your email address.
\\nGet Password\\n
\\n
\\n
Reset Password Link Successfully Sent!
\\n
\\nAn email with a password reset link has been sent to your email address. Follow the directions in the email to complete changing your password.\\n
\\n
\\nReturn to Home \\n
\\n
\";\nvar id1=\"components/security/forgot-password.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/forgot-password.html\n// module id = 529\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration, ISiteConfigService } from '../../core';\r\nimport { ISessionService } from '../../services';\r\nimport { IUserResource } from './';\r\nimport { Dto } from '../../data';\r\nlet template = require('./reset-password.html');\r\n\r\nclass ResetPasswordComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('resetPassword', {\r\n controller: ResetPasswordController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\ninterface IResetPasswordController {\r\n activate(): void;\r\n onSave(): ng.IPromise;\r\n}\r\n\r\nclass ResetPasswordController implements IResetPasswordController {\r\n private static $inject: Array = ['$scope', '$rootRouter', '$location', '$timeout', 'User', 'Session', 'SiteConfig'];\r\n\r\n private request: any = {};\r\n private isAskQuestionStep: Boolean = false;\r\n private password: string = '';\r\n private token = (this.$location as any).$$search.token;\r\n private userId = (this.$location as any).$$search.uid;\r\n private successful: Boolean = false;\r\n private showError: Boolean = false;\r\n private errorMessage: string = '';\r\n private confirmPassword: string = '';\r\n private resetPasswordForm: ng.IFormController;\r\n private securityQuestionForm: ng.IFormController;\r\n private showQuestionCard: Boolean = false;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $router: ng.Router,\r\n private $location: ng.ILocationService,\r\n private $timeout: ng.ITimeoutService,\r\n private User: IUserResource,\r\n private Session: ISessionService,\r\n private SiteConfig: ISiteConfigService) {\r\n\r\n console.log('ResetPasswordController loaded');\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n public activate(): void {\r\n\r\n console.log('ResetPasswordController activated');\r\n }\r\n\r\n // private members\r\n public onSave(): ng.IPromise {\r\n\r\n if (this.resetPasswordForm.$valid) {\r\n\r\n var message = {\r\n password: this.password,\r\n resetToken: this.token\r\n } as Dto.IPasswordResetRequest;\r\n\r\n return this.User.resetPassword({ id: this.userId }, message).$promise\r\n .then((response) => {\r\n let scope = this.SiteConfig.getClientByType(\"User\").clientId;\r\n\r\n this.Session.createSession({\r\n scope: \"HubUSA.ASM.Api\",\r\n username: response.username,\r\n password: this.password\r\n }).then((context) => {\r\n\r\n this.showQuestionCard = !context.profile.securityQuestion;\r\n if (!this.showQuestionCard) {\r\n this.onQuestionSaved();\r\n }\r\n });\r\n\r\n }, (error) => {\r\n if (error.status === 500)\r\n this.errorMessage = 'Internal Server Error. Please try again later.';\r\n else\r\n this.errorMessage = 'Reset password link is invalid or has expired. Please use the forgot password button\\nto request a new reset password link be sent by email or return to the main page.';\r\n this.showError = true;\r\n })\r\n .catch((e) => {\r\n //js exception caught\r\n console.log(\"Failed save of reset failed\");\r\n\r\n });\r\n }\r\n }\r\n\r\n //TODO: Testing purposes only, remove when completed.\r\n private onQuestionSaved(): void {\r\n this.successful = true;\r\n this.showQuestionCard = false;\r\n this.$timeout(() => {\r\n if (this.Session.isAdmin()) {\r\n this.$router.navigate(['Admin']);\r\n }\r\n else {\r\n this.$router.navigate(['Overview']);\r\n }\r\n\r\n },10000);\r\n \r\n }\r\n}\r\n\r\nlet rstpwdComponent = new ResetPasswordComponent();\r\nexport default rstpwdComponent;\r\nexport { rstpwdComponent as ResetPasswordComponent, IResetPasswordController, ResetPasswordController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/reset-password.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
Reset your password?
\\n
\\n
\\n\\n Save\\n
\\n
\\n
\\nPassword has been reset. The browser will automatically be redirected to the sign in page.\\n
\\n
\\n
\\n{{vm.errorMessage}}\\n
\\n
\\nForgot Password\\n
\\nReturn to Home\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\";\nvar id1=\"components/security/reset-password.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/reset-password.html\n// module id = 531\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ISessionService } from './../../services';\r\nlet template = require('./security.html');\r\n\r\nclass SecurityComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('security', {\r\n controller: SecurityController,\r\n templateUrl: template,\r\n controllerAs: 'security',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ISecurityController {\r\n onSignInSuccessful(): void;\r\n}\r\n\r\nclass SecurityController implements ISecurityController {\r\n private static $inject: Array = ['Session'];\r\n private showLogin: Boolean = true;\r\n\r\n constructor(private Session: ISessionService) {\r\n console.log('SecurityController loaded');\r\n console.log('SecurityController activated');\r\n }\r\n\r\n public $onInit(): void {\r\n this.Session.isAdmin();\r\n }\r\n\r\n public onSignInSuccessful(): void {\r\n this.showLogin = false;\r\n }\r\n}\r\n\r\nlet secComponent = new SecurityComponent();\r\nexport default secComponent;\r\nexport { secComponent as SecurityComponent, ISecurityController, SecurityController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/security.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n
\\n
\\n
\\n\";\nvar id1=\"components/security/security.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/security.html\n// module id = 533\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ISessionService } from './../../services';\r\nlet template = require('./sign-in.html');\r\n\r\nclass SignInComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('signIn', {\r\n controller: SignInController,\r\n templateUrl: template,\r\n controllerAs: 'signIn',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ISignInController {\r\n activate(): void;\r\n}\r\n\r\nclass SignInController implements ISignInController {\r\n private static $inject: Array = ['Session'];\r\n\r\n private showLogin: Boolean = true;\r\n\r\n constructor(private Session: ISessionService) {\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n public activate(): void {\r\n this.Session.reset();\r\n }\r\n\r\n}\r\n\r\nlet sgninComponent = new SignInComponent();\r\nexport default sgninComponent;\r\nexport { sgninComponent as SignInComponent, ISignInController, SignInController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/sign-in.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
\\n\";\nvar id1=\"components/security/sign-in.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/sign-in.html\n// module id = 535\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IProfileSecurityResource extends ng.resource.IResourceClass {\r\n \r\n}\r\n\r\nlet ProfileSecurityResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IProfileSecurityResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"security\"),\r\n { id: '@id' } as any,\r\n new ProfileSecurityResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nProfileSecurityResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ProfileSecurityResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public get: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n params: {\r\n username: '@username'\r\n }\r\n };\r\n\r\n}\r\n\r\nlet ProfileSecurity = {\r\n name: \"ProfileSecurity\",\r\n factory: ProfileSecurityResourceFactory\r\n};\r\n\r\nexport { ProfileSecurity, IProfileSecurityResource }\r\nexport default ProfileSecurity;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/data/profile-security.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface ISecurityQuestionResource extends ng.resource.IResourceClass {\r\n get(): any; //TODO: this needs to be refactored to query method\r\n}\r\n\r\nlet SecurityQuestionResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): ISecurityQuestionResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"securityQuestions\"),\r\n { } as any,\r\n new SecurityQuestionResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nSecurityQuestionResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass SecurityQuestionResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public get: ng.resource.IActionDescriptor = {\r\n method: 'Get',\r\n isArray: true\r\n\r\n };\r\n\r\n}\r\n\r\nlet SecurityQuestion = {\r\n name: \"SecurityQuestion\",\r\n factory: SecurityQuestionResourceFactory\r\n};\r\n\r\nexport { SecurityQuestion, ISecurityQuestionResource }\r\nexport default SecurityQuestion;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/data/security-question.ts","import * as ng from 'angular';\r\nimport * as Dto from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IUserResource extends ng.resource.IResourceClass {\r\n resetPassword(params: Object, passwordResetRequest: Dto.IPasswordResetRequest): Dto.IUser; //TODO: Update interfaces and parameters\r\n forgotPasswordRequestLink(params: Object): Dto.IUser;\r\n userExists(params: Object): Dto.IUser; \r\n changePassword(params:Object, request: Dto.IChangePasswordRequest): Dto.IUser;\r\n changeAnswer(params: Object, answer: Dto.ISecurityQuestionAnswer): Dto.IUser;\r\n search(user: Dto.IUserCriteria): ng.resource.IResourceArray;\r\n sendInvite(params: any, resetRequest?: Dto.IUserPasswordResetRequest): ng.resource.IResource;\r\n unlockUser(params: any): ng.resource.IResource;\r\n}\r\n\r\nlet UserResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IUserResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"users\"),\r\n { id: '@id' } as any,\r\n new UserResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nUserResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass UserResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public resetPassword: ng.resource.IActionDescriptor = {\r\n method: 'POST', \r\n params: {\r\n reset: true\r\n }\r\n };\r\n\r\n public forgotPasswordRequestLink: ng.resource.IActionDescriptor = {\r\n method: 'POST', \r\n params: {\r\n sendReset: true\r\n }\r\n };\r\n\r\n public userExists: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n \r\n params: {\r\n exists: true,\r\n username: '@username'\r\n },\r\n transformResponse: (response, headerGetter) => {\r\n return { exists: response }\r\n }\r\n };\r\n\r\n public changePassword: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"passwords\"),\r\n method: 'POST',\r\n params: {\r\n change: true\r\n }\r\n };\r\n\r\n public changeAnswer: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"passwords\"),\r\n method: 'POST',\r\n params: {\r\n answer: true\r\n }\r\n };\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n url: this.SiteConfig.getResourceUri(\"usersBulk\"),\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public sendInvite: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n url: this.SiteConfig.getResourceUri(\"passwords\"),\r\n params: {\r\n delegateSendReset: true\r\n }\r\n };\r\n\r\n public unlockUser: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"passwords\") + \"/UnlockUser\",\r\n method: 'POST'\r\n };\r\n\r\n}\r\n\r\nlet User = {\r\n name: \"User\",\r\n factory: UserResourceFactory\r\n};\r\n\r\nexport { User, IUserResource }\r\nexport default User;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/data/user.ts","import * as ng from 'angular';\r\nimport { ISiteConfigService } from '../../../core';\r\nimport { IToken } from '../data/interfaces';\r\n//import { ISessionService } from '../../../services';\r\n\r\nlet AuthServiceFactory: Function = function ($window: ng.IWindowService,\r\n $q: ng.IQService, $httpParamSerializer: ng.IHttpParamSerializer,\r\n SiteConfig: ISiteConfigService): IAuthService {\r\n return new AuthService($window, $q, $httpParamSerializer, SiteConfig);\r\n}\r\n\r\nAuthServiceFactory.$inject = ['$window', '$q', '$httpParamSerializer', 'SiteConfig'];\r\n\r\nlet Auth = {\r\n name: \"Auth\",\r\n factory: AuthServiceFactory\r\n};\r\n\r\ninterface IAuthService {\r\n initTokens(): void;\r\n commitTokens(tokens): void;\r\n clearTokens(): void;\r\n storeTokens(tokenKey, token): void;\r\n getToken(tokenKey): IToken;\r\n getTokenForUrlAsync(uri): ng.IPromise;\r\n getUserTokenAsync(clientId, scope, username, password): ng.IPromise;\r\n getClientTokenAsync(clientId, scope): ng.IPromise;\r\n getUserRefreshTokenAsync(clientId): void;\r\n getUserClaims(token): Map;\r\n}\r\n\r\nexport class AuthService implements IAuthService {\r\n\r\n private initInjector = ng.injector(['ng']);\r\n private $http = this.initInjector.get('$http');\r\n private tokens = {};\r\n private sessionKey = \"tokens\";\r\n\r\n\r\n\r\n constructor(private $window: ng.IWindowService,\r\n private $q: ng.IQService,\r\n private $httpParamSerializer: ng.IHttpParamSerializer,\r\n private SiteConfig: ISiteConfigService) {\r\n\r\n this.initTokens();\r\n\r\n }\r\n\r\n public initTokens(): void {\r\n var tokenStr = this.$window.sessionStorage.getItem(this.sessionKey);\r\n if (tokenStr && tokenStr.length > 0) {\r\n this.tokens = JSON.parse(tokenStr);\r\n }\r\n else {\r\n this.tokens = {};\r\n }\r\n }\r\n\r\n public commitTokens(tokens): void {\r\n setTimeout(() => {\r\n this.$window.sessionStorage.setItem(this.sessionKey, JSON.stringify(tokens));\r\n }, 1);\r\n }\r\n\r\n public clearTokens(): void {\r\n this.tokens = {};\r\n this.$window.sessionStorage.removeItem(this.sessionKey);\r\n }\r\n\r\n public storeTokens(tokenKey, token): void {\r\n this.tokens[tokenKey] = token;\r\n this.commitTokens(this.tokens);\r\n }\r\n\r\n public getToken(tokenKey): IToken {\r\n if (this.tokens) {\r\n return this.tokens[tokenKey] || null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public getTokenForUrlAsync(uri): ng.IPromise {\r\n \r\n return this.SiteConfig.getConfigAsync()\r\n .then(() => {\r\n\r\n var match = this.SiteConfig.getUriMatch(uri);\r\n if (match) { \r\n var client = this.SiteConfig.getClientById(match.clientId);\r\n if (client) {\r\n var tokenKey = client.id + \":\" + match.scope;\r\n var existingToken = this.getToken(tokenKey);\r\n if (existingToken) {\r\n var oneMinuteMs = 1000 * 60;\r\n var currentDate = new Date().getTime();\r\n var retrievedAt = new Date(existingToken.retrievedAt).getTime();\r\n var elapsed = Math.round((currentDate - retrievedAt) / oneMinuteMs);\r\n\r\n if (1 <= elapsed && (2 >= elapsed)) {\r\n // elapsed token retrieved time is within acceptable timeframe of expring. \r\n // renew to avoid theme retrieval from getting 401.\r\n return this.getClientTokenAsync(client.id, match.scope)\r\n .then((token) => {\r\n return this.$q.resolve({ tokenRequired: true, token: token.accessToken, expiresIn: token.expiresIn, retrievedAt: token.retrievedAt });\r\n });\r\n }\r\n else {\r\n return this.$q.resolve({ tokenRequired: true, token: existingToken.accessToken, expiresIn: existingToken.expiresIn, retrievedAt: existingToken.retrievedAt });\r\n }\r\n\r\n //return this.$q.resolve({ tokenRequired: true, token: existingToken.accessToken, expiresIn: existingToken.expiresIn, retrievedAt: existingToken.retrievedAt });\r\n\r\n\r\n }\r\n else if (client.type === \"app\") {\r\n return this.getClientTokenAsync(client.id, match.scope)\r\n .then((token) => {\r\n return this.$q.resolve({ tokenRequired: true, token: token.accessToken, expiresIn: token.expiresIn, retrievedAt: token.retrievedAt });\r\n });\r\n }\r\n else {\r\n return this.$q.resolve({ tokenRequired: true });\r\n }\r\n }\r\n }\r\n else {\r\n return this.$q.resolve({ tokenRequired: false });\r\n }\r\n });\r\n }\r\n\r\n public getUserTokenAsync(clientId, scope, username, password): ng.IPromise {\r\n return this.SiteConfig.getConfigAsync()\r\n .then(() => {\r\n return this.$http({\r\n method: 'post',\r\n url: this.SiteConfig.getResourceUri(\"token\"),\r\n data: this.$httpParamSerializer({\r\n username: username,\r\n password: password,\r\n grant_type: 'password',\r\n scope: scope\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Authorization': 'Basic ' + this.SiteConfig.getClientAuthCode(clientId)\r\n }\r\n }).then((response: any) => {\r\n let data = response.data;\r\n let tokenKey = clientId + \":\" + scope;\r\n let token = this.deserializeToken(tokenKey, data.access_token);\r\n this.storeTokens(tokenKey, token);\r\n return this.$q.resolve(token);\r\n\r\n }).catch((e) => {\r\n //let status = e.status;\r\n if (e.status === 400) {\r\n return this.$q.reject({ isBadCredentials: true });\r\n } else {\r\n console.log('Login error: ' + status);\r\n return this.$q.reject({ error: 'Login error: ' + status });\r\n }\r\n });\r\n });\r\n }\r\n\r\n public getClientTokenAsync(clientId, scope): ng.IPromise {\r\n \r\n return this.SiteConfig.getConfigAsync()\r\n .then(() => {\r\n\r\n return this.$http({\r\n method: 'post',\r\n url: this.SiteConfig.getResourceUri(\"token\"),\r\n data: this.$httpParamSerializer({\r\n grant_type: 'client_credentials',\r\n scope: scope\r\n }),\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n 'Authorization': 'Basic ' + this.SiteConfig.getClientAuthCode(clientId)\r\n }\r\n }).then((response) => {\r\n let data = response.data as any;\r\n var tokenKey = clientId + \":\" + scope;\r\n let token = {\r\n accessToken: data.access_token,\r\n expiresIn: data.expires_in,\r\n retrievedAt: new Date(),\r\n key: clientId + \":\" + scope,\r\n tokenType: \"Client\"\r\n } as IToken;\r\n this.storeTokens(tokenKey, token);\r\n return this.$q.resolve(token);\r\n }).catch((e) => {\r\n if (e.status === 400) {\r\n return this.$q.reject({ isBadCredentials: true });\r\n } else {\r\n console.log('Client Credentials Error: ' + e.status);\r\n return this.$q.reject({ error: 'Client Credential error: ' + e.status }); \r\n }\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n public getUserRefreshTokenAsync(clientId): void {\r\n\r\n }\r\n\r\n private deserializeToken(tokenKey: string, accessToken?: string): IToken {\r\n let token = {\r\n key: tokenKey,\r\n accessToken: accessToken,\r\n tokenType: 'User'\r\n } as IToken;\r\n\r\n let tokenParts = accessToken.split(\".\");\r\n if (tokenParts.length > 0) {\r\n token.issuer = JSON.parse(atob(tokenParts[0]));\r\n }\r\n if (tokenParts.length > 1) {\r\n token.claims = JSON.parse(atob(tokenParts[1]));\r\n }\r\n\r\n if (tokenParts.length > 2) {\r\n token.md5 = tokenParts[2];\r\n }\r\n\r\n return token;\r\n }\r\n\r\n public getUserClaims(token): Map {\r\n let urArr = token.split(\".\");\r\n if (urArr.length > 1) {\r\n return JSON.parse(atob(urArr[1]));\r\n }\r\n throw \"Token unparsable\";\r\n\r\n }\r\n}\r\n\r\nexport { Auth, IAuthService };\r\nexport default Auth;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/services/authorization.ts","import { AsEnumerable as Enumerable } from 'linq-es5';\r\nimport { ISiteConfigService } from '../../../core/';\r\nimport { IAuthService } from '../services/authorization';\r\nimport { IToastMessageService } from '../../../services';\r\n\r\nlet AuthInterceptorFactory: Function = function AuthenticationInterceptor($rootRouter: ng.Router,\r\n $q: ng.IQService,\r\n $window: ng.IWindowService,\r\n $location: ng.ILocationService,\r\n $injector: ng.auto.IInjectorService) {\r\n\r\n return {\r\n // Add authorization token to headers\r\n request: function (httpConfig) {\r\n\r\n httpConfig.headers = httpConfig.headers || {};\r\n var configSvc = $injector.get(\"SiteConfig\") as ISiteConfigService;\r\n var auth = $injector.get(\"Auth\") as IAuthService;\r\n return configSvc.getConfigAsync()\r\n .then((config) => {\r\n return auth.getTokenForUrlAsync(httpConfig.url)\r\n .then((result) => {\r\n if (result.token) {\r\n httpConfig.headers.Authorization = 'Bearer ' + result.token;\r\n return $q.resolve(httpConfig);\r\n }\r\n else if (!result.tokenRequired) {\r\n return $q.resolve(httpConfig);\r\n }\r\n else {\r\n httpConfig.timeout = $q.resolve(httpConfig);\r\n return httpConfig.timeout;\r\n }\r\n });\r\n });\r\n },\r\n\r\n // Intercept 401s and redirect you to login\r\n responseError: function (response) {\r\n \r\n let configSvc = $injector.get(\"SiteConfig\") as ISiteConfigService;\r\n var toastMessageFactory = $injector.get(\"toastMessageFactory\") as IToastMessageService;\r\n var auth = $injector.get(\"Auth\") as IAuthService;\r\n return configSvc.getConfigAsync()\r\n .then( (config) => {\r\n var currentRoute = $window.location.hash.toLowerCase();\r\n\r\n var publicRoutes = Enumerable(config.publicRoutes);\r\n //status is of -1 occurs when the request fails before it leaves \r\n //the browser, malformed header usual case, e.g.missing auth token for example.\r\n if (response.status === 401 || response.status === -1) {\r\n var auth = $injector.get(\"Auth\") as IAuthService;\r\n auth.clearTokens();\r\n if (!publicRoutes.Any( (x) => { return currentRoute.startsWith(x); })) {\r\n console.log('AsmController redirecting to SignIn - response.status: ' + response.status);\r\n $rootRouter.navigate(['SignIn']);\r\n }\r\n else {\r\n this.$location.reload();\r\n }\r\n \r\n return $q.reject(response);\r\n }\r\n else {\r\n\r\n if (response && response.data && response.data.modelState) {\r\n toastMessageFactory.modelStateErrors(response.data.modelState);\r\n }\r\n else if (response.status >= 500 && response.status <= 599) {\r\n toastMessageFactory.showServerError();\r\n }\r\n\r\n return $q.reject(response);\r\n }\r\n\r\n });\r\n }\r\n };\r\n}\r\n\r\nlet Interceptor = {\r\n name: \"authInterceptor\",\r\n factory: ['$rootRouter', '$q', '$window', '$location', '$injector', AuthInterceptorFactory]\r\n};\r\n\r\nexport default Interceptor;\r\nexport { Interceptor }\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/services/interceptor.ts","import * as ng from 'angular';\r\n\r\nlet PasswordStrengthServiceFactory: Function = () => {\r\n return new PasswordStrengthService();\r\n};\r\n\r\nlet PasswordStrength = {\r\n name: \"PasswordStrength\",\r\n factory: PasswordStrengthServiceFactory\r\n};\r\n\r\ninterface IPasswordStrengthService {\r\n measureStrength(p): number;\r\n}\r\n\r\nenum ConsecutiveModeEnum {\r\n None = 0,\r\n UppercaseLetter = 1,\r\n LowercaseLetter = 2,\r\n Digit = 3\r\n};\r\n\r\nexport class PasswordStrengthService implements IPasswordStrengthService {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n //Note: The algorithm here needs to be kept in sync with the algorithm in PaswordAdvisor.cs\r\n //The basis of this algorithm and further reading can be found in that file.\r\n //If changes need to be made here, they MUST be incorporated into PaswordAdvisor.cs as well.\r\n //This implementation may not be the most correct \"typescript\" way to do this,\r\n //but it is intentionally done this way to make it mirror the server-side implentation as much as possible to make maintenance easier\r\n public measureStrength(p:string): number {\r\n const SequentialLetters: string = \"abcdefghijklmnopqrstuvwxyz\";\r\n const UppercaseLetters: string = SequentialLetters.toUpperCase();\r\n const SequentialDigits: string = \"01234567890\";\r\n const SequentialCharacterThreshold: number = 3;\r\n\r\n let stringReverse = function (str: string): string {\r\n for (var i = str.length - 1, out = ''; i >= 0; out += str[i--]) { }\r\n return out;\r\n };\r\n \r\n let isOneChar = function (str: string): boolean { return str.length == 1;};\r\n\r\n let isDigit = function (char: string): boolean {\r\n if(!isOneChar(char))\r\n return false;\r\n\r\n return SequentialDigits.includes(char);\r\n };\r\n\r\n let isLower = function (char: string): boolean {\r\n if(!isOneChar(char))\r\n return false;\r\n\r\n return SequentialLetters.includes(char);\r\n };\r\n\r\n let isUpper = function (char: string): boolean {\r\n if(!isOneChar(char))\r\n return false;\r\n\r\n return UppercaseLetters.includes(char);\r\n };\r\n\r\n let isSymbol = function (char: string): boolean {\r\n //this isn't strictly necessary given the calls to the other functions, but this makes the function behavior more conistent \r\n //with the other isX functions defined above\r\n if(!isOneChar(char))\r\n return false;\r\n\r\n return !(isDigit(char) || isLower(char) || isUpper(char))\r\n };\r\n\r\n let strength: number = 0;\r\n\r\n if (p) {\r\n let uniqueCharacters = new Set();\r\n let uppercaseLetterCount: number = 0;\r\n let lowercaseLetterCount: number = 0;\r\n let digitCount: number = 0;\r\n let symbolCount: number = 0;\r\n let middleDigitSymbolCount: number = 0;\r\n let consecutiveMode: ConsecutiveModeEnum = ConsecutiveModeEnum.None;\r\n let consecutiveUppercaseLetterCount: number = 0;\r\n let consecutiveLowercaseLetterCount: number = 0;\r\n let consecutiveDigitCount: number = 0;\r\n let repeatedCharacterPenalty: number = 0.0;\r\n let repeatedCharactersCount: number = 0;\r\n let sequentialDigitStringsCount: number = 0;\r\n let sequentialAlphaStringsCount: number = 0;\r\n\r\n for (let i : number = 0; i < p.length; i++) {\r\n uniqueCharacters.add(p[i]);\r\n }\r\n \r\n let uniqueCharactersCount: number = uniqueCharacters.size;\r\n\r\n for (let index : number = 0; index < p.length; index++) {\r\n let character: string = p[index];\r\n let isRepeatedCharacter: boolean = false;\r\n\r\n // Count digits\r\n if (isDigit(character))\r\n {\r\n digitCount++;\r\n\r\n if (consecutiveMode == ConsecutiveModeEnum.Digit)\r\n consecutiveDigitCount++;\r\n consecutiveMode = ConsecutiveModeEnum.Digit;\r\n\r\n //If not the first or last character, then it's considered a \"middle\" character by the algorithm\r\n if (index > 0 && index < p.length - 1)\r\n middleDigitSymbolCount++;\r\n }\r\n\r\n // Count uppercase characters\r\n if (isUpper(character))\r\n {\r\n uppercaseLetterCount++;\r\n if (consecutiveMode == ConsecutiveModeEnum.UppercaseLetter)\r\n consecutiveUppercaseLetterCount++;\r\n consecutiveMode = ConsecutiveModeEnum.UppercaseLetter;\r\n }\r\n\r\n // Count lowercase characters\r\n if (isLower(character))\r\n {\r\n lowercaseLetterCount++;\r\n if (consecutiveMode == ConsecutiveModeEnum.LowercaseLetter)\r\n consecutiveLowercaseLetterCount++;\r\n consecutiveMode = ConsecutiveModeEnum.LowercaseLetter;\r\n }\r\n\r\n // Count symbols\r\n if (isSymbol(character))\r\n {\r\n symbolCount++;\r\n consecutiveMode = ConsecutiveModeEnum.None;\r\n\r\n //If not the first or last character, then it's considered a \"middle\" character by the algorithm\r\n if (index > 0 && index < p.length - 1)\r\n middleDigitSymbolCount++;\r\n }\r\n\r\n for (var repeatIndex = 0; repeatIndex < p.length; repeatIndex++)\r\n {\r\n if (p[index] == p[repeatIndex] && index != repeatIndex)\r\n {\r\n isRepeatedCharacter = true;\r\n //repeated characters that are further away from each other in the password should provide less of a penalty than ones which are closer to each other in the password\r\n repeatedCharacterPenalty += Math.abs(p.length / (index - repeatIndex));\r\n }\r\n }\r\n\r\n if (isRepeatedCharacter)\r\n {\r\n repeatedCharactersCount++;\r\n //In the event that there are unique characters in the password, then decrease the repeated character penalty\r\n //This means that a password containing the string \"food\" would incur less of a repeated character penalty than the string \"oooo\".\r\n //NOTE: NRM I changed the way this works from the sample implementation because what it considered the number of unique characters is actually the difference between the password length and the number of \r\n // duplicate characters encountered so far (repeatedCharacterCount). This value of uniqueCharsCount will change through the iterations over the password.\r\n // As there is no reference to why it was done they way it was in the source, I decided to simplify the repeated character penalty calculation.\r\n // This method is still more robust than the previous calculation done in this code.\r\n repeatedCharacterPenalty = uniqueCharactersCount > 0 ? Math.ceil(repeatedCharacterPenalty / uniqueCharactersCount) : Math.ceil(repeatedCharacterPenalty);\r\n }\r\n\r\n }\r\n\r\n // Check for sequential alpha string patterns (forward and reverse) \r\n for (let startPos:number = 0; startPos < SequentialLetters.length - SequentialCharacterThreshold; startPos++)\r\n {\r\n let forwardSequentialCharacters:string = SequentialLetters.substr(startPos, SequentialCharacterThreshold);\r\n let reverseSequentialCharacters:string = stringReverse(forwardSequentialCharacters);\r\n if (p.includes(forwardSequentialCharacters) || p.includes(reverseSequentialCharacters))\r\n {\r\n sequentialAlphaStringsCount++;\r\n }\r\n }\r\n\r\n // Check for sequential numeric string patterns (forward and reverse)\r\n for (let startPos:number = 0; startPos < SequentialDigits.length - SequentialCharacterThreshold; startPos++)\r\n {\r\n let forwardSequentialCharacters:string = SequentialDigits.substr(startPos, SequentialCharacterThreshold);\r\n let reverseSequentialCharacters:string = stringReverse(forwardSequentialCharacters);\r\n if (p.includes(forwardSequentialCharacters) || p.includes(reverseSequentialCharacters))\r\n {\r\n sequentialDigitStringsCount++;\r\n }\r\n }\r\n\r\n // Password Length\r\n strength = 4 * p.length;\r\n\r\n // Uppercase letters\r\n if (uppercaseLetterCount > 0) strength += ((p.length - uppercaseLetterCount) * 2);\r\n\r\n // Lowercase letters\r\n if (lowercaseLetterCount > 0) strength += ((p.length - lowercaseLetterCount) * 2);\r\n\r\n // Digits\r\n strength += (digitCount * 4);\r\n\r\n // Symbols\r\n strength += (symbolCount * 6);\r\n\r\n // Score += (Number of digits or symbols in middle of password *2)\r\n strength += (middleDigitSymbolCount * 2);\r\n\r\n // Requirements\r\n let requirements:number = 0;\r\n if (p.length >= 8) requirements++; // Min password length\r\n if (uppercaseLetterCount > 0) requirements++; // Uppercase letters\r\n if (lowercaseLetterCount > 0) requirements++; // Lowercase letters\r\n if (digitCount > 0) requirements++; // Digits\r\n if (symbolCount > 0) requirements++; // Symbols\r\n\r\n // If we have more than 3 requirements increase the score\r\n if (requirements > 3) strength += (requirements * 2);\r\n\r\n\r\n // Deductions \r\n\r\n // Only letters\r\n if (digitCount == 0 && symbolCount == 0) \r\n strength -= p.length;\r\n\r\n // Only Digits\r\n if (digitCount == p.length) \r\n strength -= p.length;\r\n\r\n // Repeated Characters\r\n if (repeatedCharactersCount > 1) \r\n strength -= repeatedCharacterPenalty;\r\n\r\n // Consecutive uppercase letters\r\n strength -= (consecutiveUppercaseLetterCount * 2);\r\n\r\n // Consecutive lowercase letters\r\n strength -= (consecutiveLowercaseLetterCount * 2);\r\n\r\n // Consecutive digits\r\n strength -= (consecutiveDigitCount * 2);\r\n\r\n // Password contains sequences of letters\r\n strength -= (sequentialAlphaStringsCount * 3);\r\n\r\n // Password contains sequences of digits\r\n strength -= (sequentialDigitStringsCount * 3);\r\n\r\n }\r\n\r\n //this normalization to a \"percentage\" is not done on the server-side, \r\n //but it is done here because there is conditional text displayed on the screen based on thresholds\r\n return Math.max(0, Math.min(100, Math.round(strength)));\r\n }\r\n\r\n}\r\n\r\nexport { PasswordStrength, IPasswordStrengthService };\r\nexport default PasswordStrength;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/services/password-strength.ts","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { IProfileSecurityResource, IUserResource } from './../';\r\nimport { ISessionService, IToastMessageService } from './../../../services';\r\nimport { Dto } from '../../../data';\r\nlet template = require('./change-password-card.html');\r\n\r\nclass ChangePasswordCardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('changePasswordCard', {\r\n controller: ChangePasswordCardController,\r\n templateUrl: template,\r\n controllerAs: 'password',\r\n bindings: {\r\n ngDisabled: \"=\"\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\ninterface IChangePasswordCardController {\r\n onSave(): void;\r\n onCancel(): void;\r\n validate(): void;\r\n clearForm(): void;\r\n changePassword(): void;\r\n}\r\n\r\nclass ChangePasswordCardController implements IChangePasswordCardController {\r\n private static $inject: Array = ['Session', 'User', 'toastMessageFactory'];\r\n\r\n //private fields\r\n private current: string = '';\r\n private new: string = '';\r\n private confirmed: string = '';\r\n private isEditMode: boolean = true;\r\n private passwordForm: ng.IFormController;\r\n\r\n //bindings\r\n private ngDisabled: boolean;\r\n\r\n constructor(private Session: ISessionService,\r\n private User: IUserResource,\r\n private toastMessageFactory: IToastMessageService) {\r\n\r\n console.log('ChangePasswordController loaded');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n\r\n console.log('ChangePasswordController activated');\r\n }\r\n\r\n public onSave(): void {\r\n this.changePassword();\r\n }\r\n\r\n public onCancel(): void {\r\n this.changePassword();\r\n }\r\n\r\n public validate(): void {\r\n (this.passwordForm as any).current.$;\r\n }\r\n\r\n public clearForm(): void {\r\n this.current = '';\r\n this.new = '';\r\n this.confirmed = '';\r\n this.passwordForm.$setUntouched();\r\n }\r\n\r\n public changePassword(): void {\r\n\r\n this.Session.getSessionAsync().then((current) => {\r\n if (current && current.profile) {\r\n var request = {\r\n newPassword: this.new,\r\n currentPassword: this.current\r\n } \r\n\r\n return this.User.changePassword({ id: current.profile.id }, request).$promise\r\n .then((response) => {\r\n\r\n this.isEditMode = false;\r\n this.clearForm();\r\n this.toastMessageFactory.showSuccessMessage();\r\n })\r\n .catch((e) => {\r\n (this.passwordForm as any).current.$setValidity(\"incorrect\", true);\r\n console.log(e);\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nlet chpwdcdComponent = new ChangePasswordCardComponent();\r\nexport default chpwdcdComponent;\r\nexport { chpwdcdComponent as ChangePasswordCardComponent, IChangePasswordCardController, ChangePasswordCardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/user-controls/change-password-card.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n
\\n
\\n\\n\\n
\\n
Your current password is required.
\\n
Your password is incorrect.
\\n
\\n
\\n\\n
\\nCancel\\nSave\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"security/user-controls/change-password-card.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/user-controls/change-password-card.html\n// module id = 543\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { IPasswordStrengthService } from '../services/password-strength';\r\nlet template = require('./password.html');\r\n\r\nclass PasswordComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('password', {\r\n controller: PasswordController,\r\n templateUrl: template,\r\n controllerAs: 'password',\r\n bindings: {\r\n minStrengthRating: \"@\",\r\n rating: '@',\r\n value: '=',\r\n confirm: '=',\r\n form: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IPasswordController {\r\n validate(): void;\r\n onChange(): void;\r\n calculateStrength(): void;\r\n getStrengthDescriptor(s): any;\r\n}\r\n\r\ninterface IPasswordFormController extends ng.IFormController {\r\n password: ng.IFormController;\r\n confirm: ng.IFormController;\r\n}\r\n\r\nclass PasswordController implements IPasswordController {\r\n private static $inject: Array = ['PasswordStrength'];\r\n\r\n //private fields\r\n private themes = ['error', 'warning', 'success'];\r\n private strengthNames = [\"Weak\", \"Good\", \"Strong\"];\r\n private minStrength: number = 20;\r\n private strengthName: string;\r\n private theme: string;\r\n private hostForm: IPasswordFormController;\r\n\r\n //bindings\r\n private minStrengthRating: string;\r\n private rating: number;\r\n private value: string;\r\n private confirm: string;\r\n private form: Function;\r\n\r\n constructor(private PasswordStrength: IPasswordStrengthService) {\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.theme = this.themes[0];\r\n this.rating = 0;\r\n this.confirm = '';\r\n this.strengthName = this.strengthNames[0];\r\n this.minStrength = parseInt(this.minStrengthRating) || this.minStrength;\r\n this.hostForm = this.form();\r\n\r\n console.log('SecurityQuestionCardController activated');\r\n }\r\n\r\n public validate(): void {\r\n //use the ng-message name as the key for the set validity function\r\n //boolean expression that describes valid.\r\n //TODO: verify usage of $setValidity\r\n (this.hostForm.password as any).$setValidity('strength', (this.minStrength <= this.rating));\r\n (this.hostForm.confirm as any).$setValidity(\"match\", this.value === this.confirm);\r\n }\r\n\r\n public onChange(): void {\r\n this.calculateStrength();\r\n this.validate();\r\n }\r\n\r\n public calculateStrength(): void {\r\n this.rating = this.PasswordStrength.measureStrength(this.value);\r\n var descriptor = this.getStrengthDescriptor(this.rating);\r\n this.theme = descriptor.theme;\r\n this.strengthName = descriptor.strenghtName;\r\n }\r\n\r\n public getStrengthDescriptor(s): any {\r\n var idx = 0;\r\n if (s <= 20) { idx = 0; }\r\n else if (s <= 50) { idx = 1; }\r\n else { idx = 2; }\r\n\r\n return {\r\n theme: this.themes[idx],\r\n strenghtName: this.strengthNames[idx],\r\n };\r\n }\r\n\r\n}\r\n\r\nlet pwdComponent = new PasswordComponent();\r\nexport default pwdComponent;\r\nexport { pwdComponent as PasswordComponent, IPasswordController, PasswordController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/user-controls/password.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n\\n\\n
\\n
This field is required.
\\n
Password is too weak.
\\n
\\n
\\n\\n Password strength is {{password.strengthName}}.\\n\\n\\n\\n
\\n
This field is required.
\\n
Passwords do not match.
\\n
\\n
\\n
\\n\";\nvar id1=\"security/user-controls/password.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/user-controls/password.html\n// module id = 545\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { ISecurityQuestionResource } from '../data/security-question';\r\nlet template = require('./security-question.html');\r\n\r\nclass SecurityQuestionComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('securityQuestion', {\r\n controller: SecurityQuestionController,\r\n templateUrl: template,\r\n controllerAs: 'security',\r\n bindings: {\r\n ngDisabled: \"@\",\r\n answer: '=?',\r\n question: '=?',\r\n form: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ISecurityQuestionController {\r\n loadQuestions(): void;\r\n}\r\n\r\nclass SecurityQuestionController implements ISecurityQuestionController {\r\n private static $inject: Array = ['SecurityQuestion'];\r\n\r\n //private fields\r\n private isBadCredentials: Boolean = false;\r\n private email: string = '';\r\n private password: string = '';\r\n private hostForm: Function = null;\r\n private questions: Array = [];\r\n\r\n //bindings\r\n private ngDisabled: any;\r\n private answer: string;\r\n private question: string;\r\n private form: Function;\r\n\r\n constructor(private SecurityQuestion: ISecurityQuestionResource) {\r\n\r\n console.log('SecurityQuestionController loaded');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.question = this.question || '';\r\n this.answer = this.answer || '';\r\n\r\n this.hostForm = this.form();\r\n this.loadQuestions();\r\n console.log('SecurityQuestionController activated');\r\n }\r\n\r\n public loadQuestions(): void { \r\n this.SecurityQuestion.get().$promise\r\n .then((response) => {\r\n this.questions = response;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n\r\n public onChangeSecurityQuestionClick(): void {\r\n\r\n }\r\n\r\n}\r\n\r\nlet sqComponent = new SecurityQuestionComponent();\r\nexport default sqComponent;\r\nexport { sqComponent as SecurityQuestionComponent, ISecurityQuestionController, SecurityQuestionController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/user-controls/security-question.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n\\n{{question.text|translate}}\\n\\n\\n
\\n
Security Question is required.
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
An answer is required.
\\n
Answer must me at least 3 characters long.
\\n
\\n
\\n
\";\nvar id1=\"security/user-controls/security-question.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/user-controls/security-question.html\n// module id = 547\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto, IProfileResource } from '../../../data';\r\nimport { IProfileSecurityResource, IUserResource } from './../';\r\nimport { ISessionService, IToastMessageService } from './../../../services';\r\nlet template = require('./security-question-card.html');\r\n\r\nclass SecurityQuestionCardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('securityQuestionCard', {\r\n controller: SecurityQuestionCardController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n ngDisabled: \"=\",\r\n onSuccess:\"&?\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ISecurityQuestionCardController {\r\n loadCurrentQuestion(): void;\r\n clearAnswer(): void;\r\n onCancel(): void;\r\n onSave(): void;\r\n saveAnswer(): void;\r\n}\r\n\r\nclass SecurityQuestionCardController implements ISecurityQuestionCardController {\r\n private static $inject: Array = ['$timeout', 'Session', 'User', 'Profile', 'toastMessageFactory'];\r\n\r\n //private fields\r\n private question: string = '';\r\n private answer: string = '';\r\n private securityForm: ng.IFormController;\r\n private isEditMode: Boolean = true;\r\n private onSuccess: Function;\r\n //bindings\r\n private ngDisabled: Boolean;\r\n\r\n constructor(private $timeout: ng.ITimeoutService,\r\n private Session: ISessionService,\r\n private User: IUserResource,\r\n private Profile: IProfileResource,\r\n private toastMessageFactory: IToastMessageService) {\r\n\r\n console.log('SecurityQuestionCardController loaded');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.loadCurrentQuestion();\r\n console.log('SecurityQuestionCardController activated');\r\n }\r\n\r\n public loadCurrentQuestion(): void {\r\n this.Session.getSessionAsync().then((current) => {\r\n \r\n if (current && current.profile && current.profile.securityQuestion) {\r\n this.question = current.profile.securityQuestion.id;\r\n }\r\n });\r\n }\r\n\r\n public clearAnswer(): void {\r\n this.answer = '';\r\n this.securityForm.$setUntouched();\r\n this.securityForm.$setPristine(); \r\n }\r\n\r\n public onCancel(): void {\r\n this.clearAnswer();\r\n }\r\n\r\n public onSave(): void {\r\n this.saveAnswer();\r\n }\r\n\r\n public raiseOnSuccess() {\r\n if (this.onSuccess)\r\n this.onSuccess();\r\n }\r\n\r\n public saveAnswer(): any {\r\n this.Session.getSessionAsync().then((current) => {\r\n if (current && current.profile) {\r\n var answer = { securityAnswer: this.answer } as Dto.ISecurityQuestionAnswer;\r\n var userRouteVars = { id: current.profile.id };\r\n\r\n return this.User.changeAnswer(userRouteVars, answer).$promise\r\n .then((response) => {\r\n var question = { id: this.question } as Dto.ISecurityQuestion;\r\n var routeVars = {\r\n id: current.profile.id , \r\n accountId: (current.account) ? current.account.id : null\r\n };\r\n var method = (current.account) ? 'saveQuestion' : 'saveAdminQuestion';\r\n (this.Profile as any)[method](routeVars, question).$promise\r\n .then(() => {\r\n this.toastMessageFactory.showSuccessMessage();\r\n this.raiseOnSuccess();\r\n this.clearAnswer();\r\n \r\n }) \r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\nlet sqcardComponent = new SecurityQuestionCardComponent();\r\nexport default sqcardComponent;\r\nexport { sqcardComponent as SecurityQuestionCardComponent, ISecurityQuestionCardController, SecurityQuestionCardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/user-controls/security-question-card.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n
\\n
\\n\\n
\\nCancel \\nSave\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"security/user-controls/security-question-card.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/user-controls/security-question-card.html\n// module id = 549\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { ISiteConfigService } from '../../../core';\r\nimport { ISessionService } from '../../../services';\r\nimport { Dto } from '../../../data';\r\nlet template = require('./sign-in-card.html');\r\n\r\nclass SignInCardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('signInCard', {\r\n controller: SignInCardController,\r\n templateUrl: template,\r\n controllerAs: 'signInCard',\r\n bindings: {\r\n scope: \"@\",\r\n redirectRoute: \"@\",\r\n onSuccess: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ISignInCardController {\r\n onEnter(keyIdentifier): void;\r\n validate(): void;\r\n onSignInClick(): void;\r\n onForgotPasswordClick(): void;\r\n}\r\n\r\nclass SignInCardController implements ISignInCardController {\r\n private static $inject: Array = ['$rootRouter', 'SiteConfig', 'Session'];\r\n\r\n //private fields\r\n private isBadCredentials: Boolean = false;\r\n private email: string = '';\r\n private password: string = '';\r\n private badAccountStateForLogin: boolean;\r\n private accountStateMessage: string;\r\n private signInCardForm: ng.IFormController;\r\n\r\n //bindings\r\n private scope: string;\r\n private redirectRoute: string;\r\n private onSuccess: Function;\r\n\r\n constructor(private $router: ng.Router,\r\n private SiteConfig: ISiteConfigService,\r\n private Session: ISessionService) {\r\n\r\n console.log('SignInCardController loaded');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.badAccountStateForLogin = false;\r\n this.accountStateMessage = \"\";\r\n\r\n if (!this.scope)\r\n throw \"A security scope is required\";\r\n console.log('SignInCardController activated');\r\n \r\n setTimeout(() => {\r\n let tmp = ng.element(document.getElementById(\"email\")).val();\r\n if (tmp) {\r\n document.getElementById(\"password\").focus();\r\n }\r\n }, 500); \r\n }\r\n\r\n public onEnter(keyIdentifier): void {\r\n if (keyIdentifier === \"Enter\") {\r\n this.onSignInClick();\r\n }\r\n }\r\n\r\n public validate(): void {\r\n\r\n }\r\n\r\n public onSignInClick(): void {\r\n this.badAccountStateForLogin = false;\r\n this.accountStateMessage = \"\";\r\n\r\n this.Session.createSession({\r\n scope: this.scope,\r\n username: this.email,\r\n password: this.password\r\n }).then((context) => {\r\n if (context && context.userClaims) {\r\n\r\n this.raiseOnSuccessEvent();\r\n if (this.redirectRoute === \"SELF\") return;\r\n\r\n if (this.Session.isAccountHolder() && context.account) {\r\n if (context.account.status === Dto.AccountStatus.Active\r\n && this.redirectRoute) {\r\n this.$router.navigate([this.redirectRoute]);\r\n }\r\n else {\r\n this.badAccountStateForLogin = true;\r\n this.accountStateMessage = (context.account.status === Dto.AccountStatus.Deactivated)\r\n ? \"Your account has been deactivated.\"\r\n : \"The account has not been activated.\";\r\n this.Session.reset(); \r\n }\r\n }\r\n else if (this.Session.isAdmin()) {\r\n this.$router.navigate([\"Admin\"]);\r\n }\r\n else {\r\n this.badAccountStateForLogin = true;\r\n this.accountStateMessage = \"Unknown error occured.\";\r\n } \r\n }\r\n else {\r\n this.isBadCredentials = true;\r\n }\r\n\r\n }).catch((e) => {\r\n this.isBadCredentials = true;\r\n });\r\n }\r\n\r\n private raiseOnSuccessEvent() {\r\n if (typeof this.onSuccess === 'function') {\r\n this.onSuccess();\r\n }\r\n }\r\n\r\n public onForgotPasswordClick(): void {\r\n this.$router.navigate(['ForgotPassword']);\r\n }\r\n\r\n}\r\n\r\nlet sgnincdComponent = new SignInCardComponent();\r\nexport default sgnincdComponent;\r\nexport { sgnincdComponent as SignInCardComponent, ISignInCardController, SignInCardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/security/user-controls/sign-in-card.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IAccountResource extends ng.resource.IResourceClass {\r\n update(account: ASM.IAccount): ASM.IAccount;\r\n search(account: ASM.IAccountCriteria): ng.resource.IResourceArray\r\n}\r\n\r\nlet AccountResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IAccountResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"accounts\"),\r\n { id: '@id' } as any,\r\n new AccountResource() as any\r\n );\r\n };\r\n\r\nAccountResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass AccountResource {\r\n \r\n constructor() {\r\n\r\n }\r\n\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n \r\n}\r\n\r\nlet Account = {\r\n name: \"Account\",\r\n factory: AccountResourceFactory\r\n};\r\n\r\nexport { Account, IAccountResource }\r\nexport default Account;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/account.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface ICountryResource extends ng.resource.IResourceClass {\r\n\r\n}\r\n\r\nlet CountryResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): ICountryResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"countries\"),\r\n { id: '@id' } as any,\r\n new CountryResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nCountryResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass CountryResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet Country = {\r\n name: \"Country\",\r\n factory: CountryResourceFactory\r\n};\r\n\r\nexport { Country, ICountryResource }\r\nexport default Country;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/country.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface ICreditCardResource extends ng.resource.IResourceClass {\r\n update(params: any, profile: Dto.ICreditCard): Dto.ICreditCard;\r\n}\r\n\r\nlet CreditCardResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, SiteConfig: Core.ISiteConfigService): ICreditCardResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"creditcards\"),\r\n { id: '@id', accountId: '@_accountId' } as any,\r\n new CreditCardResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nCreditCardResourceFactory.$inject = ['$resource', 'SiteConfig'];\r\n\r\nclass CreditCardResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n\r\n}\r\n\r\nlet CreditCard = {\r\n name: \"CreditCard\",\r\n factory: CreditCardResourceFactory\r\n};\r\n\r\nexport { CreditCard, ICreditCardResource }\r\nexport default CreditCard;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/credit-card.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IFrequentParkerAccountResource extends ng.resource.IResourceClass {\r\n update(params:Object, account: ASM.IFrequentParkerAccount): ASM.IAccount;\r\n}\r\n\r\nlet FrequentParkerAccountResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IFrequentParkerAccountResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"frequentParkerAccount\"),\r\n { id: '@id', accountId: '@_accountId' } as any,\r\n new FrequentParkerAccountResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nFrequentParkerAccountResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass FrequentParkerAccountResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n}\r\n\r\nlet FrequentParkerAccount = {\r\n name: \"FrequentParkerAccount\",\r\n factory: FrequentParkerAccountResourceFactory\r\n};\r\n\r\nexport { FrequentParkerAccount, IFrequentParkerAccountResource }\r\nexport default FrequentParkerAccount;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/frequent-parker-account.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IParkingAreaResource extends ng.resource.IResourceClass {\r\n\r\n}\r\n\r\nlet ParkingAreaResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IParkingAreaResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"parkingAreas\"),\r\n { id: '@id' } as any,\r\n new ParkingAreaResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nParkingAreaResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ParkingAreaResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet ParkingArea = {\r\n name: \"ParkingArea\",\r\n factory: ParkingAreaResourceFactory\r\n};\r\n\r\nexport { ParkingArea, IParkingAreaResource }\r\nexport default ParkingArea;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/parking-area.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IParkingMediaResource extends ng.resource.IResourceClass {\r\n update(params: any, parkingMedia: Dto.IParkingMedia): Dto.IParkingMedia;\r\n}\r\n\r\nlet ParkingMediaResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IParkingMediaResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"parkingMedia\"),\r\n { id: '@id' } as any,\r\n new ParkingMediaResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nParkingMediaResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ParkingMediaResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n\r\n}\r\n\r\nlet ParkingMedia = {\r\n name: \"ParkingMedia\",\r\n factory: ParkingMediaResourceFactory\r\n};\r\n\r\nexport { ParkingMedia, IParkingMediaResource }\r\nexport default ParkingMedia;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/parking-media.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IParkingMediaRequestResource extends ng.resource.IResourceClass {\r\n insert(params: any, parkingMediaRequest: Dto.IParkingMediaRequest): Dto.IParkingMediaRequest;\r\n}\r\n\r\nlet ParkingMediaRequestResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IParkingMediaRequestResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"parkingMediaRequest\"),\r\n { id: '@id', accountId: '@_accountId' } as any,\r\n new ParkingMediaRequestResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nParkingMediaRequestResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ParkingMediaRequestResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public insert: ng.resource.IActionDescriptor = {\r\n method: 'POST'\r\n };\r\n\r\n}\r\n\r\nlet ParkingMediaRequest = {\r\n name: \"ParkingMediaRequest\",\r\n factory: ParkingMediaRequestResourceFactory\r\n};\r\n\r\nexport { ParkingMediaRequest, IParkingMediaRequestResource }\r\nexport default ParkingMediaRequest;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/parking-media-request.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IParkingMediaTypeResource extends ng.resource.IResourceClass {\r\n\r\n}\r\n\r\nlet ParkingMediaTypeResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): IParkingMediaTypeResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"ParkingMediaType\"),\r\n { id: '@id' } as any,\r\n new ParkingMediaTypeResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nParkingMediaTypeResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ParkingMediaTypeResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet ParkingMediaType = {\r\n name: \"ParkingMediaType\",\r\n factory: ParkingMediaTypeResourceFactory\r\n};\r\n\r\nexport { ParkingMediaType, IParkingMediaTypeResource }\r\nexport default ParkingMediaType;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/parking-media-type.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IProfileResource extends ng.resource.IResourceClass {\r\n forgotSecurityQuestionRequest(): Dto.IProfile;\r\n saveQuestion(params: Object, question: Dto.ISecurityQuestion): Dto.IProfile;\r\n saveAdminQuestion(params: Object, question: Dto.ISecurityQuestion): Dto.IProfile;\r\n update(params: any, profile: Dto.IProfile): Dto.IProfile;\r\n updateAdmin(profile: Dto.IProfile): Dto.IProfile;\r\n saveAdmin(params: any, profile: Dto.IProfile): Dto.IProfile;\r\n search(user: Dto.IProfileCriteria): ng.resource.IResourceArray;\r\n getAdmin(params: any): Dto.IProfile;\r\n}\r\n\r\nlet ProfileResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IProfileResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"profiles\"),\r\n { id: '@id', accountId: '@_accountId' } as any,\r\n new ProfileResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nProfileResourceFactory.$inject = [\"$resource\", \"exception\", \"logger\", \"SiteConfig\"];\r\n\r\n\r\nclass ProfileResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public get: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n isArray: false\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n\r\n public updateAdmin: ng.resource.IActionDescriptor = {\r\n method: 'PUT',\r\n url: this.SiteConfig.getResourceUri(\"adminProfiles\"),\r\n params: {\r\n admin: true,\r\n id: \"@id\"\r\n }\r\n };\r\n\r\n public saveAdmin: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n url: this.SiteConfig.getResourceUri(\"adminProfiles\"),\r\n params: {\r\n admin: true,\r\n resetPasswordUri: '@resetPasswordUri'\r\n }\r\n };\r\n\r\n public forgotSecurityQuestionRequest: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n url: this.SiteConfig.getResourceUri(\"profiles\"),\r\n params: {\r\n username: '@username'\r\n }\r\n };\r\n\r\n public saveQuestion: ng.resource.IActionDescriptor = {\r\n method: 'PUT',\r\n params: {\r\n security: true\r\n }\r\n };\r\n\r\n public saveAdminQuestion: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"adminProfiles\"),\r\n method: 'PUT',\r\n params: {\r\n security: true\r\n }\r\n };\r\n\r\n public getAdmin: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n url: this.SiteConfig.getResourceUri(\"adminProfiles\"),\r\n isArray: false,\r\n params: {\r\n security:true\r\n }\r\n };\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n url: this.SiteConfig.getResourceUri(\"adminProfiles\"),\r\n params: {\r\n bulk: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet Profile = {\r\n name: \"Profile\",\r\n factory: ProfileResourceFactory\r\n};\r\n\r\nexport { Profile, IProfileResource }\r\nexport default Profile;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/profile.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface ISettingsResource extends ng.resource.IResourceClass {\r\n update(account: ASM.ISettingsBase): ASM.ISettingsBase;\r\n}\r\n\r\nlet SettingsResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): ISettingsResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"settings\"),\r\n { key: '@key' } as any,\r\n new SettingsResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nSettingsResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass SettingsResource {\r\n\r\n constructor(private siteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT',\r\n url: this.siteConfig.getResourceUri(\"settingsWrite\")\r\n };\r\n\r\n}\r\n\r\nlet Settings = {\r\n name: \"Settings\",\r\n factory: SettingsResourceFactory\r\n};\r\n\r\nexport { Settings, ISettingsResource }\r\nexport default Settings;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/settings.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface ISubdivisionResource extends ng.resource.IResourceClass {\r\n \r\n}\r\n\r\nlet SubdivisionResourceFactory: Function =\r\n ($resource: ng.resource.IResourceService, exception: any, logger: any, SiteConfig: Core.ISiteConfigService): ISubdivisionResource => {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"subdivisions\"),\r\n { code: '@code' } as any,\r\n new SubdivisionResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nSubdivisionResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass SubdivisionResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet Subdivision = {\r\n name: \"Subdivision\",\r\n factory: SubdivisionResourceFactory\r\n};\r\n\r\nexport { Subdivision, ISubdivisionResource }\r\nexport default Subdivision;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/subdivisions.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\nimport Template = ASM.IContentTemplate;\r\n\r\ninterface IContentTemplateResource extends ng.resource.IResourceClass {\r\n update(contentTemplate: ASM.IContentTemplate): ASM.IContentTemplate;\r\n}\r\n\r\nlet ContentTemplateResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IContentTemplateResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"contentTemplates\"),\r\n { id: '@id' } as any,\r\n new ContentTemplateResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nContentTemplateResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ContentTemplateResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT',\r\n url: this.SiteConfig.getResourceUri('contentTemplatesWrite')\r\n };\r\n\r\n public save: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n url: this.SiteConfig.getResourceUri('contentTemplatesWrite')\r\n };\r\n}\r\n\r\nlet ContentTemplate = {\r\n name: \"ContentTemplate\",\r\n factory: ContentTemplateResourceFactory\r\n};\r\n\r\nexport { ContentTemplate, IContentTemplateResource }\r\nexport default ContentTemplate;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/content-template.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\nimport Template = ASM.IContentTemplate;\r\n\r\ninterface IContentTemplateWriteResource extends ng.resource.IResourceClass {\r\n update(contentTemplate: ASM.IContentTemplate): ASM.IContentTemplate;\r\n}\r\n\r\nlet ContentTemplateWriteResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IContentTemplateWriteResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"contentTemplatesWrite\"),\r\n { id: '@id' } as any,\r\n new ContentTemplateWriteResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nContentTemplateWriteResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ContentTemplateWriteResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n}\r\n\r\nlet ContentTemplateWrite = {\r\n name: \"ContentTemplateWrite\",\r\n factory: ContentTemplateWriteResourceFactory\r\n};\r\n\r\nexport { ContentTemplateWrite, IContentTemplateWriteResource }\r\nexport default ContentTemplateWrite;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/content-template-write.ts","import * as ng from 'angular';\r\nimport * as ASM from './interfaces';\r\nimport * as Core from './../core';\r\nimport Template = ASM.IContentTypeSettings;\r\n\r\ninterface IContentTypeSettingsResource extends ng.resource.IResourceClass {\r\n update(contentTemplate: ASM.IContentTypeSettings): ASM.IContentTypeSettings;\r\n}\r\n\r\nlet ContentTypeSettingsResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IContentTypeSettingsResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"contentTypeSettings\"),\r\n { id: '@id' } as any,\r\n new ContentTypeSettingsResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nContentTypeSettingsResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ContentTypeSettingsResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT'\r\n };\r\n}\r\n\r\nlet ContentTypeSettings = {\r\n name: \"ContentTypeSettings\",\r\n factory: ContentTypeSettingsResourceFactory\r\n};\r\n\r\nexport { ContentTypeSettings, IContentTypeSettingsResource }\r\nexport default ContentTypeSettings;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/content-type-settings.ts","import { IKeyValuePair } from './interfaces';\r\n\r\nexport default [\r\n { key: null, value: 'All' } as IKeyValuePair,\r\n { key: 0, value: 'Parking Trip' },\r\n { key: 1, value: 'Replenishment' },\r\n { key: 2, value: 'Manual Adjustment' },\r\n { key: 3, value: 'Year-End Adjustment' },\r\n { key: 4, value: 'Annual Minimum Usage Fee Adjustment' }\r\n] as Array;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/transaction-types.ts","import { INameValuePair } from './interfaces';\r\n\r\nexport default [ \r\n { value: undefined, name: 'All' },\r\n { value: 1, name: 'Point Accrual' },\r\n { value: 2, name: 'Point Redemption' },\r\n { value: 3, name: 'Manual Point Adjustment' },\r\n] as Array;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/frequent-parker-activity-types.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface ICreditCardTicketResource extends ng.resource.IResourceClass {\r\n getNewTokenTicket(params: any): Dto.ICreditCardOperationTicket;\r\n}\r\n\r\nlet CreditCardTicketResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): ICreditCardTicketResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"creditCardTicket\"),\r\n { } as any,\r\n new CreditCardTicketResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nCreditCardTicketResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass CreditCardTicketResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n }\r\n\r\n public getNewTokenTicket: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n url: this.SiteConfig.getResourceUri(\"creditCardTicket\") + '/new-token-ticket',\r\n params: {\r\n id: '@id',\r\n reCaptchaToken: '@reCaptchaToken'\r\n }\r\n };\r\n}\r\n\r\nlet CreditCardTicket = {\r\n name: \"CreditCardTicket\",\r\n factory: CreditCardTicketResourceFactory\r\n};\r\n\r\nexport { CreditCardTicket, ICreditCardTicketResource }\r\nexport default CreditCardTicket;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/credit-card-ticket.ts","import * as ng from 'angular';\r\nimport * as Dto from './interfaces';\r\nimport * as Core from './../core';\r\n\r\ninterface IReCaptchaValidationResource extends ng.resource.IResourceClass {\r\n getReCaptcha2TokenValidationResult(params: any): Dto.IReCaptchaValidation;\r\n getReCaptcha3TokenValidationResult(params: any): Dto.IReCaptchaValidation;\r\n}\r\n\r\nlet ReCaptchaValidationResourceFactory = function ($resource: ng.resource.IResourceService, exception: Core.IException,\r\n logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IReCaptchaValidationResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"reCaptchaValidation\"),\r\n { } as any,\r\n new ReCaptchaValidationResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nReCaptchaValidationResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass ReCaptchaValidationResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n }\r\n\r\n public getReCaptcha2TokenValidationResult: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n url: this.SiteConfig.getResourceUri(\"reCaptchaValidation\") + '/v2',\r\n params: {\r\n id: '@id',\r\n token: '@token'\r\n }\r\n };\r\n\r\n private getReCaptcha3TokenValidationResult: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n url: this.SiteConfig.getResourceUri(\"reCaptchaValidation\") + '/v3',\r\n params: {\r\n id: '@id',\r\n token: '@token'\r\n }\r\n };\r\n}\r\n\r\nlet ReCaptchaValidation = {\r\n name: \"ReCaptchaValidation\",\r\n factory: ReCaptchaValidationResourceFactory\r\n};\r\n\r\nexport { ReCaptchaValidation, IReCaptchaValidationResource }\r\nexport default ReCaptchaValidation;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/data/recaptcha-validation.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Username or email required.
\\n
\\n
\\n\\n\\n\\n
\\n
Password is required.
\\n
The username/password combination does not match our records.
\\n
{{signInCard.accountStateMessage}}
\\n
\\n
\\n
\\nSign In\\n
\\n
\\nForgot password?\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"security/user-controls/sign-in-card.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/security/user-controls/sign-in-card.html\n// module id = 569\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../core';\r\nlet template = require('./standard-grid.html');\r\n\r\n\r\nclass StandardGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('standardGrid', {\r\n controller: StandardGridController,\r\n templateUrl: template,\r\n transclude: true,\r\n controllerAs: 'vm',\r\n bindings: {\r\n data: ' {\r\n if (val === null || val === undefined && typeof val === 'string') {\r\n return val;\r\n }\r\n\r\n if (!isNaN(val)) {\r\n if (val % 1 === 0)\r\n return parseInt(val);\r\n else return parseFloat(val);\r\n }\r\n\r\n var lowerVal = val.toLowerCase();\r\n if (lowerVal === 'true') return true;\r\n if (lowerVal === 'false') return false;\r\n\r\n return val;\r\n }\r\n\r\n var columnDef = {};\r\n ng.forEach(attrs.$attr, (value, name) => {\r\n columnDef[name] = castToCorrectType(attrs[name]);\r\n });\r\n\r\n ng.extend((scope as any).columnDef, columnDef);\r\n}\r\n\r\n\r\nclass StandardColumnController {\r\n\r\n private static $inject = ['$scope', '$transclude'];\r\n private transcludedScope: ng.IScope;\r\n\r\n constructor(\r\n private $scope: ng.IScope,\r\n private $transclude: ng.ITranscludeFunction) {\r\n }\r\n\r\n public $onInit() {\r\n\r\n var col = {\r\n cellTemplate: undefined,\r\n headerCellTemplate: undefined\r\n };\r\n\r\n this.$transclude((transEl, transScope) => {\r\n ng.forEach(transEl, (elem, index) => {\r\n if (elem.tagName) {\r\n if (elem.tagName.toUpperCase() === 'CELL-TEMPLATE') {\r\n col.cellTemplate = elem.innerHTML.trim() || undefined;\r\n }\r\n else if (elem.tagName === 'HEADER-TEMPLATE') {\r\n col.headerCellTemplate = elem.innerHTML.trim() || undefined;\r\n }\r\n }\r\n });\r\n\r\n (this.$scope as any).columnDef = col;\r\n (this.$scope.$parent as any).columnDefs.push((this.$scope as any).columnDef);\r\n });\r\n\r\n this.$scope.$on(\"destroy\", () => {\r\n (this.$scope.$parent as any).columnDefs = undefined;\r\n (this.$scope as any).columnDef = undefined;\r\n });\r\n }\r\n\r\n\r\n\r\n}\r\n\r\nclass StandardGridController {\r\n private static $inject: Array = ['$scope', '$templateCache', '$transclude', '$timeout'];\r\n private gridOptions: any = { data: [] };\r\n private transcludedScope: any;\r\n private gridId: number = Math.abs(Math.random());\r\n private onRowSelect: Function;\r\n private onAdd: Function;\r\n private rowSelection: any;\r\n private criteriaChanged: Function;\r\n private loading: boolean = false;\r\n private columnResize: boolean = false;\r\n private activated: boolean = false;\r\n private criteria: any;\r\n private totalResults: number = 0;\r\n private getColumns: Function;\r\n private defaultPageSizes: Array = [25, 30];\r\n private _pageSizes: Array = this.defaultPageSizes;\r\n private title: string;\r\n private allPagesDownloaded: boolean = false;\r\n private cardDepth: number;\r\n private disableSearch: boolean;\r\n private disableHeader: boolean;\r\n private disableAdd: boolean;\r\n private cardStyle: string;\r\n private selectedRow: any;\r\n constructor(private $scope: ng.IScope,\r\n private $templateCache: ng.ITemplateCacheService,\r\n private $transclude: ng.ITranscludeFunction,\r\n private $timeout: ng.ITimeoutService) {\r\n }\r\n\r\n\r\n public $onInit() {\r\n\r\n this.title = this.title || \"\";\r\n this.cardDepth = this.cardDepth || 5;\r\n this.cardStyle = this.cardStyle || \"\";\r\n this.rowSelection = ng.isDefined(this.rowSelection) ? this.rowSelection : false;\r\n this.criteria = this.criteria || { pageSize: 25, pageNumber: 1 };\r\n this.$transclude((transEl, transScope) => {\r\n this.transcludedScope = transScope;\r\n this.transcludedScope.columnDefs = [];\r\n });\r\n\r\n\r\n var columns = this.getColumns() || this.transcludedScope.columnDefs;\r\n\r\n this.gridOptions = {\r\n infiniteScrollRowsFromEnd: 5,\r\n //infiniteScrollUp: true,\r\n //infiniteScrollDown: true,\r\n useExternalSorting: true,\r\n enableColumnMenus: false,\r\n enablePaginationControls: false,\r\n enableRowHeaderSelection: false,\r\n multiSelect: false,\r\n enableRowSelection: this.rowSelection,\r\n enableColumnResizing: this.columnResize,\r\n virtualizationThreshold: 51,\r\n columnDefs: columns,\r\n onRegisterApi: (gridApi) => {\r\n let self = this;\r\n gridApi.infiniteScroll.on.needLoadMoreData(this.$scope, () => {\r\n self.getDataDown();\r\n });\r\n gridApi.infiniteScroll.on.needLoadMoreDataTop(this.$scope, () => {\r\n self.getDataUp();\r\n });\r\n\r\n (this.$scope as any).gridApi = gridApi;\r\n gridApi.core.handleWindowResize();\r\n\r\n gridApi.grid.appScope = this.$scope.$parent;\r\n gridApi.core.on.rowsRendered(this.$scope, (gridScope) => {\r\n this.resizeColumnsToContent(gridScope.grid);\r\n });\r\n\r\n gridApi.core.on.sortChanged(this.$scope, (grid, sortColumns) => {\r\n\r\n var lastCriteria = ng.copy(this.criteria);\r\n\r\n var args = {\r\n cancel: () => {\r\n grid.resetColumnSorting();\r\n if (lastCriteria && lastCriteria.SortBy) {\r\n var col = Linq.From(grid.columns)\r\n .FirstOrDefault((x: any) => {\r\n return x.field == lastCriteria.SortBy;\r\n }) as any;\r\n\r\n if (col) {\r\n col.sort.direction = (lastCriteria.SortDirection === 'DESC')\r\n ? 'desc'\r\n : 'asc';\r\n }\r\n }\r\n }\r\n };\r\n\r\n this.raiseCriteriaChanged(args);\r\n\r\n if (sortColumns.length == 0) {\r\n\r\n this.criteria.sort = [];\r\n this.criteria.SortDirection = 'ASC';\r\n this.criteria.SortBy = '';\r\n } else {\r\n\r\n this.criteria.Sort = [{\r\n key: sortColumns[0].colDef.field,\r\n direction: (sortColumns[0].sort.direction === 'desc')\r\n ? 'DESC'\r\n : 'ASC'\r\n }];\r\n\r\n this.criteria.SortDirection = this.criteria.Sort[0].direction;\r\n this.criteria.SortBy = this.criteria.Sort[0].key;\r\n this.allPagesDownloaded = false;\r\n this.criteria.pageNumber = 1;\r\n this.gridOptions.data = [];\r\n }\r\n\r\n });\r\n\r\n gridApi.selection.on.rowSelectionChanged(this.$scope, (row) => {\r\n if (this.onRowSelect) {\r\n if (row && row.isSelected) {\r\n this.selectedRow = row;\r\n this.onRowSelect({ selectedRow: row });\r\n }\r\n else {\r\n this.selectedRow = undefined;\r\n this.onRowSelect({ selectedRow: undefined });\r\n }\r\n }\r\n });\r\n\r\n }\r\n };\r\n\r\n this.$templateCache.put('ui-grid/uiGridHeaderCell',\r\n \"
{{ col.displayName CUSTOM_FILTERS }} {{col.sort.priority + 1}}
 
\");\r\n\r\n this.$templateCache.put('ui-grid/ui-grid-row',\r\n \"
\"\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n public $onChanges(model) {\r\n\r\n\r\n return;\r\n }\r\n\r\n\r\n private _selectedKey: string;\r\n private rowKey: string;\r\n private keyedRowSelected: boolean;\r\n\r\n public get selectedKey() {\r\n return this._selectedKey;\r\n }\r\n\r\n public set selectedKey(val: string) { \r\n if (val && this._selectedKey !== val) {\r\n this._selectedKey = val;\r\n this.keyedRowSelected = false;\r\n this.selectRow(val);\r\n }\r\n }\r\n\r\n private selectRow(key?: string): void {\r\n if (this.keyedRowSelected === false) {\r\n var key = key || this.selectedKey;\r\n if (key) {\r\n if (this.$scope) {\r\n var gridApi = (this.$scope as any).gridApi;\r\n var hasData = this.data && (this.data as Array).length > 0;\r\n if (gridApi && hasData) {\r\n var index = (this.data as Array)\r\n .findIndex(x => x[this.rowKey] === key);\r\n\r\n if (index >= 0) {\r\n gridApi.grid.modifyRows(this.data);\r\n gridApi.selection.selectRow(this.data[index]);\r\n this.keyedRowSelected = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n public get data(): any {\r\n this.gridOptions = this.gridOptions || { data: [] };\r\n return this.gridOptions.data;\r\n }\r\n\r\n public set data(val) {\r\n\r\n if (this.criteria && (!this.criteria.pageNumber || this.criteria.pageNumber <= 1)) {\r\n this.gridOptions.data = [];\r\n this.allPagesDownloaded = false;\r\n if ((this.$scope as any).gridApi)\r\n (this.$scope as any).gridApi.infiniteScroll.resetScroll(true, true)\r\n }\r\n if (val && val.length > 0) {\r\n\r\n this.gridOptions = this.gridOptions || { data: [] };\r\n this.gridOptions.data = this.gridOptions.data.concat(val);\r\n this.selectRow();\r\n if (this.$scope && val && val.length >= this.criteria.pageSize) {\r\n (this.$scope as any).gridApi.infiniteScroll.dataLoaded(false, true);\r\n } else {\r\n this.allPagesDownloaded = true;\r\n (this.$scope as any).gridApi.infiniteScroll.dataLoaded(false, false);\r\n }\r\n }\r\n }\r\n\r\n public get pageSizes() {\r\n return this._pageSizes;\r\n }\r\n\r\n public set pageSizes(val) {\r\n if (val !== this._pageSizes) {\r\n this._pageSizes = val;\r\n }\r\n\r\n if (!this._pageSizes || this._pageSizes.length <= 0)\r\n this._pageSizes = this.defaultPageSizes;\r\n }\r\n\r\n private getDepthReference(obj, index) { return obj[index] }\r\n\r\n private resizeColumnsToContent(grid) {\r\n ng.forEach(grid.columns, (col) => {\r\n\r\n //due to the auto column \"sizing to content\" feature currently not working, \r\n //the below code calculates the minimum width needed by first \r\n //finding the biggest string in the data per column \r\n //(much faster that calculating in the DOM for each value)\r\n //For the max length string only, calculating out what the presentation size will be\r\n //only adjust the minimum size if is necessary to grow, and do not shrink\r\n //this will allow the sizes to start to \r\n //stablize as the user pages through the data\r\n //this function supports ie9+ and all the other browsers\r\n\r\n //for this to work correctly, initial minWidth sizes must be set\r\n //to at minimum enough to not truncate the column title Text.\r\n if (col.visible) {\r\n let targetId = col.grid.id + '-' + col.uid + '-header-text';\r\n var headerElem = ng.element(document.getElementById(targetId));\r\n if (headerElem && headerElem.length > 0) {\r\n var max = col.displayName.length;\r\n var maxString = col.displayName;\r\n var hasData = this.gridOptions.data.length > 0;\r\n\r\n if (!col.colDef.minWidth)\r\n col.colDef.minWidth = this.computeColumnMinWidth(col, maxString, headerElem);\r\n\r\n if (!col.colDef.initialMinWidth)\r\n col.colDef.initialMinWidth = col.colDef.minWidth;\r\n\r\n //ToDo: limit this loop to only visible data\r\n for (var i = 0; i < this.gridOptions.data.length; i++) {\r\n var val = col.field.split('.')\r\n .reduce(this.getDepthReference, this.gridOptions.data[i]);\r\n\r\n if (val) {\r\n var valString = val.toString();\r\n var len = valString.length;\r\n if (max < len) {\r\n max = len;\r\n maxString = valString;\r\n }\r\n }\r\n }\r\n\r\n if (hasData) {\r\n col.colDef.minWidth = this.computeColumnMinWidth(col, maxString, headerElem);\r\n col.minWidth = col.colDef.minWidth;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private computeColumnMinWidth(column, text, headerElem) {\r\n var c = document.createElement(\"canvas\");\r\n c.className = \"ui-grid-cell-contents\";\r\n var ctx = c.getContext(\"2d\");\r\n\r\n var computedStyles = window.getComputedStyle(headerElem[0], null);\r\n var fontSize = computedStyles.getPropertyValue(\"font-size\");\r\n var fontFamily = computedStyles.getPropertyValue(\"font-family\");\r\n ctx.font = fontSize + ' ' + fontFamily;\r\n var newSize = Math.ceil(ctx.measureText(text).width * 1.15);\r\n return (newSize < column.colDef.initialMinWidth) ? column.colDef.initialMinWidth : newSize;\r\n }\r\n\r\n private raiseCriteriaChanged(e) {\r\n if (typeof this.criteriaChanged === 'function') {\r\n this.criteriaChanged({\r\n args: {\r\n criteria: this.criteria,\r\n cancel: e.cancel\r\n }\r\n });\r\n }\r\n };\r\n\r\n private onSearchEnter(keyIdentifier) {\r\n if (keyIdentifier === \"Enter\") {\r\n this.criteria.pageNumber = 1;\r\n this.allPagesDownloaded = false;\r\n this.gridOptions.data = [];\r\n this.raiseCriteriaChanged({\r\n cancel: () => {\r\n }\r\n });\r\n }\r\n }\r\n\r\n private onSearchClick(keyIdentifier) {\r\n this.criteria.pageNumber = 1;\r\n this.allPagesDownloaded = false;\r\n this.gridOptions.data = [];\r\n this.raiseCriteriaChanged({\r\n cancel: () => {\r\n }\r\n });\r\n }\r\n\r\n private getDataDown() {\r\n if (!this.allPagesDownloaded) {\r\n this.criteria.pageNumber++;\r\n this.raiseCriteriaChanged({\r\n cancel: () => {\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getDataUp() {\r\n if (this.criteria.pageNumber < 1) {\r\n this.criteria.pageNumber--;\r\n this.raiseCriteriaChanged({\r\n cancel: () => {\r\n }\r\n });\r\n }\r\n }\r\n\r\n private onAddClick(): void {\r\n this.raiseAdd();\r\n }\r\n\r\n private raiseAdd(): void {\r\n if (this.selectedRow) {\r\n this.selectedRow.isSelected = false;\r\n this.selectedRow = undefined;\r\n }\r\n if (typeof this.onAdd === 'function') {\r\n this.onAdd();\r\n }\r\n }\r\n}\r\n\r\n\r\nlet sgComponent = new StandardGridComponent();\r\nexport { StandardColumnDirective, sgComponent as StandardGridComponent }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/grid/standard-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
\\n
{{vm.title}}
\\n
\\n
\\n
\\n\\n\\n\\n\\n\\nGO\\n\\n
\\n\\n\\nADD\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\nNo Results\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"user-controls/grid/standard-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/grid/standard-grid.html\n// module id = 571\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nimport { ICountryResource, ISubdivisionResource, Dto } from '../data';\r\nimport * as Linq from 'linq-es5';\r\nlet template = require('./address.html');\r\n\r\nclass AddressComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('address', {\r\n controller: AddressController,\r\n templateUrl: template,\r\n controllerAs: 'address',\r\n bindings: {\r\n line1: '=?',\r\n line2: '=?',\r\n country: '=?',\r\n subdivision: '=?subdivision',\r\n city: '=?',\r\n postalCode: '=?',\r\n ngDisabled: \"=?\",\r\n isLoading: \"=?\",\r\n form: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAddressController {\r\n validate(): void;\r\n applyValidity(input, validity, validatorName): void;\r\n onChange(): void;\r\n onCountrySelect(): void;\r\n loadCountries(): any;\r\n loadSubdivisions(code): any;\r\n subdivisionDisabled(): Boolean;\r\n onSubdivisionChanged(item): void;\r\n getSubdivisionDescription(): string;\r\n getSubdivisions(searchTerm): Array;\r\n getCountry(countryName): any;\r\n getSubdivision(subdivisionName): any;\r\n}\r\n\r\ninterface IAddressFormController extends ng.IFormController {\r\n subdivisionInput: ng.IFormController;\r\n}\r\n\r\nclass AddressController implements IAddressController {\r\n private static $inject: Array = ['$scope', 'Country', 'Subdivision'];\r\n\r\n //private fields\r\n private hostForm: IAddressFormController;\r\n private selectedCountry: Dto.ICountry;\r\n private subdivisionSearchText: string;\r\n private subdivisions: Array;\r\n private selectedSubdivision: Dto.ISubdivision;\r\n private countryRequiresExactMatch: boolean;\r\n private countries: Array;\r\n\r\n //bindings\r\n private line1: string;\r\n private line2: string;\r\n private country: string;\r\n private _subdivision: string;\r\n private city: string;\r\n private postalCode: string;\r\n private ngDisabled: boolean;\r\n private isLoading: boolean;\r\n private form: Function;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private Country: ICountryResource,\r\n private Subdivision: ISubdivisionResource) {\r\n\r\n console.log(\"Address controller loaded.\");\r\n\r\n }\r\n\r\n public get subdivision() : string {\r\n return this._subdivision;\r\n }\r\n\r\n public set subdivision(val: string)\r\n {\r\n if (this._subdivision !== val) {\r\n this._subdivision = val;\r\n this.subdivisionSearchText = val;\r\n }\r\n }\r\n\r\n public $onInit(): void {\r\n let self = this;\r\n this.line1 = this.line1 || '';\r\n this.line2 = this.line2 || '';\r\n this.country = this.country || '';\r\n this.subdivision = this.subdivision || '';\r\n this.city = this.city || '';\r\n this.postalCode = this.postalCode || '';\r\n this.ngDisabled = this.ngDisabled || false;\r\n\r\n this.hostForm = this.form();\r\n if (!this.hostForm)\r\n throw \"Form reference was not resolved by the execution of the expression.\";\r\n\r\n this.loadCountries();\r\n console.log(\"Address controller activated.\");\r\n\r\n let unregisterCountryListWatch = this.$scope.$watch(\"address.countries\", (newValue, oldValue) => {\r\n //this is a one time watcher for on load so that sub division selection will load\r\n //with list of subdivisions for the selected country\r\n //(due to load dependency between it and country)\r\n //unregistered after first use beyond with different values\r\n\r\n if (newValue !== oldValue && (self.country && self.country !== '')) {\r\n self.selectedCountry = self.getCountry(self.country);\r\n self.loadSubdivisions(self.selectedCountry.code);\r\n self.subdivisionSearchText = self.subdivision;\r\n // unregisterCountryWatch();\r\n unregisterCountryListWatch();\r\n }\r\n });\r\n\r\n let unregisterCountryWatch = this.$scope.$watch(\"address.country\", (newValue, oldValue) => {\r\n //this is a one time watcher for on load so that sub division selection will load\r\n //with list of subdivisions for the selected country\r\n //(due to load dependency between it and country)\r\n //unregistered after first use beyond with different values\r\n\r\n if (newValue !== oldValue) {\r\n self.selectedCountry = self.getCountry(self.country);\r\n self.loadSubdivisions(self.selectedCountry.code);\r\n self.subdivisionSearchText = self.subdivision;\r\n // unregisterCountryWatch();\r\n unregisterCountryListWatch();\r\n }\r\n });\r\n\r\n this.$scope.$on('$destroy', () => {\r\n unregisterCountryWatch();\r\n unregisterCountryListWatch();\r\n });\r\n }\r\n\r\n public validate(): void {\r\n //use the ng-message name as the key for the set validity function\r\n //boolean expression that describes valid.\r\n\r\n if (this.selectedCountry) {\r\n //subdivision conditionally required\r\n //TODO: Verify $setValidity signature\r\n var requiredValidity = this.selectedCountry && (this.selectedCountry.subdivisionRequired && this.subdivisionSearchText !== \"\")\r\n || (!this.selectedCountry.subdivisionRequired);\r\n (this.hostForm.subdivisionInput as any).$setValidity('conditionalRequired', requiredValidity);\r\n\r\n //subidvision required to be exact match\r\n var requiresExactMatch = (this.selectedCountry && this.selectedCountry.subdivisionExactMatch);\r\n var canMatch = (this.subdivisions && this.subdivisions.length > 0);\r\n\r\n if (canMatch) {\r\n var isMatch = canMatch && Linq.From(this.subdivisions)\r\n .Any((x) => { return x.name === this.subdivision; });\r\n\r\n var exactMatchValidity = (!requiresExactMatch || isMatch);\r\n\r\n (this.hostForm.subdivisionInput as any).$setValidity('exactMatch', exactMatchValidity);\r\n }\r\n }\r\n }\r\n\r\n public applyValidity(input, validity, validatorName): void {\r\n //if (((input.$error[validatorName] === undefined || input.$error[validatorName] === false)\r\n // && validity === false)\r\n // || input.$error[validatorName] === true && validity === true)\r\n input.$setValidity(validatorName, validity);\r\n }\r\n\r\n public onChange(): void {\r\n this.validate();\r\n }\r\n\r\n public onCountrySelect(): void {\r\n this.selectedCountry = this.getCountry(this.country);\r\n this.subdivision = '';\r\n this.selectedSubdivision = null;\r\n this.subdivisionSearchText = '';\r\n this.loadSubdivisions(this.selectedCountry.code);\r\n this.countryRequiresExactMatch = this.selectedCountry\r\n && this.selectedCountry.subdivisionExactMatch;\r\n this.validate();\r\n this.hostForm.subdivisionInput.$setUntouched();\r\n }\r\n\r\n public loadCountries(): ng.IPromise {\r\n this.isLoading = true;\r\n return this.Country.query({}, {})\r\n .$promise\r\n .then((response) => {\r\n this.countries = response;\r\n // onCountrySelect();\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n //return exception.catcher('XHR Failed for Account.save')(e);\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n public loadSubdivisions(code): any {\r\n this.isLoading = true;\r\n return this.Subdivision.query({ code: code }, { code: code })\r\n .$promise\r\n .then((response) => {\r\n this.subdivisions = response;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n //return exception.catcher('XHR Failed for Account.save')(e);\r\n })\r\n .finally(() => {\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n public subdivisionDisabled(): boolean {\r\n return this.ngDisabled\r\n || !(this.selectedCountry)\r\n || (this.selectedCountry && !this.selectedCountry.subdivisionRequired);\r\n }\r\n\r\n public onSubdivisionChanged(item): void {\r\n this.subdivision = (item)\r\n ? item.name\r\n : this.subdivisionSearchText;\r\n\r\n this.validate();\r\n }\r\n\r\n public getSubdivisionDescription(): string {\r\n return (this.selectedCountry && this.selectedCountry.subdivisionDescription)\r\n ? this.selectedCountry.subdivisionDescription\r\n : \"Province / Region / State\";\r\n }\r\n\r\n public getSubdivisions(searchTerm): Array {\r\n if (!searchTerm || searchTerm.length === 0) return this.subdivisions;\r\n\r\n var lowerTerm = searchTerm.toLowerCase();\r\n\r\n return Linq.From(this.subdivisions)\r\n .Where((x:Dto.ISubdivision) => {\r\n return x.name.toLowerCase().startsWith(lowerTerm)\r\n || x.code.toString().toLowerCase().startsWith(lowerTerm);\r\n })\r\n .ToArray();\r\n }\r\n\r\n public getCountry(countryName): Dto.ICountry {\r\n return Linq.From(this.countries)\r\n .FirstOrDefault((x) => { return x.name == countryName; });\r\n }\r\n\r\n public getSubdivision(subdivisionName): Dto.ISubdivision {\r\n return Linq.From(this.subdivisions)\r\n .FirstOrDefault((x) => { return x.name == subdivisionName; });\r\n }\r\n}\r\n\r\nlet addrComponent = new AddressComponent();\r\nexport default addrComponent;\r\nexport { addrComponent as AddressComponent, IAddressController, AddressController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/address.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n\\n\\n
\\n
Address Line 1 is required.
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n{{country.name}}\\n\\n\\n
\\n
Country is required.
\\n
\\n
\\n
\\n\\n\\n{{item.name}}\\n\\n
\\n
{{address.getSubdivisionDescription()}} is required.
\\n
{{address.getSubdivisionDescription()}} must be an item from the list.
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
City is required.
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Postal code is required.
\\n
\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/address.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/address.html\n// module id = 573\n// module chunks = 0","import * as ng from 'angular';\r\nimport {ComponentRegistration, ISiteConfigService} from '../core';\r\nimport {ICustomerSettingsService, IToastMessageService} from '../services';\r\nimport {ICreditCardTicketResource} from \"../data/credit-card-ticket\";\r\nimport SiteConfig from \"../core/site-config\";\r\nimport {IReCaptchaValidationResource} from \"../data\";\r\nimport {CreditCardControlState} from \"./credit-card-control-state\";\r\n\r\nlet template = require('./credit-card.html');\r\n\r\nclass CreditCardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('creditCard', {\r\n controller: CreditCardController,\r\n templateUrl: template,\r\n controllerAs: 'creditCard',\r\n bindings: {\r\n cardType: \"<\",\r\n maskedNumber: \"<\",\r\n expMonth: \"<\",\r\n expYear: \"<\",\r\n token: \"<\",\r\n editOnly: \"=?\",\r\n creditCardControlState: \"=?\",\r\n userIdentifier: \"=?\",\r\n resetAfterSuccess: \"=?\",\r\n onTokenReceived: \"&\",\r\n onTokenCancelled: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ICreditCardController {\r\n updateFullExpiration(): void;\r\n validate(): void;\r\n onChange(): void;\r\n updateCreditCardModel(data): void;\r\n clearHiddenValues(elem): void;\r\n onPaymentProcessClick(): void;\r\n convertToFourDigitYear(yearPart): string;\r\n}\r\n\r\nclass CreditCardController implements ICreditCardController {\r\n private static $inject: Array = ['$scope', 'SiteConfig', '$sce', 'CustomerSettings', 'CreditCardTicket', 'ReCaptchaValidation', '$q',\r\n '$log', 'toastMessageFactory', ];\r\n\r\n //private fields\r\n private tokenUrl: string;\r\n private expirationDisplay: string;\r\n \r\n //bindings\r\n\r\n private cardType: string;\r\n private maskedNumber: string;\r\n private expMonth: string;\r\n private expYear: string;\r\n private token: string;\r\n private editOnly: Boolean;\r\n private _creditCardControlState: CreditCardControlState;\r\n private _recaptchaResponse: string;\r\n\r\n private _userIdentifier: string;\r\n private _resetAfterSuccess: Boolean;\r\n private _onTokenReceived: Function;\r\n private _onTokenCancelled: Function;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private SiteConfig: ISiteConfigService,\r\n private $sce: ng.ISCEService,\r\n private CustomerSettings: ICustomerSettingsService,\r\n private CreditCardTicket: ICreditCardTicketResource,\r\n private ReCaptchaValidation: IReCaptchaValidationResource,\r\n private $q: ng.IQService,\r\n private $log: ng.ILogService,\r\n private toastMessageFactory: IToastMessageService) {\r\n\r\n console.log(\"creditCard controller loaded.\");\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.cardType = this.cardType || (this.maskedNumber) ? this.resolveCardTypeFromNumber(this.maskedNumber) : '';\r\n this.maskedNumber = this.maskedNumber || '';\r\n this.expMonth = this.expMonth || '';\r\n this.expYear = this.expYear || '';\r\n\r\n this.creditCardControlState = this.creditCardControlState || CreditCardControlState.ReadMode;\r\n this._recaptchaResponse = null;\r\n\r\n this.editOnly = this.editOnly || false;\r\n\r\n this.tokenUrl = this.tokenUrl || '';\r\n this.resetAfterSuccess = this.resetAfterSuccess || false;\r\n\r\n this.userIdentifier = this.userIdentifier || '';\r\n\r\n let self = this;\r\n var revokeMonthLister = this.$scope.$watch(\"creditCard.expMonth\", () => { self.updateFullExpiration() });\r\n var revokeYearListener = this.$scope.$watch(\"creditCard.expYear\", () => { self.updateFullExpiration() });\r\n\r\n this.$scope.$on(\"$destroy\", () => {\r\n revokeMonthLister();\r\n revokeYearListener();\r\n });\r\n\r\n console.log(\"creditCard controller activated.\");\r\n }\r\n\r\n public get userIdentifier() : string {\r\n return this._userIdentifier;\r\n }\r\n\r\n public set userIdentifier(value: string) {\r\n\r\n if (!value)\r\n return;\r\n\r\n this._userIdentifier = value;\r\n }\r\n\r\n public get resetAfterSuccess() : Boolean {\r\n return this._resetAfterSuccess;\r\n }\r\n\r\n public set resetAfterSuccess(value: Boolean) {\r\n this._resetAfterSuccess = value;\r\n }\r\n\r\n public get onTokenReceived() : Function {\r\n return this._onTokenReceived;\r\n }\r\n\r\n public set onTokenReceived(value: Function) {\r\n this._onTokenReceived = value;\r\n }\r\n\r\n public get onTokenCancelled() : Function {\r\n return this._onTokenCancelled;\r\n }\r\n\r\n public set onTokenCancelled(value: Function) {\r\n this._onTokenCancelled = value;\r\n }\r\n\r\n private get creditCardControlState() : CreditCardControlState {\r\n return this._creditCardControlState;\r\n }\r\n\r\n private set creditCardControlState(value: CreditCardControlState) {\r\n if (value === this._creditCardControlState)\r\n return;\r\n\r\n this._creditCardControlState = value;\r\n\r\n if (this._creditCardControlState === CreditCardControlState.EditMode) {\r\n\r\n // Lets refresh the token Url with a new ticket number every time we are in edit mode.\r\n // Also, if this.CustomerSettings is undefined, then the constructor was not called\r\n // yet (we are coming here because of binding set on credit-card control property).\r\n if (this.CustomerSettings && this.CreditCardTicket)\r\n this.getTokenUrl();\r\n }\r\n else {\r\n this.tokenUrl = '';\r\n }\r\n }\r\n\r\n private resolveCardTypeFromNumber(ccMaskedNumber: string): string {\r\n //this is a basic credit card type determinator, any card outside of the\r\n //major ones that have begining digits in the \r\n //major card ranges will be returned as the major card type\r\n //this code is to be removed in a later hot fix once parcs stops sending null card types.\r\n var startingChar = ccMaskedNumber.length > 0 ? ccMaskedNumber[0] : '';\r\n if (startingChar == '') return '';\r\n switch (startingChar) {\r\n case '5':\r\n case '2':\r\n return \"MasterCard\";\r\n case '4':\r\n return \"Visa\";\r\n case '6':\r\n return \"Discover\";\r\n case '3':\r\n return \"American Express\"\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public updateFullExpiration(): void {\r\n this.expirationDisplay = this.expMonth + \"/\" + this.expYear;\r\n }\r\n\r\n public validate(): void {\r\n \r\n }\r\n\r\n public onChange(): void {\r\n this.validate();\r\n }\r\n\r\n private getTokenUrl(): void {\r\n this.tokenUrl = '';\r\n\r\n this.CreditCardTicket.getNewTokenTicket({ id: this.userIdentifier, reCaptchaToken: this._recaptchaResponse }).$promise\r\n .then((ticketResponse) => {\r\n\r\n return this.CustomerSettings.getCreditCardSettings().then((settingResponse) => {\r\n\r\n let url = settingResponse.newTokenUrl;\r\n \r\n url += \"?redirectUrl=\" + settingResponse.redirectHtml;\r\n url += \"&redirectError=false\";\r\n url += \"&cssUrl=\" + settingResponse.redirectCss;\r\n url += '&appId=' + settingResponse.creditCardServiceAppId;\r\n url += \"&creditCardOperationTicket=\" + ticketResponse.ticket;\r\n url += \"&showCloseButton=true\";\r\n url += \"&showCreditCardTypes=true\";\r\n url += \"&closeButtonText=Cancel\";\r\n\r\n let trustedUri = this.$sce.trustAsResourceUrl(url);\r\n this.tokenUrl = trustedUri;\r\n return this.$q.resolve(trustedUri);\r\n });\r\n })\r\n .catch((e) => {\r\n if (!this.resetAfterSuccess)\r\n this.creditCardControlState = CreditCardControlState.ReadMode;\r\n\r\n this.$log.log(e, 'CreditCardTicketService: Failed to get a credit card operation request authorization for current user.');\r\n this.toastMessageFactory.showServerError('The credit card operation request failed.\\r\\nPlease try again, if the issue persists contact an administrator.');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n\r\n public updateCreditCardModel(data): void {\r\n this.token = data.token;\r\n this.maskedNumber = data.masked;\r\n this.expMonth = data.expiration.substring(2, 4);\r\n this.expYear = this.convertToFourDigitYear(data.expiration.substring(0, 2));\r\n this.cardType = data.type;\r\n }\r\n\r\n public clearHiddenValues(elem): void {\r\n // clear hidden input values\r\n elem.dataset.cancelled = null;\r\n elem.dataset.token = null;\r\n elem.dataset.masked = null;\r\n elem.dataset.expiration = null;\r\n elem.dataset.type = null;\r\n }\r\n \r\n public onPaymentProcessClick(): void {\r\n\r\n // read hidden input values\r\n var processPaymentData = document.getElementById('process-payment-data');\r\n\r\n var isCancelled = processPaymentData.dataset.cancelled === \"true\";\r\n\r\n if (!isCancelled)\r\n this.updateCreditCardModel(processPaymentData.dataset);\r\n\r\n this.clearHiddenValues(processPaymentData);\r\n\r\n // reset the display to read-only state\r\n if (!this.resetAfterSuccess)\r\n this.creditCardControlState = CreditCardControlState.ReadMode;\r\n\r\n //fire external event handler if exists\r\n if (isCancelled) {\r\n if (this.onTokenCancelled)\r\n this.onTokenCancelled();\r\n }\r\n else if (this.onTokenReceived) {\r\n let creditCard = {\r\n creditCardType: this.cardType,\r\n expirationMonth: this.expMonth,\r\n expirationYear: this.expYear,\r\n maskedCreditCard: this.maskedNumber,\r\n token: this.token\r\n }\r\n this.onTokenReceived({args: creditCard });\r\n }\r\n }\r\n\r\n public convertToFourDigitYear(yearPart): string {\r\n return ((yearPart.length === 2) ? '20' : '')\r\n + yearPart;\r\n }\r\n\r\n private onReCaptchaValidationCancelled() {\r\n if (this.onTokenCancelled)\r\n this.onTokenCancelled();\r\n }\r\n\r\n private onRecaptchaValidationSucceeded(response: string) : void {\r\n this._recaptchaResponse = response;\r\n this.creditCardControlState = CreditCardControlState.EditMode;\r\n }\r\n}\r\n\r\nlet ccComponent = new CreditCardComponent();\r\nexport default ccComponent;\r\nexport { ccComponent as CreditCardComponent, ICreditCardController, CreditCardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/credit-card.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n\\n
\\nCancel\\n
\\n
\\n\\n\\n
\\n
\\n\";\nvar id1=\"app/user-controls/credit-card.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/credit-card.html\n// module id = 575\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nlet template = require('./email.html');\r\n\r\nclass EmailComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('email', {\r\n controller: EmailController,\r\n templateUrl: template,\r\n controllerAs: 'email',\r\n bindings: {\r\n name: \"@?\",\r\n label: '@?',\r\n required: '=?',\r\n value: '=?',\r\n ngDisabled: \"=?\",\r\n form: \"&?\",\r\n change: \"&?\",\r\n blur: \"&?\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IEmailController {\r\n validate(): void;\r\n assureInitValidation(): void;\r\n getRegExp(): RegExp;\r\n onChange(): void;\r\n onBlur(): void;\r\n}\r\n\r\nclass EmailController implements IEmailController {\r\n private static $inject: Array = ['$scope', '$timeout'];\r\n\r\n //private fields\r\n private fieldName: string;\r\n private displayLabel: string;\r\n private isRequired: Boolean;\r\n private hostForm: ng.IFormController;\r\n private field: any;\r\n public validationPattern = this.getRegExp();\r\n\r\n //bindings\r\n private name: string;\r\n private label: string;\r\n private required: Boolean;\r\n private value: string;\r\n private ngDisabled: Boolean;\r\n private form: Function;\r\n private change: Function;\r\n private blur: Function;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $timeout: ng.ITimeoutService) {\r\n\r\n console.log(\"email controller loaded.\");\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.value = this.value || '';\r\n this.fieldName = this.name || 'email';\r\n this.displayLabel = this.label || 'Email';\r\n this.isRequired = this.required || false;\r\n this.ngDisabled = this.ngDisabled || false;\r\n\r\n this.hostForm = this.form();\r\n\r\n if (!this.hostForm)\r\n throw \"Form reference was not resolved by the execution of the expression.\";\r\n\r\n let self = this;\r\n var handleRevoker = this.$scope.$watch(\"email.value\", (oldVal, newVal) => {\r\n if (oldVal != newVal) {\r\n self.validate();\r\n handleRevoker();\r\n }\r\n });\r\n\r\n this.assureInitValidation();\r\n\r\n console.log(\"Phone controller activated.\");\r\n }\r\n\r\n public validate(): void {\r\n //use the ng-message name as the key for the set validity function\r\n //boolean expression that describes valid.\r\n let field = this.field = this.hostForm[this.fieldName] as any;\r\n\r\n //email conditionally required\r\n if (field) {\r\n // field.$setValidity('required', !email.isRequired || email.isRequired && email.value !== \"\");\r\n //field.$setValidity('invalid', validateEmail(email.value));\r\n }\r\n }\r\n\r\n public assureInitValidation(): void {\r\n if (this.hostForm[this.fieldName]) {\r\n this.validate();\r\n } else {\r\n setTimeout(() => {\r\n this.assureInitValidation();\r\n }, 500)\r\n }\r\n }\r\n\r\n public getRegExp(): RegExp {\r\n return /^(([^<>()[\\]\\\\.,;:\\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 }\r\n\r\n public onChange(): void {\r\n this.validate();\r\n if (this.change) {\r\n this.$timeout(() => {\r\n this.change();\r\n });\r\n }\r\n }\r\n\r\n public onBlur(): void {\r\n this.validate();\r\n if (this.blur) {\r\n this.blur();\r\n }\r\n }\r\n\r\n}\r\n\r\nlet emComponent = new EmailComponent();\r\nexport default emComponent;\r\nexport { emComponent as EmailComponent, IEmailController, EmailController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/email.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n
\\n
{{email.displayLabel}} is required.
\\n
{{email.displayLabel}} is invalid.
\\n
\\n
\\n
\\n\";\nvar id1=\"app/user-controls/email.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/email.html\n// module id = 577\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nimport { ICustomerSettingsService } from '../services';\r\nimport { Dto } from '../data';\r\nlet template = require('./footer.html');\r\nlet emptyLogoPath = require('../assets/img/HJ_logo.jpg');\r\n\r\nclass FooterComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('footer', {\r\n controller: FooterController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IFooterController {\r\n activate(): void;\r\n}\r\n\r\nclass FooterController implements IFooterController {\r\n private static $inject: Array = ['$window', '$scope', '$rootRouter', 'CustomerSettings'];\r\n\r\n public emptyLogo = emptyLogoPath;\r\n private customerSettings: Dto.IContentSettings = {} as Dto.IContentSettings;\r\n\r\n constructor(private $window: ng.IWindowService,\r\n private $scope: ng.IScope,\r\n private $rootRouter: ng.Router,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log(\"footerBar controller loaded.\");\r\n\r\n this.CustomerSettings.getContentSettings()\r\n .then((content) => {\r\n this.customerSettings = content;\r\n });\r\n\r\n console.log(\"footerBar controller activated.\");\r\n }\r\n\r\n\r\n public get logoPath(): string {\r\n var footerLogo = this.customerSettings.footerLogo;\r\n return (footerLogo) ? footerLogo.src : null || this.emptyLogo;\r\n }\r\n\r\n}\r\n\r\nlet ftrComponent = new FooterComponent();\r\nexport default ftrComponent;\r\nexport { ftrComponent as FooterComponent, IFooterController, FooterController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/footer.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n\\\"Hartsfield-Jackson\\\"\\n
\\n
\\n
©{{asm.today | date:'yyyy'}} Hartsfield-Jackson Atlanta International Airport
\\n\\n
‘Best Experienced using Chrome’
\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/footer.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/footer.html\n// module id = 579\n// module chunks = 0","module.exports = __webpack_public_path__ + \"20aaf9b15edcd8eb06555ad970d697be.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/img/HJ_logo.jpg\n// module id = 580\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nimport { ISessionService, ICustomerSettingsService } from '../services';\r\nimport { ISiteConfigService } from '../core';\r\nimport { IAuthService } from '../components/security';\r\nimport { Dto } from '../data';\r\nlet template = require('./header-bar.html');\r\nlet emptyLogoPath = require('../assets/img/emptylogo.jpg');\r\n\r\nclass HeaderBarComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('headerBar', {\r\n controller: HeaderBarController,\r\n templateUrl: template,\r\n controllerAs: 'headerBar',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IHeaderBarController {\r\n activate(): void;\r\n onCustomerMenuButtonClick(): void;\r\n onSessionRefresh(current): void;\r\n onLogoutClick(): void\r\n onLanguageChange(): any;\r\n}\r\n\r\nclass HeaderBarController implements IHeaderBarController {\r\n private static $inject: Array = ['$window', '$scope', '$rootRouter', 'SiteConfig', 'Session', 'Auth', 'CustomerSettings'];\r\n\r\n public emptyLogo = emptyLogoPath;\r\n //private fields\r\n private session: any = {};\r\n private languages: Array = [];\r\n private customerSettings: Dto.IContentSettings = {} as Dto.IContentSettings;\r\n\r\n constructor(private $window: ng.IWindowService,\r\n private $scope: ng.IScope,\r\n private $rootRouter: ng.Router,\r\n private SiteConfig: ISiteConfigService,\r\n private Session: ISessionService,\r\n private Auth: IAuthService,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log(\"headerBar controller loaded.\");\r\n\r\n this.CustomerSettings.getLanguageSettings()\r\n .then((language) => {\r\n this.languages = language.languages;\r\n });\r\n\r\n this.CustomerSettings.getContentSettings()\r\n .then((content) => {\r\n this.customerSettings = content;\r\n });\r\n\r\n this.Session.registerRefreshHandler((current) => { this.onSessionRefresh(current) });\r\n this.Session.getSessionAsync()\r\n .then((current) => {\r\n this.session = current;\r\n });\r\n\r\n console.log(\"headerBar controller activated.\");\r\n }\r\n\r\n public onCustomerMenuButtonClick(): void {\r\n this.$window.location.href = this.customerSettings.menuButton.hyperlink;\r\n }\r\n\r\n public onSessionRefresh(current): void {\r\n this.session = current;\r\n }\r\n\r\n public onLogoutClick(): void {\r\n this.session = this.Session.reset();\r\n this.$rootRouter.navigate(['Home']);\r\n //this.$window.location.reload();\r\n }\r\n\r\n public onLanguageChange(): void {\r\n this.Session.setLanguage(this.session.language);\r\n }\r\n\r\n public get logoPath(): string {\r\n var headerLogo = this.customerSettings.headerLogo;\r\n return (headerLogo) ? headerLogo.src : null || this.emptyLogo; \r\n }\r\n\r\n}\r\n\r\nlet hbarComponent = new HeaderBarComponent();\r\nexport default hbarComponent;\r\nexport { hbarComponent as HeaderBarComponent, IHeaderBarController, HeaderBarController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/header-bar.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n\\nHome\\n\\\"logo\\\"\\n\\n\\nHome\\nReserve Parking\\n\\n
\\n
\\n
\\n
\\n\\n\\n{{language.name}}\\n\\n\\n
\\n
\\n\\nHome\\n\\n
\\n
\\n{{ headerBar.customerSettings.menuButton.label }}\\n
\\n
\\n\\n\\n
\\n
{{headerBar.session.profile.firstName}} {{headerBar.session.profile.lastName}}
\\n
\\naccount_box\\n
\\n
\\n
\\n\\n\\n\\nAccount\\n\\n\\n\\n{{ headerBar.customerSettings.menuButton.label }}\\n\\n\\n\\nProfile\\n\\n\\n\\n\\nSecurity Options\\n\\n\\n\\n\\nSign out\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/header-bar.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/header-bar.html\n// module id = 582\n// module chunks = 0","module.exports = __webpack_public_path__ + \"e4ef02c22d7c22417eb45ca9dae226e2.jpg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/img/emptylogo.jpg\n// module id = 583\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nimport {ISessionService, ISessionState} from \"../services\";\r\nlet template = require('./nav-bar.html');\r\n\r\nclass NavBarComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('navBar', {\r\n controller: NavBarController,\r\n templateUrl: template,\r\n controllerAs: 'navBar',\r\n bindings: {\r\n selected: '@'\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\ninterface INavBarController {\r\n isSelected(index): Boolean;\r\n onNavClick(index): void;\r\n isReservedParkingAccount: Boolean;\r\n}\r\n\r\nclass NavBarController implements INavBarController {\r\n public static $inject: Array = ['$rootRouter', 'Session'];\r\n\r\n //private fields\r\n \r\n //bindings\r\n private selected: any;\r\n\r\n private session: ISessionState;\r\n\r\n constructor(private $rootRouter:ng.Router, private Session: ISessionService) {\r\n console.log('NavBarController activated');\r\n }\r\n\r\n public $onInit(): void {\r\n\r\n let self = this;\r\n this.Session.getSessionAsync()\r\n .then((session) => {\r\n self.session = session;\r\n }).catch((e) => {\r\n console.error(e);\r\n console.error('Failed to load session data. Some tabs might not show up or might miss-function.');\r\n });\r\n\r\n console.log('NavBarController loaded');\r\n }\r\n\r\n public get isReservedParkingAccount() : Boolean {\r\n return this.session && this.session.account && this.session.account.isReservedParking;\r\n }\r\n\r\n public isSelected(index): Boolean {\r\n return index === this.selected;\r\n }\r\n\r\n public onNavClick(index): void {\r\n this.selected = index;\r\n this.$rootRouter.navigate([index]);\r\n }\r\n\r\n}\r\n\r\nlet nbarComponent = new NavBarComponent();\r\nexport default nbarComponent;\r\nexport { nbarComponent as NavBarComponent, INavBarController, NavBarController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/nav-bar.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\nOverview\\n\\n\\nActivity\\n\\n\\nAccount\\n\\n\\nMedia\\n\\n\\nMessages\\n\\n\\n
\\n
\\n\\n\\n
\\nmenu\\n
\\n
\\n\\n\\n\\nOverview\\n\\n\\n\\n\\nActivity\\n\\n\\n\\n\\nAccount\\n\\n\\n\\n\\nMedia\\n\\n\\n\\n\\nMessages\\n\\n\\n\\n
\\n
\";\nvar id1=\"app/user-controls/nav-bar.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/nav-bar.html\n// module id = 585\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../core';\r\nimport { Dto, IParkingAreaResource } from '../data';\r\nlet template = require('./parking-area.html');\r\n\r\nclass ParkingAreaComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('parkingArea', {\r\n controller: ParkingAreaController,\r\n templateUrl: template,\r\n controllerAs: 'parkingArea',\r\n bindings: {\r\n preferredSelected: \"=?\",\r\n preferred: '=?',\r\n alternate: \"=?\",\r\n alternateSelected: \"=?\",\r\n ngDisabled: \"=?\",\r\n required: '=?',\r\n form: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IParkingAreaController {\r\n onPreferredChange(): void;\r\n onAlternateChange(): void;\r\n loadParkingAreas(): any;\r\n}\r\n\r\ninterface IParkingAreaFormController extends ng.IFormController {\r\n parkingAreaPrimary: ng.IFormController;\r\n parkingAreaSecondary: ng.IFormController;\r\n}\r\n\r\nclass ParkingAreaController implements IParkingAreaController {\r\n private static $inject: Array = [\"$scope\", \"ParkingArea\"];\r\n\r\n //private fields\r\n private parkingAreas: Array = [];\r\n private selectedPrimary: any = {};\r\n private selectedSecondary: any = {};\r\n private useSecondary: Boolean = false;\r\n private hostForm: IParkingAreaFormController;\r\n private isLoading: Boolean;\r\n\r\n //bindings\r\n private preferredSelected: Dto.IParkingArea;\r\n private preferred: string;\r\n private alternate: string;\r\n private alternateSelected: Boolean;\r\n private ngDisabled: Boolean;\r\n private required: Boolean;\r\n private form: Function;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private ParkingArea: IParkingAreaResource) {\r\n\r\n console.log(\"ParkingArea controller loaded.\");\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.preferred = this.preferred || '';\r\n this.alternate = this.alternate || '';\r\n this.ngDisabled = this.ngDisabled || false;\r\n this.required = this.required || false;\r\n\r\n this.hostForm = this.form();\r\n if (!this.hostForm)\r\n throw \"Form reference was not resolved by the execution of the expression.\";\r\n\r\n this.loadParkingAreas()\r\n .then(() => {\r\n this.onPreferredChange();\r\n this.onAlternateChange();\r\n });\r\n\r\n console.log(\"ParkingArea controller activated.\");\r\n }\r\n\r\n public onPreferredChange(): void {\r\n this.selectedPrimary = Linq.From(this.parkingAreas)\r\n .FirstOrDefault((x) => { return x.id === this.preferred; });\r\n this.preferredSelected = this.selectedPrimary;\r\n }\r\n\r\n public onAlternateChange(): void {\r\n this.selectedSecondary = Linq.From(this.parkingAreas)\r\n .FirstOrDefault( (x) => { return x.id === this.alternate; });\r\n this.alternateSelected = this.selectedSecondary;\r\n }\r\n\r\n public loadParkingAreas(): any {\r\n this.isLoading = true;\r\n return this.ParkingArea.query({})\r\n .$promise\r\n .then((response): any => {\r\n this.parkingAreas = response;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n}\r\n\r\nlet pareaComponent = new ParkingAreaComponent();\r\nexport default pareaComponent;\r\nexport { pareaComponent as ParkingAreaComponent, IParkingAreaController, ParkingAreaController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/parking-area.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n{{area.name}}\\n{{area.spacesAvailable ? \\\"Spaces Available\\\" : \\\"Waiting List\\\" }}\\n{{area.membershipCost | currency}}\\n
\\n
\\n
\\n
\\n
Parking area selection is required.
\\n
\\n
\\n
\\n
\\n
\\n
\\nMembership Cost: {{parkingArea.selectedPrimary.membershipCost | currency}}\\n
\\n
\\nDaily Rate: {{parkingArea.selectedPrimary.dailyRate | currency}}\\n
\\n
\\n
\\n
\\n
\\n

\\nMembership is currently full for {{parkingArea.selectedPrimary.name }}. Choosing this as your preferred parking area will add you to a waiting list.\\nIf a space becomes available, your parking area will be updated to reflect this change and your account will be charged appropriately.\\n

\\n
\\n
\\n
Would you like to be a member of an alternative parking area until a space becomes available in your preferred area?*
\\n\\n
Yes
\\n
No
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n{{area.name|translate}}\\n{{area.spacesAvailable ? (\\\"Spaces Available\\\"|translate) : (\\\"Waiting List\\\"|translate) }}\\n{{area.membershipCost | currency}}\\n
\\n
\\n
\\n
\\n
Parking area selection is required.
\\n
\\n
\\n
\\n
\\n
\\n
\\nMembership Cost: {{parkingArea.selectedSecondary.membershipCost | currency}}\\n
\\n
\\nDaily Rate: {{parkingArea.selectedSecondary.dailyRate | currency}}\\n
\\n
\\n
\\n
\\n
\\n

\\nMembership is currently full for {{parkingArea.selectedSecondary.name }}. Choosing this as your secondary parking area will add you to a waiting list.\\nIf a space becomes available, your parking area will be updated to reflect this change and your account will be charged appropriately.\\n

\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/parking-area.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/parking-area.html\n// module id = 587\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { Moment } from 'moment';\r\nimport { ComponentRegistration } from '../core';\r\nimport { Dto, IParkingMediaTypeResource } from '../data';\r\nimport {IParkingMediaType} from \"../data/interfaces\";\r\nlet template = require('./parking-media.html');\r\n\r\nlet MediaIdentifierDelimiter = ',';\r\n\r\n// Note, DuplicateIdentifierErrorName becomes a variable in errors object. So the name should be alphanumeric.\r\nlet DuplicateIdentifierErrorName = 'duplicateIdentifier';\r\n\r\nclass ParkingMediaComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('parkingMedia', {\r\n controller: ParkingMediaController,\r\n templateUrl: template,\r\n controllerAs: 'parking',\r\n bindings: {\r\n selections: '=?',\r\n ngDisabled: \"=?\",\r\n singleSelect: \"@?\",\r\n required: \"=?\",\r\n form: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IParkingMediaController {\r\n\r\n // Selected parking media type Id in replace existing media mode.\r\n selectedIndex: string;\r\n // This is a resource to get the parking media types from API\r\n parkingMediaTypeId: IParkingMediaTypeResource;\r\n _onSingleSelectChange(): void;\r\n onMediaIdentifierChanged(mediaData: any) : void;\r\n onMultiSelectClick(): void;\r\n onSingleSelectClick(): void;\r\n buildMediaRequests(mediaTypes): any;\r\n loadParkingMediaTypes(): any;\r\n getFormControlHasErrors(controlName: string, errors: string[]) : boolean;\r\n getFormControl(controlName : string) : any;\r\n}\r\n\r\nclass UserEnteredIdentifierData {\r\n\r\n public constructor(private _mediaIdentifierName : string, private _mediaIdentifier : string) {\r\n if (!this._mediaIdentifierName)\r\n this._mediaIdentifierName = '';\r\n }\r\n\r\n public get mediaIdentifierName() : string {\r\n return this._mediaIdentifierName;\r\n }\r\n\r\n public get mediaIdentifier() : string {\r\n if (this._validateDuplicateIdentifiers) {\r\n var validateDuplicateIdentifiers = this._validateDuplicateIdentifiers;\r\n this._validateDuplicateIdentifiers = null;\r\n\r\n // We need to run the validator only once, when \"Replace Existing\" is checked/unchecked\r\n validateDuplicateIdentifiers();\r\n }\r\n\r\n return this._mediaIdentifier;\r\n }\r\n\r\n public set mediaIdentifier(value : string) {\r\n this._mediaIdentifier = value;\r\n }\r\n\r\n private _validateDuplicateIdentifiers: () => void;\r\n\r\n public set validateDuplicateIdentifiers(validator: () => void) {\r\n this._validateDuplicateIdentifiers = validator;\r\n }\r\n}\r\n\r\nclass MediaRequest {\r\n\r\n private _parsedMediaIdentifiers : UserEnteredIdentifierData[] = [];\r\n private _quantity: number;\r\n\r\n requestDateTime: string;\r\n recordVersion: string;\r\n replaceParkingMediaId: string;\r\n\r\n private _validationPattern : RegExp;\r\n private _mostRecentQuantity : number | null = null;\r\n\r\n public get subTotal(): number {\r\n return this.quantity * this.type.price;\r\n }\r\n\r\n // Note, we cannot just pass IParkingMediaController, since java script error is thrown that scope cannot be copied.\r\n // So we pass functions to get controller values that might cjhange.\r\n constructor(private _parkingMediaType : IParkingMediaType, mediaIdentifier : string, private _isSingleSelect :() => boolean, private _singleSelectSelectedIndexFunc: () => string | null,\r\n private _validateDuplicateIdentifiers: () => void) {\r\n\r\n this._validationPattern = new RegExp('^$|' + this._parkingMediaType.identifierValidationExpression);\r\n\r\n if (!mediaIdentifier)\r\n mediaIdentifier = '';\r\n else\r\n mediaIdentifier = mediaIdentifier.trim();\r\n\r\n if (mediaIdentifier) {\r\n let parsedMediaIdentifiers = this.mediaIdentifier.split(MediaIdentifierDelimiter);\r\n\r\n for (var i : number = 0; i < parsedMediaIdentifiers.length; ++i)\r\n this._parsedMediaIdentifiers.push(new UserEnteredIdentifierData(this.parkingMediaTypeId + '-' + i, parsedMediaIdentifiers[i]));\r\n }\r\n }\r\n\r\n public get parsedMediaIdentifiers() : UserEnteredIdentifierData[] {\r\n\r\n let singleSelectQuantity = this.getSingleSelectQuantity();\r\n\r\n if (singleSelectQuantity !== null) {\r\n // In single select mode lets show either 1 or 0 identifier.\r\n let parsedMediaIdentifiers : UserEnteredIdentifierData[] = [];\r\n if (singleSelectQuantity === 1) {\r\n\r\n if (this._quantity === 0 && this.supportsUserEntry) {\r\n // This will add item to array\r\n this.quantity = 1;\r\n }\r\n\r\n parsedMediaIdentifiers.push(this._parsedMediaIdentifiers[0]);\r\n }\r\n\r\n return parsedMediaIdentifiers;\r\n }\r\n\r\n return this._parsedMediaIdentifiers;\r\n }\r\n\r\n public get supportsUserEntry(): boolean {\r\n return this._parkingMediaType.supportsUserEntry;\r\n }\r\n\r\n public get validationPattern() : RegExp {\r\n return this._validationPattern;\r\n }\r\n\r\n public get type() : IParkingMediaType {\r\n return this._parkingMediaType;\r\n }\r\n\r\n public get parkingMediaTypeId() : string {\r\n return this._parkingMediaType.id;\r\n }\r\n\r\n public get quantity(): number {\r\n\r\n let singleSelectQuantity = this.getSingleSelectQuantity();\r\n //_mostRecentQuantity\r\n let newQuantity = singleSelectQuantity === null ? this._quantity : singleSelectQuantity;\r\n\r\n // If quantity was not called to resize the media identifiers based on new quantity,\r\n // lets call the setter to properly initialize _parsedMediaIdentifiers (this might be the case when\r\n // ParkingMediaController.copyMediaRequests() is called on SingleSelect radio button click).\r\n if (this._parsedMediaIdentifiers.length < newQuantity)\r\n this.quantity = newQuantity;\r\n\r\n // When we uncheck \"Replace Existing\" check box, the user entered identifiers after the first one are never validated again, since\r\n // they are just re-bound to existing identifiers, if there were more then one identifier, before the checkbox was checked.\r\n // So lets make sure run the validator, if the count changed.\r\n if (newQuantity !== this._mostRecentQuantity) {\r\n var self = this;\r\n this._parsedMediaIdentifiers.forEach(x => {\r\n // The validators will run single time, when the input controls are re-bound again to models.\r\n x.validateDuplicateIdentifiers = self._validateDuplicateIdentifiers;\r\n });\r\n }\r\n\r\n this._mostRecentQuantity = newQuantity;\r\n return newQuantity;\r\n }\r\n\r\n public set quantity(value: number) {\r\n\r\n this._quantity = value;\r\n\r\n let numOfItemsToAdd = this._quantity - this._parsedMediaIdentifiers.length;\r\n\r\n if (numOfItemsToAdd < 0) {\r\n let numberOfItemsToRemove = -numOfItemsToAdd;\r\n\r\n this._parsedMediaIdentifiers.splice(this._parsedMediaIdentifiers.length - numberOfItemsToRemove, numberOfItemsToRemove);\r\n }\r\n else {\r\n for (var i: number = 0; i < numOfItemsToAdd; ++i)\r\n this._parsedMediaIdentifiers.push(new UserEnteredIdentifierData(this.parkingMediaTypeId + '-' + this._parsedMediaIdentifiers.length, ''));\r\n }\r\n }\r\n\r\n public get mediaIdentifier() : string {\r\n\r\n // Generate a comma delimited media identifiers and assigns the value to _mediaIdentifier\r\n var aggregatedMediaIdentifier = '';\r\n\r\n let singleSelectQuantity = this.getSingleSelectQuantity();\r\n\r\n if (singleSelectQuantity) {\r\n // Note, this._parsedMediaIdentifiers is not expected to be empty (this.quantity resizes the array), however in\r\n // single select mode lets do this additional check just in case.\r\n return singleSelectQuantity === 1 && this._parsedMediaIdentifiers.length ? this._parsedMediaIdentifiers[0].mediaIdentifier.trim() : '';\r\n }\r\n\r\n let numberOfIdentifiers = this.quantity;\r\n\r\n for (var i : number = 0; i < numberOfIdentifiers; ++i) {\r\n\r\n let mediaIdentifier = this._parsedMediaIdentifiers[i].mediaIdentifier;\r\n\r\n if (!mediaIdentifier)\r\n mediaIdentifier = '';\r\n else\r\n mediaIdentifier = mediaIdentifier.trim();\r\n\r\n if (mediaIdentifier === '')\r\n continue;\r\n\r\n if (aggregatedMediaIdentifier.length > 0)\r\n aggregatedMediaIdentifier += MediaIdentifierDelimiter;\r\n\r\n aggregatedMediaIdentifier += mediaIdentifier;\r\n }\r\n\r\n return aggregatedMediaIdentifier;\r\n }\r\n\r\n private getSingleSelectQuantity() : number | null {\r\n // In single select the quantity is calculated. Lets return here to avoid any unpredicted changes to _parsedMediaIdentifiers\r\n // (say when the quantity control value changes to 1 or 0).\r\n\r\n if (this._isSingleSelect() === true) {\r\n // If nothing yet selected, _singleSelectSelectedIndexFunc() returns null, even if _isSingleSelect() is true.\r\n return this.parkingMediaTypeId === this._singleSelectSelectedIndexFunc() ? 1 : 0;\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n\r\nclass ParkingMediaController implements IParkingMediaController {\r\n private static $inject: Array = [\"$scope\", \"ParkingMediaType\", \"moment\"];\r\n\r\n //private fields\r\n private mediaTypes: Array = [];\r\n private mediaRequests: Array = [];\r\n\r\n private hostForm: ng.IFormController;\r\n //bindings\r\n private selections: Array;\r\n private ngDisabled: boolean;\r\n\r\n private form: Function;\r\n\r\n singleSelect: boolean = false;\r\n\r\n // This is actually parking media type identifier, which is string and not an index\r\n selectedIndex: string = null;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private _parkingMediaType: IParkingMediaTypeResource,\r\n private moment: Moment) {\r\n\r\n console.log(\"MediaSelect controller loading.\");\r\n }\r\n\r\n public $onInit(): void {\r\n this.ngDisabled = this.ngDisabled || false;\r\n this.singleSelect = this.singleSelect || false;\r\n this.selections = this.selections || [];\r\n\r\n this.hostForm = this.form();\r\n if (!this.hostForm) {\r\n throw \"Form reference was not resolved by the execution of the expression.\";\r\n }\r\n\r\n this.loadParkingMediaTypes();\r\n\r\n let self = this;\r\n this.$scope.$watch(\"parking.singleSelect\", () => {\r\n self._onSingleSelectChange();\r\n }, true);\r\n\r\n console.log(\"MediaSelect controller loaded.\");\r\n }\r\n\r\n public getFormControl(controlName : string) : any {\r\n return this.hostForm[controlName];\r\n }\r\n\r\n public getFormControlHasErrors(controlName: string, errors: string[]) : boolean {\r\n var errorsObject = this.getFormControl(controlName).$error;\r\n\r\n if (!errorsObject)\r\n return false;\r\n\r\n for (var i : number = 0; i < errors.length; ++i) {\r\n if (errorsObject.hasOwnProperty(errors[i]))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public get parkingMediaTypeId(): IParkingMediaTypeResource {\r\n return this._parkingMediaType;\r\n }\r\n\r\n public get total() : number {\r\n return Linq.From(this.mediaRequests).Sum((x) => x.subTotal);\r\n }\r\n\r\n private validate(): void {\r\n this.validateUserEnteredIdentifiers();\r\n }\r\n\r\n public _onSingleSelectChange(): void {\r\n // Lets assign something to this.selectedIndex.\r\n // Otherwise this value stays null, and no validation error is displayed.\r\n //We can add validator for the case, when nothing is selected (which is the same as there is no media type),\r\n // however it is not worth the effort, since normally the array this.mediaTypes will normally not be empty.\r\n // Also, latest we can make a change to re-select what was selected last time, instead of always selecting the first one,\r\n // However, this was always like this and no time to test the change.\r\n if (this.singleSelect && this.mediaTypes && this.mediaTypes.length > 0)\r\n this.selectedIndex = this.mediaTypes[0].id;\r\n else\r\n this.selectedIndex = null;\r\n\r\n this.copyMediaRequests();\r\n }\r\n\r\n public onMediaIdentifierChanged(mediaRequest: MediaRequest) : void {\r\n this.validateUserEnteredIdentifiers();\r\n this.copyMediaRequests();\r\n }\r\n\r\n public onMultiSelectClick(): void {\r\n this.copyMediaRequests();\r\n }\r\n\r\n public onSingleSelectClick(): void {\r\n this.copyMediaRequests();\r\n }\r\n\r\n private validateUserEnteredIdentifiers() : boolean {\r\n if (!this.mediaRequests)\r\n return true;\r\n\r\n // Lets validate that the identifier number is not entered multiple times.\r\n // Note, we check across all media identifiers for each user entered identifier.\r\n // We could have improved this slightly ad prohibit duplicate identifiers for media requests with the same media type.\r\n // However, I doubt we will ever have a scenario when the user enters two similar valid identifiers for two different transponder types.\r\n // First, different transponders have different formats. And second, the user will never have two\r\n // different transponders with the same identifier. Therefore, it is not worth an effort.\r\n\r\n var enteredMediaIdentifiers :string[] = [];\r\n var hasValidationErrors = false;\r\n\r\n for (var mediaRequestIndex : number = 0; mediaRequestIndex < this.mediaRequests.length; ++mediaRequestIndex) {\r\n var mediaRequest = this.mediaRequests[mediaRequestIndex];\r\n\r\n if (!mediaRequest.parsedMediaIdentifiers || !mediaRequest.supportsUserEntry)\r\n continue;\r\n\r\n for (var identifierIndex: number = 0; identifierIndex < mediaRequest.parsedMediaIdentifiers.length; ++identifierIndex) {\r\n var parsedIdentifier = mediaRequest.parsedMediaIdentifiers[identifierIndex];\r\n\r\n var parsedIdentifierControl = this.getFormControl(parsedIdentifier.mediaIdentifierName);\r\n\r\n if (!parsedIdentifierControl)\r\n continue;\r\n\r\n var mediaIdentifierToLowerCase = parsedIdentifier.mediaIdentifier || '';\r\n\r\n if (enteredMediaIdentifiers.find(x => mediaIdentifierToLowerCase === x)) {\r\n hasValidationErrors = true;\r\n parsedIdentifierControl.$setValidity(DuplicateIdentifierErrorName, false);\r\n }\r\n else {\r\n parsedIdentifierControl.$setValidity(DuplicateIdentifierErrorName, true);\r\n }\r\n\r\n enteredMediaIdentifiers.push(mediaIdentifierToLowerCase);\r\n }\r\n }\r\n\r\n return !hasValidationErrors;\r\n }\r\n\r\n /*\r\n Note, selections list is converted to IParkingMediaRequest, and is sent to the API in account-request.ts file.\r\n IParkingMediaRequest cannot have calculated properties, since the API call will fails (mediaRequests has calculated properties).\r\n Therefore unfortunately we have copy this.mediaRequests into slection, to get rid off calculate properties, when changes occur in UI.\r\n For now copying the values on changes is fast, however I will look into moving this code to the event handler,\r\n when working on other story.\r\n\r\n We need to hook up page leaving event, and copy the values once into selections variable (one option is to register a service, which\r\n will have onPageNext(), which will be called by wizards or media.ts. We can inject the service as a constructor parameter).\r\n * */\r\n private copyMediaRequests(): void {\r\n\r\n this.selections = [];\r\n\r\n ng.forEach(this.mediaRequests, (mediaRequest) => {\r\n this.selections.push({\r\n type: mediaRequest.type,\r\n parkingMediaTypeId: mediaRequest.parkingMediaTypeId,\r\n requestDateTime: mediaRequest.requestDateTime,\r\n quantity: mediaRequest.quantity,\r\n supportsUserEntry: mediaRequest.supportsUserEntry,\r\n mediaIdentifier: mediaRequest.mediaIdentifier,\r\n recordVersion: mediaRequest.recordVersion,\r\n replaceParkingMediaId: mediaRequest.replaceParkingMediaId\r\n });\r\n });\r\n }\r\n\r\n public buildMediaRequests(mediaTypes): any {\r\n\r\n this.mediaRequests = Linq.From(mediaTypes).Select((pmType: any) => {\r\n let mediaRequest = new MediaRequest(pmType,\r\n '', () => {\r\n // singleSelect is actually a string, even though the type in controller is bool. The data binding\r\n // results in value becoming a string.\r\n\r\n return ('' + this.singleSelect) == 'true';\r\n },\r\n () => {\r\n // selectedIndex is numeric in controller, but it becomes a string media type identifier.\r\n // This can be changed later, when we get rid off these weird conversions.\r\n return (this.selectedIndex == undefined || this.selectedIndex == null) ? null : '' + this.selectedIndex;\r\n },\r\n // Note, passing this.validateUserEnteredIdentifiers will not work, since this will not be this object, when the\r\n // function is executed.\r\n () => this.validateUserEnteredIdentifiers());\r\n\r\n mediaRequest.requestDateTime = (this.moment as any)().format();\r\n mediaRequest.quantity = 0;\r\n mediaRequest.recordVersion = null;\r\n mediaRequest.replaceParkingMediaId = null;\r\n return mediaRequest;\r\n }).ToArray();\r\n }\r\n\r\n public loadParkingMediaTypes(): any {\r\n return this._parkingMediaType.query({})\r\n .$promise\r\n .then((response): any => {\r\n this.mediaTypes = response;\r\n this.buildMediaRequests(this.mediaTypes);\r\n this.selections = this.mediaRequests\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n}\r\n\r\nlet pmediaComponent = new ParkingMediaComponent();\r\nexport default pmediaComponent;\r\nexport {pmediaComponent as ParkingMediaComponent, IParkingMediaController, ParkingMediaController}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/parking-media.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n\\n\\n\\n\\n\\n\\n
\\n\\nCost: {{mediaRequest.type.price | currency}}\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n{{mediaRequest.type.identifierValidationTooltip || mediaRequest.type.identifierValidationErrorMessage}}\\n\\n
\\n
Media identifier is required.
\\n
{{mediaRequest.type.identifierValidationErrorMessage}}
\\n
Multiple occurrences of identifier.
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\nTotal: {{parking.total | currency}}\\n\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/parking-media.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/parking-media.html\n// module id = 589\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nlet template = require('./phone.html');\r\n\r\nclass PhoneComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('phone', {\r\n controller: PhoneController,\r\n templateUrl: template,\r\n controllerAs: 'phone',\r\n bindings: {\r\n name: \"@?\",\r\n label: '@?',\r\n required: '=?',\r\n value: '=?',\r\n ngDisabled: \"=?\",\r\n form: \"&?\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IPhoneController {\r\n validate(): void;\r\n onChange(): void;\r\n}\r\n\r\nclass PhoneController implements IPhoneController {\r\n private static $inject: Array = [];\r\n\r\n //private fields\r\n private fieldName: string;\r\n private displayLabel: string;\r\n private isRequired: Boolean;\r\n private hostForm: ng.IFormController;\r\n private field: any;\r\n\r\n //bindings\r\n private name: string;\r\n private label: string;\r\n private required: Boolean;\r\n private value: string;\r\n private ngDisabled: Boolean;\r\n private form: Function;\r\n\r\n constructor() {\r\n console.log(\"phone controller loaded.\");\r\n \r\n }\r\n\r\n public $onInit(): void {\r\n\r\n this.value = this.value || '';\r\n this.fieldName = this.name || 'phone';\r\n this.displayLabel = this.label || 'Phone';\r\n this.isRequired = this.required || false;\r\n this.ngDisabled = this.ngDisabled || false;\r\n\r\n this.assureForm();\r\n\r\n console.log(\"Phone controller activated.\");\r\n }\r\n\r\n private assureForm(): void {\r\n this.hostForm = this.form();\r\n\r\n if (!this.hostForm) {\r\n throw \"Form reference was not resolved by the execution of the expression.\";\r\n } \r\n }\r\n\r\n public validate(): void {\r\n let field = this.field = this.hostForm[this.fieldName] as any; \r\n }\r\n\r\n public onChange(): void {\r\n this.validate();\r\n }\r\n\r\n}\r\n\r\nlet phComponent = new PhoneComponent();\r\nexport default phComponent;\r\nexport { phComponent as PhoneComponent, IPhoneController, PhoneController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/phone.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n
\\n
{{phone.displayLabel}} is required.
\\n
{{phone.displayLabel}} is invalid.
\\n
\\n
\\n
\\n\";\nvar id1=\"app/user-controls/phone.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/phone.html\n// module id = 591\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../core';\r\nlet template = require('./title-bar.html');\r\n\r\nclass TitleBarComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('titleBar', {\r\n controller: TitleBarController,\r\n templateUrl: template,\r\n controllerAs: 'titleBar',\r\n transclude: true,\r\n bindings: {\r\n startMode: \"@?\",\r\n readOnly: \"@?\",\r\n hideButtons: \" = [];\r\n\r\n //private fields\r\n private mode: string;\r\n private titleString: string;\r\n private buttonsHidden: boolean;\r\n private cancelHidden: boolean;\r\n\r\n //bindings\r\n private startMode: string;\r\n private readOnly: Boolean;\r\n private ngDisabled: Boolean;\r\n private canSave: Boolean;\r\n private onEdit: Function;\r\n private onSave: Function;\r\n private onCancel: Function;\r\n private enablePropagationControl: boolean;\r\n private modes = {\r\n edit: 'edit',\r\n readOnly: 'readOnly'\r\n };\r\n private leftButton: string;\r\n private rightButton: string;\r\n\r\n constructor() {\r\n console.log(\"titleBar controller loaded.\");\r\n }\r\n\r\n public $onInit(): void {\r\n this.mode = this.startMode || this.modes.readOnly;\r\n this.readOnly = this.readOnly || false;\r\n this.titleString = this.title || 'Your header Title';\r\n this.ngDisabled = this.ngDisabled || false;\r\n this.buttonsHidden = this.hideButtons || false;\r\n this.canSave = this.canSave || true;\r\n console.log(\"Phone controller activated.\");\r\n this.enablePropagationControl = (this.enablePropagationControl === undefined)\r\n ? false\r\n : this.enablePropagationControl;\r\n this.leftButton = this.leftButton || 'Cancel';\r\n this.rightButton = this.rightButton || 'Save';\r\n this.cancelHidden = this.hideCancel || false;\r\n }\r\n\r\n public set editMode(val: boolean) {\r\n if (this.modes) {\r\n this.mode = (val === true)\r\n ? this.modes.edit\r\n : this.modes.readOnly;\r\n }\r\n }\r\n\r\n public get hideButtons(): boolean {\r\n return this.buttonsHidden || false;\r\n }\r\n\r\n public set hideButtons(val: boolean) {\r\n this.buttonsHidden = val;\r\n }\r\n\r\n public get hideCancel(): boolean {\r\n return this.cancelHidden || false;\r\n }\r\n\r\n public set hideCancel(val: boolean) {\r\n this.cancelHidden = val;\r\n }\r\n\r\n public get title(): string {\r\n return this.titleString || 'Your header Title';\r\n }\r\n\r\n public set title(val: string) {\r\n this.titleString = val;\r\n }\r\n\r\n public raiseOnEdit(): void {\r\n if (this.onEdit) {\r\n this.onEdit();\r\n }\r\n\r\n if (!this.readOnly) {\r\n this.mode = this.modes.edit;\r\n }\r\n\r\n }\r\n\r\n public raiseOnCancel(): void {\r\n let stopCancel = () => {\r\n this.mode = this.modes.edit;\r\n }\r\n\r\n let completeCancel = () => {\r\n this.mode = this.modes.edit;\r\n }\r\n if (this.onCancel) {\r\n this.onCancel({\r\n args: {\r\n stopCancel: stopCancel,\r\n completeCancel: completeCancel\r\n }\r\n });\r\n }\r\n\r\n if (!this.enablePropagationControl)\r\n this.mode = this.modes.readOnly;\r\n }\r\n\r\n public raiseOnSave(): void {\r\n let eventArgs = {\r\n cancel: () => {\r\n this.mode = this.modes.edit;\r\n }\r\n };\r\n\r\n if (this.onSave) {\r\n this.onSave({ args: eventArgs });\r\n }\r\n\r\n this.mode = this.modes.readOnly;\r\n }\r\n\r\n}\r\n\r\nlet tbarComponent = new TitleBarComponent();\r\nexport default tbarComponent;\r\nexport { tbarComponent as TitleBarComponent, ITitleBarController, TitleBarController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/title-bar.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
{{titleBar.titleString}}
\\n
\\n
\\n\\n
\\nEdit\\n
\\n
\\n{{titleBar.leftButton}}\\n
\\n
\\n{{titleBar.rightButton}}\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/title-bar.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/title-bar.html\n// module id = 593\n// module chunks = 0","import * as ng from 'angular';\r\nimport {ComponentRegistration, ISiteConfigService} from '../core';\r\nimport {ICustomerSettingsService, IToastMessageService} from \"../services\";\r\nimport {IReCaptchaValidationResource} from \"../data\";\r\nimport {IReCaptchaSettings} from \"../data/interfaces\";\r\n\r\nlet template = require('./recaptcha.html');\r\n\r\nclass ReCaptchaComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n // Lets use asm-re-captcha mark up name, to avoid a name conflict with\r\n // the third parthy reCaptcha component.\r\n super('asmReCaptcha', {\r\n controller: ReCaptchaController,\r\n templateUrl: template,\r\n controllerAs: 'asmReCaptcha',\r\n bindings: {\r\n userIdentifier: \"=?\",\r\n onValidationSucceeded: \"&\",\r\n onValidationFailed: \"&\"\r\n }\r\n });\r\n }\r\n}\r\ninterface IReCaptchaController {\r\n userIdentifier: string;\r\n onValidationSucceeded: Function;\r\n onValidationFailed: Function;\r\n}\r\n\r\nclass ReCaptchaController implements IReCaptchaController {\r\n\r\n private static $inject: Array = ['$scope', 'SiteConfig', 'CustomerSettings', 'ReCaptchaValidation', '$q', '$log',\r\n 'toastMessageFactory', 'vcRecaptchaService', '$window' ];\r\n\r\n private static failedToValidateRecaptchaErrorMessage = 'Failed to validate user response to re-captcha challenge.';\r\n\r\n private _userIdentifier: string = '';\r\n private _onValidationSucceeded: Function;\r\n private _onValidationFailed: Function;\r\n\r\n private recaptchaSettings: IReCaptchaSettings;\r\n private recaptchaWidgetId;\r\n\r\n private showRecaptchaV2 : boolean;\r\n private showRecaptchaV3 : boolean;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private SiteConfig: ISiteConfigService,\r\n private CustomerSettings: ICustomerSettingsService,\r\n private ReCaptchaValidation: IReCaptchaValidationResource,\r\n private $q: ng.IQService,\r\n private $log: ng.ILogService,\r\n private toastMessageFactory: IToastMessageService,\r\n private vcRecaptchaService,\r\n private $window) {\r\n console.log(\"recaptcha controller loaded.\");\r\n }\r\n\r\n public $onInit(): void {\r\n this.$window.grecaptcha = null;\r\n\r\n this.userIdentifier = this.userIdentifier || '';\r\n this.recaptchaSettings = null;\r\n this.showRecaptchaV2 = false;\r\n this.showRecaptchaV3 = false;\r\n\r\n this.CustomerSettings.getReCaptchaSettings().then((settingsResponse) => {\r\n\r\n this.recaptchaSettings = settingsResponse;\r\n\r\n if (settingsResponse.isEnabled) {\r\n\r\n this.showRecaptchaV3 = true;\r\n\r\n var recaptchaV3Container = document.getElementById('recaptchaV3');\r\n\r\n if (recaptchaV3Container) {\r\n this.configureRecaptchaV3(this, recaptchaV3Container);\r\n }\r\n else {\r\n var _this = this;\r\n var waitForReCaptchaV3ContainerTimer = setInterval(function () {\r\n recaptchaV3Container = document.getElementById('recaptchaV3');\r\n if (recaptchaV3Container) {\r\n clearInterval(waitForReCaptchaV3ContainerTimer);\r\n _this.configureRecaptchaV3(_this, recaptchaV3Container);\r\n }\r\n }, 50);\r\n }\r\n }\r\n else if (this.onValidationSucceeded) {\r\n // If recaptcha is disabled, the user will just pass the empty token to Api service, which\r\n // will ignore the token.\r\n this.onValidationSucceeded({args: ''});\r\n }\r\n\r\n }).catch((e) => {\r\n this.$log.error(e, 'Failed to load reCaptcha settings.');\r\n this.toastMessageFactory.showServerError('Failed to load reCaptcha settings.');\r\n });\r\n }\r\n\r\n public get userIdentifier() : string {\r\n return this._userIdentifier;\r\n }\r\n\r\n public set userIdentifier(value: string) {\r\n if (!value)\r\n return;\r\n\r\n this._userIdentifier = value;\r\n }\r\n\r\n public get onValidationSucceeded() : Function {\r\n return this._onValidationSucceeded;\r\n }\r\n\r\n public set onValidationSucceeded(value: Function) {\r\n this._onValidationSucceeded = value;\r\n }\r\n\r\n public get onValidationFailed() : Function {\r\n return this._onValidationFailed;\r\n }\r\n\r\n public set onValidationFailed(value: Function) {\r\n this._onValidationFailed = value;\r\n }\r\n\r\n private configureRecaptchaV3(_this, recaptchaV3Container) {\r\n // Since this is called in a timer, the value of \"this\" is undefined\r\n var script = this.$window.document.createElement('script');\r\n script.src = \"https://www.google.com/recaptcha/api.js?render=\" + this.recaptchaSettings.reCaptcha3PublicKey;\r\n recaptchaV3Container.appendChild(script);\r\n\r\n var waitForReCaptchaV3 = function() {\r\n\r\n var onRecaptchaV3Loaded = function()\r\n {\r\n if (_this.$window.grecaptcha) {\r\n _this.$window.grecaptcha.ready(function () {\r\n\r\n try {\r\n // NOTE: using catch() function call after then() wouldn't work (both as it is, or with .$promise.\r\n // we have to catch the exception)\r\n _this.$window.grecaptcha.execute(_this.recaptchaSettings.reCaptcha3PublicKey, {action: 'homepage'})\r\n .then(function (token) {\r\n _this.onRecaptchaV3ResponseReady(_this, token);\r\n });\r\n }\r\n catch (e) {\r\n var genericMessage = 'Failed to validate reCaptcha V3 token.';\r\n\r\n if (e)\r\n _this.$log.error(e, genericMessage);\r\n else\r\n _this.$log.error(genericMessage + ' Invalid public key.');\r\n\r\n _this.onRecaptchaV3ResponseReady(_this, '');\r\n }\r\n });\r\n }\r\n else {\r\n _this.onRecaptchaV3ResponseReady(_this, '');\r\n }\r\n }\r\n\r\n var timerExecCount = 0;\r\n var recaptchaScriptLoadedCheckTimer = setInterval(function () {\r\n\r\n ++timerExecCount;\r\n\r\n // if we waited more than 5 seconds or if the recaptcha script is loaded, lets stop the timer.\r\n // The user will be presenetd with reCaptcha validation control.\r\n if (timerExecCount >= 20 || _this.$window.grecaptcha) {\r\n onRecaptchaV3Loaded();\r\n clearInterval(recaptchaScriptLoadedCheckTimer);\r\n }\r\n\r\n }, 250);\r\n }\r\n\r\n waitForReCaptchaV3();\r\n }\r\n\r\n private onRecaptchaV3ResponseReady(_this, token: string) : void {\r\n\r\n // Since this is called in a timer, the value of \"this\" is undefined, and changes to member variables are not reflected\r\n // in UI bound elements, unless we update the values in $scope.$apply().\r\n _this.$scope.$apply(function ( ) {\r\n _this.showRecaptchaV3 = false;\r\n\r\n if (token && token.length) {\r\n\r\n _this.ReCaptchaValidation.getReCaptcha3TokenValidationResult({id: _this.userIdentifier, token: token}).$promise\r\n .then((validationResult) => {\r\n if (validationResult.isValid )\r\n _this.onValidationSucceeded({args: token});\r\n else {\r\n _this.showRecaptchaV2 = true;\r\n _this.$log.error('Failed to validate reCaptcha V3 token.');\r\n }\r\n })\r\n .catch((e) => {\r\n _this.showRecaptchaV2 = true;\r\n _this.$log.error(e,'Failed to validate reCaptcha V3 token.');\r\n });\r\n }\r\n else {\r\n _this.showRecaptchaV2 = true;\r\n _this.$log.error('Failed to validate reCaptcha V3 token.');\r\n }\r\n })\r\n }\r\n\r\n private setRecaptchaV2WidgetId(widgetId) {\r\n this.recaptchaWidgetId = widgetId;\r\n }\r\n\r\n private onRecaptchaV2Succeeded(response) {\r\n\r\n this.ReCaptchaValidation.getReCaptcha2TokenValidationResult({id: this.userIdentifier, token: response}).$promise\r\n .then((validationResult) => {\r\n if (validationResult.isValid)\r\n this.onValidationSucceeded({args: response});\r\n else {\r\n this.onReCaptchaV2Failed();\r\n }\r\n })\r\n .catch((e) => {\r\n this.onReCaptchaV2Failed(e);\r\n });\r\n }\r\n\r\n private onReCaptchaV2Failed(excetion: any = null) : void {\r\n this.vcRecaptchaService.reload(this.recaptchaWidgetId);\r\n\r\n if (excetion)\r\n this.$log.error(excetion, ReCaptchaController.failedToValidateRecaptchaErrorMessage);\r\n else\r\n this.$log.warn(ReCaptchaController.failedToValidateRecaptchaErrorMessage);\r\n\r\n this.toastMessageFactory.showServerError(ReCaptchaController.failedToValidateRecaptchaErrorMessage);\r\n\r\n if (this.onValidationFailed)\r\n this.onValidationFailed();\r\n }\r\n}\r\n\r\nlet reCaptchaComponent = new ReCaptchaComponent();\r\nexport default reCaptchaComponent;\r\nexport { reCaptchaComponent as ReCaptchaComponent, IReCaptchaController, ReCaptchaController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/user-controls/recaptcha.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n
\\n
Validating...
\\n\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"app/user-controls/recaptcha.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/recaptcha.html\n// module id = 595\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IAccountRequestResource extends ng.resource.IResourceClass {\r\n search(account: ASM.IAccountRequestCriteria): ng.resource.IResourceArray;\r\n update(accountRequest: ASM.IAccountRequest): ASM.IAccountRequest;\r\n}\r\n\r\nlet AccountRequestResourceFactory: Function = function ($resource: ng.resource.IResourceService,\r\n exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IAccountRequestResource {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"bulkAccountRequest\"),\r\n { id: '@id', accountId: '@accountId' } as any,\r\n new AccountRequestResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nAccountRequestResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass AccountRequestResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public get: ng.resource.IActionDescriptor = {\r\n method: 'GET',\r\n isArray: false,\r\n url: this.SiteConfig.getResourceUri(\"accountRequest\"),\r\n params: {\r\n eagerLoad: true\r\n }\r\n };\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n bulk: true\r\n }\r\n };\r\n\r\n public update: ng.resource.IActionDescriptor = {\r\n method: 'PUT',\r\n url: this.SiteConfig.getResourceUri(\"accountRequest\"),\r\n params: {\r\n accountId: '@accountId'\r\n }\r\n };\r\n\r\n}\r\n\r\nlet AccountRequest = {\r\n name: \"AccountRequestBulk\",\r\n factory: AccountRequestResourceFactory\r\n};\r\n\r\nexport { AccountRequest, IAccountRequestResource }\r\nexport default AccountRequest;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/data/account-request.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IFrequentParkerAccountSummaryResource extends ng.resource.IResourceClass {\r\n getKpi(params: any, dashboardKpiRequest: Array): ng.resource.IResourceArray;\r\n}\r\n\r\nlet FrequentParkerAccountSummaryResourceFactory: Function = function ($resource: ng.resource.IResourceService,\r\n exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IFrequentParkerAccountSummaryResource {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"frequentParkerSummary\"),\r\n { kpi: '@kpi' } as any,\r\n new FrequentParkerAccountSummaryResource(SiteConfig) as any\r\n );\r\n};\r\n\r\nFrequentParkerAccountSummaryResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass FrequentParkerAccountSummaryResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public getKpi: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true\r\n };\r\n\r\n}\r\n\r\nlet FrequentParkerAccountSummary = {\r\n name: \"FrequentParkerAccountSummary\",\r\n factory: FrequentParkerAccountSummaryResourceFactory\r\n};\r\n\r\nexport { FrequentParkerAccountSummary, IFrequentParkerAccountSummaryResource }\r\nexport default FrequentParkerAccountSummary;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/data/frequent-parker-account-summary.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ISessionService, IToastMessageService } from '../../../services';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestResource } from '../';\r\n\r\nlet AccountRequestServiceFactory: Function =\r\n function ($q: ng.IQService,\r\n Session: ISessionService,\r\n AccountRequest: IAccountRequestResource,\r\n toastMessageFactory: IToastMessageService): IAccountRequestService {\r\n return new AccountRequestService($q, Session, AccountRequest, toastMessageFactory);\r\n }\r\n\r\nAccountRequestServiceFactory.$inject = ['$q', 'Session', 'AccountRequestBulk', 'toastMessageFactory'];\r\n\r\nlet AccountRequestServices = {\r\n name: \"AccountRequestService\",\r\n factory: AccountRequestServiceFactory\r\n};\r\n\r\ninterface IAccountRequestService {\r\n search(criteria: Dto.IAccountRequestCriteria): ng.IPromise>;\r\n get(id: string, accountId: string): ng.IPromise;\r\n update(accountRequest: Dto.IAccountRequest): ng.IPromise;\r\n}\r\n\r\nexport class AccountRequestService implements IAccountRequestService {\r\n\r\n constructor(private $q: ng.IQService,\r\n private Session: ISessionService,\r\n private AccountRequestBulk: IAccountRequestResource,\r\n private toastMessageFactory: IToastMessageService) {\r\n console.log('AccountAdminService loading');\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n public activate(): void {\r\n console.log('AccountAdminService loaded');\r\n }\r\n\r\n public search(criteria: Dto.IAccountRequestCriteria): ng.IPromise> {\r\n let localCriteria = criteria || {} as Dto.IAccountRequestCriteria;\r\n\r\n return this.AccountRequestBulk.search(localCriteria).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.resolve([]);\r\n });\r\n }\r\n\r\n public get(id: string, accountId: string): ng.IPromise {\r\n return this.AccountRequestBulk.get({ id: id, accountId: accountId }).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.resolve(null);\r\n });\r\n }\r\n\r\n public update(accountRequest: Dto.IAccountRequest): ng.IPromise {\r\n return this.AccountRequestBulk.update(accountRequest).$promise\r\n .then((response) => {\r\n //this.toastMessageFactory.showSuccessMessage();\r\n return response;\r\n })\r\n .catch((e) => {\r\n return this.$q.reject(e);\r\n });\r\n }\r\n}\r\n\r\nexport { AccountRequestServices, IAccountRequestService };\r\nexport default AccountRequestServices;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/services/account-request-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ISessionService, IToastMessageService } from '../../../services';\r\nimport { Dto, IAccountResource, IFrequentParkerAccountResource } from '../../../data';\r\n\r\nlet AccountAdminServiceFactory: Function =\r\n function ($q: ng.IQService,\r\n Session: ISessionService,\r\n Account: IAccountResource,\r\n toastMessageFactory: IToastMessageService,\r\n FrequentParkerAccount: IFrequentParkerAccountResource): IAccountAdminService {\r\n return new AccountAdminService($q, Session, Account, toastMessageFactory, FrequentParkerAccount);\r\n }\r\n\r\nAccountAdminServiceFactory.$inject = ['$q', 'Session', 'Account', 'toastMessageFactory', 'FrequentParkerAccount'];\r\n\r\nlet AccountAdminServices = {\r\n name: \"AccountAdmin\",\r\n factory: AccountAdminServiceFactory\r\n};\r\n\r\ninterface IAccountAdminService {\r\n search(criteria: Dto.IAccountCriteria): ng.IPromise>;\r\n update(account: Dto.IAccount): ng.IPromise;\r\n}\r\n\r\nexport class AccountAdminService implements IAccountAdminService {\r\n\r\n constructor(private $q: ng.IQService,\r\n private Session: ISessionService,\r\n private Account: IAccountResource,\r\n private toastMessageFactory: IToastMessageService,\r\n private FrequentParkerAccount: IFrequentParkerAccountResource) {\r\n\r\n console.log('AccountAdminService loading');\r\n\r\n\r\n\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n public activate(): void {\r\n console.log('AccountAdminService loaded');\r\n }\r\n\r\n public search(criteria: Dto.IAccountCriteria): ng.IPromise> {\r\n let localCriteria = criteria || {} as Dto.IAccountCriteria;\r\n\r\n return this.Account.search(localCriteria).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.resolve([]);\r\n });\r\n }\r\n\r\n public update(account: Dto.IAccount): ng.IPromise {\r\n\r\n let promises = [];\r\n return this.FrequentParkerAccount\r\n .get({ accountId: account.id, id: account.frequentParkerAccountId }).$promise.then((fppAccount) => {\r\n var accountResponseIndex = 0;\r\n if (fppAccount && fppAccount.number != account.frequentParkerNumber) {\r\n fppAccount.number = account.frequentParkerNumber;\r\n let fppPromise = this.FrequentParkerAccount.update({accountId: account.id }, fppAccount).$promise;\r\n promises.push(fppPromise);\r\n accountResponseIndex++;\r\n }\r\n let accountPromise = this.Account.update(account).$promise;\r\n promises.push(accountPromise);\r\n\r\n return this.$q.all(promises)\r\n .then((response) => {\r\n //this.toastMessageFactory.showSuccessMessage();\r\n return this.Account.get({ id: account.id }).$promise\r\n .then((acct) => {\r\n return acct;\r\n });\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.resolve(null);\r\n });\r\n });\r\n }\r\n // private interface\r\n\r\n}\r\n\r\nexport { AccountAdminServices, IAccountAdminService };\r\nexport default AccountAdminServices;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/services/accounts-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { IToastMessageService } from '../../../services';\r\nimport { Dto } from '../../../data';\r\nimport { IFrequentParkerAccountSummaryResource } from '../';\r\nimport { Moment } from 'moment';\r\n\r\nlet FrequentParkerAccountSummaryServiceFactory: Function =\r\n function ($q: ng.IQService,\r\n FrequentParkerAccountSummary: IFrequentParkerAccountSummaryResource,\r\n toastMessageFactory: IToastMessageService,\r\n moment: Moment): IFrequentParkerAccountSummaryService {\r\n return new FrequentParkerAccountSummaryService($q, FrequentParkerAccountSummary, toastMessageFactory, moment);\r\n }\r\n\r\nFrequentParkerAccountSummaryServiceFactory.$inject = ['$q', 'FrequentParkerAccountSummary', 'toastMessageFactory', 'moment'];\r\n\r\nlet FrequentParkerAccountSummaryServices = {\r\n name: \"FrequentParkerAccountSummaryService\",\r\n factory: FrequentParkerAccountSummaryServiceFactory\r\n};\r\n\r\ninterface IFrequentParkerAccountSummaryService {\r\n getFpaSummary(): ng.IPromise;\r\n}\r\n\r\nexport class FrequentParkerAccountSummaryService implements IFrequentParkerAccountSummaryService {\r\n\r\n constructor(private $q: ng.IQService,\r\n private FrequentParkerAccountSummary: IFrequentParkerAccountSummaryResource,\r\n private toastMessageFactory: IToastMessageService,\r\n private moment: Moment) {\r\n console.log('FrequentParkerAccountSummaryService loading');\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n public activate(): void {\r\n console.log('FrequentParkerAccountSummaryService loaded');\r\n }\r\n\r\n private getPointsRequests(): Array {\r\n return [\r\n {\r\n startDate: (this.moment as any)().startOf('month').toISOString(),\r\n endDate: (this.moment as any)().endOf('month').toISOString(),\r\n key: Dto.DateRanges.CurrentMonth\r\n },\r\n {\r\n startDate: (this.moment as any)().add(-1, 'M').startOf('month').toISOString(),\r\n endDate: (this.moment as any)().add(-1, 'M').endOf('month').toISOString(),\r\n key: Dto.DateRanges.LastMonth\r\n },\r\n {\r\n startDate: (this.moment as any)().startOf('year').toISOString(),\r\n endDate: (this.moment as any)().endOf('year').toISOString(),\r\n key: Dto.DateRanges.CurrentYear\r\n },\r\n {\r\n startDate: (this.moment as any)().add(-1, 'Y').startOf('year').toISOString(),\r\n endDate: (this.moment as any)().add(-1, 'Y').endOf('year').toISOString(),\r\n key: Dto.DateRanges.LastYear\r\n },\r\n {\r\n startDate: undefined,\r\n endDate: undefined,\r\n key: Dto.DateRanges.All\r\n }];\r\n }\r\n\r\n public getFpaSummary(): ng.IPromise {\r\n\r\n let awardedPromise = this.FrequentParkerAccountSummary\r\n .getKpi({ kpi: Dto.DashboardKPIs.PointsAwarded }, this.getPointsRequests()).$promise;\r\n\r\n let redeemedPromise = this.FrequentParkerAccountSummary\r\n .getKpi({ kpi: Dto.DashboardKPIs.PointsRedeemed }, this.getPointsRequests()).$promise;\r\n\r\n let signUpPromise = this.FrequentParkerAccountSummary\r\n .getKpi({ kpi: Dto.DashboardKPIs.SignUp }, this.getPointsRequests()).$promise;\r\n\r\n let fpAccountPromise = this.FrequentParkerAccountSummary\r\n .getKpi({ kpi: Dto.DashboardKPIs.ActiveInactive }, this.getPointsRequests()).$promise;\r\n\r\n return this.$q.all([awardedPromise, redeemedPromise, signUpPromise, fpAccountPromise\r\n ])\r\n .then(([awardedResponse, redeemedResponse, signUpResponse, fpAccountResponse\r\n ]) => {\r\n let awardedDict = Linq.From(awardedResponse as Array)\r\n .ToDictionary(x => x.key.toString(), x => x as Dto.IDashboardPointKpiResponse);\r\n\r\n let redeemedDict = Linq.From(redeemedResponse as Array)\r\n .ToDictionary(x => x.key.toString(), x => x as Dto.IDashboardPointKpiResponse);\r\n\r\n let signUpDict = Linq.From(signUpResponse as Array)\r\n .ToDictionary(x => x.key.toString(), x => x as Dto.IDashboardCountKpiResponse);\r\n\r\n let fpAccountDict = Linq.From(fpAccountResponse as Array)\r\n .ToDictionary(x => x.key.toString(), x => x as Dto.IDashboardActiveInactiveKpiResponse);\r\n \r\n return this.$q.resolve({\r\n totalAccounts: fpAccountDict.get(Dto.DateRanges.All.toString()),\r\n currentMonthAwarded: awardedDict.get(Dto.DateRanges.CurrentMonth.toString()),\r\n lastMonthAwarded: awardedDict.get(Dto.DateRanges.LastMonth.toString()),\r\n currentYearAwarded: awardedDict.get(Dto.DateRanges.CurrentYear.toString()),\r\n lastYearAwarded: awardedDict.get(Dto.DateRanges.LastYear.toString()),\r\n signUpCurrentMonth: signUpDict.get(Dto.DateRanges.CurrentMonth.toString()),\r\n signUpLastMonth: signUpDict.get(Dto.DateRanges.LastMonth.toString()),\r\n signUpCurrentYear: signUpDict.get(Dto.DateRanges.CurrentYear.toString()),\r\n signUpLastYear: signUpDict.get(Dto.DateRanges.LastYear.toString()),\r\n currentMonthRedeemed: redeemedDict.get(Dto.DateRanges.CurrentMonth.toString()),\r\n lastMonthRedeemed: redeemedDict.get(Dto.DateRanges.LastMonth.toString()),\r\n currentYearRedeemed: redeemedDict.get(Dto.DateRanges.CurrentYear.toString()),\r\n lastYearRedeemed: redeemedDict.get(Dto.DateRanges.LastYear.toString())\r\n } as Dto.IFrequentParkerAccountSummary);\r\n });\r\n\r\n }\r\n}\r\n\r\nexport { FrequentParkerAccountSummaryServices, IFrequentParkerAccountSummaryService };\r\nexport default FrequentParkerAccountSummaryServices;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/services/frequent-parker-account-summary-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { IToastMessageService } from '../../../services';\r\nimport { Dto, IProfileResource } from '../../../data';\r\nimport { IUserResource } from '../../security';\r\nimport { ISiteConfigService } from '../../../core';\r\n\r\nlet UserAdminServiceFactory: Function =\r\n function ($q: ng.IQService,\r\n User: IUserResource,\r\n Profile: IProfileResource,\r\n toastMessageFactory: IToastMessageService,\r\n SiteConfig: ISiteConfigService): IUserAdminService {\r\n return new UserAdminService($q, User, Profile, toastMessageFactory, SiteConfig);\r\n }\r\n\r\nUserAdminServiceFactory.$inject = ['$q', 'User', 'Profile', 'toastMessageFactory', 'SiteConfig'];\r\n\r\nlet UserAdminServices = {\r\n name: \"UserAdmin\",\r\n factory: UserAdminServiceFactory\r\n};\r\n\r\ninterface IUserAdminService {\r\n search(criteria: Dto.IProfileCriteria): ng.IPromise>;\r\n update(profile: Dto.IProfile): ng.IPromise;\r\n save(profile: Dto.IProfile): ng.IPromise;\r\n exists(username: string): ng.IPromise;\r\n sendInvite(userId: string, username: string): ng.IPromise;\r\n unlockUser(userId: string): ng.IPromise;\r\n}\r\n\r\nexport class UserAdminService implements IUserAdminService {\r\n\r\n constructor(private $q: ng.IQService,\r\n private User: IUserResource,\r\n private Profile: IProfileResource,\r\n private toastMessageFactory: IToastMessageService,\r\n private SiteConfig: ISiteConfigService) {\r\n\r\n console.log('UserAdminService loading');\r\n\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n public activate(): void {\r\n console.log('UserAdminService loaded');\r\n }\r\n\r\n public search(criteria: Dto.IProfileCriteria): ng.IPromise> {\r\n let localCriteria = criteria || {} as Dto.IProfileCriteria;\r\n\r\n return this.Profile.search(localCriteria).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.resolve([]);\r\n });\r\n }\r\n\r\n public update(profile: Dto.IProfile): ng.IPromise {\r\n\r\n return this.Profile.updateAdmin(profile).$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage();\r\n return response;\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.reject(e);\r\n });\r\n\r\n }\r\n\r\n public save(profile: Dto.IProfile): ng.IPromise {\r\n return this.SiteConfig.getConfigAsync().then((config) => {\r\n let params = {\r\n resetPasswordUri: config.baseUri + \"/#/reset-password\"\r\n };\r\n return this.Profile.saveAdmin(params, profile).$promise\r\n .then((response) => {\r\n if (response.passwordResetEmailWasSent)\r\n this.toastMessageFactory.showSuccessMessage();\r\n else\r\n this.toastMessageFactory.showWarningMessage('User was saved, however failed to send password reset email. Please verify the email service and \"Password Reset\" email template are configured properly and that the email server is running!');\r\n return response;\r\n })\r\n .catch((e) => {\r\n //this.toastMessageFactory.showServerError();\r\n return this.$q.reject(e);\r\n });\r\n });\r\n }\r\n\r\n public exists(username: string): ng.IPromise {\r\n return this.User.userExists({ username: username }).$promise\r\n .then((response) => {\r\n return (response as any).exists === \"true\";\r\n });\r\n }\r\n\r\n public sendInvite(userId: string, username: string): ng.IPromise {\r\n return this.SiteConfig.getConfigAsync().then((config) => {\r\n let request = {\r\n id: userId,\r\n username: username,\r\n baseUri: config.baseUri + \"/#/reset-password\"\r\n };\r\n\r\n return this.User.sendInvite(request).$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage(\"Invite Sent successfully.\");\r\n return response;\r\n });\r\n });\r\n }\r\n\r\n public unlockUser(userId: string): ng.IPromise {\r\n return this.SiteConfig.getConfigAsync().then((config) => {\r\n let request = {\r\n id: userId\r\n };\r\n\r\n return this.User.unlockUser(request).$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage(\"User was successfully unlocked.\");\r\n return response;\r\n })\r\n .catch((e) => {\r\n this.toastMessageFactory.showServerError();\r\n console.log(e);\r\n return this.$q.reject(e);\r\n });;\r\n });\r\n }\r\n}\r\n\r\nexport { UserAdminServices, IUserAdminService };\r\nexport default UserAdminServices;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/services/user-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountAdminService } from '../services/accounts-service';\r\nlet template = require('./accounts-grid.html');\r\n\r\nclass AccountsGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountsGrid', {\r\n controller: AccountsGridController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n accountSelected: '&?'\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountsGridController {\r\n\r\n}\r\n\r\nclass AccountsGridController implements IAccountsGridController {\r\n private static $inject: Array = ['$mdToast', '$rootRouter', 'AccountAdmin'];\r\n private data: Array = [];\r\n private keywords: string;\r\n private criteria: Dto.IAccountCriteria;\r\n\r\n //bindings\r\n private accountSelected: Function;\r\n\r\n constructor(private $mdToast: ng.material.IToastService,\r\n private $rootRouter: ng.Router,\r\n private AccountAdmin: IAccountAdminService) {\r\n console.log(\"AccountsGridController loading\");\r\n }\r\n\r\n public $onInit(): void {\r\n console.log(\"AccountsGridController loaded\");\r\n this.criteria = {\r\n pageSize: 25,\r\n pageNumber: 1,\r\n status: Dto.AccountStatus.Active\r\n } as Dto.IAccountCriteria;\r\n\r\n this.search(this.criteria);\r\n }\r\n\r\n public rowSelected(selected) {\r\n if (typeof this.accountSelected === \"function\") {\r\n this.accountSelected(selected);\r\n }\r\n }\r\n\r\n public search(criteria?: Dto.IAccountCriteria): void {\r\n this.AccountAdmin.search(criteria).then((accounts) => {\r\n this.data = accounts;\r\n });\r\n }\r\n\r\n public criteriaChanged(args) {\r\n this.criteria = args.criteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n\r\n}\r\n\r\nlet acctsgrdComponent = new AccountsGridComponent();\r\nexport default acctsgrdComponent;\r\nexport { acctsgrdComponent as AccountsGridComponent, IAccountsGridController, AccountsGridController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/account/accounts-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\";\nvar id1=\"admin/account/accounts-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/account/accounts-grid.html\n// module id = 603\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nlet template = require('./admin-nav-bar.html');\r\n\r\nclass AdminNavBarComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('adminNavBar', {\r\n controller: AdminNavBarController,\r\n templateUrl: template,\r\n controllerAs: 'adminNavBar',\r\n bindings: {\r\n selected: '@'\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n\r\ninterface INavBarController {\r\n isSelected(index): Boolean;\r\n onNavClick(index): void;\r\n}\r\n\r\nclass AdminNavBarController implements INavBarController {\r\n public static $inject: Array = ['$rootRouter'];\r\n\r\n //private fields\r\n \r\n //bindings\r\n private selected: any;\r\n\r\n constructor(private $rootRouter:ng.Router) {\r\n console.log('AdminNavBarController activated');\r\n }\r\n\r\n public $onInit(): void {\r\n console.log('AdminNavBarController loaded');\r\n }\r\n\r\n public isSelected(index): Boolean {\r\n return index === this.selected;\r\n }\r\n\r\n public onNavClick(index): void {\r\n this.selected = index;\r\n this.$rootRouter.navigate([index]);\r\n }\r\n\r\n}\r\n\r\nlet adminNbarComponent = new AdminNavBarComponent();\r\nexport default adminNbarComponent;\r\nexport { adminNbarComponent as AdminNavBarComponent, INavBarController, AdminNavBarController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/user-controls/admin-nav-bar.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\nDashboard\\n\\n\\nAccounts\\n\\n\\nPending Approval\\n\\n\\nSetup\\n\\n\\nUsers\\n\\n\\n
\\n
\\n\\n\\n
\\nmenu\\n
\\n
\\n\\n\\n\\nDashboard\\n\\n\\n\\n\\nAccounts\\n\\n\\n\\n\\nPending Approval\\n\\n\\n\\n\\nSetup\\n\\n\\n\\n\\nUsers\\n\\n\\n\\n
\\n
\";\nvar id1=\"admin/user-controls/admin-nav-bar.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/user-controls/admin-nav-bar.html\n// module id = 605\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { Moment } from 'moment';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto, TransactionTypes, FrequentParkerActivityTypes } from '../../../data';\r\nimport { ICustomerSettingsService } from '../../../services';\r\nimport { IAccountAdminService } from './../services/accounts-service';\r\nimport { IUserAdminService } from './../';\r\nimport { IActivitiesService } from '../../dashboard';\r\nlet template = require('./account-detail.html');\r\n\r\nclass AccountDetailComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountDetail', {\r\n controller: AccountDetailController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountDetailController {\r\n\r\n}\r\n\r\nclass AccountDetailController implements IAccountDetailController {\r\n private static $inject: Array = ['$scope', '$mdToast', '$rootRouter', 'AccountAdmin', 'Activities', 'moment', 'CustomerSettings', 'UserAdmin'];\r\n private account: Dto.IAccount;\r\n private user: Dto.IProfile;\r\n private fpActivities: Array = [];\r\n private keywords: string;\r\n private criteria: Dto.IFrequentParkerActivityCriteria;\r\n private fromDate: string;\r\n private toDate: string;\r\n private filteredActivities = [];\r\n private frequentParkerActivityTypes: Array;\r\n private frequentParkerActivityType: string = null;\r\n private inEditMode: boolean = false;\r\n private originalAccount: Dto.IAccount;\r\n private adjustmentForm: ng.IFormController;\r\n private pointBalance: number;\r\n private totalManualAdjustments: number;\r\n private defaultPromotionSettings: Dto.IPromotionSettings;\r\n private adjustment: Dto.IAdjustment = {\r\n currencyType: 'points',\r\n creditAmount: null,\r\n debitAmount: null\r\n }\r\n\r\n //bindings\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $mdToast: ng.material.IToastService,\r\n private $rootRouter: ng.Router,\r\n private AccountAdmin: IAccountAdminService,\r\n private Activities: IActivitiesService,\r\n private moment: Moment,\r\n private CustomerSettings: ICustomerSettingsService,\r\n private UserAdmin: IUserAdminService) {\r\n console.log(\"AccountDetailController loading\");\r\n }\r\n\r\n\r\n\r\n public $onInit(): void {\r\n console.log(\"AccountDetailController loaded\");\r\n\r\n this.frequentParkerActivityTypes = ng.copy(FrequentParkerActivityTypes)\r\n\r\n this.criteria = {\r\n pageSize: 25,\r\n pageNumber: 1\r\n\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n\r\n this.CustomerSettings.getFrequentParkerSettings()\r\n .then((response) => {\r\n this.defaultPromotionSettings = Linq.From(response.settings.promotionSettings)\r\n .FirstOrDefault(x => x.isDefault === true);\r\n });\r\n }\r\n\r\n public $routerOnActivate(next, previous) {\r\n // Get the account identified by the route parameter\r\n var id = next.params.id;\r\n\r\n return this.AccountAdmin.search({\r\n accountRuntimeIds: [id]\r\n } as Dto.IAccountCriteria).then((accounts) => {\r\n\r\n if (accounts.length > 0) {\r\n this.account = accounts[0];\r\n this.originalAccount = ng.copy(this.account);\r\n if (accounts[0].frequentParkerAccountId != null && !accounts[0].frequentParkerAccountId.isEmptyGuid()) {\r\n this.criteria.frequentParkerAccountId = accounts[0].frequentParkerAccountId;\r\n this.search(this.criteria);\r\n this.getTotalAdjustments(accounts[0].frequentParkerAccountId);\r\n this.getCurrentFppBalance(accounts[0].frequentParkerAccountId);\r\n }\r\n // Get the user entity assoicated with this account\r\n this.UserAdmin.search({ accountRuntimeIds: [this.account.id], accountId: this.account.id } as Dto.IProfileCriteria)\r\n .then((users) => {\r\n this.user = users[0];\r\n });\r\n }\r\n });\r\n }\r\n\r\n public openMenu($mdMenu, ev) {\r\n $mdMenu.open(ev);\r\n };\r\n\r\n\r\n public search(criteria?: Dto.IFrequentParkerActivityCriteria): Promise {\r\n return this.Activities.getFrequentParkerActivity(criteria).then((fpActivity) => {\r\n return this.fpActivities = fpActivity;\r\n });\r\n }\r\n\r\n public getCurrentFppBalance(frequentParkerAccountId: string): void {\r\n if (!frequentParkerAccountId || frequentParkerAccountId.isEmptyGuid()) return;\r\n let criteria = {\r\n pageNumber: 1,\r\n pageSize: 1,\r\n sortBy: \"activityDateTime\",\r\n sortDirection: \"DESC\",\r\n frequentParkerAccountId: frequentParkerAccountId\r\n\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n\r\n this.Activities.getFrequentParkerActivity(criteria).then((fpActivity) => {\r\n this.pointBalance = ((fpActivity && fpActivity.length > 0)\r\n ? fpActivity[0] : {\r\n beginPointBalance: 0,\r\n endPointBalance: 0\r\n } as Dto.IFrequentParkerActivity).endPointBalance;\r\n });\r\n }\r\n\r\n public getTotalAdjustments(frequentParkerAccountId: string): void {\r\n if (!frequentParkerAccountId || frequentParkerAccountId.isEmptyGuid()) return;\r\n let criteria = {\r\n pageNumber: 0,\r\n pageSize: 0,\r\n sortBy: \"activityDateTime\",\r\n sortDirection: \"DESC\",\r\n activityType: 3,\r\n endDate: (this.moment as any)(Date.now()).format(),\r\n startDate: (this.moment as any)(Date.now()).add(-30, 'd').format(),\r\n frequentParkerAccountId: frequentParkerAccountId\r\n\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n\r\n this.Activities.getFrequentParkerActivity(criteria).then((fpActivity) => {\r\n this.totalManualAdjustments = Linq.from(fpActivity).Sum(x => x.points || 0);\r\n });\r\n }\r\n\r\n\r\n public criteriaChanged(args) {\r\n this.criteria = args.criteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public onFilterChange(): void {\r\n this.search(this.criteria);\r\n }\r\n\r\n public onCreditApply(): void {\r\n this.adjustment.debitAmount = undefined;\r\n if (this.adjustment.currencyType === \"points\") {\r\n this.applyAdjustment(this.account.frequentParkerAccountId, this.adjustment);\r\n }\r\n else {\r\n this.adjustment.creditAmount = this.defaultPromotionSettings.pointAccruedPerDollar * this.adjustment.creditAmount;\r\n this.applyAdjustment(this.account.frequentParkerAccountId, this.adjustment);\r\n }\r\n\r\n }\r\n\r\n public onDebitApply(): void {\r\n this.adjustment.creditAmount = undefined;\r\n if (this.adjustment.currencyType === \"points\") {\r\n this.applyAdjustment(this.account.frequentParkerAccountId, this.adjustment);\r\n }\r\n else {\r\n this.adjustment.debitAmount = this.defaultPromotionSettings.pointsRedeemedPerDollar * this.adjustment.debitAmount;\r\n this.applyAdjustment(this.account.frequentParkerAccountId, this.adjustment);\r\n }\r\n //this.applyAdjustment(this.account.frequentParkerAccountId, this.adjustment);\r\n }\r\n\r\n protected applyAdjustment(frequentParkerAccountId, adjustment: Dto.IAdjustment): void {\r\n if (!frequentParkerAccountId || frequentParkerAccountId.isEmptyGuid()) return;\r\n this.Activities.addFrequentParkerAdjustment(frequentParkerAccountId, adjustment)\r\n .then(() => {\r\n this.onClear();\r\n this.criteria.pageNumber = 1;\r\n this.search(this.criteria);\r\n this.getTotalAdjustments(frequentParkerAccountId);\r\n this.getCurrentFppBalance(frequentParkerAccountId);\r\n });\r\n }\r\n\r\n public onReset(): void {\r\n this.filteredActivities = [];\r\n this.criteria.startDate = undefined;\r\n this.criteria.endDate = undefined;\r\n this.criteria.activityType = this.frequentParkerActivityTypes[0].value;\r\n this.criteria.pageNumber = 1;\r\n this.search(this.criteria);\r\n }\r\n\r\n public getActivityType(value) {\r\n var fpaType = Linq.from(this.frequentParkerActivityTypes)\r\n .FirstOrDefault(x => x.value === value);\r\n return fpaType ? fpaType.name : \"\";\r\n\r\n }\r\n\r\n public onClear(): void {\r\n this.adjustment.creditAmount = undefined;\r\n this.adjustment.debitAmount = undefined;\r\n this.adjustmentForm.$setUntouched();\r\n }\r\n\r\n public onCancel(args): void {\r\n this.account = ng.copy(this.originalAccount);\r\n }\r\n\r\n public onSave(args): void {\r\n this.AccountAdmin.update(this.account).then((account) => {\r\n this.account = account;\r\n this.originalAccount = ng.copy(account);\r\n });\r\n }\r\n\r\n public onEnterCredit(keyIdentifier): void {\r\n if (keyIdentifier === \"Enter\") {\r\n this.onCreditApply();\r\n }\r\n }\r\n\r\n public onEnterDebit(keyIdentifier): void {\r\n if (keyIdentifier === \"Enter\") {\r\n this.onDebitApply();\r\n }\r\n }\r\n\r\n public onResendInvite(): void {\r\n this.UserAdmin.sendInvite(this.user.userId, this.user.username)\r\n .then((response) => {\r\n var x = response;\r\n })\r\n }\r\n\r\n public onUnlockUser(): void {\r\n this.UserAdmin.unlockUser(this.user.userId);\r\n }\r\n}\r\n\r\nlet accountDetailComponent = new AccountDetailComponent();\r\nexport default accountDetailComponent;\r\nexport { accountDetailComponent as AccountDetailComponent, IAccountDetailController, AccountDetailController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/account/account-detail.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n\\nplay_arrow\\nAccounts\\n\\n
\\n
\\n
\\nAccount Status:\\n
\\n\\nActive\\n\\n\\nInactive\\n\\n\\nPending\\n\\n
\\n
\\n
Name: {{vm.account.name }}
\\n
Account: {{vm.account.externalId || 'None'}}
\\n\\n\\nOther Actions...\\n\\n\\n\\nResend Invite\\n\\n\\nUnlock User\\n\\n\\n\\n
\\n
\\n
\\n\\n
\\n
Balances
\\n
\\n
\\n\\n\\n\\n\\n\\n\\n
Funds:${{vm.account.balance}}
Points:{{vm.pointBalance}} pts
Adjustments:{{vm.totalManualAdjustments}} pts
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\nBlocked\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
Point Setup
\\n
\\n
\\n
Redemption
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
Beginning At:{{vm.defaultPromotionSettings.minPointRedemption}} pts
Increment:{{vm.defaultPromotionSettings.pointRedemptionIncrements}} pts
Ratio:{{vm.defaultPromotionSettings.pointsRedeemedPerDollar}} pts/dollar
\\n
\\n
\\n
\\n
Accural
\\n
\\n\\n\\n\\n\\n\\n\\n\\n
Ratio:{{vm.defaultPromotionSettings.pointAccruedPerDollar}} pts/dollar
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Apply Manual Point Adjustment
\\n
\\nCLEAR\\n
\\n
\\n
\\n
\\nCalculate In?\\n
\\n
\\n\\nDollars\\nPoints\\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n{{vm.adjustment.currencyType === 'dollars'?'Dollars':'Points'}} must be 1 or greater\\n
\\n
\\n
\\n
\\nAPPLY\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n{{vm.adjustment.currencyType === 'dollars'?'Dollars':'Points'}} must be 1 or greater\\n
\\n
\\n
\\n
\\nAPPLY\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Activity
\\n
\\n\\n\\n\\n\\n{{frequentParkerActivityType.name}}\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\nRESET\\n
\\n
\\n
\\n
\\n\\n\\n\\n
{{ MODEL_COL_FIELD | date:'short'}}
\\n
\\n
\\n\\n\\n
{{ grid.appScope.vm.getActivityType(MODEL_COL_FIELD)}}
\\n
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"admin/account/account-detail.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/account/account-detail.html\n// module id = 607\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { IAccountAdminService } from './../services/accounts-service';\r\nlet template = require('./accounts.html');\r\n\r\nclass AccountsComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accounts', {\r\n controller: AccountsController,\r\n templateUrl: template,\r\n controllerAs: 'accounts',\r\n bindings: {\r\n\r\n },\r\n $routeConfig: [\r\n { path: '/', component: 'accountsGrid', name: 'AccountsGrid', useAsDefault: true },\r\n { path: '/:id', component: 'accountDetail', name:\"AccountDetail\" },\r\n ]\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountsController {\r\n activate(): void;\r\n}\r\n\r\nclass AccountsController implements IAccountsController {\r\n private static $inject: Array = ['$mdToast', 'AccountAdmin'];\r\n private data: Array = [];\r\n private show: boolean;\r\n private selectedAccount: any;\r\n\r\n constructor(private $mdToast: ng.material.IToastService,\r\n private AccountAdmin: IAccountAdminService) {\r\n console.log('AccountsController loading');\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('AccountsController loaded');\r\n this.show = true;\r\n }\r\n\r\n public accountSeletected(account): any {\r\n if (account) {\r\n this.selectedAccount = account;\r\n this.show = !this.show;\r\n }\r\n else {\r\n console.log('No account selected');\r\n }\r\n }\r\n}\r\n\r\nlet accntComponent = new AccountsComponent();\r\nexport default accntComponent;\r\nexport { accntComponent as AccountsComponent, IAccountsController, AccountsController }\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/account/accounts.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\\n\";\nvar id1=\"admin/account/accounts.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/account/accounts.html\n// module id = 609\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ISessionService } from '../../services';\r\nlet template = require('./admin.html');\r\n\r\nclass AdminComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('admin', {\r\n controller: AdminController,\r\n templateUrl: template,\r\n controllerAs: 'admin',\r\n $routeConfig: [\r\n { path: '/dashboard', component: 'dashboard', name: 'Dashboard', useAsDefault: true },\r\n { path: '/accounts/...', component: 'accounts', name: 'Accounts' }, \r\n { path: '/pending-approval', component: 'pendingApproval', name: 'PendingApproval' }, \r\n { path: '/pending-approval/:id', component: 'pendingApproval', name: 'SelectedPendingApproval' },\r\n { path: '/setup/...', component: 'setup', name: 'Setup' },\r\n { path: '/users', component: 'users', name: 'Users' }\r\n ],\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAdminController {\r\n}\r\n\r\nclass AdminController implements IAdminController {\r\n private static $inject: Array = ['$rootRouter', 'Session'];\r\n\r\n constructor(private $rootRouter: ng.Router,\r\n private Session: ISessionService) {\r\n console.log('AdminController loading');\r\n \r\n }\r\n\r\n public $onInit(): void {\r\n if (!this.Session.assureActiveUserSession()) {\r\n \r\n return;\r\n }\r\n console.log('AdminController loaded');\r\n }\r\n}\r\n\r\nlet admnComponent = new AdminComponent();\r\nexport default admnComponent;\r\nexport { admnComponent as AdminComponent, IAdminController, AdminController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/admin.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\";\nvar id1=\"components/admin/admin.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/admin.html\n// module id = 611\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nlet template = require('./dashboard.html');\r\n\r\nclass DashboardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('dashboard', {\r\n controller: DashboardController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IDashboardController {\r\n activate(): void;\r\n}\r\n\r\nclass DashboardController implements IDashboardController {\r\n private static $inject: Array = [\"$scope\"];\r\n private profile: Dto.IAccountRequest;\r\n\r\n constructor() {\r\n console.log('DashboardController loading');\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('DashboardController loaded');\r\n }\r\n\r\n private userSelected(profile: Dto.IAccountRequest) {\r\n this.profile = profile;\r\n }\r\n}\r\n\r\nlet dshbrdComponent = new DashboardComponent();\r\nexport default dshbrdComponent;\r\nexport { dshbrdComponent as DashboardComponent, IDashboardController, DashboardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/dashboard/dashboard.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n\\n\\n\\n
\";\nvar id1=\"admin/dashboard/dashboard.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/dashboard/dashboard.html\n// module id = 613\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IFrequentParkerAccountSummaryService } from './../';\r\nlet template = require('./dashboard-details.html');\r\n\r\nclass DashboardDetailsComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('dashboardDetails', {\r\n controller: DashboardDetailsController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IDashboardDetailsController {\r\n\r\n}\r\n\r\nclass DashboardDetailsController implements IDashboardDetailsController {\r\n private static $inject: Array = ['FrequentParkerAccountSummaryService'];\r\n private fpSummary: Dto.IFrequentParkerAccountSummary;\r\n\r\n //Bindings\r\n\r\n constructor(private FrequentParkerAccountSummaryService: IFrequentParkerAccountSummaryService) {\r\n\r\n console.log('DashboardDetailsController loading');\r\n this.activate();\r\n }\r\n\r\n public $onInit(): void {\r\n this.FrequentParkerAccountSummaryService.getFpaSummary()\r\n .then((fpSummary) => {\r\n this.fpSummary = fpSummary;\r\n });\r\n }\r\n\r\n public activate(): void {\r\n console.log('DashboardDetailsController loaded');\r\n }\r\n}\r\n\r\nlet dashboardDetailsComponent = new DashboardDetailsComponent();\r\nexport default dashboardDetailsComponent;\r\nexport { dashboardDetailsComponent as DashboardDetailsComponent, IDashboardDetailsController, DashboardDetailsController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/dashboard/dashboard-details.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
Frequent Parker Accounts
\\n
\\n
\\n
Total Active
\\n
{{vm.fpSummary.totalAccounts.active}}
\\n
Accounts
\\n
\\n
\\n
Total In-Active
\\n
{{vm.fpSummary.totalAccounts.inactive}}
\\n
Accounts
\\n
\\n
\\n
\\n
\\n\\n
\\n
Points Awarded
\\n
\\n
\\n
Current Month
\\n
\\n
\\n
{{vm.fpSummary.currentMonthAwarded.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.currentMonthAwarded.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
Last Month
\\n
\\n
\\n
{{vm.fpSummary.lastMonthAwarded.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.lastMonthAwarded.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Current Year
\\n
\\n
\\n
{{vm.fpSummary.currentYearAwarded.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.currentYearAwarded.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
Last Year
\\n
\\n
\\n
{{vm.fpSummary.lastYearAwarded.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.lastYearAwarded.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
Frequent Parker Sign-Up
\\n
\\n
\\n
Current Month
\\n
{{vm.fpSummary.signUpCurrentMonth.count}}
\\n
Accounts
\\n
\\n
\\n
Last Month
\\n
{{vm.fpSummary.signUpLastMonth.count}}
\\n
Accounts
\\n
\\n
\\n
\\n
\\n
Current Year
\\n
{{vm.fpSummary.signUpCurrentYear.count}}
\\n
Accounts
\\n
\\n
\\n
Last Year
\\n
{{vm.fpSummary.signUpLastYear.count}}
\\n
Accounts
\\n
\\n
\\n
\\n
\\n\\n
\\n
Points Redeemed
\\n
\\n
\\n
Current Month
\\n
\\n
\\n
{{vm.fpSummary.currentMonthRedeemed.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.currentMonthRedeemed.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
Last Month
\\n
\\n
\\n
{{vm.fpSummary.lastMonthRedeemed.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.lastMonthRedeemed.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Current Year
\\n
\\n
\\n
{{vm.fpSummary.currentYearRedeemed.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.currentYearRedeemed.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
Last Year
\\n
\\n
\\n
{{vm.fpSummary.lastYearRedeemed.points}}
\\n
Points
\\n
\\n
\\n
{{vm.fpSummary.lastYearRedeemed.dollars | number : 2}}
\\n
Dollars
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/dashboard/dashboard-details.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/dashboard/dashboard-details.html\n// module id = 615\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestService } from './../';\r\nlet template = require('./dashboard-grid.html');\r\n\r\nclass DashboardGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('dashboardGrid', {\r\n controller: DashboardGridController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n userSelected: '&?'\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IDashboardGridController {\r\n\r\n}\r\n\r\nclass DashboardGridController implements IDashboardGridController {\r\n private static $inject: Array = ['AccountRequestService'];\r\n private criteria: Dto.IAccountRequestCriteria;\r\n private accountRequests: {};\r\n\r\n //Bindings\r\n private userSelected: Function;\r\n\r\n constructor(private AccountRequestService: IAccountRequestService) {\r\n console.log('DashboardGridController loading');\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('DashboardGridController loaded');\r\n }\r\n\r\n public $onInit(): void {\r\n this.criteria = {\r\n pageSize: 25,\r\n pageNumber: 1, \r\n isPendingApproval:true \r\n } as Dto.IAccountRequestCriteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public search(criteria?: Dto.IAccountRequestCriteria): ng.IPromise> {\r\n return this.AccountRequestService.search(criteria).then((accountRequests) => {\r\n return this.accountRequests = accountRequests;\r\n });\r\n }\r\n\r\n public criteriaChanged(args) {\r\n this.criteria = args.criteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public onRowSelect(selectedRow): void {\r\n if (!selectedRow) {\r\n this.raiseUserSelected();\r\n return;\r\n }\r\n this.raiseUserSelected(selectedRow.entity);\r\n }\r\n\r\n public raiseUserSelected(profile?: Dto.IAccountRequest): void {\r\n if (typeof this.userSelected === 'function') {\r\n this.userSelected({ profile: profile });\r\n }\r\n }\r\n}\r\n\r\nlet dashboardGridComponent = new DashboardGridComponent();\r\nexport default dashboardGridComponent;\r\nexport { dashboardGridComponent as DashboardGridComponent, IDashboardGridController, DashboardGridController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/dashboard/dashboard-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n\\n\\n\\n\\n\\n
{{ MODEL_COL_FIELD | date:'short'}}
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/dashboard/dashboard-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/dashboard/dashboard-grid.html\n// module id = 617\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestService } from './../';\r\nlet template = require('./deny-message-dialog.html');\r\n\r\nclass DenyMessageDialogComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('denyMessageDialog', {\r\n controller: DenyMessageDialogController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IDenyMessageDialogController {\r\n\r\n}\r\n\r\nclass DenyMessageDialogController implements IDenyMessageDialogController {\r\n private static $inject: Array = ['$mdDialog'];\r\n private email: string;\r\n\r\n constructor(private $mdDialog: ng.material.IDialogService) {\r\n\r\n }\r\n\r\n public $onInit() {\r\n }\r\n\r\n public onCancel() {\r\n this.$mdDialog.hide({\r\n send: false\r\n });\r\n this.email = \"\";\r\n }\r\n\r\n public onSend() {\r\n this.$mdDialog.hide({\r\n send: true,\r\n message: this.email\r\n });\r\n\r\n }\r\n}\r\n\r\nlet denyMsgDiaComponent = new DenyMessageDialogComponent();\r\nexport default denyMsgDiaComponent;\r\nexport { denyMsgDiaComponent as DenyMessageDialogComponent, IDenyMessageDialogController, DenyMessageDialogController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/pending-approval/deny-message-dialog.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n

Send Deny Request Email

\\n
\\n\\nCancel\\n\\n\\nSend\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\";\nvar id1=\"admin/pending-approval/deny-message-dialog.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/pending-approval/deny-message-dialog.html\n// module id = 619\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestService } from './../';\r\nlet template = require('./pending-approval.html');\r\n\r\nclass PendingApprovalComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('pendingApproval', {\r\n controller: PendingApprovalController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IPendingApprovalController {\r\n\r\n}\r\n\r\nclass PendingApprovalController implements IPendingApprovalController {\r\n private static $inject: Array = ['AccountRequestService'];\r\n private accountRequest: Dto.IAccountRequest;\r\n private savedAccountRequest: Dto.IAccountRequest;\r\n private routeSelectedId: string;\r\n\r\n constructor(private AccountRequestService: IAccountRequestService) {\r\n console.log('PendingApprovalController loading');\r\n\r\n }\r\n\r\n public $routerOnActivate(next, previous) {\r\n // Get the account identified by the route parameter\r\n var id = next.params.id;\r\n\r\n if (id) {\r\n this.routeSelectedId = id; \r\n }\r\n }\r\n\r\n private accountRequestSelected(accountRequest: Dto.IAccountRequest) {\r\n this.accountRequest = accountRequest;\r\n }\r\n \r\n private onFormSaved(accountRequest: Dto.IAccountRequest) {\r\n this.savedAccountRequest = accountRequest;\r\n } \r\n}\r\n\r\nlet pndngAppvlComponent = new PendingApprovalComponent();\r\nexport default pndngAppvlComponent;\r\nexport { pndngAppvlComponent as PendingApprovalComponent, IPendingApprovalController, PendingApprovalController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/pending-approval/pending-approval.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n\\n\\n\\n
\";\nvar id1=\"admin/pending-approval/pending-approval.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/pending-approval/pending-approval.html\n// module id = 621\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestService } from './../';\r\nlet template = require('./pending-approval-details.html');\r\n\r\nclass PendingApprovalDetailsComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('pendingApprovalDetails', {\r\n controller: PendingApprovalDetailsController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n originalAccountRequest: ' = ['$scope', '$rootRouter', 'AccountRequestService', '$mdDialog'];\r\n private accountRequest: Dto.IAccountRequest;\r\n private denyMessage = \"Deny with changes?\";\r\n private pendingApprovalForm: ng.IFormController;\r\n private isReservedParkingRequest: boolean;\r\n\r\n //Bindings\r\n private _originalAccountRequest: Dto.IAccountRequest;\r\n private inEditMode: boolean;\r\n private onSave: Function;\r\n private onLoadUserCancel: Function;\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $rootRouter: ng.Router,\r\n private AccountRequestService: IAccountRequestService,\r\n private $mdDialog: ng.material.IDialogService) {\r\n console.log('PendingApprovalDetailsController loading');\r\n this.activate();\r\n }\r\n\r\n public $onInit(): void {\r\n \r\n }\r\n\r\n public get originalAccountRequest() {\r\n return this._originalAccountRequest;\r\n }\r\n\r\n public set originalAccountRequest(val: Dto.IAccountRequest) {\r\n if (this._originalAccountRequest !== val) {\r\n this._originalAccountRequest = val;\r\n this.accountRequest = ng.copy(this._originalAccountRequest);\r\n if (this.accountRequest) {\r\n this.AccountRequestService.get(this.accountRequest.id, this.accountRequest.accountId)\r\n .then((accountRequest) => {\r\n this.accountRequest = accountRequest;\r\n this.isReservedParkingRequest = accountRequest.isReserveParkingRequest;\r\n this.inEditMode = (this.accountRequest.id !== undefined);\r\n });\r\n }\r\n }\r\n }\r\n\r\n public activate(): void {\r\n console.log('PendingApprovalDetailsController loaded');\r\n }\r\n\r\n public onDeny(args): void {\r\n if (!this.accountRequest) return;\r\n\r\n let completeDeny = (args) => {\r\n if (args.send) {\r\n if (this.accountRequest.id) {\r\n this.accountRequest.accountDeniedMessage = args.message;\r\n this.accountRequest.accountStatus = Dto.AccountStatus.AccountDenied;\r\n this.AccountRequestService.update(this.accountRequest).then((accountRequest) => {\r\n this.accountRequest = null;\r\n this.originalAccountRequest = null;\r\n this.inEditMode = false;\r\n this.raiseOnSave(accountRequest);\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.$mdDialog.show({\r\n parent: ng.element(document.body),\r\n template: ''\r\n }).then(\r\n (args) => { completeDeny(args); }\r\n ); \r\n }\r\n\r\n public onApprove(args): void {\r\n if (!this.accountRequest) return;\r\n\r\n if (this.accountRequest.id) {\r\n this.accountRequest.accountStatus = Dto.AccountStatus.Active;\r\n this.AccountRequestService.update(this.accountRequest).then((accountRequest) => {\r\n this.accountRequest = null;\r\n this.originalAccountRequest = null\r\n this.inEditMode = false;\r\n this.raiseOnSave(accountRequest);\r\n });\r\n }\r\n }\r\n\r\n public raiseOnSave(accountRequest: Dto.IAccountRequest): void {\r\n if (typeof this.onSave === 'function') {\r\n this.onSave({\r\n accountRequest: accountRequest\r\n });\r\n }\r\n }\r\n}\r\n\r\nlet pendingApprovalDetailsComponent = new PendingApprovalDetailsComponent();\r\nexport default pendingApprovalDetailsComponent;\r\nexport { pendingApprovalDetailsComponent as PendingApprovalDetailsComponent, IPendingApprovalDetailsController, PendingApprovalDetailsController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/pending-approval/pending-approval-details.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Frequent Parker Number is required.
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
First Name is required.
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Last Name is required.
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Address is required.
\\n
\\n
\\n\\n\\n\\n
\\n
\\n\\n\\n\\n
\\n
Address is required.
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Account Type is required.
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Date is required.
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/pending-approval/pending-approval-details.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/pending-approval/pending-approval-details.html\n// module id = 623\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IAccountRequestService } from './../';\r\nlet template = require('./pending-approval-grid.html');\r\n\r\nclass PendingApprovalGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('pendingApprovalGrid', {\r\n controller: PendingApprovalGridController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n accountRequestSelected: '&?',\r\n selectedAccountRequest: ' = ['$q', 'AccountRequestService'];\r\n private criteria: Dto.IAccountRequestCriteria;\r\n private accountRequests: {};\r\n private _selectedAccountRequest: Dto.IAccountRequest;\r\n private routeSelectedId: string;\r\n\r\n //Bindings\r\n private accountRequestSelected: Function;\r\n\r\n constructor(private $q :ng.IQService,\r\n private AccountRequestService: IAccountRequestService) {\r\n console.log('PendingApprovalGridController loading');\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('PendingApprovalGridController loaded');\r\n }\r\n\r\n public $onInit(): void {\r\n this.criteria = {\r\n pageSize: 25,\r\n pageNumber: 1, \r\n isPendingApproval: true \r\n } as Dto.IAccountRequestCriteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public get selectedAccountRequest(): Dto.IAccountRequest {\r\n return this._selectedAccountRequest;\r\n }\r\n\r\n public set selectedAccountRequest(val: Dto.IAccountRequest) {\r\n if (this._selectedAccountRequest !== val) {\r\n this._selectedAccountRequest = val;\r\n this.criteria.pageNumber = 1;\r\n this.search(this.criteria);\r\n }\r\n }\r\n\r\n public search(criteria?: Dto.IAccountRequestCriteria): ng.IPromise> {\r\n return this.AccountRequestService.search(criteria).then((accountRequests) => {\r\n this.accountRequests = accountRequests;\r\n this.raiseAccountRequestSelected();\r\n return this.$q.resolve(this.accountRequests);\r\n });\r\n }\r\n\r\n public criteriaChanged(args) {\r\n this.criteria = args.criteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public onRowSelect(selectedRow): void {\r\n if (!selectedRow) {\r\n this.raiseAccountRequestSelected();\r\n return;\r\n }\r\n this.raiseAccountRequestSelected(selectedRow.entity);\r\n }\r\n\r\n public raiseAccountRequestSelected(accountRequest?: Dto.IAccountRequest): void {\r\n if (typeof this.accountRequestSelected === 'function') {\r\n this.accountRequestSelected({ accountRequest: accountRequest });\r\n }\r\n }\r\n}\r\n\r\nlet pndngAppvlGridComponent = new PendingApprovalGridComponent();\r\nexport default pndngAppvlGridComponent;\r\nexport { pndngAppvlGridComponent as PendingApprovalGridComponent, IPendingApprovalGridController, PendingApprovalGridController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/pending-approval/pending-approval-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n
{{ MODEL_COL_FIELD | date:'short'}}
\\n
\\n
\\n\\n\\n\\n
\\n
\";\nvar id1=\"admin/pending-approval/pending-approval-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/pending-approval/pending-approval-grid.html\n// module id = 625\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { ContentTypeSettingKeys } from '../../../data/interfaces';\r\nlet template = require('./content-nav-widget.html');\r\n\r\nclass ContentNavWidgetComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('contentNavWidget', {\r\n controller: ContentNavWidgetController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IContentNavWidgetController {\r\n\r\n}\r\n\r\nclass ContentNavWidgetController implements IContentNavWidgetController {\r\n private static $inject: Array = [];\r\n private ContentTypeSettingKeys = ContentTypeSettingKeys;\r\n constructor() {\r\n }\r\n\r\n public $onInit(): void {\r\n }\r\n \r\n}\r\n\r\nlet contentNavWidgetComponent = new ContentNavWidgetComponent();\r\nexport default contentNavWidgetComponent;\r\nexport { contentNavWidgetComponent as ContentNavWidgetComponent, IContentNavWidgetController, ContentNavWidgetController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/content-nav-widget.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\\n\";\nvar id1=\"admin/setup/content-nav-widget.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/setup/content-nav-widget.html\n// module id = 627\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nlet template = require('./setup.html');\r\n\r\nclass SetUpComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('setup', {\r\n controller: SetUpController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n },\r\n $routeConfig: [\r\n { path: '/', component: 'landing', name: 'Landing', useAsDefault: true },\r\n { path: '/content', component: 'contentEditor', name: 'ContentEditor' },\r\n { path: '/content/:id', component: 'contentEditor', name: 'SelectedTemplateContentEditor' },\r\n { path: '/fpp-settings', component: 'fppSettings', name: 'FppSettings' },\r\n { path: '/fpp-settings/:id', component: 'fppSettings', name: 'SelectedFppSettingsPromo' }\r\n ]\r\n });\r\n }\r\n}\r\n\r\ninterface ISetUpController {\r\n \r\n}\r\n\r\nclass SetUpController implements ISetUpController {\r\n private static $inject: Array = [];\r\n\r\n constructor() {\r\n console.log('SetUpController loading');\r\n\r\n }\r\n\r\n}\r\n\r\nlet setUpComponent = new SetUpComponent();\r\nexport default setUpComponent;\r\nexport { setUpComponent as SetUpComponent, ISetUpController, SetUpController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/setup.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n\";\nvar id1=\"admin/setup/setup.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/setup/setup.html\n// module id = 629\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { ICustomerSettingsService } from '../../../services';\r\nimport {IParkHouse, IPromotionSettings} from \"../../../data/interfaces\";\r\nlet template = require('./fpp-settings.html');\r\n\r\nconst ALL_PARK_HOUSES: IParkHouse = {\r\n id: 1,\r\n name: 'All Parkhouses',\r\n isEveryone: true,\r\n externalId: \"1\",\r\n enabled: true,\r\n parkHouseId: -1\r\n}\r\n\r\nclass FppSettingsComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('fppSettings', {\r\n controller: FppSettingsController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IFppSettingsController {\r\n\r\n}\r\n\r\nclass FppSettingsController implements IFppSettingsController {\r\n private static $inject: Array = ['$mdpTimePicker', '$timeout', '$q', '$mdDialog', '$rootRouter', 'CustomerSettings'];\r\n public ScheduleTypes = Dto.ScheduleTypeEnum;\r\n public DayOfWeek = Dto.DayOfWeek;\r\n private setupForm: ng.IFormController;\r\n private promotions: Array;\r\n private groups: Array;\r\n private parkHouses: Array;\r\n private _selectedPromotion: Dto.IPromotionSettings;\r\n private _recentlyClickedParkHouse: Dto.IParkHouse;\r\n private orignalSettings: Dto.ISettings;\r\n private loseChangesMessage = \"Changes will be lost. Are you sure?\";\r\n private urlId: string;\r\n\r\n constructor(private $mdpTimePicker: any,\r\n private $timeout: ng.ITimeoutService,\r\n private $q: ng.IQService,\r\n private $mdDialog: ng.material.IDialogService,\r\n private $router: ng.Router,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n console.log('SetUpFormController loading');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.promotions = [];\r\n this.CustomerSettings.getFrequentParkerSettings(true)\r\n .then((response) => {\r\n this.orignalSettings = ng.copy(response);\r\n this.promotions = response.settings.promotionSettings;\r\n initializeParkHouses(this.promotions);\r\n \r\n this.groups = Linq.From(response.settings.groups)\r\n .Where(x => x.enabled).ToArray();\r\n \r\n this.parkHouses = Linq.From([ALL_PARK_HOUSES, ...response.settings.parkHouses]).ToArray();\r\n\r\n if (this.urlId) {\r\n this.$timeout(() => {\r\n this.selectedPromotion = Linq.From(this.promotions).FirstOrDefault(x => x.id === this.urlId);\r\n }); \r\n }\r\n });\r\n }\r\n\r\n public $routerOnActivate(next, previous) {\r\n // Get the account identified by the route parameter\r\n this.urlId = next.params.id;\r\n }\r\n\r\n public navigate(address: Array): void {\r\n this.$router.navigate(address);\r\n }\r\n\r\n public get selectedPromotion() {\r\n return this._selectedPromotion;\r\n }\r\n\r\n public set selectedPromotion(val: Dto.IPromotionSettings) {\r\n if (this._selectedPromotion !== val) {\r\n if (val != null && this._selectedPromotion != null\r\n && this._selectedPromotion.id !== val.id\r\n && !(this._selectedPromotion.isNew || val.isNew)\r\n && (this._selectedPromotion.isNew || this.setupForm.$dirty)) {\r\n this.showLoseChangesWarning().then(() => {\r\n var previous = this._selectedPromotion;\r\n this.changeSelection(val);\r\n if (previous) {\r\n\r\n if (!previous.isNew) {\r\n this.revertExistingItem(previous.id);\r\n this.setFormPristine();\r\n } else {\r\n this.promotions.remove(previous);\r\n }\r\n }\r\n },\r\n () => {\r\n if (val && val.isNew) {\r\n this.promotions.remove(val);\r\n }\r\n });\r\n }\r\n else {\r\n this.changeSelection(val);\r\n }\r\n }\r\n }\r\n\r\n private changeSelection(val: Dto.IPromotionSettings) {\r\n this._selectedPromotion = val;\r\n\r\n if (this._selectedPromotion) {\r\n this.normalizeSchedule(this._selectedPromotion.schedule);\r\n this.setFormPristine();\r\n }\r\n \r\n }\r\n\r\n public handleParkHouseSelectionChanged() {\r\n if (!this._recentlyClickedParkHouse)\r\n return;\r\n\r\n // user selects All Parkhouses, deselect everything else\r\n // user has All Parkhouses selected then selects something else, deselect All Parkhouses\r\n this._selectedPromotion.parkHouses = this._selectedPromotion.parkHouses.filter(ph=>ph.isEveryone == this._recentlyClickedParkHouse.isEveryone);\r\n }\r\n \r\n public handleParkHouseClick(parkHouse: IParkHouse){\r\n this._recentlyClickedParkHouse = parkHouse;\r\n }\r\n \r\n public showEditButtons() {\r\n return this.selectedPromotion\r\n && (this.setupForm.$dirty || this.selectedPromotion.isNew);\r\n }\r\n\r\n public isNamedDaysGroupSelected() {\r\n return (!this.selectedPromotion\r\n || !this.selectedPromotion.schedule\r\n || this.selectedPromotion.schedule.scheduleType === Dto.ScheduleTypeEnum.All\r\n || this.selectedPromotion.schedule.scheduleType === Dto.ScheduleTypeEnum.Weekdays\r\n || this.selectedPromotion.schedule.scheduleType === Dto.ScheduleTypeEnum.Weekends\r\n );\r\n }\r\n\r\n public isCustomDaysGroupSelected() {\r\n return (this.selectedPromotion\r\n && this.selectedPromotion.schedule\r\n && this.selectedPromotion.schedule.scheduleType === Dto.ScheduleTypeEnum.Custom);\r\n }\r\n\r\n public IsDefaultOrNotSelected() {\r\n return !this.selectedPromotion || this.selectedPromotion.isDefault;\r\n }\r\n\r\n public normalizeSchedule(schedule: Dto.ISchedule): void {\r\n\r\n if (schedule && schedule.scheduleType == Dto.ScheduleTypeEnum.Custom) {\r\n let promoCustomDays = Linq.From(schedule.activeTimes)\r\n .Select(x => x.dayOfWeek);\r\n\r\n let missingDays = Linq.From(Object.keys(this.DayOfWeek))\r\n .Where(x => isNaN(x as any))\r\n .Where(x => !promoCustomDays.Contains(Dto.DayOfWeek[x]))\r\n .Select(x => {\r\n return {\r\n enabled: false,\r\n dayOfWeek: Dto.DayOfWeek[x],\r\n } as Dto.ICustomActiveTime;\r\n }).ToArray() || [];\r\n\r\n let customDays = missingDays.concat(schedule.activeTimes || []);\r\n\r\n schedule.activeTimes = Linq.From(customDays)\r\n .OrderBy(x => x.dayOfWeek).ToArray();\r\n }\r\n else {\r\n schedule.activeTimes = [];\r\n }\r\n }\r\n\r\n private deleteSelectedPromo(): void {\r\n\r\n if (this.selectedPromotion && !this.selectedPromotion.isDefault) {\r\n var tempPromo = this.selectedPromotion;\r\n\r\n this.promotions.remove(tempPromo);\r\n this.selectedPromotion = undefined;\r\n if (!tempPromo.isNew) {\r\n this.save(\"Delete Successful.\");\r\n }\r\n\r\n var lastNewPromo = Linq.From(this.promotions).FirstOrDefault(x => x.isNew);\r\n this.selectedPromotion = lastNewPromo;\r\n }\r\n }\r\n\r\n public onDelete(): void {\r\n if (this.selectedPromotion && !this.selectedPromotion.isDefault) {\r\n\r\n this.showLoseChangesWarning(\"Are you sure you want to delete this Promotion?\").then(() => {\r\n this.deleteSelectedPromo();\r\n });\r\n }\r\n }\r\n\r\n public createNew(): void {\r\n let tmpPromo = {\r\n id: Object.newGuid(),\r\n isNew: true,\r\n isDefault: false,\r\n name: this.getUniquePromoName(),\r\n groups: [],\r\n isActive: true,\r\n schedule: {\r\n allDay: true,\r\n scheduleType: Dto.ScheduleTypeEnum.All,\r\n\r\n },\r\n } as Dto.IPromotionSettings;\r\n\r\n var defaultPromo = Linq.From(this.promotions).FirstOrDefault(x => x.isDefault);\r\n var insertPos = this.promotions.indexOf(defaultPromo);\r\n this.promotions.insert(tmpPromo, insertPos);\r\n this.selectedPromotion = tmpPromo;\r\n this.setFormPristine();\r\n }\r\n\r\n private getUniquePromoName() {\r\n let incremntor = 0;\r\n let newName = \"\";\r\n\r\n do {\r\n incremntor++;\r\n newName = `New Promo ${incremntor}`;\r\n } while (Linq.From(this.promotions).Any(x => x.name === newName));\r\n\r\n return newName\r\n }\r\n\r\n public onAdd() {\r\n if (this._selectedPromotion != null\r\n && (this._selectedPromotion.isNew)) {\r\n this.showLoseChangesWarning().then(() => {\r\n var val = this._selectedPromotion;\r\n this.createNew();\r\n if (val && val.isNew) {\r\n this.promotions.remove(val);\r\n }\r\n\r\n });\r\n }\r\n else {\r\n this.createNew();\r\n }\r\n }\r\n\r\n private setFormPristine() {\r\n this.setupForm.$setPristine();\r\n this.setupForm.$setUntouched();\r\n }\r\n\r\n public onGroupsClose() {\r\n if (this.selectedPromotion.groups.length > 1) {\r\n this.selectedPromotion.groups.remove(x => x.isEveryone);\r\n }\r\n }\r\n\r\n public onCancel(): void {\r\n if (this.selectedPromotion) {\r\n this.showLoseChangesWarning().then(() => {\r\n if (!this.selectedPromotion.isNew) {\r\n\r\n let origPromo = this.revertExistingItem(this.selectedPromotion.id);\r\n this.selectedPromotion = origPromo;\r\n }\r\n else {\r\n this.deleteSelectedPromo();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private revertExistingItem(id: String): Dto.IPromotionSettings {\r\n\r\n let origPromo = Linq.From(this.orignalSettings.settings.promotionSettings)\r\n .FirstOrDefault(x => x.id === id);\r\n\r\n var modified = Linq.From(this.promotions)\r\n .FirstOrDefault(x => x.id === id);\r\n\r\n let index = this.promotions.indexOf(modified);\r\n\r\n if (index >= 0) {\r\n this.promotions[index] = origPromo;\r\n }\r\n return origPromo;\r\n }\r\n\r\n public onCustomScheduleSelected() {\r\n if (this.selectedPromotion\r\n && this.selectedPromotion.schedule\r\n && this.selectedPromotion.schedule.scheduleType == Dto.ScheduleTypeEnum.Custom) {\r\n this.normalizeSchedule(this.selectedPromotion.schedule);\r\n }\r\n }\r\n\r\n private showLoseChangesWarning(message?: string): ng.IPromise {\r\n\r\n var confirm = this.$mdDialog.confirm()\r\n .title('Warning')\r\n .textContent(message || this.loseChangesMessage)\r\n .ok('Yes')\r\n .cancel('No');\r\n\r\n return this.$mdDialog.show(confirm);\r\n }\r\n\r\n public onSave(): void {\r\n this.save();\r\n }\r\n public save(message?: string): void {\r\n const fppSettings = ng.copy(this.orignalSettings);\r\n this.promotions.forEach(ps => ps.parkHouses = !!ps.parkHouses ? ps.parkHouses.filter(x=>!x.isEveryone): []);\r\n fppSettings.settings.promotionSettings = this.promotions;\r\n \r\n this.CustomerSettings.saveFrequentParkerSettings(fppSettings, message)\r\n .then((response) => {\r\n this.orignalSettings = ng.copy(response);\r\n this.promotions = response.settings.promotionSettings;\r\n\r\n initializeParkHouses(this.promotions);\r\n \r\n this.groups = Linq.From(response.settings.groups)\r\n .Where(x => x.enabled).ToArray();\r\n \r\n this.parkHouses = Linq.From([ALL_PARK_HOUSES, ...response.settings.parkHouses]).ToArray();\r\n \r\n if (this.selectedPromotion) {\r\n this.selectedPromotion = Linq.From(this.promotions)\r\n .FirstOrDefault(x => x.id == this.selectedPromotion.id);\r\n }\r\n\r\n this.$timeout(() => {\r\n //must run next after this digest cycle completes.\r\n this.setFormPristine();\r\n });\r\n\r\n }).catch((e) => {\r\n \r\n });\r\n }\r\n \r\n}\r\n\r\nconst initializeParkHouses = (promotionSettings: IPromotionSettings[]) => {\r\n promotionSettings.forEach(ps => {\r\n ps.parkHouses = ps.parkHouses || [];\r\n if (ps.parkHouses.length == 0)\r\n ps.parkHouses.push(ALL_PARK_HOUSES);\r\n });\r\n}\r\n\r\nlet component = new FppSettingsComponent();\r\nexport default component;\r\nexport { component as FppSettingsComponent, IFppSettingsController, FppSettingsController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/fpp-settings.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n\\nplay_arrow\\nSetup\\n\\n
\\n
\\n
\\n\\n\\n\\nFeatures\\n\\n\\n\\n
\\nsettings\\n
\\nFrequent Parker\\n
\\n
\\n
\\n\\n\\nContent Templates\\n\\n\\n\\n
\\ncontent_copy\\n
\\nPages & Email Templates\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n

Frequent Parker Setup

\\n
\\n\\nCancel\\n\\n\\nSave\\n\\n
\\n
\\n
\\n\\n\\n\\nSelect Promotion\\n\\n{{promotion.name}}\\n\\n\\n\\n\\nAdd\\n\\n\\nDelete\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
Promotion Settings
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n{{parkHouse.name}}\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n{{group.name}}\\n\\n\\n\\n
\\n
\\nActive\\n
\\n
\\n
\\n
Point Accrual
\\n
\\n\\n\\n\\n
point(s) accrued for every dollar spent
\\n
\\n
Point Redemption
\\n
\\n\\n\\n\\n
point(s) redeemed for every dollar spent
\\n
\\n
\\n\\n\\n\\n
point(s) must be used at minimum each time
\\n
\\n
\\n\\n\\n\\n
point increment for each redemption
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Promotion Active Hours
\\n
\\n
\\n\\nAll\\n Weekdays \\nWeekends\\nCustom\\n\\n
\\n
\\n
\\nAll Day\\n
\\n
OR
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n{{ vm.DayOfWeek[activeTime.dayOfWeek] }}\\n\\n\\nAll Day\\n\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/setup/fpp-settings.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/setup/fpp-settings.html\n// module id = 631\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { ICustomerSettingsService } from '../../../services';\r\nimport { Dto } from '../../../data';\r\nlet template = require('./fpp-widget.html');\r\n\r\nclass FppWidgetComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('fppWidget', {\r\n controller: FppWidgetController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IFppWidgetController {\r\n\r\n}\r\n\r\nclass FppWidgetController implements IFppWidgetController {\r\n private static $inject: Array = ['CustomerSettings']; \r\n private fppSettings: Dto.IFrequentParkerSettings;\r\n private enabledMessage: string;\r\n private defaultPromotionSettings: Dto.IPromotionSettings;\r\n private promotionsList: Array;\r\n\r\n constructor(private CustomerSettings: ICustomerSettingsService) {\r\n console.log('FppWidgetController loading');\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.CustomerSettings.getFrequentParkerSettings()\r\n .then((response) => {\r\n this.fppSettings = response.settings;\r\n this.enabledMessage = (this.fppSettings.enabled) ? \"Yes\" : \"No\";\r\n this.schedulingBasis = this.getSchedulingBasisText(this.fppSettings.schedulingBasis);\r\n\r\n this.defaultPromotionSettings = Linq.From(this.fppSettings.promotionSettings)\r\n .FirstOrDefault(x => x.isDefault === true);\r\n\r\n this.promotionsList = Linq.From(this.fppSettings.promotionSettings)\r\n .Where(x => x.isActive === true && !x.isDefault).ToArray();\r\n });\r\n }\r\n private schedulingBasis: string;\r\n public getSchedulingBasisText(basis: Dto.SchedulingBasisType): string {\r\n switch (basis) {\r\n case Dto.SchedulingBasisType.EntryTime:\r\n return \"Entry Times\";\r\n case Dto.SchedulingBasisType.ExitTime:\r\n return \"Exit Times\";\r\n default:\r\n return \"Not Configured\";\r\n }\r\n }\r\n}\r\n\r\nlet component = new FppWidgetComponent();\r\nexport default component;\r\nexport { component as FppWidgetComponent, IFppWidgetController, FppWidgetController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/fpp-widget.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
Frequent Parker Setup
\\n
\\nEdit\\n
\\n
\\n
\\n
\\n
\\n
Enabled
\\n
\\n{{vm.enabledMessage}}\\n
\\n
\\n
\\n
Promotional Basis
\\n
\\n{{vm.schedulingBasis}}\\n
\\n
\\n
\\n
\\n
\\n
Default Accrual
\\n
{{vm.defaultPromotionSettings.pointAccruedPerDollar}}
\\n
Points Per Dollar
\\n
\\n
\\n
Default Redemption
\\n
{{vm.defaultPromotionSettings.pointsRedeemedPerDollar}}
\\n
Points Per Dollar
\\n
\\n
\\n
\\n
\\n
Promotions
\\n\\n
3\\\">\\n\\n(more)\\n\\n
\\n
\\nDefault Promotion Only\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/setup/fpp-widget.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/setup/fpp-widget.html\n// module id = 633\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nlet template = require('./landing.html');\r\n\r\nclass LandingComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('landing', {\r\n controller: LandingController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ILandingController {\r\n\r\n}\r\n\r\nclass LandingController implements ILandingController {\r\n private static $inject: Array = [];\r\n\r\n constructor() {\r\n }\r\n\r\n public $onInit(): void {\r\n }\r\n\r\n}\r\n\r\nlet landingComponent = new LandingComponent();\r\nexport default landingComponent;\r\nexport { landingComponent as LandingComponent, ILandingController, LandingController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/landing.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n\";\nvar id1=\"admin/setup/landing.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/setup/landing.html\n// module id = 635\n// module chunks = 0","import * as ng from 'angular';\r\nimport { Moment } from 'moment';\r\n\r\nlet TimespanFormatDirective: ng.Injectable =\r\n function (moment: Moment) {\r\n return {\r\n require: 'ngModel',\r\n restrict: \"A\",\r\n link: (scope: ng.IScope,\r\n element: ng.IAugmentedJQueryStatic,\r\n attrs: ng.IAttributes,\r\n ngModel: ng.INgModelController) => {\r\n\r\n // convert utc date to local for display \r\n ngModel.$formatters.push((inboundTimespan) => {\r\n var localMoment = moment as any;\r\n try {\r\n\r\n return (inboundTimespan)\r\n ? localMoment(localMoment().format(\"YYYY-MM-DD\"))\r\n .add(localMoment.duration(inboundTimespan))\r\n .toDate()\r\n : inboundTimespan;\r\n }\r\n catch (e) {\r\n return null; \r\n }\r\n });\r\n\r\n // convert local date to utc for storage\r\n ngModel.$parsers.push((outboundDatetime) => {\r\n try {\r\n var localMoment = moment as any;\r\n return (outboundDatetime)\r\n ? localMoment.duration(localMoment(outboundDatetime).format(\"HH:mm\")).toIsoString()\r\n : outboundDatetime;\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n\r\nTimespanFormatDirective.$inject = ['moment'];\r\n\r\nexport let TimespanFormat = {\r\n name: 'tsFormat',\r\n factory: TimespanFormatDirective\r\n};\r\n\r\n//(function () {\r\n// 'use strict';\r\n\r\n// angular\r\n// .module('app')\r\n// .directive('datepicker', Directive);\r\n\r\n// function Directive($filter) {\r\n// return {\r\n// require: 'ngModel',\r\n// link: function (scope, element, attr, ngModel) {\r\n// element.addClass('datepicker');\r\n// element.pickadate({ format: 'dd/mm/yyyy', editable: true });\r\n\r\n// // convert utc date to local for display\r\n// ngModel.$formatters.push(function (utcDate) {\r\n// if (!utcDate)\r\n// return;\r\n\r\n// return $filter('utcToLocal')(utcDate, 'dd/MM/yyyy');\r\n// });\r\n\r\n// // convert local date to utc for storage\r\n// ngModel.$parsers.push(function (localDate) {\r\n// if (!localDate)\r\n// return;\r\n\r\n// return moment(localDate, 'DD/MM/YYYY').utc().toISOString();\r\n// });\r\n// }\r\n// };\r\n// }\r\n//})();\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/setup/timespan-formatter.ts","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IUserAdminService } from './../';\r\nlet template = require('./users.html');\r\n\r\nclass UsersComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('users', {\r\n controller: UsersController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IUsersController {\r\n\r\n}\r\n\r\nclass UsersController implements IUsersController {\r\n private static $inject: Array = ['UserAdmin', '$mdDialog'];\r\n private profile: Dto.IProfile;\r\n private savedProfile: Dto.IProfile;\r\n private edit: boolean;\r\n private add: boolean;\r\n private clear: boolean;\r\n\r\n constructor(private UserAdmin: IUserAdminService) {\r\n console.log('UsersController loaded');\r\n }\r\n\r\n private userSelected(profile: Dto.IProfile) {\r\n this.profile = profile;\r\n }\r\n\r\n private inEditMode(edit: boolean) {\r\n this.edit = edit;\r\n }\r\n\r\n private addUser() {\r\n this.profile = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n language: \"en\",\r\n email: \"\",\r\n isEnabled: true\r\n } as Dto.IProfile;\r\n this.add = true;\r\n\r\n }\r\n\r\n private onFormCancel(action: string) {\r\n if (action === \"add\") {\r\n this.userSelected(null);\r\n this.add = false;\r\n }\r\n }\r\n\r\n private onFormSave(user: Dto.IProfile) {\r\n this.savedProfile = user;\r\n this.add = false;\r\n }\r\n\r\n private userLoadCancelled(user: Dto.IProfile) {\r\n this.userSelected(user);\r\n }\r\n}\r\n\r\nlet usersComponent = new UsersComponent();\r\nexport default usersComponent;\r\nexport { usersComponent as UsersComponent, IUsersController, UsersController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/users/users.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n\\n\\n\\n
\";\nvar id1=\"admin/users/users.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/users/users.html\n// module id = 638\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IToastMessageService } from '../../../services';\r\nimport { IUserAdminService } from './../';\r\nlet template = require('./users-detail.html');\r\n\r\nclass UsersDetailComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('usersDetail', {\r\n controller: UsersDetailController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n originalUser: ' = ['UserAdmin', '$mdDialog', '$timeout'];\r\n private user: Dto.IProfile;\r\n //private _email: string;\r\n private userForm: ng.IFormController;\r\n private emailModified: boolean;\r\n private usernameExists: boolean;\r\n private criteria: Dto.IProfileCriteria;\r\n private inEditMode: boolean;\r\n private hasChanges: boolean;\r\n //Bindings\r\n private _originalUser: Dto.IProfile;\r\n private onCancel: Function;\r\n private onSave: Function;\r\n private onLoadUserCancel: Function;\r\n private loseChangesMessage = \"Changes will be lost. Are you sure?\";\r\n private add: boolean;\r\n\r\n constructor(private UserAdmin: IUserAdminService,\r\n private $mdDialog: ng.material.IDialogService,\r\n private $timeout: ng.ITimeoutService) {\r\n console.log('UsersFormController loading');\r\n this.activate();\r\n }\r\n\r\n public $onInit(): void {\r\n this.inEditMode = false;\r\n this.add = false;\r\n this.emailModified = false;\r\n this.usernameExists = false;\r\n this.hasChanges = false;\r\n }\r\n\r\n public get originalUser() {\r\n return this._originalUser;\r\n }\r\n\r\n public set originalUser(val: Dto.IProfile) {\r\n if (this._originalUser !== val && this.user !== val) {\r\n if (this.hasChanges) {\r\n var self = this;\r\n\r\n var confirm = this.$mdDialog.confirm()\r\n .title('Warning')\r\n .textContent(this.loseChangesMessage)\r\n .ok('Yes')\r\n .cancel('No');\r\n\r\n this.$mdDialog.show(confirm).then(\r\n () => { self.acceptUserLoad(val); },\r\n () => { self.onLoadUserCancel({ user: this.user }); }\r\n ); \r\n\r\n }\r\n else {\r\n this.acceptUserLoad(val);\r\n }\r\n }\r\n }\r\n\r\n private acceptUserLoad(val: Dto.IProfile) {\r\n this._originalUser = val;\r\n this.user = ng.copy(this._originalUser);\r\n this.inEditMode = !this.user.id;\r\n this.hasChanges = false;\r\n this.resetFormState();\r\n }\r\n\r\n public get userDisplayName() {\r\n if (this.originalUser) {\r\n return (this.originalUser.id)\r\n ? this.originalUser.firstName + \" \" + this.originalUser.lastName\r\n : \"Add User\";\r\n }\r\n return \"No User Selected\";\r\n }\r\n\r\n public get isNew() {\r\n return (this.user && !this.user.id);\r\n }\r\n\r\n public activate(): void {\r\n console.log('UsersFormController loaded');\r\n }\r\n\r\n public openMenu($mdMenu, ev) {\r\n $mdMenu.open(ev);\r\n };\r\n\r\n public get username() {\r\n return (this.user)\r\n ? this.user.username\r\n : undefined;\r\n }\r\n\r\n public set username(val: string) {\r\n\r\n if (this.user && val != this.user.username) {\r\n this.user.username = val;\r\n\r\n if (this.user.username)\r\n this.user.username = this.user.username.trim();\r\n\r\n // Do not check is username exists, if it is null or empty string.\r\n if (this.isNew && this.user.username && (this.userForm as any).username.$valid) {\r\n this.checkUsernameInUse(this.user.username);\r\n }\r\n }\r\n }\r\n\r\n public onEmailChange(): void {\r\n if (this.emailModified === false) {\r\n this.user.email = this.user.username;\r\n }\r\n }\r\n\r\n public checkUsernameInUse(username: string): void {\r\n this.UserAdmin.exists(username)\r\n .then((response) => {\r\n this.usernameExists = response;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n\r\n public onResendInvite(): void {\r\n this.UserAdmin.sendInvite(this.user.id, this.user.username)\r\n .then((response) => {\r\n var x = response;\r\n })\r\n }\r\n\r\n public onUnlockUser(): void {\r\n this.UserAdmin.unlockUser(this.user.id);\r\n }\r\n\r\n public onCancelClick(args): void {\r\n let self = this;\r\n let completeCancel = () => {\r\n this.inEditMode = false;\r\n this.emailModified = false;\r\n this.user = ng.copy(this.originalUser)\r\n this.resetFormState();\r\n args.completeCancel();\r\n this.raiseCancel();\r\n this.hasChanges = false;\r\n }\r\n\r\n if (this.hasChanges) {\r\n\r\n var confirm = this.$mdDialog.confirm()\r\n .title('Warning')\r\n .textContent(this.loseChangesMessage)\r\n .ok('Yes')\r\n .cancel('No');\r\n\r\n this.$mdDialog.show(confirm).then(\r\n () => { completeCancel(); },\r\n () => { self.onLoadUserCancel({ user: this.user }); }\r\n );\r\n }\r\n else {\r\n completeCancel();\r\n }\r\n\r\n }\r\n\r\n private resetFormState() {\r\n this.userForm.$setPristine();\r\n this.userForm.$setUntouched();\r\n this.usernameExists = false;\r\n }\r\n\r\n public onSaveClick(args): void {\r\n if (!this.user) return;\r\n\r\n let userSavedHandler = (user) => {\r\n this.user = user;\r\n this._originalUser = ng.copy(user);\r\n this.inEditMode = false;\r\n this.hasChanges = false;\r\n this.raiseSave(this.originalUser);\r\n this.resetFormState();\r\n console.log(\"Profile Update Successful\");\r\n };\r\n\r\n let userCatchHandler = (e) => {\r\n args.cancel();\r\n console.log(e);\r\n };\r\n\r\n if (this.user.id) {\r\n this.UserAdmin.update(this.user)\r\n .then(userSavedHandler)\r\n .catch(userCatchHandler);\r\n }\r\n else {\r\n this.UserAdmin.save(this.user)\r\n .then(userSavedHandler)\r\n .catch(userCatchHandler);\r\n }\r\n }\r\n\r\n public raiseSave(user: Dto.IProfile): void {\r\n if (typeof this.onSave === 'function') {\r\n this.onSave({\r\n user: user\r\n });\r\n }\r\n }\r\n\r\n public raiseCancel(): void {\r\n if (typeof this.onCancel === 'function') {\r\n this.onCancel({\r\n action: (this.user && this.user.id)\r\n ? \"edit\"\r\n : \"add\"\r\n });\r\n }\r\n }\r\n}\r\n\r\nlet usersDetailComponent = new UsersDetailComponent();\r\nexport default usersDetailComponent;\r\nexport { usersDetailComponent as UsersDetailComponent, IUsersDetailController, UsersDetailController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/users/users-detail.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
First Name is required.
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
Last Name is required.
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\nUsername already in use, please choose another.\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n\\n\\nEnabled\\nDisabled\\n\\n\\n
\\n
\\n
\\n\\n\\nMore Actions...\\n\\n\\n\\nResend Invite\\n\\n\\nUnlock User\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"admin/users/users-detail.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/users/users-detail.html\n// module id = 640\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { Dto } from '../../../data';\r\nimport { IUserAdminService } from './../';\r\nlet template = require('./users-grid.html');\r\n\r\nclass UsersGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('usersGrid', {\r\n controller: UsersGridController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n userSelected: '&?',\r\n addUser: '&?',\r\n selectedUser: ' = ['$q', '$rootRouter', 'UserAdmin'];\r\n private profile: Dto.IProfile;\r\n private criteria: Dto.IProfileCriteria;\r\n private profiles: Dto.IProfile[];\r\n private _selectedUser: Dto.IProfile;\r\n //Bindings\r\n private userSelected: Function;\r\n private addUser: Function;\r\n\r\n\r\n constructor(private $q: ng.IQService,\r\n private $rootRouter: ng.Router,\r\n private UserAdmin: IUserAdminService) {\r\n console.log('UsersGridController loading');\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('UsersGridController loaded');\r\n }\r\n\r\n public $onInit(): void {\r\n this.criteria = {\r\n pageSize: 25,\r\n pageNumber: 1,\r\n isAdmin: true\r\n } as Dto.IProfileCriteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n public get selectedUser(): Dto.IProfile {\r\n return this._selectedUser;\r\n }\r\n\r\n public set selectedUser(val: Dto.IProfile) {\r\n if (this._selectedUser !== val) {\r\n this._selectedUser = val;\r\n this.criteria.pageNumber = 1;\r\n this.search(this.criteria);\r\n }\r\n }\r\n\r\n public search(criteria?: Dto.IProfileCriteria): ng.IPromise> {\r\n return this.UserAdmin.search(criteria).then((profiles) => {\r\n this.profiles = profiles;\r\n this.raiseUserSelected();\r\n return this.$q.resolve(this.profiles);\r\n });\r\n }\r\n\r\n public criteriaChanged(args) {\r\n this.criteria = args.criteria;\r\n this.search(this.criteria);\r\n }\r\n\r\n private onAdd(e): void {\r\n this.raiseAddUser();\r\n }\r\n\r\n public onRowSelect(selectedRow): void {\r\n if (!selectedRow) {\r\n this.raiseUserSelected();\r\n return;\r\n }\r\n this.raiseUserSelected(selectedRow.entity);\r\n }\r\n\r\n public raiseUserSelected(profile?: Dto.IProfile): void {\r\n if (typeof this.userSelected === 'function') {\r\n this.userSelected({ profile: profile });\r\n }\r\n }\r\n\r\n public raiseAddUser(): void {\r\n if (typeof this.addUser === 'function') {\r\n this.addUser();\r\n }\r\n }\r\n}\r\n\r\nlet usersGridComponent = new UsersGridComponent();\r\nexport default usersGridComponent;\r\nexport { usersGridComponent as UsersGridComponent, IUsersGridController, UsersGridController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/users/users-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n\\n\\n\\n\\n
\\n{{ MODEL_COL_FIELD?'Active':'Inactive' }}\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"admin/users/users-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/users/users-grid.html\n// module id = 642\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport * as Core from '../../core';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ContentTypeSettingKeys, IContentTemplate, contentGroupType } from '../../data/interfaces';\r\nimport { ContentTemplate, IContentTemplateResource } from '../../data/content-template'\r\nimport { ContentTemplateWrite, IContentTemplateWriteResource } from '../../data/content-template-write'\r\nimport { ContentTypeSettings, IContentTypeSettingsResource } from '../../data/content-type-settings'\r\nimport { ICustomerSettingsService } from '../../services';\r\n\r\nimport { Quill } from 'quill';\r\n\r\nlet template = require('./content-editor.html');\r\n\r\nclass ContentEditorComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('contentEditor', {\r\n controller: ContentEditorController,\r\n templateUrl: template,\r\n controllerAs: 'vm',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IContentEditorController {\r\n onTemplateSelected(key: ContentTypeSettingKeys): void;\r\n onLanguageSelected(args: string): void;\r\n onEdit(args: any): void;\r\n onCancel(args: any): void;\r\n onSave(args: any): void;\r\n}\r\n\r\nclass ContentEditorController implements IContentEditorController {\r\n private static $inject: Array = ['$q', '$scope', '$rootRouter', 'ContentTemplate', 'ContentTypeSettings', 'ContentTemplateWrite', 'CustomerSettings'];\r\n\r\n private templateTitle: string;\r\n private activeTemplate: any;\r\n private templateSetting: any;\r\n private oriActiveTemplate: any;\r\n private isEditMode: boolean = false;\r\n private contentTemplates: Array = [];\r\n private templateSettings: Array = [];\r\n private templateTokens: Array = [];\r\n private hideTokens: boolean = true;\r\n private editor: Quill;\r\n private hasTokens: boolean = false;\r\n private isEmailTemplate: boolean = false;\r\n private urlTemplateKey: ContentTypeSettingKeys;\r\n private _activeLanguage: string = \"en\";\r\n private get activeLanguage(): string {\r\n return this._activeLanguage;\r\n }\r\n private set activeLanguage(value: string) {\r\n if (value && value !== this._activeLanguage) {\r\n this._activeLanguage = value;\r\n this.setActiveTemplate();\r\n }\r\n\r\n }\r\n private get totalCharacter(): number {\r\n var cnt = 0;\r\n if (this.activeTemplate && this.activeTemplate.content) {\r\n cnt = this.activeTemplate.content.length;\r\n }\r\n return cnt;\r\n }\r\n private get maxContentLength(): string {\r\n var max = \"unlimited\";\r\n if (this.templateSetting && this.templateSetting.maxContentLength > 0) {\r\n max = this.templateSetting.maxContentLength;\r\n }\r\n return max;\r\n }\r\n\r\n\r\n private languages: Array = [];\r\n\r\n private config = {\r\n modules: {\r\n toolbar: [\r\n ['bold', 'italic', 'underline', 'strike'], // toggled buttons\r\n ['blockquote', 'code-block'],\r\n [{ 'header': 1 }, { 'header': 2 }], // custom button values\r\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\r\n [{ 'script': 'sub' }, { 'script': 'super' }], // superscript/subscript\r\n [{ 'indent': '-1' }, { 'indent': '+1' }], // outdent/indent\r\n [{ 'size': ['small', false, 'large', 'huge'] }], // custom dropdown\r\n [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n [{ 'color': [] }, { 'background': [] }], // dropdown with defaults from theme\r\n [{ 'font': [] }],\r\n [{ 'align': [] }],\r\n ['clean'], // remove formatting button\r\n ]\r\n }\r\n }\r\n\r\n constructor(private $q: ng.IQService,\r\n private $scope: ng.IScope,\r\n private $router: ng.Router,\r\n private ContentTemplate: IContentTemplateResource,\r\n private ContentTypeSettings: IContentTypeSettingsResource,\r\n private ContentTemplateWrite: IContentTemplateWriteResource,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n console.log('ContentEditorController loading');\r\n }\r\n\r\n public $onInit() {\r\n console.log('ContentEditorController loaded');\r\n this.loadSettings().then((isLoaded) => {\r\n if (this.urlTemplateKey)\r\n this.onTemplateSelected(this.urlTemplateKey);\r\n });\r\n }\r\n\r\n public $routerOnActivate(next, previous) {\r\n // Get the page identified by the route parameter\r\n this.urlTemplateKey = next.params.id;\r\n\r\n }\r\n\r\n public navigate(address: Array): void {\r\n this.$router.navigate(address);\r\n }\r\n\r\n public onEditorCreated(editor: any) {\r\n this.editor = editor;\r\n }\r\n\r\n\r\n public onTemplateSelected(key: ContentTypeSettingKeys): void {\r\n this.isEditMode = false;\r\n this.activeTemplate = undefined;\r\n this.templateSetting = Linq.From(this.templateSettings)\r\n .FirstOrDefault(x => x.key === key);\r\n this.templateTokens = this.templateSetting.templateTokens;\r\n this.hasTokens = this.templateTokens && this.templateTokens.length > 0;\r\n this.templateTitle = this.templateSetting.display;\r\n this.isEmailTemplate = this.templateSetting.groupType === contentGroupType.Email;\r\n this.setActiveTemplate();\r\n }\r\n\r\n public onLanguageSelected(args: any): void {\r\n console.log(args);\r\n }\r\n\r\n public onEdit(args: any): void {\r\n this.isEditMode = true;\r\n }\r\n\r\n public onCancel(args: any): void {\r\n this.isEditMode = false;\r\n if (this.oriActiveTemplate) {\r\n this.activeTemplate = ng.copy(this.oriActiveTemplate);\r\n }\r\n }\r\n\r\n public onSave(args: any): void {\r\n if (this.activeTemplate.isNew) {\r\n this.activeTemplate = this.ContentTemplateWrite.save(this.activeTemplate);\r\n }\r\n else {\r\n this.activeTemplate = this.ContentTemplateWrite.update(this.activeTemplate);\r\n }\r\n this.isEditMode = false;\r\n }\r\n\r\n public selected(item: any): boolean {\r\n return true;\r\n }\r\n\r\n public toggleTokens(): void {\r\n this.hideTokens = !this.hideTokens;\r\n }\r\n\r\n public onTokenSelected(args: any) {\r\n console.log(args);\r\n\r\n this.editor.insertText(this.getCurrentCursorPosition(), args)\r\n }\r\n\r\n public getCurrentCursorPosition() {\r\n var range = this.editor.getSelection();\r\n return range ? range.index + range.length : 0;\r\n }\r\n\r\n private loadSettings(): ng.IPromise {\r\n let contentTypePromise = this.ContentTypeSettings.query({}).$promise\r\n .then((response) => {\r\n this.templateSettings = response;\r\n });\r\n let customerSettingsPromise = this.CustomerSettings.getLanguageSettings()\r\n .then((languageSettings) => {\r\n this.languages = languageSettings.languages;\r\n });\r\n\r\n return this.$q.all([contentTypePromise, customerSettingsPromise])\r\n .then(() => {\r\n return this.$q.resolve(true);\r\n });\r\n }\r\n\r\n private setActiveTemplate(): void {\r\n var key = this.templateSetting.key;\r\n var lang = this.activeLanguage;\r\n\r\n this.ContentTemplate.query({ key: key, languageCode: lang }).$promise\r\n .then((response) => {\r\n this.contentTemplates = response;\r\n this.activeTemplate = Linq.From(this.contentTemplates).FirstOrDefault(x => x.languageCode === this.activeLanguage);\r\n\r\n if (!this.activeTemplate) {\r\n this.activeTemplate = {\r\n 'key': key,\r\n 'languageCode': this.activeLanguage,\r\n 'content': '',\r\n 'isNew': true\r\n };\r\n }\r\n\r\n this.oriActiveTemplate = ng.copy(this.activeTemplate);\r\n\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n }\r\n}\r\n\r\nlet ceComponent = new ContentEditorComponent();\r\nexport default ceComponent;\r\nexport { ceComponent as ContentEditorComponent, IContentEditorController, ContentEditorController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/admin/content-editor.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n\\nplay_arrow\\nSetup\\n\\n
\\n
\\n
\\n\\n\\n\\nFeatures\\n\\n\\n\\n
\\nsettings\\n
\\nFrequent Parker\\n
\\n
\\n
\\n\\n\\nContent Templates\\n\\n\\n\\n\\n\\n
\\nfolder_open\\n
\\nPages\\n
\\n
\\n
\\n\\n
\\ncontent_copy\\n
\\n{{item.display}}\\n
\\n
\\n
\\n\\n
\\nfolder_open\\n
\\nContent Blocks\\n
\\n
\\n
\\n\\n
\\ndehaze\\n
\\n{{item.display}}\\n
\\n
\\n
\\n\\n
\\nfolder_open\\n
\\nEmail Templates\\n
\\n
\\n
\\n\\n
\\nmail_outline\\n
\\n{{item.display}}\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n\\n
\\n
\\n\\n\\n\\n\\n{{language.name}}\\n\\n\\n\\nCharacter Limit:{{vm.totalCharacter}} of {{vm.maxContentLength}}\\n\\nHide Tokens\\nShow Tokens\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n\\nTokens\\n\\n\\n
\\n
\\n{{item.uiToken}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\nSelect a template to view or edit.\\n\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/admin/content-editor.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/admin/content-editor.html\n// module id = 644\n// module chunks = 0","import * as ng from 'angular';\r\nimport { AccountActivity, IAccountActivityResource } from './data/account-activity';\r\nimport { FrequentParkerActivity, IFrequentParkerActivityResource } from './data/frequent-parker-activity';\r\nimport { Message, IMessageResource } from './data/message';\r\nimport { Activities, IActivitiesService } from './services/activities-service';\r\nimport { ActivityGridComponent, IActivityGridController } from './user-controls/activity-grid';\r\nimport { AccountActivityComponent, IAccountActivityController } from './account-activity';\r\nimport { AccountInfoComponent, IAccountInfoController } from './account-info';\r\nimport { MediaComponent, IMediaController } from './media';\r\nimport { MessageComponent, IMessageController } from './message';\r\nimport { OverviewComponent, IOverviewController } from './overview';\r\n\r\nimport * as Dto from '../../data/interfaces';\r\n//import { AdminComponent, IAdminController } from './admin';\r\n\r\n// 3rd Party modules - to be added later\r\n//'AngularPrint',\r\nlet DashboardModule = ng.module(\"app.dashboard\", [\r\n 'ngComponentRouter', \r\n 'ngMaterial',\r\n 'ngAnimate',\r\n 'ngMessages',\r\n 'ngSanitize',\r\n 'angularMoment'\r\n\r\n]).factory(AccountActivity.name, AccountActivity.factory)\r\n .factory(FrequentParkerActivity.name, FrequentParkerActivity.factory)\r\n .factory(Message.name, Message.factory)\r\n .service(Activities.name, Activities.factory)\r\n .component(ActivityGridComponent.name, ActivityGridComponent.registration)\r\n .component(AccountActivityComponent.name, AccountActivityComponent.registration)\r\n .component(AccountInfoComponent.name, AccountInfoComponent.registration)\r\n .component(MediaComponent.name, MediaComponent.registration)\r\n .component(MessageComponent.name, MessageComponent.registration)\r\n .component(OverviewComponent.name, OverviewComponent.registration);\r\n\r\nexport {\r\n IAccountActivityResource, IFrequentParkerActivityResource, IMessageResource,\r\n IActivitiesService, IActivityGridController,\r\n IAccountActivityController, IAccountInfoController, IMediaController, IMessageController, IOverviewController,\r\n Dto\r\n};\r\nexport default DashboardModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/index.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IAccountActivityResource extends ng.resource.IResourceClass {\r\n search(account: ASM.IAccountActivityCriteria): ng.resource.IResourceArray\r\n}\r\n\r\nlet AccountActivityResourceFactory: Function =\r\n function ($resource: ng.resource.IResourceService, exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IAccountActivityResource {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"accountActivities\"),\r\n { id: '@id', accountId: '@accountId' } as any,\r\n new AccountActivityResource() as any\r\n );\r\n };\r\n\r\nAccountActivityResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass AccountActivityResource {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet AccountActivity = {\r\n name: \"AccountActivity\",\r\n factory: AccountActivityResourceFactory\r\n};\r\n\r\nexport { AccountActivity, IAccountActivityResource }\r\nexport default AccountActivity;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/data/account-activity.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IFrequentParkerActivityResource extends ng.resource.IResourceClass {\r\n search(account: ASM.IFrequentParkerActivityCriteria): ng.resource.IResourceArray\r\n}\r\n\r\nlet FrequentParkerActivityResourceFactory: Function =\r\n function ($resource: ng.resource.IResourceService,\r\n exception: Core.IException, logger: Core.ILogger,\r\n SiteConfig: Core.ISiteConfigService): IFrequentParkerActivityResource {\r\n return $resource(\r\n SiteConfig.getResourceUri(\"frequentParkerActivities\"),\r\n { id: '@id', frequentParkerAccountId: '@frequentParkerAccountId' } as any,\r\n new FrequentParkerActivityResource() as any\r\n );\r\n };\r\n\r\nFrequentParkerActivityResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass FrequentParkerActivityResource {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public search: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet FrequentParkerActivity = {\r\n name: \"FrequentParkerActivity\",\r\n factory: FrequentParkerActivityResourceFactory\r\n};\r\n\r\nexport { FrequentParkerActivity, IFrequentParkerActivityResource }\r\nexport default FrequentParkerActivity;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/data/frequent-parker-activity.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IMessageResource extends ng.resource.IResourceClass {\r\n\r\n}\r\n\r\nlet MessageResourceFactory: Function =\r\n function ($resource: ng.resource.IResourceService,\r\n exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IMessageResource {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"messages\"),\r\n { id: '@id', accountId: '@accountId' } as any,\r\n new MessageResource() as any\r\n );\r\n };\r\n\r\nMessageResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass MessageResource {\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet Message = {\r\n name: \"Message\",\r\n factory: MessageResourceFactory\r\n};\r\n\r\nexport { Message, IMessageResource }\r\nexport default Message;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/data/message.ts","import {IFrequentParkerActivity, IFrequentParkerSettings} from \"../../../data/interfaces\";\r\n\r\nimport * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport {ICustomerSettingsService, ISessionService, IToastMessageService} from '../../../services';\r\nimport { IAccountActivityResource } from '../data/account-activity';\r\nimport { IFrequentParkerActivityResource } from '../data/frequent-parker-activity';\r\nimport { Dto } from '../../../data';\r\n\r\nlet ActivitiesServiceFactory: Function =\r\n function ($q: ng.IQService,\r\n Session: ISessionService,\r\n AccountActivity: IAccountActivityResource,\r\n FrequentParkerAccount: IFrequentParkerActivityResource,\r\n toastMessageFactory: IToastMessageService,\r\n CustomerSettings: ICustomerSettingsService): IActivitiesService {\r\n return new ActivitiesService($q, Session, AccountActivity, CustomerSettings, FrequentParkerAccount, toastMessageFactory);\r\n }\r\n\r\nActivitiesServiceFactory.$inject = ['$q', 'Session', 'AccountActivity', 'FrequentParkerActivity', 'toastMessageFactory', 'CustomerSettings'];\r\n\r\nlet Activities = {\r\n name: \"Activities\",\r\n factory: ActivitiesServiceFactory\r\n};\r\n\r\ninterface IActivitiesService {\r\n loadAccountWithActivities(controller, criteria, frequentParkerCriteria): any;\r\n computeSummaryData(controller, activities, loadLatestActivity): any;\r\n computeFpSummaryData(controller, activities, loadLatestActivity): void;\r\n getAccountActivity(criteria: Dto.IAccountActivityCriteria): ng.IPromise>;\r\n getFrequentParkerActivity(criteria: Dto.IFrequentParkerActivityCriteria): Promise;\r\n addFrequentParkerAdjustment(frequentParkerId: string, adjustment: Dto.IAdjustment): ng.IPromise>;\r\n getCurrentFppBalance(frequentParkerAccountId: string): Promise;\r\n}\r\n\r\nexport class ActivitiesService implements IActivitiesService {\r\n private static $inject: Array = ['CustomerSettings'];\r\n constructor(private $q: ng.IQService,\r\n private Session: ISessionService,\r\n private AccountActivity: IAccountActivityResource,\r\n private CustomerSettings: ICustomerSettingsService,\r\n private FrequentParkerActivity: IFrequentParkerActivityResource,\r\n private toastMessageFactory: IToastMessageService) {\r\n\r\n console.log('ActivitiesService loading');\r\n\r\n\r\n\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n public activate(): void {\r\n console.log('ActivitiesService loaded');\r\n }\r\n\r\n // private interface\r\n\r\n public loadAccountWithActivities(controller, criteria: Dto.IAccountActivityCriteria,\r\n frequentParkerCriteria: Dto.IFrequentParkerActivityCriteria): any {\r\n let self = this;\r\n return self.Session.getSessionAsync()\r\n .then((session) => {\r\n controller.session = session;\r\n controller.activities = [];\r\n controller.fpActivities = [];\r\n var promises = [];\r\n const getFrequentParkerSettings = (): ng.IPromise => {\r\n const q = this.$q.defer();\r\n this.CustomerSettings.getFrequentParkerSettings().then(response => {\r\n q.resolve(response.settings)\r\n });\r\n return q.promise;\r\n };\r\n\r\n promises.push(getFrequentParkerSettings());\r\n \r\n if (criteria != null && session.account) {\r\n criteria.accountId = session.account.id;\r\n promises.push(\r\n self.AccountActivity.query({ accountId: criteria.accountId }, criteria).$promise\r\n .then(successAcctActivity)\r\n .catch(fail)\r\n .finally(always)\r\n );\r\n }\r\n\r\n if (frequentParkerCriteria != null && session.frequentParkerAccount != null) {\r\n frequentParkerCriteria.frequentParkerAccountId = session.frequentParkerAccount.id;\r\n promises.push(\r\n self.FrequentParkerActivity.query({ frequentParkerAccountId: frequentParkerCriteria.frequentParkerAccountId }, frequentParkerCriteria).$promise\r\n .then(successFpActivity)\r\n .catch(fail)\r\n .finally(always)\r\n );\r\n }\r\n return self.$q.all(promises)\r\n .then(successAllActivity)\r\n .catch(fail)\r\n .finally(always);\r\n\r\n function successAcctActivity(response) {\r\n if (response.length === 0 && criteria.pageSize > 1) {\r\n var loadLatestActivityCriteria = {\r\n accountId: null,\r\n startDate: null,\r\n endDate: criteria.endDate,\r\n minAmount: null,\r\n maxAmount: null,\r\n mediaIdentifier: null,\r\n transactionType: null,\r\n pageSize: 1,\r\n pageNumber: 1\r\n } as Dto.IAccountActivityCriteria;\r\n self.loadAccountWithActivities(controller, loadLatestActivityCriteria, null);\r\n } else {\r\n controller.activities = response;\r\n console.log('AccountActivities retrieved from API. ' + response.length + ' records.');\r\n self.computeSummaryData(controller, response, criteria.pageSize == 1);\r\n }\r\n }\r\n\r\n function successFpActivity(response) {\r\n if (response.length === 0 && frequentParkerCriteria.pageSize > 1) {\r\n var loadLatestFPActivityCriteria = {\r\n frequentParkerAccountId: null,\r\n startDate: null,\r\n endDate: frequentParkerCriteria.endDate,\r\n activityType: null,\r\n pageSize: 1,\r\n pageNumber: 1 \r\n } as Dto.IFrequentParkerActivityCriteria;\r\n self.loadAccountWithActivities(controller, null, loadLatestFPActivityCriteria);\r\n } else {\r\n controller.fpActivities = response;\r\n console.log('Frequent Parker Activities retrieved from API. ' + response.length + ' records.');\r\n self.computeFpSummaryData(controller, response, frequentParkerCriteria.pageSize == 1);\r\n }\r\n }\r\n\r\n function successAllActivity(responses) {\r\n if (criteria && frequentParkerCriteria) {\r\n const frequentParkerSettings = responses[0] as IFrequentParkerSettings;\r\n\r\n var fpDict = Linq\r\n .from(controller.fpActivities)\r\n .Where((y: any) => {\r\n return y.accountActivityId !== null;\r\n }).ToDictionary((x: any) => {\r\n return x.accountActivityId;\r\n });\r\n //TODO: Verify contains method line 131\r\n var activitiesTemp = controller.allActivities = Linq.from(controller.activities)\r\n .Select((x: any) => {\r\n return {\r\n accountActivity: x,\r\n fpActivity: fpDict.has(x.id) ? fpDict.get(x.id) : null\r\n };\r\n }).ToArray();\r\n\r\n\r\n var fpActivitiesTemp = Linq.from(controller.fpActivities)\r\n .Where((x: any) => {\r\n return x.accountActivityId == null;\r\n })\r\n .Select((x: any) => { //... look like object.accountActivity and object.fpActivity)\r\n return {\r\n accountActivity: {\r\n date: x.activityDateTime,\r\n description: controller.frequentParkerActivityType[x.activityType].value\r\n },\r\n fpActivity: x\r\n };\r\n }).ToArray();\r\n\r\n controller.allActivities = Linq.from(activitiesTemp).Union(Linq.from(fpActivitiesTemp))\r\n .OrderByDescending((x) => {\r\n return x.accountActivity.date // x.accountActivity != null ? x.accountActivity.date : (x.fpActivity as any).activityDateTime;\r\n })\r\n .ToArray();\r\n \r\n controller.allActivities.forEach(activity => {\r\n const frequentParkerActivity = activity.fpActivity;\r\n const accountActivity = activity.accountActivity;\r\n if (frequentParkerActivity && frequentParkerActivity.parkHouseId)\r\n {\r\n const parkHouse = frequentParkerSettings.parkHouses.find(ph => ph.parkHouseId === frequentParkerActivity.parkHouseId);\r\n if (!!parkHouse){\r\n frequentParkerActivity.parkHouseName = parkHouse.name;\r\n accountActivity.parkHouseName = parkHouse.name;\r\n }\r\n else\r\n console.log(`no parkhouse found with id ${frequentParkerActivity.parkHouseId}`)\r\n }\r\n });\r\n console.log('AllActivities retrieved from API and joined. ' + controller.allActivities.length + ' records.');\r\n }\r\n }\r\n\r\n function fail(e) {\r\n console.log(e);\r\n }\r\n\r\n function always() {\r\n }\r\n });\r\n }\r\n\r\n public computeSummaryData(controller, activities, loadLatestActivity): any {\r\n // TODO: Replace untyped controoler with types controller (say an interface IActivityUserController)\r\n controller.totalCredits = 0;\r\n controller.totalDebits = 0;\r\n controller.totalParkingTrips = 0;\r\n controller.totalReplenishments = 0;\r\n controller.totalAdjustments = 0;\r\n controller.startingBalance = 0;\r\n controller.endingBalance = 0;\r\n controller.amufBalance = 0;\r\n ng.forEach(activities, (value) => {\r\n controller.totalCredits += value.credit;\r\n controller.totalDebits += value.debit;\r\n controller.totalParkingTrips += (value.transactionType === 6 && ((value.description.indexOf(\"Adjustment\") === -1) && (value.description.indexOf(\"FP Manual\") === -1))) ? 1 : 0;\r\n controller.totalReplenishments += (value.transactionType === 1 && value.description === \"Replenishment\") ? 1 : 0;\r\n controller.totalAdjustments += (value.transactionType === 2) ? 1 : 0;\r\n });\r\n activities.sort((a, b) => {\r\n //TODO: Verify Date()\r\n // Convert strings to dates, then subtract them to get a value that is either negative, positive, or zero.\r\n return (new Date(b.date) as any) - (new Date(a.date) as any);\r\n });\r\n if (activities.length > 0) {\r\n if (loadLatestActivity) {\r\n controller.startingBalance = activities[activities.length - 1].endBalance;\r\n controller.totalCredits = 0;\r\n controller.totalDebits = 0;\r\n controller.totalParkingTrips = 0;\r\n controller.totalReplenishments = 0;\r\n controller.totalAdjustments = 0;\r\n } else {\r\n controller.startingBalance = activities[activities.length - 1].beginBalance;\r\n\r\n }\r\n controller.endingBalance = activities[0].endBalance;\r\n controller.amufBalance = activities[0].endForfeitureBalance;\r\n }\r\n }\r\n\r\n public computeFpSummaryData(controller, activities, loadLatestActivity): void {\r\n controller.fpSummary = {\r\n totalRedeemed: 0, // total points redeemed in period\r\n totalAccrued: 0, // total points accrued in period\r\n startingBalance: 0, // starting point balance in period\r\n endingBalance: 0 // ending point balance in period\r\n };\r\n controller.fpSummary.totalRedeemed = Linq\r\n .from(activities)\r\n .Where((x: any) => {\r\n return x.points < 0;\r\n })\r\n .Sum((x: any) => {\r\n return -x.points; // negate points for positive value points redeemed\r\n });\r\n controller.fpSummary.totalAccrued = Linq\r\n .from(activities)\r\n .Where((x: any) => {\r\n return x.points > 0;\r\n })\r\n .Sum((x: any) => {\r\n return x.points;\r\n });\r\n activities.sort((a: Dto.IFrequentParkerActivity, b: Dto.IFrequentParkerActivity) => {\r\n // Convert strings to dates, then subtract them to get a value that is either negative, positive, or zero.\r\n return (new Date(b.activityDateTime) as any) - (new Date(a.activityDateTime) as any);\r\n });\r\n if (activities.length > 0) {\r\n if (loadLatestActivity) {\r\n controller.fpSummary.startingBalance = activities[activities.length - 1].endPointBalance;\r\n controller.fpSummary.totalRedeemed = 0;\r\n controller.fpSummary.totalAccrued = 0;\r\n } else {\r\n controller.fpSummary.startingBalance = activities[activities.length - 1].beginPointBalance;\r\n }\r\n controller.fpSummary.endingBalance = activities[0].endPointBalance;\r\n }\r\n }\r\n\r\n public getAccountActivity(criteria: Dto.IAccountActivityCriteria): ng.IPromise> {\r\n let localCriteria = criteria || {} as Dto.IAccountActivityCriteria;\r\n return this.AccountActivity.search(localCriteria).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n\r\n return this.$q.resolve([]);\r\n });\r\n }\r\n\r\n public getFrequentParkerActivity(criteria: Dto.IFrequentParkerActivityCriteria): Promise {\r\n let localCriteria = criteria || {} as Dto.IFrequentParkerActivityCriteria;\r\n return new Promise((resolve, reject) => {\r\n this.FrequentParkerActivity.search(localCriteria).$promise\r\n .then((frequentParkerActivityResponse) => {\r\n this.CustomerSettings.getFrequentParkerSettings()\r\n .then(frequentParkerSettingsResponse => {\r\n frequentParkerActivityResponse.forEach(fpa => {\r\n if (!!fpa.parkHouseId) { \r\n const parkHouse =\r\n frequentParkerSettingsResponse.settings.parkHouses.find(\r\n ph => ph.parkHouseId === fpa.parkHouseId);\r\n if (!!parkHouse)\r\n fpa.parkHouseName = parkHouse.name;\r\n }\r\n });\r\n\r\n console.log(frequentParkerActivityResponse);\r\n resolve(frequentParkerActivityResponse);\r\n });\r\n\r\n\r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n resolve([]);\r\n });\r\n \r\n });\r\n }\r\n\r\n public addFrequentParkerAdjustment(frequentParkerId: string, adjustment: Dto.IAdjustment): ng.IPromise> {\r\n if (adjustment && frequentParkerId) {\r\n let amount = (adjustment.creditAmount)\r\n ? Math.abs(adjustment.creditAmount)\r\n : -1 * Math.abs(adjustment.debitAmount);\r\n\r\n return this.FrequentParkerActivity.save({\r\n frequentParkerAccountId: frequentParkerId,\r\n activityType: 3,\r\n points: amount\r\n } as Dto.IFrequentParkerActivity).$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage();\r\n return this.$q.resolve(response);\r\n })\r\n .catch((e) => {\r\n this.toastMessageFactory.showServerError();\r\n return this.$q.reject(e);\r\n });\r\n }\r\n }\r\n\r\n public getCurrentFppBalance(frequentParkerAccountId: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (!frequentParkerAccountId || frequentParkerAccountId.isEmptyGuid())\r\n return resolve(0);\r\n\r\n let criteria = {\r\n pageNumber: 1,\r\n pageSize: 1,\r\n sortBy: \"activityDateTime\",\r\n sortDirection: \"DESC\",\r\n frequentParkerAccountId: frequentParkerAccountId\r\n\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n\r\n this.getFrequentParkerActivity(criteria).then((fpActivity) => {\r\n if (fpActivity && fpActivity.length > 0){\r\n return resolve(fpActivity[0].endPointBalance);\r\n }\r\n resolve(0);\r\n });\r\n });\r\n }\r\n}\r\n\r\nexport { Activities, IActivitiesService };\r\nexport default Activities;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/services/activities-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { TransactionTypes } from '../../../data';\r\nlet template = require('./activity-grid.html');\r\n\r\nclass ActivityGridComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('activityGrid', {\r\n controller: ActivityGridController,\r\n templateUrl: template,\r\n controllerAs: 'activityGrid',\r\n bindings: {\r\n showFilters: '@',\r\n activities: '<',\r\n offsetPixels: '@',\r\n showCredit: '@',\r\n showBalance: '@',\r\n showDebit: '@',\r\n showReservedParkingFilters: '<'\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IActivityGridController {\r\n onFilterChange(): void;\r\n}\r\n\r\nclass ActivityGridController implements IActivityGridController {\r\n private static $inject: Array = ['$scope'];\r\n\r\n //private fields\r\n private filteredActivities: Array;\r\n private transactionTypes: Array = [];\r\n private transactionType: string = null;\r\n private minAmount: string = null;\r\n private maxAmount: string = null;\r\n private showPointsOnly: Boolean = false;\r\n private showFrequentParker: Boolean = false;\r\n private showTransponderInfoCols: Boolean = false;\r\n private showEntryExitCols: Boolean = false;\r\n\r\n //bindings\r\n private showFilters: string;\r\n private activities: Array;\r\n private offsetPixels: string;\r\n private showReservedParkingFilters: boolean = true;\r\n constructor(private $scope: ng.IScope) {\r\n\r\n console.log(\"ActivityGridController loading\");\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n this.filteredActivities = this.activities;\r\n\r\n this.transactionTypes = ng.copy(TransactionTypes); \r\n\r\n this.transactionType = this.transactionTypes[0].value;\r\n\r\n let self = this;\r\n this.$scope.$watch(\"activityGrid.activities\", () => { self.onFilterChange() });\r\n\r\n console.log(\"ActivityGridController loaded\");\r\n }\r\n\r\n public removeNonApplicableTypes(): void { \r\n if (this.showReservedParkingFilters == false) {\r\n this.transactionTypes.remove(x => x.key === 1 || x.key === 3 || x.key === 4);\r\n }\r\n }\r\n\r\n public onFilterChange(): void {\r\n console.log('AccountActivityController: onFilterChange');\r\n this.removeNonApplicableTypes();\r\n this.showFrequentParker = Linq.from(this.activities).Any((x) => {\r\n return x.fpActivity;\r\n });\r\n\r\n this.filteredActivities = [];\r\n for (var index = 0; index < this.activities.length; index++) {\r\n var activity = this.activities[index];\r\n if (\r\n ((this.minAmount == null || this.minAmount == '') || (activity.accountActivity.amount >= Number(this.minAmount))) &&\r\n ((this.maxAmount == null || this.maxAmount == '') || (activity.accountActivity.amount <= Number(this.maxAmount))) &&\r\n ((this.transactionType === 'All') ||\r\n (activity.accountActivity.transactionType === 6 && this.transactionType === 'Parking Trip') ||\r\n (activity.accountActivity.transactionType === 1 && this.transactionType === 'Replenishment') ||\r\n (activity.accountActivity.transactionType === 2 && this.transactionType === 'Manual Adjustment') ||\r\n (activity.accountActivity.transactionType === 4 && this.transactionType === 'Year-End Adjustment')) &&\r\n ((!this.showPointsOnly) || (activity.fpActivity != null))\r\n ) {\r\n this.filteredActivities.push(activity);\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nlet actgrdComponent = new ActivityGridComponent();\r\nexport default actgrdComponent;\r\nexport { actgrdComponent as ActivityGridComponent, IActivityGridController, ActivityGridController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/user-controls/activity-grid.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n
Transaction Type
\\n\\n\\n\\n{{transactionType.value}}\\n\\n\\n\\n
\\n
\\n
Transaction Amount ($)
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\nPoints Only\\n
\\nParking Media\\nEntry & Exit\\n
\\n
\\n
\\n
\\n
\\n
\\n
Date
\\n
Cardholder
\\n
Media Info
\\n
Entry
\\n
Exit
\\n
Description
\\n
Points
\\n
Credit ($)
\\n
Debit ($)
\\n
Balance ($)
\\n
\\n
Location
\\n
\\n
\\n
\\nNo activity for the current time period and/or filters.\\n
\\n 0\\\" class=\\\"md-caption\\\" style=\\\"height: 200px\\\">\\n
\\n
\\n
\\n
{{activity.accountActivity.date | date : 'medium'}}
\\n
{{activity.accountActivity.userProfile.firstName}} {{activity.accountActivity.userProfile.lastName}}
\\n
\\n8\\\">...{{activity.accountActivity.mediaIdentifier | limitTo:-8}}\\n\\nMedia Identifier #: \\n{{activity.accountActivity.mediaIdentifier}}\\n\\n
\\n
{{activity.accountActivity.entryDateTime | date : 'medium'}}
\\n
{{activity.accountActivity.exitDateTime | date : 'medium'}}
\\n
{{activity.accountActivity.description}}
\\n
{{activity.fpActivity.points}}
\\n
{{activity.accountActivity.credit | currency}}
\\n
{{activity.accountActivity.debit | currency}}
\\n
{{activity.accountActivity.endBalance | currency}}
\\n
\\n
{{activity.fpActivity.parkHouseName}}
\\n
\\n
\\n
\\n
0\\\" class=\\\"md-caption\\\">\\n
\\n
\\n
\\n
{{activity.accountActivity.date | date : 'medium'}}
\\n
{{activity.accountActivity.userProfile.firstName}} {{activity.accountActivity.userProfile.lastName}}
\\n
\\n8\\\">...{{activity.accountActivity.mediaIdentifier | limitTo:-8}}\\n\\nMedia Identifier #: \\n{{activity.accountActivity.mediaIdentifier}}\\n\\n
\\n
{{activity.accountActivity.entryDateTime | date : 'medium'}}
\\n
{{activity.accountActivity.exitDateTime | date : 'medium'}}
\\n
{{activity.accountActivity.description}}
\\n
{{activity.fpActivity.points}}
\\n
{{activity.accountActivity.credit | currency}}
\\n
{{activity.accountActivity.debit | currency}}
\\n
{{activity.accountActivity.endBalance | currency}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\nNo activity for the current time period and/or filters.\\n
\\n
\\n
\\n
\\n
Date: {{activity.accountActivity.date | date}}
\\n
Cardholder: {{activity.accountActivity.firstName}} {{activity.accountActivity.lastName}}
\\n
Media Info: {{activity.accountActivity.mediaIdentifier}}
\\n
Description: {{activity.accountActivity.description}}
\\n
\\n
\\n
\\n
\\n
Entry:
\\n
\\n
{{activity.accountActivity.entryDateTime | date : 'medium'}}
\\n
\\n
\\n
Exit:
\\n
\\n
{{activity.accountActivity.exitDateTime | date : 'medium'}}
\\n
\\n
\\n
Points:
\\n
\\n
{{activity.fpActivity.points}}
\\n
\\n
\\n
Credit:
\\n
\\n
{{activity.accountActivity.credit | currency}}
\\n
\\n
\\n
Debit:
\\n
\\n
{{activity.accountActivity.debit | currency}}
\\n
\\n
\\n
Balance:
\\n
\\n
{{activity.accountActivity.endBalance | currency}}
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"dashboard/user-controls/activity-grid.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/user-controls/activity-grid.html\n// module id = 651\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { Moment } from 'moment';\r\nimport { IActivitiesService } from './services/activities-service';\r\nimport { ISiteConfigService } from '../../core';\r\nimport { ISessionService } from '../../services';\r\nimport { Dto } from '../../data';\r\nlet template = require('./account-activity.html');\r\n\r\nclass AccountActivityComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountActivity', {\r\n controller: AccountActivityController,\r\n templateUrl: template,\r\n controllerAs: 'accountActivity',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountActivityController {\r\n hasAccountActivities() : boolean;\r\n hasFrequentParkerAccountActivities() : boolean;\r\n hasAnyActivity() : boolean;\r\n onCriteriaChange(): void;\r\n onPrevNextClick(isNext): void;\r\n onDateRangeSelect(): void;\r\n}\r\n\r\nclass AccountActivityController implements IAccountActivityController {\r\n private static $inject: Array = ['Activities', 'SiteConfig', 'moment', 'Session'];\r\n\r\n private session: any = {};\r\n private allActivities: Array = [];\r\n private activities: Array = [];\r\n private fpActivities: Array = [];\r\n private dateRanges: Array = [];\r\n private amufEnabled: boolean = false;\r\n private dateRange: string;\r\n private frequentParkerActivityType: Array;\r\n private criteria: Dto.IAccountActivityCriteria;\r\n \r\n constructor(private Activities: IActivitiesService,\r\n private SiteConfig: ISiteConfigService,\r\n private moment: Moment,\r\n private Session: ISessionService) {\r\n\r\n console.log('AccountActivityController loading');\r\n }\r\n\r\n public $onInit(): void {\r\n if (!this.Session.assureActiveUserSession()) return;\r\n this.SiteConfig.getConfigAsync()\r\n .then((config) => {\r\n this.amufEnabled = config.customerSettings.AMUF.enabled;\r\n });\r\n\r\n this.dateRanges = [\r\n 'Week',\r\n 'Month',\r\n 'Quarter',\r\n 'Year',\r\n 'Custom'\r\n ];\r\n this.dateRange = this.dateRanges[1]; // default to Month\r\n\r\n this.frequentParkerActivityType = [\r\n { key: 0, value: null },\r\n { key: 1, value: 'Point Accrual' },\r\n { key: 2, value: 'Point Redemption' },\r\n { key: 3, value: 'Manual Point Adjustment' },\r\n ];\r\n\r\n this.criteria = {\r\n accountId: null,\r\n startDate: (this.moment as any)().startOf('month').toDate(),\r\n endDate: (this.moment as any)().endOf('month').toDate(),\r\n minAmount: null,\r\n maxAmount: null,\r\n mediaIdentifier: null,\r\n transactionType: null,\r\n pageSize: 0,\r\n pageNumber: 0\r\n } as Dto.IAccountActivityCriteria;\r\n \r\n this.Activities.loadAccountWithActivities(this, this.criteria, this.getFrequentParkerCriteria(this.criteria));\r\n\r\n console.log('AccountActivityController loaded');\r\n }\r\n\r\n public hasAccountActivities() : boolean {\r\n return this.activities && this.activities.length > 0;\r\n }\r\n\r\n public hasFrequentParkerAccountActivities() : boolean {\r\n return this.fpActivities && this.fpActivities.length > 0;\r\n }\r\n\r\n public hasAnyActivity() : boolean {\r\n // Note, if this.hasAccountActivities() or this.hasFrequentParkerAccountActivities() are true, his.allActivities will not be empty,\r\n // since the IActivitiesService service builds allActivities as union of activitird and frequent parker activities.\r\n // The oposite is also true (this.allActivities is not empty means that either hasAccountActivities() or hasFrequentParkerAccountActivities() should be true).\r\n // However, we don't want to make any assumptions on how IActivitiesService is implemented, so lets return true if any if these three are true.\r\n return this.hasAccountActivities() || this.hasFrequentParkerAccountActivities() ||\r\n this.allActivities && this.allActivities.length > 0;\r\n }\r\n\r\n public onCriteriaChange(): void {\r\n console.log('AccountActivityController: onCriteriaChange');\r\n this.Activities.loadAccountWithActivities(this, this.criteria, this.getFrequentParkerCriteria(this.criteria));\r\n }\r\n\r\n public onPrevNextClick(isNext): void {\r\n // default to Previous\r\n var dateRangeOffset = -1;\r\n if (isNext) {\r\n var dateRangeOffset = 1;\r\n }\r\n switch (this.dateRange) {\r\n case 'Month':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).add(dateRangeOffset, 'M').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('month').toDate();\r\n break;\r\n case 'Week':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).add(dateRangeOffset, 'w').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('week').toDate();\r\n break;\r\n case 'Quarter':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).add(dateRangeOffset, 'Q').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('quarter').toDate();\r\n break;\r\n case 'Year':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).add(dateRangeOffset, 'y').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('year').toDate();\r\n break;\r\n case 'Custom':\r\n // default custom dates to preselected previous values\r\n break;\r\n default:\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).add(dateRangeOffset, 'M').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('month').toDate();\r\n };\r\n console.log('onPrevNextClick: startDate: ' + this.criteria.startDate);\r\n console.log('onPrevNextClick: endDate: ' + this.criteria.endDate);\r\n this.onCriteriaChange();\r\n }\r\n\r\n public onDateRangeSelect(): void {\r\n // set default start/end times for range selected\r\n switch (this.dateRange) {\r\n case 'Month':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).startOf('month').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('month').toDate();\r\n break;\r\n case 'Week':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).startOf('week').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('week').toDate();\r\n break;\r\n case 'Quarter':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).startOf('quarter').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('quarter').toDate();\r\n break;\r\n case 'Year':\r\n this.criteria.startDate = (this.moment as any)(this.criteria.startDate).startOf('year').toDate();\r\n this.criteria.endDate = (this.moment as any)(this.criteria.startDate).endOf('year').toDate();\r\n break;\r\n case 'Custom':\r\n // default custom dates to preselected previous values\r\n break;\r\n default:\r\n this.criteria.startDate = (this.moment as any)().startOf('month').toDate();\r\n this.criteria.endDate = (this.moment as any)().endOf('month').toDate();\r\n };\r\n this.onCriteriaChange();\r\n }\r\n\r\n public getFrequentParkerCriteria(crit: Dto.IAccountActivityCriteria): Dto.IFrequentParkerActivityCriteria {\r\n return {\r\n frequentParkerAccountId: null,\r\n startDate: crit.startDate,\r\n endDate: crit.endDate,\r\n activityType: null,\r\n pageSize: 0,\r\n pageNumber: 0\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n }\r\n}\r\n\r\nlet acctactComponent = new AccountActivityComponent();\r\nexport default acctactComponent;\r\nexport { acctactComponent as AccountActivityComponent, IAccountActivityController, AccountActivityController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/account-activity.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\nPrint\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n\\n{{dateRange}}\\n\\n\\n\\n
\\n\\nplay_arrow\\n\\n\\nplay_arrow\\n\\n
\\n
\\n
\\n\\n
\\n{{accountActivity.criteria.startDate | date:'dd MMM yyyy'}} - {{accountActivity.criteria.endDate | date:'dd MMM yyyy'}}\\n
\\n
\\n{{accountActivity.criteria.startDate | date:'MMMM yyyy'}}\\n
\\n
\\n{{accountActivity.criteria.startDate | date:'MMM yyyy'}} - {{accountActivity.criteria.endDate | date:'MMM yyyy'}}\\n
\\n
\\n{{accountActivity.criteria.startDate | date:'yyyy'}}\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n\\n
\\n
\\nUpdate\\n
\\n
\\n
\\n
\\nPrint\\n
\\n
\\n\\n
\\nNo activity in current selection\\n
\\n
\\n
\\n
\\n
\\nNo activity in current selection\\n
\\n
\\n
\\n
Starting Balance
\\n
{{accountActivity.startingBalance | currency}}
\\n
\\n
\\n
Total Credits
\\n
{{accountActivity.totalCredits | currency}}
\\n
\\n
\\n
Total Debits
\\n
{{accountActivity.totalDebits | currency}}
\\n
\\n
\\n
Ending Balance
\\n
{{accountActivity.endingBalance | currency}}
\\n
\\n
\\n\\n
\\n

\\nAMUF or Annual Minimum Usage Fee:\\n

\\n

\\nPortion of available balance that must be used prior to the end of the current calendar year.
\\nUnused AMUF will be forfeited at year-end.
\\nParking charges will decrement the AMUF prior to additional balance.
\\n

\\n
\\n
\\n
AMUF Balance
\\n
{{accountActivity.amufBalance | currency}}
\\n
\\n
\\n
Transaction Summary
\\n
\\n
{{accountActivity.totalParkingTrips}} Parking Trips
\\n
|
\\n
{{accountActivity.totalReplenishments}} Replenishments
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\nNo frequent parker activity in current selection\\n
\\n
\\n
\\n
Starting Frequent Parker Points
\\n
{{accountActivity.fpSummary.startingBalance}}
\\n
\\n
\\n
Total Points Accrued
\\n
{{accountActivity.fpSummary.totalAccrued}}
\\n
\\n
\\n
\\n
\\n
Total Points Redeemed
\\n
{{accountActivity.fpSummary.totalRedeemed}}
\\n
\\n
\\n
Ending Frequent Parker Points
\\n
{{accountActivity.fpSummary.endingBalance}}
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/dashboard/account-activity.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/account-activity.html\n// module id = 653\n// module chunks = 0","import * as ng from 'angular';\r\nimport {ComponentRegistration} from '../../core';\r\nimport {ISessionService, IToastMessageService} from '../../services';\r\nimport {Dto, ICreditCardResource, IProfileResource} from '../../data';\r\nimport {CreditCardControlState} from \"../../user-controls/credit-card-control-state\";\r\n\r\nlet template = require('./account-info.html');\r\n\r\nclass AccountInfoComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountInfo', {\r\n controller: AccountInfoController,\r\n templateUrl: template,\r\n controllerAs: 'accountInfo',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountInfoController {\r\n onCancel(args): void;\r\n onSave(args): void;\r\n onEdit(args): void;\r\n setFormReadOnly(): void;\r\n loadAccount(accountId): void;\r\n saveAccount(args): ng.IPromise;\r\n savePrimaryContact(args): ng.IPromise;\r\n onCreditCardTokenReceived(args: any): ng.IPromise;\r\n}\r\n\r\nclass AccountInfoController implements IAccountInfoController {\r\n private static $inject: Array = ['$window', '$rootRouter', 'Session', 'CreditCard', 'toastMessageFactory', 'Profile'];\r\n\r\n private sessionRef: any = {};\r\n\r\n private account: Dto.IAccount;\r\n\r\n private activities: any = [];\r\n private primaryCreditCard: any = {};\r\n\r\n private primaryContact: any = {};\r\n\r\n private isReadOnly: Boolean = true;\r\n private creditCardControlState: CreditCardControlState = CreditCardControlState.ReadMode;\r\n\r\n private oriAccount: any = {};\r\n private oriPrimaryContact: any = {};\r\n private oriPrimaryCreditCard: any = {};\r\n\r\n private accountInfoForm: ng.IFormController;\r\n\r\n constructor(private $window: ng.IWindowService,\r\n private $router: ng.Router,\r\n private Session: ISessionService,\r\n private CreditCard: ICreditCardResource,\r\n private toastMessageFactory: IToastMessageService,\r\n private Profile: IProfileResource) {\r\n }\r\n\r\n public $onInit(): void {\r\n if(!this.Session.assureActiveUserSession()) return;\r\n console.log('AccountInfoController loaded');\r\n this.setFormReadOnly();\r\n this.loadAccount();\r\n console.log('AccountInfoController activated');\r\n }\r\n\r\n public $onDestroy(): void {\r\n this.sessionRef = {};\r\n this.account = {} as Dto.IAccount;\r\n this.primaryContact = {};\r\n this.primaryCreditCard = {};\r\n this.oriAccount = {};\r\n this.oriPrimaryContact = {};\r\n this.oriPrimaryCreditCard = {};\r\n }\r\n\r\n public onCancel(args): void {\r\n this.account = ng.copy(this.oriAccount);\r\n this.creditCardControlState = CreditCardControlState.ReadMode;\r\n this.primaryContact = ng.copy(this.oriPrimaryContact);\r\n this.primaryCreditCard = ng.copy(this.oriPrimaryCreditCard);\r\n this.accountInfoForm.$setPristine();\r\n this.accountInfoForm.$setUntouched();\r\n this.sessionRef.account = this.account;\r\n this.setFormReadOnly();\r\n }\r\n\r\n public onSave(args): void {\r\n this.saveAccount(args);\r\n }\r\n\r\n public onEdit(args): void {\r\n this.isReadOnly = false;\r\n }\r\n\r\n public setFormReadOnly(): void {\r\n this.isReadOnly = true;\r\n this.creditCardControlState = CreditCardControlState.ReadMode;\r\n }\r\n\r\n public loadAccount(accountId?: string): void {\r\n this.Session.getSessionAsync()\r\n .then((session) => {\r\n this.sessionRef = session;\r\n this.account = session.account;\r\n this.primaryContact = session.account.primaryContact;\r\n this.primaryCreditCard = session.account.primaryCreditCard;\r\n this.oriAccount = ng.copy(this.account);\r\n this.oriPrimaryContact = ng.copy(this.primaryContact);\r\n this.oriPrimaryCreditCard = ng.copy(this.account.primaryCreditCard);\r\n });\r\n }\r\n\r\n public saveAccount(args): ng.IPromise {\r\n\r\n this.setFormReadOnly();\r\n this.primaryContact.securityQuestion = null;\r\n return this.account.$update()\r\n .then((response) => {\r\n this.primaryContact.username = this.primaryContact.email;\r\n this.savePrimaryContact(args);\r\n })\r\n .catch((e) => {\r\n args.cancel();\r\n this.isReadOnly = false;\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n\r\n });\r\n }\r\n\r\n public savePrimaryContact(args): ng.IPromise {\r\n return this.Profile.update({ id: this.primaryContact.id, accountId: this.account.id }, this.primaryContact)\r\n .$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage();\r\n console.log(\"Account Save Successful\");\r\n console.log('Successful Primary Contact save to API, Account Id: ' + this.account.id);\r\n })\r\n .catch((e) => {\r\n args.cancel();\r\n this.isReadOnly = false;\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n this.Session.reload()\r\n .then((session) => {\r\n this.sessionRef = session;\r\n this.account = session.account;\r\n this.primaryContact = session.account.primaryContact;\r\n this.primaryCreditCard = session.account.primaryCreditCard;\r\n this.oriAccount = ng.copy(this.account);\r\n this.oriPrimaryContact = ng.copy(this.primaryContact);\r\n this.oriPrimaryCreditCard = ng.copy(this.account.primaryCreditCard);\r\n });\r\n });\r\n }\r\n\r\n public onCreditCardTokenReceived(args: any): ng.IPromise {\r\n this.updateCreditCardInfo(args);\r\n\r\n return this.CreditCard.update({ id: this.account.primaryCreditCard.id, accountId: this.account.id }, this.account.primaryCreditCard)\r\n .$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage();\r\n // oriAccount = angular.copy(accountInfo.account);\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n\r\n });\r\n }\r\n\r\n private updateCreditCardInfo(creditCard: Dto.ICreditCard) {\r\n this.account.primaryCreditCard.creditCardType = creditCard.creditCardType;\r\n this.account.primaryCreditCard.expirationMonth = creditCard.expirationMonth;\r\n this.account.primaryCreditCard.expirationYear = creditCard.expirationYear;\r\n this.account.primaryCreditCard.maskedCreditCard = creditCard.maskedCreditCard;\r\n this.account.primaryCreditCard.token = creditCard.token;\r\n }\r\n}\r\n\r\nlet acctinfComponent = new AccountInfoComponent();\r\nexport default acctinfComponent;\r\nexport { acctinfComponent as AccountInfoComponent, IAccountInfoController, AccountInfoController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/account-info.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
First Name is required.
\\n
\\n
\\n\\n\\n\\n
\\n
Last Name is required.
\\n
\\n
\\n
\\n\\n
\\n\\n\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
Payment Info
\\n
\\n
\\nEdit New\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/dashboard/account-info.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/account-info.html\n// module id = 655\n// module chunks = 0","import * as ng from 'angular';\r\nimport {IPromise} from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport {ComponentRegistration} from '../../core';\r\nimport {Dto, IFrequentParkerAccountResource, IParkingMediaRequestResource, IParkingMediaResource} from '../../data';\r\nimport {IContentTemplateResource} from '../../data/content-template'\r\nimport {Moment} from 'moment';\r\nimport {ICustomerSettingsService, ISessionService, ISessionState, IToastMessageService} from '../../services';\r\nimport {Templates} from \"../../assets\";\r\n\r\nlet template = require('./media.html');\r\n\r\nclass MediaComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('media', {\r\n controller: MediaController,\r\n templateUrl: template,\r\n controllerAs: 'media',\r\n $canActivate : function($injector) : IPromise {\r\n var sessionService: ISessionService = $injector.get('Session');\r\n var $q: ng.IQService = $injector.get('$q');\r\n\r\n return sessionService.getSessionAsync().then((session) =>\r\n {\r\n if (session && session.account && session.account.isReservedParking) {\r\n // Lets add a route definition for media only if the account is reserved parking.\r\n return $q.resolve(true);\r\n }\r\n else\r\n {\r\n console.error(\"Access to media tab is denied.\");\r\n return $q.resolve(false);\r\n }\r\n }\r\n ).catch((e) => {\r\n console.error(e);\r\n console.error(\"Failed to load session data. Access to media tab is denied.\");\r\n return $q.resolve(false);\r\n });\r\n },\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IMediaController {\r\n onCancelClick(): void;\r\n onSaveClick(args): void;\r\n onEditClick(): void;\r\n onRequestClick(): void;\r\n onCancelRequestClick(): void;\r\n onSubmitRequestClick(args): void;\r\n calculateTotal(): void;\r\n saveMediaRequest(args): any;\r\n isFrequentParkerAccount: Boolean;\r\n}\r\n\r\nclass MediaController implements IMediaController {\r\n private static $inject: Array = ['$q', '$scope', 'ParkingMedia', 'ParkingMediaRequest', 'Session', 'toastMessageFactory', 'moment', 'ContentTemplate', 'FrequentParkerAccount', 'CustomerSettings'];\r\n\r\n private mediaRequestTemplateUrl: string = Templates.mediaRequest;\r\n private session: ISessionState;\r\n private parkingMediaList: Array = [];\r\n private parkingMediaRequests: Array = [];\r\n private totalCost: number = 0;\r\n private isReadOnly: boolean = true;\r\n private showRequest: boolean = false;\r\n private isReplaceExisting: boolean = false;\r\n private replaceExistingSelectedIndex = null;\r\n private existsActiveMedia: boolean = true;\r\n private isLostorStolen: boolean = false;\r\n private replaceReason = null;\r\n private key: string = Dto.ContentTypeSettingKeys[Dto.ContentTypeSettingKeys.MediaRequest];\r\n private language: string = 'en';\r\n public content: string;\r\n private _isFrequentParkerAccountEnabled: boolean;\r\n private fpAccount: Dto.IFrequentParkerAccount;\r\n \r\n private oriParkingMediaList: Array = [];\r\n\r\n constructor(private $q: ng.IQService,\r\n private $scope: ng.IScope,\r\n private ParkingMedia: IParkingMediaResource,\r\n private ParkingMediaRequest: IParkingMediaRequestResource,\r\n private Session: ISessionService,\r\n private toastMessageFactory: IToastMessageService,\r\n private moment: Moment,\r\n private ContentTemplate: IContentTemplateResource,\r\n private FrequentParkerAccountResource: IFrequentParkerAccountResource,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n\r\n console.log('MediaController loading');\r\n }\r\n \r\n public $onInit(): void {\r\n if (!this.Session.assureActiveUserSession()) return;\r\n let self = this;\r\n this.Session.getSessionAsync()\r\n .then((session) => {\r\n self.session = session;\r\n var criteria = {\r\n accountId: session.account.id,\r\n userProfileId: session.profile.id,\r\n disabled: false\r\n }\r\n\r\n self.fpAccount = session.frequentParkerAccount;\r\n\r\n self.CustomerSettings.getFrequentParkerSettings().then((response) => {\r\n self._isFrequentParkerAccountEnabled = response.settings.enabled;\r\n });\r\n \r\n self.ParkingMedia.query({ accountId: session.account.id }, criteria).$promise\r\n .then((response) => {\r\n self.parkingMediaList = response;\r\n self.existsActiveMedia = Linq.from(self.parkingMediaList).Any((x: any) => { return !x.disabled });\r\n self.oriParkingMediaList = ng.copy(self.parkingMediaList);\r\n\r\n })\r\n .catch((e) => { console.log(e); });\r\n \r\n })\r\n .catch((e) => {\r\n console.error(e);\r\n console.error('Failed to load session data.');\r\n }\r\n );\r\n \r\n this.$scope.$watch(\"media.parkingMediaRequests\", () => { self.calculateTotal() }, true);\r\n\r\n console.log('MediaController loaded');\r\n }\r\n\r\n public get isFrequentParkerAccount() : Boolean {\r\n // returning (this._isFrequentParkerAccountEnabled && this.session && this.session.frequentParkerAccount) results in compiler\r\n // error related to conversion to bool.\r\n if (this._isFrequentParkerAccountEnabled && this.session && this.session.frequentParkerAccount)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n public autoRedemptionValueChanged() {\r\n if (this.fpAccount && this.fpAccount.automaticRedemption === true)\r\n this.fpAccount.usePointsNextVisit = false;\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.parkingMediaList = ng.copy(this.oriParkingMediaList);\r\n (this.$scope as any).parkingMediaForm.$setPristine();\r\n this.isReadOnly = true;\r\n }\r\n\r\n public onSaveClick(args): void {\r\n var promises = this.getMediaListSavePromises(args);\r\n promises.push(this.getFpAccountSavePromise(args));\r\n\r\n this.$q.all(promises)\r\n .then((response) => {\r\n // all parkingMedia(s) updated\r\n this.oriParkingMediaList = ng.copy(this.parkingMediaList);\r\n this.toastMessageFactory.showSuccessMessage();\r\n this.isReadOnly = true;\r\n this.existsActiveMedia = Linq.from(this.parkingMediaList).Any((x: any) => { return !x.disabled });\r\n console.log('MediaController: all parkingMedia in List saved');\r\n })\r\n .catch((e) => {\r\n this.isReadOnly = false;\r\n args.cancel();\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n });\r\n }\r\n\r\n public onEditClick(): void {\r\n this.isReadOnly = false;\r\n }\r\n\r\n public onRequestClick(): void {\r\n this.showRequest = !this.showRequest;\r\n this.ContentTemplate.query({ key: this.key, languageCode: this.language }).$promise\r\n .then((response) => {\r\n let template = Linq.From(response).FirstOrDefault();\r\n this.content = template.content;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n }); \r\n }\r\n\r\n public onCancelRequestClick(): void {\r\n this.showRequest = false;\r\n this.isReplaceExisting = false;\r\n this.replaceExistingSelectedIndex = null;\r\n this.replaceReason = null;\r\n (this.$scope as any).parkingForm.$setPristine();\r\n }\r\n\r\n public onSubmitRequestClick(args): void {\r\n if (this.isReplaceExisting) {\r\n this.onSaveClick(args);\r\n }\r\n this.saveMediaRequest(args);\r\n }\r\n \r\n public calculateTotal(): void {\r\n var mediaList = Linq.from(this.parkingMediaRequests);\r\n this.totalCost = mediaList.Sum((x) => { return (x as any).type.price * x.quantity; });\r\n }\r\n\r\n public saveMediaRequest(args): any {\r\n var parkingMediaRequests = ng.copy(this.parkingMediaRequests);\r\n parkingMediaRequests = Linq.from(parkingMediaRequests)\r\n .Where((x) => { return x.quantity > 0 }).ToArray();\r\n\r\n if (this.isReplaceExisting && parkingMediaRequests.length > 1) {\r\n\r\n // We should never get here, however lets make sure we are not sending more then one, in case the validation failed to catch this.\r\n // Note, the server never checks that only one replacement is sent, since each erquest is saved in a separate API call.\r\n\r\n parkingMediaRequests.splice(1, parkingMediaRequests.length - 1);\r\n }\r\n \r\n var promises = [];\r\n ng.forEach(parkingMediaRequests, (parkingMediaRequest) => {\r\n parkingMediaRequest.accountId = this.session.account.id;\r\n parkingMediaRequest.userProfileId = this.session.profile.id\r\n\r\n if (this.isReplaceExisting) {\r\n parkingMediaRequest.replaceParkingMediaId = this.replaceExistingSelectedIndex;\r\n }\r\n promises.push(\r\n this.ParkingMediaRequest.insert({ accountId: this.session.account.id }, parkingMediaRequest)\r\n .$promise\r\n .then((response) => {\r\n // single parkingMediaRequest insert\r\n console.log('MediaController:single parkingMediaRequest saved');\r\n })\r\n .catch((e) => {\r\n this.isReadOnly = false;\r\n args.cancel();\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n })\r\n );\r\n });\r\n return this.$q.all(promises)\r\n .then((response) => {\r\n // all parkingMediaRequests(s) inserted\r\n this.toastMessageFactory.showSuccessMessage();\r\n this.showRequest = false;\r\n this.isReplaceExisting = false;\r\n this.replaceExistingSelectedIndex = null;\r\n this.replaceReason = null;\r\n this.existsActiveMedia = Linq.from(this.parkingMediaList).Any((x: any) => { return !x.disabled });\r\n console.log('MediaController:all parkingMediaRequests in List saved');\r\n })\r\n .catch((e) => {\r\n this.isReadOnly = false;\r\n args.cancel();\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n });\r\n }\r\n\r\n private getMediaListSavePromises(args): any[] {\r\n var promises = [];\r\n ng.forEach(this.parkingMediaList, (parkingMedia) => {\r\n\r\n if (parkingMedia.disabledReasonId === 2) {\r\n parkingMedia.disabled = true;\r\n } else if (parkingMedia.disabledReasonId === 0) {\r\n parkingMedia.disabledReasonId = null;\r\n }\r\n\r\n if (this.isReplaceExisting && this.replaceExistingSelectedIndex === parkingMedia.id) {\r\n parkingMedia.disabled = true;\r\n parkingMedia.disabledReasonId = this.replaceReason;\r\n }\r\n\r\n if (parkingMedia.disabled) {\r\n parkingMedia.disabledDateTime = (this.moment as any)().endOf('day').toDate();\r\n parkingMedia.expirationDate = (this.moment as any)().endOf('day').toDate();\r\n }\r\n\r\n promises.push(\r\n this.ParkingMedia.update({ id: parkingMedia.id, accountId: this.session.account.id }, parkingMedia)\r\n .$promise\r\n .then((response) => {\r\n // single parkingMedia update\r\n console.log('MediaController: single parkingMedia saved');\r\n })\r\n .catch((e) => {\r\n this.isReadOnly = false;\r\n args.cancel();\r\n console.log(e);\r\n })\r\n .finally(() => {\r\n })\r\n );\r\n });\r\n\r\n return promises;\r\n }\r\n\r\n private getFpAccountSavePromise(args): any {\r\n if (!this.fpAccount) return;\r\n\r\n var params = { id: this.fpAccount.id, accountId: this.fpAccount.accountId };\r\n return this.FrequentParkerAccountResource.update(params, this.fpAccount).$promise\r\n .then((response) => {\r\n console.log(response);\r\n })\r\n .catch((e) => {\r\n this.isReadOnly = false;\r\n args.cancel();\r\n console.log(e);\r\n });\r\n }\r\n}\r\n\r\nlet medComponent = new MediaComponent();\r\nexport default medComponent;\r\nexport { medComponent as MediaComponent, IMediaController, MediaController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/media.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
Need Help?
\\n

Contact a Reserve Parking Administrator

\\n

Phone: (404) 530-6725

\\n

Fax: (404) 530-4161

\\n

Email: ReserveParkATL@atl.com

\\n
\\n
\\n
\\n
How do I gain access to the Reserve Parking facilities?
\\n

Access to Domestic Reserve Parking and International Gold Reserve Parking is available only to vehicles with an authorized airport-issued transponder. The transponder grants you 24-hour automated access into your Reserve Parking designation. The private entrance and exit gates are equipped with 24-hour intercom service for customer assistance should you experience any difficulty upon entering or exiting the parking areas. North Gold Reserve Parking, South Gold Reserve Parking, Park-Ride Reserve Parking and International Gold Reserve Parking make up the Reserve Parking areas.

\\n
Am I guaranteed a specific parking space?
\\n

There is not a specific Reserve parking space. However, you are guaranteed that there will be a parking space available for you at the time you access your Reserve Parking designation.

\\n
How much does a Transponder cost?
\\n

\\nA standard self-adhesive Window Transponder, at a cost $25.00 each, is 3”x2 ½” in size and fits most vehicle types. The License Plate Transponder (Mounted Vehicle Bumper Tag), required for some customers, costs $40.00. This is normally placed on the dashboard when entering the parking area and is usually recommended for vehicles with metallic content in their windows such as BMW, Tesla, Porsche, Corvette, Mercedes Benz, Acura MDX and Land Rover. Replacing either transponder costs the same amount as the original. The Transponders are non-transferable.\\n

\\n
How many transponders can I have on one account?
\\n

Gold Reserve and Park-Ride Reserve Parking members are allowed to purchase a maximum of three (3) transponders. Only one (1) vehicle per account is allowed in Reserve Parking at a time.

\\n
How can I request an additional or replacement transponder?
\\n

After logging into the website, a link is available to the right of the Frequently Asked Questions (FAQs) screen in the “Need Help?” box for you to submit your request for an additional or replacement transponder. Your additional or replacement transponder will be mailed to you within a week upon payment. When the request is a replacement transponder, your old transponder is deactivated as soon as you submit your request electronically. Be aware that Gold Reserve and Park-Ride Reserve Members can purchase a maximum of 3 transponders. A standard self-adhesive Window Transponder, at a cost $25.00 each, is 3”x2 ½” in size and fits most vehicle types. The License Plate Transponder (Mounted Vehicle Bumper Tag), required for some customers, costs $40.00. This is normally placed on the dashboard when entering the parking area and is usually recommended for vehicles with metallic content in their windows such as BMW, Tesla, Porsche, Corvette, Mercedes Benz, Acura MDX and Land Rover. Replacing either transponder costs the same amount as the original. The Transponders are non-transferable.

\\n
Will my transponder grant me access to the International Gold Reserve parking area at the Maynard H. Jackson Jr. International Terminal?
\\n

A transponder issued to you for use at the Domestic Gold Reserve Parking will also grant you access to the International Gold Reserve Parking at the International Terminal.

\\n
What is the parking rate per day?
\\n

The parking rate is $3.00 per hour up to the maximum of $30.00 per day for Gold Reserve Parking. The parking rate is $3.00 per hour up to the maximum of $12.00 per day for Park-Ride Reserve Parking.

\\n
What is the Annual Minimum Usage Fee (AMUF)?
\\n

The Annual Minimum Usage Fee (AMUF) is charged to each Gold Reserve Member during the initial membership account setup and is renewed each January for the January through December year. For Gold Reserve Members, the AMUF is $360.00, which covers 12 days of parking in the Gold Reserve Facility (daily rate of $30.00 x 12 days per year). New accounts opened after January will be assessed a prorated AMUF based on the month in which the account opened (i.e. if you join in September, prorated AMUF is $120.00). Each time your AVI transponder passes through the entry/exit lanes, the parking fee is depleted first from the AMUF and then depleted from the Advance Payment deposit. Any unused AMUF is non-refundable and non-transferable from year to year.

\\n
What is the Advance Payment?
\\n

The Advance Payment is a required deposit of $200.00 for Gold Reserve parking accounts and $99.00 for Park-Ride Reserve parking accounts. As referenced above, once the AMUF balance for Domestic Gold Reserve and International Gold Reserve accounts is depleted from your account for the calendar year, any additional parking usage is deducted from the $200.00 Advance Payment deposit on your account.

\\n
What is the purpose of the Reserve Parking Member website?
\\n

\\nConvenient automatic activity/statements are accessible 24 hours to view and print online through our secured website. You can easily: •\\tApply for new Reserve Parking membership online •\\tTrack your parking activity online 24 hours after activity •\\tGenerate custom reports based on date ranges of parking activity •\\tView and print parking receipts and monthly statements •\\tUpdate your credit card information through our secure website •\\tRequest for replacement or additional transponders •\\tReceive important notifications of parking updates and alerts\\n

\\n
How do I maintain the funds in my account?
\\n

Your Reserve Parking account is kept active with a valid Visa, MasterCard, American Express or Discover credit card on file to cover parking charges and associated fees through automatic replenishment.

\\n
How do I change or update the credit card associated with my parking account?
\\n

After logging into the website, a link to updating your payment information is available on the main page in the “I’d Like To...” box. Should you have any questions, please contact Customer Service line at (404) 382-1739.

\\n
What happens if I need to cancel my parking membership?
\\n

You may cancel your Reserve Parking membership account by written request. (A) If a written request to close your parking account is received prior to February 1st and there is no activity on the account, a full refund of the AMUF plus the Advance Payment deposit will be issued. (B) If you wish to close your account and there is activity on the account or the written request to close your parking account is received after February 1st, the AMUF will be non-refundable and a refund of any unused portion of the Advance Payment deposit will be issued. The transponder is non-refundable and non-transferable.

\\n
\";\nvar id1=\"assets/content/faq.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/content/faq.html\n// module id = 657\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n

• License Plate Transponder (bumper tag) is 1.5 x 8.5 x 0.85 in. in size, is normally placed on the dashboard before driving to the parking area, and is usually recommended for vehicles with metallized windshield. Some of the known vehicles are the BMW, Tesla, Mercedes Benz, Land Rover, Corvette, Acura MDX, Porsche, Ford F150.

\\n

• Window Sticker Transponder is 2.89 x 2.19 x 0.04 in. in size, self-adhesive, fits most vehicle types and must be affixed to your windshield.

\\n
\";\nvar id1=\"assets/content/media-request.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/content/media-request.html\n// module id = 658\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
Domestic Reserve Parking
\\n
International Gold Reserve Parking
\\n
Hartsfield-Jackson Atlanta International Airport
\\n
Terms and Conditions
\\n

\\nThe Domestic Reserve Parking and International Gold Reserve Parking are membership-only parking areas at the Hartsfield-Jackson Atlanta International Airport and are designed for customers who prefer fast, convenient and guaranteed on-site airport parking. Domestic Reserve Parking consists of three parking areas: North Gold Reserve Parking, South Gold Reserve Parking and Park-Ride Reserve Parking. A covered parking space is assured for you in North Gold Reserve Parking and South Gold Reserve Parking with easy automated access, which is located just steps away from the domestic airport terminal on the lower level. An uncovered parking space is assured for you in Park-Ride Reserve Parking with easy automated access, which is located adjacent to South Terminal Parkway, minutes away from the domestic airport terminal. Convenient, fast, complimentary shuttle service picks you up at your vehicle and takes you to the airport terminal and returns you to your vehicle. International Gold Reserve Parking is covered parking on the lower level at the international terminal. The private entrance and exit is equipped with 24-hour intercom access for customer assistance.\\n

\\n

\\nPlease read these (“Terms and Conditions”) carefully. The Terms and Conditions cover important information about the parking services (the “Services”) provided to you and constitute the agreement between the Hartsfield-Jackson Atlanta International Airport (the “Airport”, “we”, “our”, “us”) and you.\\n

\\n
(1) Binding Agreement
\\n

\\nYou represent that you are at least 18 years old. You agree to pay all access and usage charges, fees, and other charges that we bill you. If you are entering into this Agreement for an organization to obtain parking privileges for one or more individual parkers, you represent and warrant to us that you are an authorized signatory for that organization. The Terms and Conditions are binding on any individual parkers under an organization account.\\n

\\n
(2) Acceptance
\\n

\\nYour agreement with the Airport starts when you accept. You accept by doing any of the following: (a) giving us a written or electronic signature; (b) submitting an online membership application; (c) using the Services after making an account change or addition; or (d) paying for the service. If you do not want to accept, do not do any of these things.\\n

\\n
(3) Service and Fees
\\n

\\nTo begin the initial process of opening a membership account in Reserve Parking, based on current space availability, submit your online membership application and agree to the Terms and Conditions by visiting https://webparcs.atlanta-airport.com. Upon approval of your application and subject to pro-ration, you are required to pay the following:\\n

\\n

\\nFor Gold Reserve Parking:\\n

\\n

\\nThe initial membership setup fee is $585.00, which includes a self-adhesive Window Transponder, or pay $600.00, which includes a Bumper Transponder, which is charged to your credit card. The membership fee consists of the $200.00 (refundable) Advance Payment deposit, the $25.00 or $40.00 (non-refundable) self-adhesive Windshield Transponder or Bumper Transponder fee and the $360.00 (non-refundable) Annual Minimum Usage Fee (AMUF). New accounts opened after January are assessed a prorated AMUF based on the month the account opened (i.e. joined in September; prorated AMUF is $120.00, plus the advance payment deposit and the transponder fee). The AMUF is charged to each Gold Reserve parking member’s credit card during the initial membership account setup and is renewed each January for the calendar year. The AMUF covers at least 12 days of parking in Gold Reserve Parking ($30 daily parking rate x 12 days per year).\\n

\\n

\\nFor Park-Ride Reserve Parking:\\n

\\n

\\nThe initial membership setup fee is $124.00, which includes a self-adhesive Window Transponder, or pay $139.00, which includes a Bumper Transponder, which is charged to your credit card. The membership fee consists of the $99.00 (refundable) Advance Payment deposit and the $25.00 or $40.00 (non-refundable) self-adhesive Windshield Transponder or Bumper Transponder fee.\\n

\\n

\\nAfter the initial setup fee is collected, your parking account is established with the fee collected minus the transponder fee. A Welcome Packet will be mailed containing your transponder. The transponder grants you 24-hour automated access into your Reserve Parking designation. Each time your transponder passes through the Domestic Gold Reserve or International Gold Reserve exit gates, the parking fee, based on usage, is deducted first from the AMUF balance. The parking rate for Gold Reserve Parking is $3.00 per hour up to the maximum of $30.00 per day. Once the AMUF balance is depleted for the calendar year, any additional parking usage in the Domestic Gold Reserve and International Gold Reserve Parking isdeducted from the Advance Payment deposit on your account. (The AMUF is non-applicable for Park-Ride Reserve Parking). The parking rate for Park-Ride Reserve Parking is $3.00 per hour up to the maximum of $12.00 per day. Once the parking account balance of the Advance Payment falls below the predetermined limit, your credit card is automatically charged to replenish your parking account balance up to the appropriate Advance Payment deposit amount. Your parking account is kept active with a valid credit card on file to cover parking charges and associated fees through automatic replenishment. Any unused portion of the AMUF balance is non-refundable and non-transferable from year to year. Any unused portion of the Advance Payment deposit balance is transferable from year to year and is refundable upon account cancellation. Convenient automatic activity/statements are accessible 24 hours to view and print online through our secured website.\\n

\\n
(4) Cancellation/Refunds
\\n

\\nYou may cancel your Reserve Parking membership account by written request. (A) If a written request to close your parking account is received prior to February 1st and there is no activity on the account, a full refund of the AMUF plus the Advance Payment deposit will be issued. (B) If you wish to close your account and there is activity on the account or the written request to close your parking account is received after February 1st, then the AMUF will be non-refundable and a refund of any unused portion of the Advance Payment deposit will be issued.\\n

\\n
(5) Changes
\\n

\\nRates, fees, and any portion of the Terms and Conditions are subject to change. If we materially modify these Terms and Conditions in a way that is materially adverse to you, we will provide you with at least 30 days’ notice. If you wish not to accept the Terms and Conditions, it will result in the closure of your account in accordance with Section 4.\\n

\\n
(6) Permits & Access Devices
\\n

\\nYour authorized airport-issued Windshield Transponder, Bumper Transponder, and any other access devices issued for use of the Services is valid only for the parking area for which it is designated. A maximum of three (3) transponders per account can be issued upon payment. However, only one (1) vehicle per account is allowed in the parking area at a time. Misuse of these items will be considered a breach of the Terms and Conditions. Your authorized airport-issued Windshield Transponder and/or Bumper Transponder must be visibly displayed at all times. The self-adhesive Windshield Transponder must be affixed to your windshield according to the transponder installation instructions, which is compatible with most vehicle types. The Bumper Transponder, required for some vehicles with metallic content windshield, is normally mounted on the front of the vehicle. Failure to do so will be considered a breach of the Terms and Conditions. All Windshield Transponders, Bumper Transponders, and any other access devices remain the property of the Hartsfield-Jackson Atlanta International Airport. If the item is deemed to be defective, you must notify the airport and return the item within 30 days of the receipt of the item and we will replace the item free of charge. If the item is lost or stolen, you must notify the airport so we may deactivate the item. Lost or stolen items will be replaced upon payment of a replacement fee at the then-current rate.\\n

\\n
(7) Restrictions
\\n

\\nAuthorized airport-issued Reserve Parking Transponders are for the use of Reserve Parking only and are subject to the rights and restrictions associated with your assigned parking designation. We are not responsible for any injury, loss, or damage to you or to your vehicle (or its contents). Parking of unregistered or uninsured vehicles, the general storage of vehicles, and the repair or maintenance of vehicles in the parking area is prohibited. Further, parking of vehicles that pose any kind of hazard or have hazardous contents is also prohibited. We reserve the right to provide parking accommodation at an alternate airport parking location at any time, without advance notice. Vehicles must be parked in marked spaces only. Vehicles parked for the principal purpose of promotional activities or advertising are prohibited.\\n

\\n
(8) Privacy
\\n

\\nYou consent to the collection and use of your personal information for the purpose of facilitating parking transactions, verifying identity and to contact you as required. You consent to our disclosure of your personal information to our agents who provide services relating to management of your account including, without limitation, delivering mail, processing payments, or to others as required by law.\\n

\\n
(9) General
\\n

\\nYou may not assign, transfer, or sublease the Services contemplated by the Terms and Conditions. If you are the administrator of an organization account you can change the account administrator by providing us with written notice. Changes in the name of the account holder are prohibited, unless the name change is adequately supported by legal documentation as determined in our sole discretion.\\n

\\n
(10) Consent to Electronic Notices
\\n

\\nYou consent to the use of electronic notices (via email) for us to contact you for all aspects of the Services. You may withdraw this consent to electronic notices or update your account information by sending an email message to us through the customer service portal on our website or by writing to us at the address on our website. To use our on-line Reserve Parking customer website to sign up for parking, to access and print your account information, to update your credit card or demographic and contact information and to request for replacement or additional transponders, your minimum system requirements are: an Intel Pentium III 300 MHz or equivalent personal computer with SVGA (800X600) display resolution, Internet access and an Internet Email Address. One of the following Internet browsers is also required: Microsoft Internet Explorer 7.0 service pack 2 or better, Fire Fox version 1 or 2 or Safari for Mac. Other browsers may function correctly, but are not specifically supported.\\n

\\n
(11) Breach
\\n

\\nYou agree that in the event of a breach of any of the Terms & Conditions by you or a permitted individual parker that you have granted parking privileges, we may take one or more of the following actions: issue a violation notice, tow the vehicle, or suspend parking privileges.\\n

\\n

\\nNote: If you violate the policy by having more than one vehicle in the parking area per account, there will be a $50.00 administrative fee.\\n

\\n
(12) Disclaimer of Warranties
\\n

\\nThe Services and devices are provided to you on an “as-is” and “with all faults” basis and without warranties of any kind. We make no representations or warranties, express or implied, including any implied warranty of merchantability, fitness for a particular purpose, or availability. We cannot promise Service availability, and we do not authorize anyone to make any warranties on our behalf.\\n

\\n
(13) Limitations of Liability
\\n

\\nWe each agree to limit claims for damages or other monetary relief against each other to direct and actual damages. This limitation and waiver will apply regardless of the theory of liability, whether fraud, misrepresentation, breach of contract, personal injury, products liability, or any other theory. This means that neither of us will seek any indirect, special, consequential, treble, or punitive damages from the other. Our liability for monetary damages of any claims you may assert against us is limited to a refund of the prorated charges you paid or owe for the Service. All claims must be brought within one (1) year of the date the claim arises.\\n

\\n
(14) Indemnification
\\n

\\nYou agree to defend, indemnify, and hold us harmless from any claims arising out of your use of the Services, breach of the Terms and Conditions, violation of any laws or regulations, or violation of any rights of third parties by you or any person on your account.\\n

\\n
(15) Choice of Law
\\n

\\nThe Terms and Conditions are governed by the laws of the state of Georgia. The parties agree that forum and venue will be fixed in the state courts of Atlanta, Fulton County, Georgia or Clayton County, Georgia.\\n

\\n
(16) Enforceability and Assignment
\\n

\\nA waiver of any part of the Terms and Conditions by us is not a waiver of any other part and must be expressly provided in writing. If we do not enforce our rights under any provisions of the Terms and Conditions, we may still require strict compliance in the future. If any part of the Terms and Conditions is held invalid by a court with jurisdiction, it will be severed from the Terms and Conditions without affecting the validity of the other provisions. The Terms and Conditions are the entire agreement between the parties, and it defines all of the rights that you have with respect to the Service. You cannot rely on any other documents or statements by any sales, service representatives, or other agents.\\n

\\n
\";\nvar id1=\"assets/content/terms.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/content/terms.html\n// module id = 659\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n
\\n
{{ state.message }}
\\n\\n
\\n
\";\nvar id1=\"assets/content/blockui-template.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/content/blockui-template.html\n// module id = 660\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
Account has not yet been activated. Please try back later.
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar id1=\"assets/content/account-not-activated.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/assets/content/account-not-activated.html\n// module id = 661\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n\\nRequest New\\n\\n
\\n\\n
\\n
\\n\\n\\n
Automatically Redeem Frequent Parker Points when available
\\nhelp_outline\\n\\nTo use a vehicle transponder to continually redeem Frequent Parker points when available, please check this box.\\n\\n\\n
\\n
\\n
\\n
\\n\\n\\n
Redeem Frequent Parker Points on Next Visit when point policies are met
\\nhelp_outline\\n\\nTo use a vehicle transponder to redeem Frequent Parker points on your next visit, please check this box. Upon an automatic redemption, we will automatically un-check this box. You can view the redemption transaction on the Activity Page.\\n\\n\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Parking Media {{$index + 1}} ID Number
\\n
{{parkingMedia.mediaIdentifier}}
\\n
\\n
\\n
Vehicle Description for Parking Media {{$index + 1}}
\\n
\\n\\n\\n\\n
\\n
\\n
\\n
Report Lost or Stolen
\\n
\\n\\n\\n
\\n
\\n
\\n
Use for Redemption
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
Request New
\\n
\\n
\\n
\\nReplace an existing parking media?\\n
\\n
\\n
\\n\\n\\nReplacement\\nLost or Stolen\\n\\n\\n
\\n
\\n\\n\\n\\n{{parkingMedia.mediaIdentifier}} - {{parkingMedia.description}}\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n\\nCancel\\n\\n\\nSubmit Request\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/dashboard/media.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/media.html\n// module id = 662\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { Moment } from 'moment';\r\nimport { ISessionService } from '../../services';\r\nimport { IMessageResource } from './data/message';\r\nlet template = require('./message.html');\r\nlet messageDetailTemplate = require('./message-detail.html');\r\n\r\nclass MessageComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('message', {\r\n controller: MessageController,\r\n controllerAs: 'message',\r\n templateUrl: template,\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IMessageController {\r\n convertDateToDays(date): string;\r\n showMessageDetail(ev, msg): any;\r\n}\r\n\r\nclass MessageController implements IMessageController {\r\n private static $inject: Array = ['Message', 'Session', '$scope', '$mdDialog', '$mdMedia', 'moment'];\r\n\r\n public messages:Array = [];\r\n public customFullscreen: Boolean;\r\n public useFullScreen: Boolean;\r\n\r\n constructor(private Message: IMessageResource,\r\n private Session: ISessionService,\r\n private $scope: ng.IScope,\r\n private $mdDialog: ng.material.IDialogService,\r\n private $mdMedia: ng.material.IMedia,\r\n private moment: Moment) {\r\n\r\n console.log('MessageController loading');\r\n \r\n\r\n this.customFullscreen = this.$mdMedia('xs') || this.$mdMedia('sm');\r\n this.useFullScreen = (this.$mdMedia('sm') || this.$mdMedia('xs')) && this.customFullscreen;\r\n }\r\n\r\n public $onInit(): void {\r\n if (!this.Session.assureActiveUserSession()) return;\r\n this.Session.getSessionAsync()\r\n .then((session) => {\r\n let criteria = {\r\n accountId: session.account.id,\r\n userProfileId: session.profile.id,\r\n expirationDate: (this.moment as any)().format(\"MM/DD/YYYY\")\r\n }\r\n this.Message.query(criteria).$promise\r\n .then((response) => {\r\n this.messages = response;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n });\r\n \r\n });\r\n console.log('MessageController loaded');\r\n }\r\n\r\n public convertDateToDays(date): string {\r\n let messageExpirationDate = (this.moment as any)(date);\r\n let currentDate = (this.moment as any)();\r\n\r\n return messageExpirationDate.endOf('day').diff(currentDate, 'days');\r\n }\r\n\r\n public showMessageDetail(ev, msg): any {\r\n this.useFullScreen = (this.$mdMedia('sm') || this.$mdMedia('xs')) && this.customFullscreen;\r\n this.$mdDialog.show({\r\n controller: ['$scope', '$mdDialog', ($scope, $mdDialog) => {\r\n $scope.msg = msg;\r\n $scope.cancel = () => {\r\n $mdDialog.cancel();\r\n };\r\n }],\r\n templateUrl: messageDetailTemplate,\r\n parent: ng.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n fullscreen: this.useFullScreen\r\n } as any);\r\n let self = this;\r\n this.$scope.$watch(() => {\r\n return self.$mdMedia('xs') || self.$mdMedia('sm');\r\n }, (wantsFullScreen) => {\r\n self.customFullscreen = (wantsFullScreen === true);\r\n });\r\n };\r\n\r\n}\r\n\r\nlet msgComponent = new MessageComponent();\r\nexport default msgComponent;\r\nexport { msgComponent as MessageComponent, IMessageController, MessageController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/message.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n\\n
\\n
\\n
\\n
Messages
\\n
\\n
\\n
\\n
\\n
Date
\\n
Subject
\\n
Expires
\\n
\\n
\\n
10) ? '16px' : '0px'}};\\\">
\\n
\\n
\\n
\\nNo messages.\\n
\\n 0\\\" class=\\\"md-caption\\\">\\n
\\n
\\n
\\n
{{item.effectiveDate | date}}
\\n
{{item.subject}}
\\n
{{message.convertDateToDays(item.expirationDate)}} days
\\n
View
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\nNo messages.\\n
\\n
\\n
\\n
\\n
{{item.effectiveDate | date}}
\\n
Expires in {{message.convertDateToDays(item.expirationDate)}} days
\\n
\\n
{{item.subject}}
\\n
\\n
\\n
\\nView\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/dashboard/message.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/message.html\n// module id = 664\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n

Message Detail

\\n
\\n\\nclose\\n\\n
\\n
\\n\\n
\\n

{{msg.subject}}

\\n

{{msg.effectiveDate | date}}

\\n

\\n
\\n
\\n\\n
\\n\\nReturn to Message\\n\\n
\\n
\\n
\";\nvar id1=\"components/dashboard/message-detail.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/message-detail.html\n// module id = 665\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { Moment } from 'moment';\r\nimport { IActivitiesService } from './services/activities-service';\r\nimport { ISiteConfigService } from '../../core';\r\nimport { IToastMessageService, ISessionService } from '../../services';\r\nimport { Dto } from '../../data';\r\nlet template = require('./overview.html');\r\nimport { Templates } from \"../../assets\";\r\n\r\nclass OverviewComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('overview', {\r\n controller: OverviewController,\r\n templateUrl: template,\r\n controllerAs: 'overview',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IOverviewController {\r\n}\r\n\r\nclass OverviewController implements IOverviewController {\r\n private static $inject: Array = ['Activities', 'SiteConfig', 'toastMessageFactory', 'moment', 'Session'];\r\n public accountNotActivatedTemplateUrl: string = Templates.accountNotActivated;\r\n private session: any = {};\r\n private activities: Array = [];\r\n private allActivities: Array = [];\r\n private fpActivities: Array = [];\r\n private phoneNumber:string = null;\r\n private reservedParkingEnabled: boolean = true;\r\n private frequentParkerActivityType: any;\r\n private criteria: Dto.IAccountActivityCriteria;\r\n private frequentParkerCriteria: Dto.IFrequentParkerActivityCriteria;\r\n private pointBalance: number;\r\n\r\n constructor(private Activities: IActivitiesService,\r\n private SiteConfig: ISiteConfigService,\r\n private toastMessageFactory: IToastMessageService,\r\n private moment: Moment,\r\n private Session: ISessionService) {\r\n\r\n console.log('OverviewController loading');\r\n }\r\n\r\n public $onInit(): void {\r\n if (!this.Session.assureActiveUserSession()) return;\r\n this.SiteConfig.getConfigAsync()\r\n .then((config) => {\r\n this.phoneNumber = config.customerSettings.contact.phoneNumber;\r\n this.reservedParkingEnabled = config.customerSettings.reservedParking.enabled;\r\n });\r\n\r\n this.frequentParkerActivityType = [\r\n { key: 0, value: null },\r\n { key: 1, value: 'Point Accrual' },\r\n { key: 2, value: 'Point Redemption' },\r\n { key: 3, value: 'Manual Point Adjustment' }\r\n ];\r\n\r\n this.criteria = {\r\n accountId: null,\r\n startDate: (this.moment as any)().startOf('month').toDate(),\r\n endDate: (this.moment as any)().endOf('month').toDate(),\r\n minAmount: null,\r\n maxAmount: null,\r\n mediaIdentifier: null,\r\n transactionType: null,\r\n pageSize: 0,\r\n pageNumber: 0\r\n } as Dto.IAccountActivityCriteria;\r\n\r\n this.frequentParkerCriteria = {\r\n frequentParkerAccountId: null,\r\n startDate: this.criteria.startDate,\r\n endDate: this.criteria.endDate,\r\n activityType: null,\r\n pageSize: 0,\r\n pageNumber: 0\r\n } as Dto.IFrequentParkerActivityCriteria;\r\n\r\n this.Activities.loadAccountWithActivities(this, this.criteria, this.frequentParkerCriteria).then(() => {\r\n if (this.session.account.status === 4) {\r\n this.toastMessageFactory.showWarningMessage('Your account is inactive. Please call ' + this.phoneNumber + ' to get your account reactivated.');\r\n }\r\n\r\n if (this.fpActivities.length <= 0) {\r\n this.Activities.getCurrentFppBalance(this.frequentParkerCriteria.frequentParkerAccountId)\r\n .then((balance: number) => {\r\n this.pointBalance = balance;\r\n });\r\n } else {\r\n this.pointBalance = (this as any).fpSummary.endingBalance;\r\n }\r\n\r\n });\r\n\r\n console.log('OverviewController loaded');\r\n }\r\n}\r\n\r\nlet ovrvwComponent = new OverviewComponent();\r\nexport default ovrvwComponent;\r\nexport { ovrvwComponent as OverviewComponent, IOverviewController, OverviewController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/dashboard/overview.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
Welcome back, {{overview.session.account.name}}.
\\n
\\n
\\nAccount Number:\\n{{overview.session.account.externalId}}\\n
\\n
\\n
\\nAccount Status:\\nActive\\n\\nAccount is active!\\n\\n\\nInactive\\n\\nYour account is inactive. Please call {{overview.phoneNumber}} to get your account reactivated.\\n\\n\\n
\\n
\\n\\n
\\nAccount Summary\\n
\\n
\\n
\\n
Available Balance
\\n
{{overview.session.account.balance | currency}}
\\n
\\n
\\n
Month-to-Date Charges
\\n
{{overview.totalDebits | currency}}
\\n
\\n
\\n
Month-to-Date Replenishments
\\n
{{overview.totalCredits | currency}}
\\n
\\n
\\n\\nAMUF or Annual Minimum Usage Fee: Portion of available balance that must be used prior to the end of the current calendar year. Unused AMUF will be forfeited at year-end. Parking charges will decrement the AMUF prior to additional balance.\\n\\n
\\nAMUF Balance\\n
\\n
{{overview.session.account.forfeitureBalance | currency}}
\\n
\\n
\\n
Available Points
\\n
{{overview.pointBalance}}
\\n
\\n
\\n\\n
{{overview.criteria.startDate | date:'MMMM yyyy'}} Transactions
\\n
\\n
{{overview.totalParkingTrips}} Parking Trips
\\n
{{overview.totalReplenishments}} Replenishments
\\n
{{overview.totalAdjustments}} Manual Adjustments
\\n
\\n\\n
This Month’s Activity
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/dashboard/overview.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/dashboard/overview.html\n// module id = 667\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ProfileComponent, IProfileController } from './profile';\r\n\r\n\r\nlet ProfileModule = ng.module(\"app.profile\", [\r\n'ngComponentRouter',\r\n//'ngRouteShim',\r\n'ngMaterial',\r\n'ngMessages',\r\n'gettext' // 3rd Party modules\r\n\r\n]).component(ProfileComponent.name, ProfileComponent.registration);;\r\n\r\nexport { IProfileController };\r\nexport default ProfileModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/profile/index.ts","import * as ng from 'angular';\r\nimport { ComponentRegistration, ISiteConfigService } from '../../core';\r\nimport { ISessionService, IToastMessageService, ICustomerSettingsService } from '../../services';\r\nimport * as Core from '../../core';\r\nimport { IProfileResource, Dto } from '../../data';\r\nlet template = require('./profile.html');\r\n\r\nclass ProfileComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('profile', {\r\n controller: ProfileController,\r\n templateUrl: template,\r\n controllerAs: 'profile',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IProfileController {\r\n activate(): void;\r\n onCancel(args): void;\r\n onSave(args): void;\r\n onEdit(args): void;\r\n setFormReadOnly(): void;\r\n loadAccount(accountId): void;\r\n savePrimaryContact(args): void;\r\n}\r\n\r\nclass ProfileController implements IProfileController {\r\n private static $inject: Array = ['$scope', '$window', '$rootRouter', 'Session', 'SiteConfig',\r\n 'toastMessageFactory', 'Profile', 'CustomerSettings'];\r\n\r\n private sessionRef: any = {};\r\n private oriProfile: Dto.IProfile = {} as Dto.IProfile;\r\n private profile: Dto.IProfile = {} as Dto.IProfile;\r\n\r\n private isReadOnly: Boolean = true;\r\n private isSideNavOpen: Boolean = false;\r\n private languages: Array = [];\r\n\r\n constructor(private $scope: ng.IScope,\r\n private $window: ng.IWindowService,\r\n private $router: ng.Router,\r\n private Session: ISessionService,\r\n private SiteConfig: ISiteConfigService,\r\n private toastMessageFactory: IToastMessageService,\r\n private Profile: IProfileResource,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n public activate(): void {\r\n console.log('ProfileController loaded');\r\n this.setFormReadOnly();\r\n this.loadAccount();\r\n console.log('ProfileController activated');\r\n }\r\n\r\n public onCancel(args): void {\r\n this.profile = ng.copy(this.oriProfile);\r\n this.sessionRef.profile = this.profile;\r\n (this.$scope as any).profileForm.$setPristine();\r\n this.setFormReadOnly();\r\n }\r\n\r\n public onSave(args): void {\r\n this.savePrimaryContact(args);\r\n }\r\n\r\n public onEdit(args): void {\r\n this.isReadOnly = false;\r\n }\r\n\r\n public setFormReadOnly(): void {\r\n this.isReadOnly = true;\r\n }\r\n\r\n public loadAccount(accountId?: string): void {\r\n\r\n let sessionHandler = (session) => {\r\n this.sessionRef = session;\r\n this.profile = ng.copy(session.profile);\r\n this.oriProfile = session.profile;\r\n };\r\n\r\n this.Session.registerRefreshHandler(sessionHandler);\r\n this.Session.getSessionAsync()\r\n .then(sessionHandler);\r\n\r\n this.CustomerSettings.getLanguageSettings().then((languageSettings) => {\r\n this.languages = languageSettings.languages;\r\n });\r\n\r\n //this.SiteConfig.getConfigAsync()\r\n // .then((config) => {\r\n // this.languages = config.languages;\r\n\r\n // });\r\n }\r\n\r\n public savePrimaryContact(args): ng.IPromise {\r\n this.setFormReadOnly();\r\n\r\n return this.Profile.update({ id: this.profile.id, accountId: this.profile.accountId }, this.profile)\r\n .$promise\r\n .then((response) => {\r\n this.sessionRef.profile = response;\r\n this.profile = ng.copy(this.sessionRef.profile);\r\n this.Session.setLanguage(this.profile.language);\r\n this.toastMessageFactory.showSuccessMessage();\r\n console.log(\"Profile Save Successful\");\r\n })\r\n .catch((e) => {\r\n args.cancel();\r\n this.isReadOnly = false;\r\n console.log(e);\r\n });\r\n }\r\n}\r\n\r\nlet prflComponent = new ProfileComponent();\r\nexport default prflComponent;\r\nexport { prflComponent as ProfileComponent, IProfileController, ProfileController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/profile/profile.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
First Name is required.
\\n
\\n
\\n\\n\\n\\n
\\n
Last Name is required.
\\n
\\n
\\n
\\n\\n
\\n\\n\\n
\\n
\\n\\n\\n
\\n
\\n\\n\\n\\n{{language.name}}\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/profile/profile.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/profile/profile.html\n// module id = 670\n// module chunks = 0","import * as ng from 'angular';\r\nimport { AccountRequest, IAccountRequestResource } from './data/account-request';\r\nimport { HomeContentCardComponent, IHomeContentCardController } from './user-controls/home-content-card';\r\nimport { AccountRequestComponent, IAccountRequestController } from './account-request';\r\nimport { accountRequestCompletedComponent, IaccountRequestCompletedController } from './account-request-complete';\r\nimport { FaqComponent, IFaqController } from './faq';\r\nimport { HomeComponent, IHomeController } from './home';\r\nimport { TermsComponent, ITermsController } from './terms';\r\n\r\nlet publicModule = ng.module(\"app.public\", [\r\n 'ngComponentRouter',\r\n //'ngRouteShim',\r\n 'ngMaterial',\r\n 'ngMessages',\r\n 'mgo-angular-wizard',\r\n 'gettext', // 3rd Party modules\r\n 'angularMoment'\r\n\r\n])\r\n .service(AccountRequest.name, AccountRequest.factory)\r\n .component(HomeContentCardComponent.name, HomeContentCardComponent.registration)\r\n .component(AccountRequestComponent.name, AccountRequestComponent.registration)\r\n .component(accountRequestCompletedComponent.name, accountRequestCompletedComponent.registration)\r\n .component(FaqComponent.name, FaqComponent.registration)\r\n .component(HomeComponent.name, HomeComponent.registration)\r\n .component(TermsComponent.name, TermsComponent.registration)\r\n\r\nexport {\r\n IAccountRequestResource,\r\n IHomeContentCardController,\r\n IAccountRequestController, IaccountRequestCompletedController, IFaqController, IHomeController, ITermsController\r\n};\r\nexport default publicModule;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/index.ts","import * as ng from 'angular';\r\nimport * as ASM from './../../../data/interfaces';\r\nimport * as Core from './../../../core';\r\n\r\ninterface IAccountRequestResource extends ng.resource.IResourceClass {\r\n insert(params: any, accountRequest: ASM.IAccountRequest): ASM.IAccountRequest; //TODO: verify interfaces\r\n validate(profile: ASM.IAccountRequest): ASM.IAccountRequest;\r\n}\r\n\r\nlet AccountRequestResourceFactory: Function = function ($resource: ng.resource.IResourceService,\r\n exception: Core.IException, logger: Core.ILogger, SiteConfig: Core.ISiteConfigService): IAccountRequestResource {\r\n\r\n return $resource(\r\n SiteConfig.getResourceUri(\"accountRequest\"),\r\n { id: '@id' } as any,\r\n new AccountRequestResource(SiteConfig) as any\r\n );\r\n };\r\n\r\nAccountRequestResourceFactory.$inject = ['$resource', 'exception', 'logger', 'SiteConfig'];\r\n\r\nclass AccountRequestResource {\r\n\r\n constructor(private SiteConfig: Core.ISiteConfigService) {\r\n\r\n }\r\n\r\n public query: ng.resource.IActionDescriptor = {\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n query: true\r\n }\r\n };\r\n\r\n public insert: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"newAccountRequest\"),\r\n method: 'POST',\r\n };\r\n\r\n public validate: ng.resource.IActionDescriptor = {\r\n url: this.SiteConfig.getResourceUri(\"newAccountRequest\"),\r\n method: 'POST',\r\n isArray: true,\r\n params: {\r\n validate: true\r\n }\r\n };\r\n\r\n}\r\n\r\nlet AccountRequest = {\r\n name: \"AccountRequest\",\r\n factory: AccountRequestResourceFactory\r\n};\r\n\r\nexport { AccountRequest, IAccountRequestResource }\r\nexport default AccountRequest;\r\n\r\n//TODO: import into an index file - .module('app.public')\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/data/account-request.ts","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../../core';\r\nimport { ISiteConfigService } from '../../../core';\r\nlet template = require('./home-content-card.html');\r\n\r\nclass HomeContentCardComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('homeContentCard', {\r\n controller: HomeContentCardController,\r\n templateUrl: template,\r\n controllerAs: 'homeContentCard',\r\n bindings: {\r\n scope: \"@\",\r\n redirectRoute: \"@\",\r\n onSuccess: \"&\"\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IHomeContentCardController {\r\n validate(): void;\r\n}\r\n\r\nclass HomeContentCardController implements IHomeContentCardController {\r\n private static $inject: Array = ['$rootRouter', 'SiteConfig'];\r\n\r\n //bindings\r\n private scope: string;\r\n private redirectRoute: string;\r\n private onSuccess: Function;\r\n\r\n constructor(private $router: ng.Router,\r\n private SiteConfig: ISiteConfigService) {\r\n\r\n }\r\n\r\n public $onInit(): void {\r\n if (!this.scope) {\r\n throw \"A Home Content scope is required\";\r\n }\r\n \r\n console.log('HomeContentCardController activated');\r\n }\r\n\r\n public validate(): void {\r\n\r\n }\r\n\r\n}\r\n\r\nlet hmcntcdComponent = new HomeContentCardComponent();\r\nexport default hmcntcdComponent;\r\nexport { hmcntcdComponent as HomeContentCardComponent, IHomeContentCardController, HomeContentCardController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/user-controls/home-content-card.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n

A New Approach to Parking

\\n
\\n
\\n
\\n\\n

Guaranteed on airport parking, every time

\\n
Make your life easier, make \\\"Lot Full\\\" a thing of the past.
\\n
\\n
\\n\\n

Easily track your activity

\\n
All of your transactions are posted within 24 hours.
\\n
\\n
\\n\\n

Receive important notifications

\\n
Get parking updates and alerts when you need them.
\\n
\\n
\\n
\\n
\\nBECOME A MEMBER\\nApply Now\\n
\\n
\\nTo become a member, simply complete an online application. Once a parking space is assigned to you, you will receive a Welcome Packet in the mail containing a transponder for 24-hour fast access for the entrance and exit gates. If a space is available, you’ll receive your Welcome Packet in about 2 weeks from the time we receive your application.\\n
\\n
\\n» Frequently Asked Questions\\n
\\n
\\n
\\n\";\nvar id1=\"public/user-controls/home-content-card.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/user-controls/home-content-card.html\n// module id = 674\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport {ComponentRegistration, ISiteConfigService} from '../../core';\r\nimport {Moment} from 'moment';\r\nimport {ICustomerSettingsService, ISessionService} from '../../services';\r\nimport {IAccountRequestResource} from './data/account-request'\r\nimport {IUserResource} from '../security';\r\nimport {Dto} from '../../data';\r\nimport {ContentTypeSettingKeys, IParkingMediaRequest} from '../../data/interfaces';\r\nimport {IContentTemplateResource} from '../../data/content-template'\r\nimport {CreditCardControlState} from \"../../user-controls/credit-card-control-state\";\r\n\r\nlet template = require('./account-request.html');\r\nlet wizardTemplate = require('./user-controls/wizard-template.html');\r\nlet wizardStepTemplate = require('./user-controls/wizard-step-template.html');\r\nlet accountRequestTerms = require('./account-request-terms.html');\r\n\r\nclass AccountRequestComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountRequest', {\r\n controller: AccountRequestController,\r\n templateUrl: template,\r\n controllerAs: 'account',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IAccountRequestController {\r\n activate(): void;\r\n onCancelClick(): void;\r\n onUsernameChanged(): void;\r\n calculateTotal(): void;\r\n onAccountNext(): void;\r\n onNext(): void;\r\n onFinish(): any;\r\n checkUsernameInUse(): void;\r\n saveAccountRequest(): void;\r\n sendScreenUpdatesToWizard(screenInfo, stepIcons): void;\r\n assureWizardRef(screenInfo, stepIcons): void;\r\n onCreditCardTokenReceived(creditCard): void;\r\n onChange(): any;\r\n showTerms(ev, msg): void;\r\n getParkingMediaRequestsToSend() : IParkingMediaRequest[];\r\n}\r\n\r\nclass AccountRequestController implements IAccountRequestController {\r\n private static $inject: Array = ['$rootRouter', '$window', '$scope', '$mdMedia', 'Session', 'WizardHandler', 'AccountRequest', 'User', '$timeout', '$mdDialog', 'SiteConfig', 'moment', 'CustomerSettings', 'ContentTemplate'];\r\n\r\n public wizardTemplateUrl: string = wizardTemplate;\r\n public wizardStepTemplateUrl: string = wizardStepTemplate;\r\n public accountRequestTermsUrl: string = accountRequestTerms;\r\n\r\n private wizard = null;\r\n private preferredParkingArea: any = {};\r\n private alternateParkingArea: any = {};\r\n private userNameUserModified: Boolean = false;\r\n private reachedReviewPage: Boolean = false;\r\n private usernameExists: Boolean = false;\r\n private customFullscreen = this.$mdMedia('xs') || this.$mdMedia('sm');\r\n private useFullScreen = (this.$mdMedia('sm') || this.$mdMedia('xs')) && this.customFullscreen;\r\n private reservedParkingEnabled: Boolean = true;\r\n private totalCost: number = 0;\r\n private userForm: any;\r\n private fppSettings: Dto.IFrequentParkerSettings;\r\n private generalSettings: Dto.IGeneralSettings;\r\n private hasFrequentParkerNumber: boolean = false;\r\n private key: string = ContentTypeSettingKeys[ContentTypeSettingKeys.Terms];\r\n private language: string = 'en';\r\n private terms: string;\r\n private creditCardControlState: CreditCardControlState = CreditCardControlState.ReCaptchaValidation;\r\n private types: any = {\r\n Personal: \"Personal\",\r\n Business: \"Business\"\r\n };\r\n\r\n private request: Dto.IAccountRequest = {\r\n accountType: this.types.Personal,\r\n name: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n city: \"\",\r\n country: \"\",\r\n subdivision: \"\",\r\n postalCode: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n homePhone: \"\",\r\n mobilePhone: \"\",\r\n workPhone: \"\",\r\n fax: \"\",\r\n language: \"\",\r\n username: \"\",\r\n password: \"\",\r\n confirm: \"\",\r\n securityQuestionId: \"\",\r\n securityAnswer: \"\",\r\n preferredParkingAreaId: \"\",\r\n\r\n alternateParkingAreaId: \"\",\r\n requestDateTime: (this.moment as any)().format(),\r\n isReserveParkingRequest: true,\r\n isFrequentParkerRequest: true,\r\n\r\n creditCardType: \"\",\r\n expirationMonth: \"\",\r\n expirationYear: \"\",\r\n\r\n maskedCreditCard: \"\",\r\n token: \"\",\r\n parkingMediaRequests: [\r\n ]\r\n } as Dto.IAccountRequest;\r\n\r\n constructor(private $router: ng.Router,\r\n private $window: ng.IWindowService,\r\n private $scope: ng.IScope,\r\n private $mdMedia: ng.material.IMedia,\r\n private Session: ISessionService,\r\n private WizardHandler: ng.mgoAngularWizard.WizardHandler,\r\n private AccountRequest: IAccountRequestResource,\r\n private User: IUserResource,\r\n private $timeout: ng.ITimeoutService,\r\n private $mdDialog: ng.material.IMedia,\r\n private SiteConfig: ISiteConfigService,\r\n private moment: Moment,\r\n private CustomerSettings: ICustomerSettingsService,\r\n private ContentTemplate: IContentTemplateResource) {\r\n\r\n this.activate();\r\n\r\n }\r\n\r\n public activate(): void {\r\n console.log(\"AccountRequest controller loaded.\");\r\n this.CustomerSettings.getFrequentParkerSettings()\r\n .then((response) => {\r\n this.fppSettings = response.settings;\r\n this.request.isFrequentParkerRequest = this.fppSettings.enabled;\r\n });\r\n\r\n this.CustomerSettings.getReservedParkingSettings()\r\n .then((response) => {\r\n this.reservedParkingEnabled = response.enabled;\r\n this.request.isReserveParkingRequest = response.enabled;\r\n });\r\n\r\n this.CustomerSettings.getGeneralSettings()\r\n .then((response) => {\r\n this.generalSettings = response.settings;\r\n });\r\n\r\n this.ContentTemplate.query({ key: this.key, languageCode: this.language }).$promise\r\n .then((response) => {\r\n let template = Linq.From(response).FirstOrDefault();\r\n this.terms = template.content;\r\n }); \r\n\r\n this.wizard = this.WizardHandler.wizard();\r\n\r\n var w = ng.element(this.$window);\r\n w.bind('resize', () => {\r\n this.$scope.$apply();\r\n });\r\n\r\n var stepIcons = {\r\n 'Account': 'account_balance',\r\n 'User': 'verified_user',\r\n 'Payment': 'payment',\r\n 'Review & Submit': 'receipt',\r\n 'Parking Area & Media': 'local_parking'\r\n\r\n };\r\n\r\n this.$scope.$watch(() => {\r\n return this.$window.innerWidth;\r\n }, (value) => {\r\n var screenInfo = {\r\n innerWidth: value,\r\n 'sm': this.$mdMedia('sm'),\r\n 'xs': this.$mdMedia('xs'),\r\n 'gt-sm': this.$mdMedia('gt-sm'),\r\n 'lg': this.$mdMedia('gt-sm')\r\n };\r\n\r\n this.wizard = this.WizardHandler.wizard();\r\n if (this.wizard) {\r\n this.sendScreenUpdatesToWizard(screenInfo, stepIcons);\r\n }\r\n else {\r\n this.assureWizardRef(screenInfo, stepIcons);\r\n }\r\n });\r\n let self = this;\r\n this.$scope.$watch(\"account.request.parkingMediaRequests\", () => { self.calculateTotal() }, true);\r\n this.$scope.$watch(\"account.preferredParkingArea\", () => { self.calculateTotal() });\r\n this.$scope.$watch(\"account.alternateParkingArea\", () => { self.calculateTotal() });\r\n\r\n console.log(\"AccountRequest controller activated.\");\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.$router.navigate(['Home']);\r\n }\r\n\r\n public onUsernameChanged(): void {\r\n this.userNameUserModified = true;\r\n if (this.userForm.username.$valid)\r\n this.checkUsernameInUse();\r\n else {\r\n this.usernameExists = false;\r\n }\r\n }\r\n\r\n public calculateTotal(): void {\r\n\r\n var mediaList = Linq.from(this.request.parkingMediaRequests);\r\n this.totalCost = mediaList.Sum((x: any) => { return x.type.price * x.quantity; });\r\n\r\n if (this.preferredParkingArea && this.preferredParkingArea.spacesAvailable) {\r\n this.totalCost += this.preferredParkingArea.membershipCost;\r\n }\r\n else if (this.alternateParkingArea && this.alternateParkingArea.spacesAvailable) {\r\n this.totalCost += this.alternateParkingArea.membershipCost;\r\n }\r\n }\r\n\r\n public getParkingMediaRequestsToSend() : IParkingMediaRequest[] {\r\n return Linq.from(this.request.parkingMediaRequests).Where((x: any) => { return x.quantity > 0 }).ToArray();\r\n }\r\n\r\n public onAccountNext(): void {\r\n if (this.request.username == \"\" && !this.userNameUserModified) {\r\n this.request.username = this.request.email;\r\n this.checkUsernameInUse();\r\n }\r\n\r\n this.onNext();\r\n }\r\n\r\n public onNext(): void {\r\n if (!this.reachedReviewPage) {\r\n this.reachedReviewPage =\r\n \"Review & Submit\" === this.wizard.currentStepTitle();\r\n }\r\n\r\n this.creditCardControlState = CreditCardControlState.ReCaptchaValidation;\r\n }\r\n\r\n public onFinish(): any {\r\n this.saveAccountRequest();\r\n var temp = this;\r\n return;\r\n }\r\n\r\n public checkUsernameInUse(): void {\r\n\r\n this.User.userExists({ username: this.request.username }).$promise\r\n .then((response) => {\r\n this.usernameExists = (response as any).exists === \"true\";\r\n });\r\n\r\n }\r\n\r\n public saveAccountRequest(): void {\r\n var request = ng.copy(this.request);\r\n request.parkingMediaRequests = Linq.from(request.parkingMediaRequests)\r\n .Where((x: any) => { return x.quantity > 0 }).ToArray();\r\n\r\n request.requestDateTime = (this.moment as any)().format();\r\n\r\n this.Session.getLanguage().then((language) => {\r\n request.language = language.code;\r\n this.AccountRequest.insert({}, request).$promise\r\n .then((response) => {\r\n this.$router.navigate(['AccountRequestCompleted']);\r\n })\r\n .catch((e) => {\r\n console.debug(e);\r\n });\r\n });\r\n\r\n\r\n }\r\n\r\n public sendScreenUpdatesToWizard(screenInfo, stepIcons): void {\r\n this.wizard.context.screenInfo = screenInfo;\r\n this.wizard.context.stepIcons = stepIcons;\r\n }\r\n\r\n public assureWizardRef(screenInfo, stepIcons): void {\r\n if (this.wizard) {\r\n this.sendScreenUpdatesToWizard(screenInfo, stepIcons);\r\n this.$scope.$apply();\r\n }\r\n else {\r\n setTimeout(() => {\r\n this.wizard = this.WizardHandler.wizard();\r\n this.assureWizardRef(screenInfo, stepIcons);\r\n }, 200);\r\n }\r\n }\r\n\r\n public onCreditCardTokenReceived(creditCard: Dto.ICreditCard): void {\r\n this.request.creditCardType = creditCard.creditCardType;\r\n this.request.expirationMonth = creditCard.expirationMonth\r\n this.request.expirationYear = creditCard.expirationYear;\r\n this.request.maskedCreditCard = creditCard.maskedCreditCard;\r\n this.request.token = creditCard.token;\r\n\r\n if (this.wizard) {\r\n this.wizard.next();\r\n setTimeout(() => {\r\n this.onNext();\r\n }, 300);\r\n\r\n }\r\n else {\r\n throw \"Wizard reference was unexpectantly null.\"\r\n }\r\n }\r\n\r\n public onCreditCardTokenCancelled() {\r\n if (this.wizard) {\r\n this.wizard.previous();\r\n }\r\n }\r\n\r\n public onChange(): any {\r\n\r\n return;\r\n }\r\n //TODO: $mdDialog as any.show 'app/components/public/account-request-terms.html'\r\n public showTerms(ev, msg): void {\r\n this.useFullScreen = (this.$mdMedia('sm') || this.$mdMedia('xs')) && this.customFullscreen;\r\n (this.$mdDialog as any).show({\r\n controller: ['$scope', '$mdDialog', ($scope, $mdDialog) => {\r\n $scope.terms = this.terms;\r\n $scope.cancel = () => {\r\n $mdDialog.cancel();\r\n };\r\n }],\r\n templateUrl: this.accountRequestTermsUrl,\r\n parent: ng.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: true,\r\n fullscreen: this.useFullScreen\r\n });\r\n this.$scope.$watch(() => {\r\n return this.$mdMedia('xs') || this.$mdMedia('sm');\r\n }, (wantsFullScreen) => {\r\n this.customFullscreen = (wantsFullScreen === true);\r\n });\r\n };\r\n}\r\n\r\nlet acctreqComponent = new AccountRequestComponent();\r\nexport default acctreqComponent;\r\nexport { acctreqComponent as AccountRequestComponent, IAccountRequestController, AccountRequestController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/account-request.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n
\\n\\n
\\n
\\n\\n
\\n
\\n
Account Type
\\n
\\n\\nCancel\\n\\nNext\\n
\\n
\\n\\n
\\n
Business
\\n
\\n
\\n
Personal
\\n
\\n
\\n
\\n
\\n
Account Features
\\n
\\n\\n
Request Reserved Parking
\\n
\\n\\n
Enroll in Frequent Parker Program
\\n
\\n
\\n
\\n
\\n\\nCancel\\n\\nReview\\nNext\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n
Account Information
\\n\\n\\n\\n\\n
\\n
\\n\\n
Have a Frequent Parker Number Already?
\\n
\\n
\\n
\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
\\n
\\n
Contact Information
\\n
\\n\\n\\n\\n
\\nFirst Name is required.\\n
\\n
\\n\\n\\n\\n
\\nLast Name is required.\\n
\\n
\\n
\\n\\n
\\n\\n\\n
\\n
\\n\\n\\n
\\n
\\n
\\n
\\n\\nCancel\\n\\nReview\\nNext\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
User Login
\\n
\\n\\nCancel\\n\\nReview\\nback\\n\\nnext\\n\\n
\\n
\\n\\n
\\nUsername already in use, please choose another.\\n
\\n\\n
\\n
Security Question
\\n
\\n\\n
\\n\\nCancel\\n\\nReview\\n back\\nnext\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
Parking Area
\\n
\\n\\nCancel\\n\\nReview\\nback\\nnext\\n
\\n
\\n\\n\\n
\\n
\\n
Parking Media
\\n
\\n\\n\\n
\\n\\nCancel\\n\\nReview\\nback\\nnext\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
Payment Information
\\n
\\n
\\n
\\n\\n
\\n
\\nback \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n
\\n
Review & Submit
\\n
\\nback\\nFinish\\n
\\n
\\n
\\n\\n
\\n\\n
{{account.request.name}}
\\n
{{account.request.address1}}
\\n
{{account.request.address2}}
\\n
{{account.request.city}}, {{account.request.subdivision}} {{account.request.postalCode}}
\\n
{{account.request.country}}
\\n
\\n
\\n
\\n\\n
\\n\\n
{{account.request.firstName}} {{account.request.lastName}}
\\n
{{account.request.email}}
\\n
{{account.request.homePhone}} (Home)
\\n
{{account.request.workPhone}} (Work)
\\n
{{account.request.mobilePhone}} (Mobile)
\\n
{{account.request.fax}} (Fax)
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
\\n{{account.preferredParkingArea.name}}\\n - Waiting List\\n
\\n
\\n
\\nMembership:\\n
\\n
\\n{{account.preferredParkingArea.membershipCost | currency}}\\n
\\n
\\n
\\n
\\n{{account.alternateParkingArea.name}}\\n - Waiting List\\n
\\n
\\n
\\nMembership:\\n
\\n
\\n{{account.alternateParkingArea.membershipCost | currency}}\\n
\\n
\\n
\\n
\\n
\\n
{{item.type.description}}
\\n
\\n
\\nQty {{item.quantity}} @ {{item.type.price | currency}}:\\n
\\n
\\n{{(item.quantity * item.type.price) | currency}}\\n
\\n
\\n
\\n
\\nUser entered identifiers:\\n
\\n
\\n
\\n{{identifier}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
Total:
\\n
{{account.totalCost | currency}}
\\n
\\n
\\n
\\n
\\n\\n
\\n\\n
{{account.request.creditCardType}}
\\n
{{account.request.maskedCreditCard}}
\\n
Exp: {{account.request.expirationMonth}}/{{account.request.expirationYear}}
\\n
\\n
\\n
\\n
\\n
\\n
\\n
Terms of Use
\\n
\\n
\\n
\\n\\n
I have reviewed and agree with the membership Terms of Use*
\\n
\\nView Terms of Use\\n
\\n
\\n
\\n
\\n
\\n back\\n Finish\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/public/account-request.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/account-request.html\n// module id = 676\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n\\n\\n
\\n\\n{{context.stepIcons[step.title]}}\\n{{step.title|translate}}\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"public/user-controls/wizard-template.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/user-controls/wizard-template.html\n// module id = 677\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\";\nvar id1=\"public/user-controls/wizard-step-template.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/user-controls/wizard-step-template.html\n// module id = 678\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n

Terms & Conditions

\\n
\\n\\nclose\\n\\n
\\n
\\n\\n
\\n
\\n\\n
\\n\\nReturn\\n\\n
\\n
\\n
\";\nvar id1=\"components/public/account-request-terms.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/account-request-terms.html\n// module id = 679\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nlet template = require('./account-request-completed.html');\r\n\r\nclass accountRequestCompletedComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('accountRequestCompleted', {\r\n controller: accountRequestCompletedController,\r\n templateUrl: template,\r\n controllerAs: 'accountRequestCompleted',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IaccountRequestCompletedController {\r\n \r\n}\r\n\r\nclass accountRequestCompletedController implements IaccountRequestCompletedController {\r\n private static $inject: Array = [];\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n\r\nlet acctreqcmptComponent = new accountRequestCompletedComponent();\r\nexport default acctreqcmptComponent;\r\nexport { acctreqcmptComponent as accountRequestCompletedComponent, IaccountRequestCompletedController, accountRequestCompletedController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/account-request-complete.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n\\n
\\n

\\nYour account has been created successfully.\\n

\\n
\\nClick here to login.\\n
\\n
\\n
\\n
\";\nvar id1=\"components/public/account-request-completed.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/account-request-completed.html\n// module id = 681\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\n\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ContentTypeSettingKeys } from '../../data/interfaces';\r\nimport { IContentTemplateResource } from '../../data/content-template'\r\n\r\nlet template = require('./faq.html');\r\n\r\n\r\nclass FaqComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('faq', {\r\n controller: FaqController,\r\n templateUrl: template,\r\n controllerAs: 'faq',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IFaqController {\r\n activate(): void;\r\n}\r\n\r\nclass FaqController implements IFaqController {\r\n private static $inject: Array = ['ContentTemplate'];\r\n\r\n public content: string;\r\n\r\n private key: string = ContentTypeSettingKeys[ContentTypeSettingKeys.FAQ];\r\n private language: string = 'en';\r\n\r\n constructor(private ContentTemplate: IContentTemplateResource) {\r\n console.log('FaqController loading');\r\n\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('FaqController loaded');\r\n\r\n this.ContentTemplate.query({ key: this.key, languageCode: this.language }).$promise\r\n .then((response) => {\r\n let template = Linq.From(response).FirstOrDefault();\r\n this.content = template.content;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n }); \r\n }\r\n}\r\n\r\nlet fqComponent = new FaqComponent();\r\nexport default fqComponent;\r\nexport { fqComponent as FaqComponent, IFaqController, FaqController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/faq.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
\\n
\\n
Frequently Asked Questions
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/public/faq.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/faq.html\n// module id = 683\n// module chunks = 0","import * as ng from 'angular';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ISessionService } from '../../services';\r\nlet template = require('./home.html');\r\n\r\nclass HomeComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('home', {\r\n controller: HomeController,\r\n templateUrl: template,\r\n controllerAs: 'home',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface IHomeController {\r\n activate(): void;\r\n}\r\n\r\nclass HomeController implements IHomeController {\r\n private static $inject: Array = ['Session'];\r\n\r\n private session = {};\r\n\r\n constructor(private Session: ISessionService) {\r\n console.log('HomeController loading');\r\n\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n this.Session.getSessionAsync().then((current) => {\r\n this.session = current;\r\n });\r\n console.log('HomeController loaded');\r\n }\r\n}\r\n\r\nlet hmComponent = new HomeComponent();\r\nexport default hmComponent;\r\nexport { hmComponent as HomeComponent, IHomeController, HomeController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/home.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n
\\n

A New Approach to Parking

\\n
\\n
\\n
\\n\\n

Guaranteed on airport parking, every time

\\n
Make your life easier, make \\\"Lot Full\\\" a thing of the past.
\\n
\\n
\\n\\n

Easily track your activity

\\n
All of your transactions are posted within 24 hours.
\\n
\\n
\\n\\n

Receive important notifications

\\n
Get parking updates and alerts when you need them.
\\n
\\n
\\n
\\n
\\nBECOME A MEMBER\\nApply Now\\n
\\n
\\nTo become a member, simply complete an online application. Once a parking space is assigned to you, you will receive a Welcome Packet in the mail containing a transponder for 24-hour fast access for the entrance and exit gates. If a space is available, you’ll receive your Welcome Packet in about 2 weeks from the time we receive your application.\\n
\\n
\\n» Frequently Asked Questions\\n
\\n
\\n
\\n
\\n\\n
\\n
\\n\";\nvar id1=\"components/public/home.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/home.html\n// module id = 685\n// module chunks = 0","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { ComponentRegistration } from '../../core';\r\nimport { ContentTypeSettingKeys } from '../../data/interfaces';\r\nimport { IContentTemplateResource } from '../../data/content-template'\r\n\r\nlet template = require('./terms.html');\r\nimport { Templates } from \"../../assets\";\r\n\r\nclass TermsComponent extends ComponentRegistration {\r\n\r\n constructor() {\r\n super('terms', {\r\n controller: TermsController,\r\n templateUrl: template,\r\n controllerAs: 'terms',\r\n bindings: {\r\n }\r\n });\r\n }\r\n}\r\n\r\ninterface ITermsController {\r\n activate(): void;\r\n}\r\n\r\nclass TermsController implements ITermsController {\r\n private static $inject: Array = ['ContentTemplate'];\r\n \r\n public content: string;\r\n private key: string = ContentTypeSettingKeys[ContentTypeSettingKeys.Terms];\r\n private language: string = 'en';\r\n\r\n constructor(private ContentTemplate: IContentTemplateResource) {\r\n console.log('TermsController loading');\r\n\r\n this.activate();\r\n }\r\n\r\n public activate(): void {\r\n console.log('TermsController loaded');\r\n\r\n this.ContentTemplate.query({ key: this.key, languageCode: this.language }).$promise\r\n .then((response) => {\r\n let template = Linq.From(response).FirstOrDefault();\r\n this.content = template.content;\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n }); \r\n }\r\n}\r\n\r\nlet trmsComponent = new TermsComponent();\r\nexport default trmsComponent;\r\nexport { trmsComponent as TermsComponent, ITermsController, TermsController }\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/components/public/terms.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"
\\n
\\n\\n
\\n
\\n
\\n
Terms and Conditions
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\";\nvar id1=\"components/public/terms.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/components/public/terms.html\n// module id = 687\n// module chunks = 0","import * as ng from 'angular';\r\nimport SecurityModule from '../components/security';\r\nimport DataModule from '../data';\r\nimport refs from \"../../vendor-modules\";\r\nimport { CustomerSettings, ICustomerSettingsService } from './customer-settings-service';\r\nimport { Session, ISessionService, ISessionState } from './session';\r\nimport { Themes, IThemesService } from './themes-service';\r\nimport { ToastMessage, IToastMessageService } from './toast-message-factory';\r\n\r\nlet servicesModule = ng.module(\"app.services\", [\r\n refs.ngRouter,\r\n refs.ngMaterial,\r\n refs.ngGetText,\r\n DataModule.name,\r\n SecurityModule.name\r\n]).service(CustomerSettings.name, CustomerSettings.factory)\r\n .service(Session.name, Session.factory)\r\n .service(Themes.name, Themes.factory)\r\n .service(ToastMessage.name, ToastMessage.factory);\r\n\r\nexport {\r\n servicesModule as ServicesModule, servicesModule,\r\n ICustomerSettingsService, ISessionService, IThemesService, IToastMessageService,\r\n ISessionState\r\n};\r\nexport default servicesModule\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/services/index.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport * as ASM from '../data/interfaces';\r\nimport { IToastMessageService } from '../services';\r\nimport { ISettingsResource } from '../data';\r\nimport {IReCaptchaSettings} from \"../data/interfaces\";\r\n\r\nlet CustomerSettingsServiceFactory: Function = function ($q: ng.IQService,\r\n $log: ng.ILogService,\r\n Settings: ISettingsResource,\r\n toastMessageFactory: IToastMessageService): ICustomerSettingsService {\r\n return new CustomerSettingsService($q, $log, Settings, toastMessageFactory);\r\n}\r\n\r\nCustomerSettingsServiceFactory.$inject = ['$q', '$log', 'Settings', 'toastMessageFactory'];\r\n\r\nlet CustomerSettings = {\r\n name: \"CustomerSettings\",\r\n factory: CustomerSettingsServiceFactory\r\n};\r\n\r\ninterface ICustomerSettingsService {\r\n getFrequentParkerSettings(clearCache?: boolean): ng.IPromise>;\r\n saveFrequentParkerSettings(fppSettings: ASM.ISettings, message:string): ng.IPromise>;\r\n getReservedParkingSettings(): ng.IPromise;\r\n getContentSettings(): ng.IPromise;\r\n getCreditCardSettings(): ng.IPromise;\r\n getReCaptchaSettings(): ng.IPromise;\r\n getLanguageSettings(): ng.IPromise;\r\n getGeneralSettings(clearCache?: boolean): ng.IPromise>;\r\n}\r\n\r\nexport class CustomerSettingsService implements ICustomerSettingsService {\r\n private FrequentParkerSettings: ASM.ISettings = null;\r\n private ReservedParkingSettings: ASM.IReservedParkingSettings = null;\r\n private ContentSettings: ASM.IContentSettings = null;\r\n private CreditCardSettings: ASM.ICreditCardSettings = null;\r\n private LanguageSettings: ASM.ILanguageSettings = null;\r\n private GeneralSettings: ASM.ISettings = null;\r\n private ReCaptchaSettings: IReCaptchaSettings = null;\r\n\r\n constructor(private $q: ng.IQService,\r\n private $log: ng.ILogService,\r\n private Settings: ISettingsResource,\r\n private toastMessageFactory: IToastMessageService ) {\r\n }\r\n\r\n public getFrequentParkerSettings(clearCache?:boolean): ng.IPromise> {\r\n \r\n if (this.FrequentParkerSettings !== null && clearCache !== true) {\r\n return this.$q.resolve(this.FrequentParkerSettings);\r\n }\r\n else {\r\n return this.Settings.get({ key: 'FrequentParker' }).$promise\r\n .then((response) => {\r\n this.FrequentParkerSettings = response as ASM.ISettings;\r\n this.synchronizeFPPSettingsPointers(this.FrequentParkerSettings.settings);\r\n\r\n return this.$q.resolve(this.FrequentParkerSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'FrequentParkerSettingsService: Failed load of FrequentParkerSettings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n }\r\n\r\n private synchronizeFPPSettingsPointers(fppSettings: ASM.IFrequentParkerSettings) {\r\n\r\n let groupQuery = Linq.From(fppSettings.groups)\r\n .Where(x => x.enabled);\r\n\r\n //syncronize the pointers\r\n fppSettings.promotionSettings.forEach(x => {\r\n var matches = [];\r\n if (x.groups) {\r\n x.groups.forEach(y => {\r\n var match = groupQuery.FirstOrDefault(z => y.id == z.id);\r\n if (match) {\r\n matches.push(match);\r\n }\r\n });\r\n }\r\n\r\n x.groups = [];\r\n x.groups = matches;\r\n });\r\n }\r\n\r\n public saveFrequentParkerSettings(fppSettings: ASM.ISettings, message:string): ng.IPromise> {\r\n return this.Settings.update(fppSettings).$promise\r\n .then((response) => {\r\n this.toastMessageFactory.showSuccessMessage(message);\r\n this.FrequentParkerSettings = response as ASM.ISettings;\r\n this.synchronizeFPPSettingsPointers(this.FrequentParkerSettings.settings);\r\n return this.$q.resolve(this.FrequentParkerSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'FrequentParkerSettingsService: Failed save of FrequentParkerSettings for current user'); \r\n return this.$q.reject(e);\r\n });\r\n }\r\n\r\n public getReservedParkingSettings(): ng.IPromise {\r\n\r\n if (this.ReservedParkingSettings !== null) {\r\n return this.$q.resolve(this.ReservedParkingSettings);\r\n\r\n }\r\n else {\r\n return this.Settings.get({ key: 'ReservedParking' }).$promise\r\n .then((response) => {\r\n this.ReservedParkingSettings = (response as ASM.ISettings)\r\n .settings as ASM.IReservedParkingSettings;\r\n console.log('Reserved Parking Settings', this.ReservedParkingSettings);\r\n return this.$q.resolve(this.ReservedParkingSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'ReservedParkingSettingsService: Failed load of ReservedParkingSettings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n }\r\n\r\n private contentSettingsPromise: ng.IPromise = null;\r\n private getContents(): ng.IPromise {\r\n\r\n if (this.contentSettingsPromise)\r\n return this.contentSettingsPromise;\r\n\r\n this.contentSettingsPromise = this.Settings.get({ key: 'ContentSettings' }).$promise\r\n .then((response) => {\r\n this.ContentSettings = (response as ASM.ISettings)\r\n .settings as ASM.IContentSettings;\r\n console.log('Content Settings', this.ContentSettings);\r\n return this.$q.resolve(this.ContentSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'ContentSettingsService: Failed load of ContentSettings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n\r\n return this.contentSettingsPromise;\r\n };\r\n\r\n public getContentSettings(): ng.IPromise {\r\n\r\n if (this.ContentSettings !== null) {\r\n return this.$q.resolve(this.ContentSettings);\r\n\r\n }\r\n else {\r\n return this.getContents();\r\n }\r\n }\r\n\r\n public getCreditCardSettings(): ng.IPromise {\r\n\r\n return this.getSettings('CreditCard', () => {\r\n return this.CreditCardSettings\r\n },\r\n (creditCardSettings) => {\r\n this.CreditCardSettings = creditCardSettings;\r\n });\r\n }\r\n\r\n public getReCaptchaSettings(): ng.IPromise {\r\n\r\n return this.getSettings('ReCaptcha', () => {\r\n return this.ReCaptchaSettings;\r\n },\r\n (reCaptchaSettings) => {\r\n this.ReCaptchaSettings = reCaptchaSettings;\r\n });\r\n }\r\n\r\n private getSettings(settingsKey: string, getCurrentSettings: () => TSettings, setCurrentSettings: (settings: TSettings) => void): ng.IPromise {\r\n var currentSettings: TSettings = getCurrentSettings();\r\n\r\n if (currentSettings !== null) {\r\n return this.$q.resolve(currentSettings);\r\n }\r\n else {\r\n return this.Settings.get({key: settingsKey}).$promise\r\n .then((response) => {\r\n var responseSettings = (response as ASM.ISettings).settings as TSettings\r\n setCurrentSettings(responseSettings);\r\n\r\n return this.$q.resolve(responseSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'CustomerSettingsService: Failed load of ' + settingsKey + ' for current user');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n }\r\n \r\n private languageSettingsPromise: ng.IPromise = null;\r\n private getLanguages(): ng.IPromise {\r\n\r\n if (this.languageSettingsPromise)\r\n return this.languageSettingsPromise;\r\n\r\n this.languageSettingsPromise = this.Settings.get({ key: 'Languages' }).$promise\r\n .then((response) => {\r\n this.LanguageSettings = (response as ASM.ISettings)\r\n .settings as ASM.ILanguageSettings;\r\n console.log('Language Settings', this.LanguageSettings);\r\n return this.$q.resolve(this.LanguageSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'LanguageSettingsService: Failed load of LanguageSettings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n\r\n return this.languageSettingsPromise;\r\n };\r\n \r\n public getLanguageSettings(): ng.IPromise {\r\n\r\n if (this.LanguageSettings !== null) {\r\n return this.$q.resolve(this.LanguageSettings);\r\n }\r\n else {\r\n return this.getLanguages();\r\n }\r\n }\r\n\r\n public getGeneralSettings(clearCache?: boolean): ng.IPromise> {\r\n\r\n if (this.GeneralSettings !== null && clearCache !== true) {\r\n return this.$q.resolve(this.GeneralSettings);\r\n }\r\n else {\r\n return this.Settings.get({ key: 'GeneralSettings' }).$promise\r\n .then((response) => {\r\n this.GeneralSettings = response as ASM.ISettings;\r\n\r\n return this.$q.resolve(this.GeneralSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'GeneralSettingsService: Failed load of GeneralSettings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\nexport { CustomerSettings, ICustomerSettingsService };\r\nexport default CustomerSettings;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/services/customer-settings-service.ts","import * as ng from 'angular';\r\nimport 'angular-gettext';\r\nimport * as Linq from 'linq-es5';\r\nimport { ICustomerSettingsService } from './';\r\nimport { Enumerable, IEnumerable } from \"../../node_modules/linq-es5/lib/enumerable\";\r\nimport { IAccountResource, IProfileResource, IFrequentParkerAccountResource, Dto } from '../data';\r\nimport { ISiteConfigService } from '../core';\r\nimport * as Core from '../core';\r\nimport { IAuthService, ICredentials, IToken } from '../components/security';\r\n\r\nlet SessionServiceFactory: Function = function ($window: ng.IWindowService,\r\n $q: ng.IQService,\r\n $router: ng.Router,\r\n $timeout: ng.ITimeoutService,\r\n gettextCatalog: ng.gettext.gettextCatalog,\r\n SiteConfig: ISiteConfigService,\r\n Account: IAccountResource,\r\n Profile: IProfileResource,\r\n FrequentParkerAccount: IFrequentParkerAccountResource,\r\n Auth: IAuthService,\r\n CustomerSettings: ICustomerSettingsService): ISessionService {\r\n return new SessionService($window, $q, $router, $timeout, gettextCatalog, SiteConfig,\r\n Account, Profile, FrequentParkerAccount, Auth, CustomerSettings);\r\n}\r\n\r\nSessionServiceFactory.$inject = ['$window', '$q', '$rootRouter', '$timeout', 'gettextCatalog', 'SiteConfig',\r\n 'Account', 'Profile', 'FrequentParkerAccount', 'Auth', 'CustomerSettings'];\r\n\r\n\r\nlet Session = {\r\n name: \"Session\",\r\n factory: SessionServiceFactory\r\n};\r\n\r\ninterface ISessionService {\r\n\r\n createSession(credentials: ICredentials): ng.IPromise;\r\n getSessionAsync(): ng.IPromise;\r\n getLanguage(): ng.IPromise;\r\n isUserInRole(role): Boolean;\r\n isAccountHolder(): Boolean;\r\n isAdmin(): Boolean;\r\n setLanguage(language): void;\r\n clearLanguage(): void;\r\n reload(): ng.IPromise;\r\n reset(): ISessionState;\r\n registerRefreshHandler(handler): void;\r\n notifyListeners(current): void;\r\n assureActiveUserSession(): void;\r\n}\r\n\r\nexport interface ISessionState {\r\n account: Dto.IAccount;\r\n profile: Dto.IProfile;\r\n frequentParkerAccount: Dto.IFrequentParkerAccount;\r\n language: Core.ILanguage;\r\n userClaims: Map;\r\n tokens: Array;\r\n}\r\nexport class SessionService implements ISessionService {\r\n private storageKey: string = \"sessionKeys\";\r\n private languageStorageKey: string = \"lang\";\r\n private current: ISessionState = {\r\n account: null,\r\n profile: null,\r\n frequentParkerAccount: null,\r\n language: null,\r\n userClaims: null,\r\n tokens: null\r\n };\r\n\r\n private languages: Enumerable;\r\n private notifySessionRefreshHandlers: Array = [];\r\n\r\n constructor(private $window: ng.IWindowService,\r\n private $q: ng.IQService,\r\n private $router: ng.Router,\r\n private $timeout: ng.ITimeoutService,\r\n private gettextCatalog: ng.gettext.gettextCatalog,\r\n private SiteConfig: ISiteConfigService,\r\n private Account: IAccountResource,\r\n private Profile: IProfileResource,\r\n private FrequentParkerAccount: IFrequentParkerAccountResource,\r\n private Auth: IAuthService,\r\n private CustomerSettings: ICustomerSettingsService) {\r\n\r\n console.log('SessionService loading');\r\n\r\n //activate service\r\n this.activate();\r\n }\r\n\r\n //functions\r\n activate(): void {\r\n console.log('SessionService loaded');\r\n }\r\n\r\n registerRefreshHandler(handler): void {\r\n if (typeof handler === 'function')\r\n this.notifySessionRefreshHandlers.push(handler);\r\n }\r\n\r\n notifyListeners(current): void {\r\n Linq.From(this.notifySessionRefreshHandlers).ToArray()\r\n .forEach((x) => {\r\n try {\r\n x(current);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n });\r\n }\r\n\r\n public reload(): ng.IPromise {\r\n return this.getAccountHolderSessionAsync();\r\n //notifyListeners(session.current);\r\n }\r\n\r\n public reset(): ISessionState {\r\n var language = this.current.language;\r\n this.current = {} as ISessionState;\r\n this.current.language = language;\r\n this.clearSessionTokenKeys();\r\n this.Auth.clearTokens();\r\n return this.current;\r\n }\r\n\r\n private clearSessionTokenKeys() {\r\n this.$window.sessionStorage.removeItem(this.storageKey);\r\n }\r\n\r\n public createSession(credentials: ICredentials): ng.IPromise {\r\n let client = this.SiteConfig.getClientByType(\"user\");\r\n\r\n return this.Auth.getUserTokenAsync(client.id, credentials.scope, credentials.username, credentials.password)\r\n .then((token: IToken) => {\r\n let claims = token.claims;\r\n if (this.roleClaimExists(claims, \"AccountHolder\")) {\r\n return this.getAccountHolderSessionAsync().then((context) => {\r\n this.current.userClaims = claims;\r\n this.setTokenOnContext(this.current, token);\r\n this.accountHolderCheckCompleted = true;\r\n return this.$q.resolve(this.current);\r\n });\r\n } else {\r\n\r\n if (token && token.claims && token.claims[\"name\"]) {\r\n return this.Profile.getAdmin({ \r\n id: token.claims[\"sub\"]\r\n }).$promise.then((profileResponse) => {\r\n if (profileResponse)\r\n this.current.profile = profileResponse;\r\n\r\n var umCredentials = ng.copy(credentials);\r\n umCredentials.scope = \"HubUSA.Core.Identity\";\r\n return this.Auth.getUserTokenAsync(client.id, umCredentials.scope, umCredentials.username, umCredentials.password)\r\n .then((umToken: IToken) => {\r\n\r\n this.current = this.current || {} as ISessionState;\r\n this.current.userClaims = claims;\r\n this.setTokenOnContext(this.current, umToken);\r\n this.setTokenOnContext(this.current, token);\r\n this.accountHolderCheckCompleted = true;\r\n return this.$q.resolve(this.current);\r\n });\r\n });\r\n } \r\n }\r\n });\r\n }\r\n\r\n public createSessionFromTokens(tokens: Array): ng.IPromise {\r\n this.current.tokens = this.getTokensFromStorage();\r\n if (this.current.tokens) {\r\n var userToken = Linq.From(this.current.tokens).FirstOrDefault(x => x.tokenType == \"User\");\r\n let afterLoad = () => {\r\n this.current = this.current || {} as ISessionState;\r\n this.current.userClaims = userToken.claims;\r\n\r\n if (!this.current.language) {\r\n return this.getLanguage().then(() => {\r\n return this.$q.resolve(this.current);\r\n });\r\n }\r\n else return this.$q.resolve(this.current);\r\n };\r\n\r\n if (userToken) {\r\n if (this.roleClaimExists(userToken.claims, \"AccountHolder\")) {\r\n return this.getAccountHolderSessionAsync().then((context) => {\r\n return afterLoad();\r\n });\r\n } else {\r\n if (userToken.claims && userToken.claims[\"name\"]) {\r\n return this.Profile.search({\r\n isAdmin: true,\r\n userName: userToken.claims[\"name\"]\r\n } as Dto.IProfileCriteria).$promise.then((profileResponse) => {\r\n if (profileResponse && profileResponse.length > 0)\r\n this.current.profile = profileResponse[0];\r\n return afterLoad();\r\n });\r\n }\r\n }\r\n }\r\n \r\n }\r\n\r\n return this.getLanguage().then(() => {\r\n return this.$q.resolve(this.current);\r\n });\r\n }\r\n\r\n private setTokenOnContext(context: ISessionState, token: IToken) {\r\n\r\n context.tokens = context.tokens || [];\r\n context.tokens.push(token);\r\n\r\n let storedJson = this.$window.sessionStorage.getItem(this.storageKey);\r\n let storedKeys = typeof storedJson === 'string'\r\n ? JSON.parse(storedJson)\r\n : { tokenKeys: [] };\r\n\r\n if (Linq.from(storedKeys.tokenKeys).Contains(token.key)) return;\r\n\r\n storedKeys.tokenKeys.push(token.key);\r\n this.$window.sessionStorage.setItem(this.storageKey, JSON.stringify(storedKeys));\r\n }\r\n\r\n private getTokensFromStorage(): Array {\r\n let storedJson = this.$window.sessionStorage.getItem(this.storageKey);\r\n try {\r\n let storedKeys = JSON.parse(storedJson);\r\n var tokenKeys = storedKeys.tokenKeys || [];\r\n return Linq.From(tokenKeys)\r\n .Select(x => this.Auth.getToken(x))\r\n .Where(x => x !== null)\r\n .ToArray();\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n private claimExists(claims: Map, claimType: string, claim: string): Boolean {\r\n var existingClaim = claims[claimType];\r\n if (typeof existingClaim === \"string\")\r\n return claim === existingClaim;\r\n else if (Array.isArray(existingClaim)) {\r\n return Linq.from(existingClaim).Contains(claim);\r\n }\r\n }\r\n\r\n private roleClaimExists(claims: Map, role: string): Boolean {\r\n return this.claimExists(claims, \"role\", role);\r\n }\r\n\r\n public isUserInRole(role: string): Boolean {\r\n\r\n return this.current\r\n && this.current.userClaims\r\n && this.roleClaimExists(this.current.userClaims, role);\r\n }\r\n\r\n public isAccountHolder(): Boolean {\r\n return this.isUserInRole(\"AccountHolder\");\r\n }\r\n\r\n public isAdmin(): Boolean {\r\n return this.isUserInRole(\"Admin\");\r\n }\r\n\r\n private sessionPromise: ng.IPromise = null;\r\n private accountHolderCheckCompleted: boolean = false;\r\n public getSessionAsync(): ng.IPromise {\r\n if (this.accountHolderCheckCompleted\r\n && this.current && this.current.tokens\r\n && this.current.tokens.length > 0) {\r\n this.sessionPromise = null;\r\n return this.$q.resolve(this.current);\r\n }\r\n else {\r\n\r\n if (this.sessionPromise)\r\n return this.sessionPromise;\r\n\r\n this.sessionPromise = this.createSessionFromTokens(this.getTokensFromStorage());\r\n\r\n return this.sessionPromise;\r\n }\r\n }\r\n\r\n //rename to getCustomerSession\r\n private getAccountHolderSessionAsync(): ng.IPromise {\r\n\r\n // http://stackoverflow.com/questions/23145688/ie10-11-ajax-xhr-error-script7002-xmlhttprequest-network-error-0x2ef3/32106649#32106649\r\n // For me the issue seemed to be occurring only in IE11 over a Post call, I have been using \r\n // AngularJS provider $http to make the call. It seems that this is a bug in IE, and it is a \r\n // certificate issue. The security certificate information is not loaded properly when the POST \r\n // call is made. As a workaround, before making the POST call, make a GET call to load the \r\n // certificate properly.\r\n return this.Account.get({}).$promise.then(() => {\r\n return this.Account.query({})\r\n .$promise\r\n .then((response) => {\r\n var lookups = response || [];\r\n var firstLookup = Linq.From(lookups).First() as any;\r\n return this.loadAccount(firstLookup.id).then((account) => {\r\n this.current.account = account || null;\r\n console.log('Successful Account load from API, Name is: ' + account.name);\r\n\r\n return this.loadProfile(account.id).then((profile: Dto.IProfile) => {\r\n this.current.profile = profile;\r\n let langCode = profile.language || this.current.language.code;\r\n this.gettextCatalog.setCurrentLanguage(langCode);\r\n\r\n return this.loadFrequentParkerAccount(account.id, profile.id).then((frequentParkerAccount) => {\r\n this.current.frequentParkerAccount = frequentParkerAccount;\r\n return this.$q.resolve(this.current);\r\n });\r\n });\r\n });\r\n })\r\n .catch((e) => {\r\n this.logException(e, 'SessionService: Failed load of Account list for current user');\r\n return this.getLanguage().then((language) => {\r\n this.current.language = language\r\n return this.$q.resolve(this.current);\r\n });\r\n\r\n })\r\n .finally(() => {\r\n this.notifyListeners(this.current);\r\n });\r\n\r\n }).catch((e) => {\r\n this.logException(e, 'SessionService: Failed load of Account');\r\n return this.getLanguage().then((language) => {\r\n this.current.language = language\r\n || this.current.language\r\n || (this.languages)\r\n ? this.languages.FirstOrDefault(y => y.isDefault)\r\n : null;\r\n return this.$q.resolve(this.current);\r\n });\r\n });\r\n }\r\n\r\n private loadAccount(accountId: string): ng.IPromise {\r\n return this.Account.get({ id: accountId, eagerLoad: true }).$promise\r\n .then((response) => {\r\n return this.$q.resolve(response || null);\r\n })\r\n .catch((e) => {\r\n this.logException(e, 'Failed load of Account for: ' + accountId);\r\n return this.$q.reject(null);\r\n });\r\n }\r\n\r\n private loadProfile(accountId): ng.IPromise {\r\n return this.Profile.get({ accountId: accountId }).$promise\r\n .then((profile) => {\r\n console.log('Profile.firstName: ' + profile.firstName);\r\n return this.$q.resolve(profile || null);\r\n })\r\n .catch((e) => {\r\n this.logException(e, 'Failed load of Profile for currently logged on user');\r\n return this.$q.reject(null);\r\n })\r\n .finally(() => {\r\n return this.notifyListeners(this.current);\r\n });\r\n }\r\n\r\n private loadFrequentParkerAccount(accountId, userProfileId): ng.IPromise {\r\n\r\n var criteria = {\r\n accountId: accountId,\r\n userProfileId: userProfileId\r\n };\r\n\r\n return this.FrequentParkerAccount.query({ accountId: accountId }, criteria).$promise\r\n .then((frequentParkerAccounts) => {\r\n var frequentParkerAccount = Linq.From(frequentParkerAccounts).FirstOrDefault();\r\n return this.$q.resolve(frequentParkerAccount || null);\r\n })\r\n .catch((e) => {\r\n this.logException(e, 'Failed load of FrequentParkerAccount for currently logged on user');\r\n return this.$q.reject(null);\r\n });\r\n }\r\n\r\n public getLanguage(): ng.IPromise {\r\n return this.CustomerSettings.getLanguageSettings()\r\n .then((languageSettings) => {\r\n this.languages = this.languages || Linq.From(languageSettings.languages);\r\n\r\n if (!this.current.language) {\r\n //get language from profile if its there.\r\n if (this.current.profile && this.current.profile.language) {\r\n this.current.language = this.languages\r\n .FirstOrDefault((x: any) => x.code === this.current.profile.language);\r\n this.setLanguage(this.current.language);\r\n }\r\n else {\r\n //check local storage\r\n var lang = this.$window.localStorage.getItem(this.languageStorageKey);\r\n if (lang) {\r\n lang = JSON.parse(lang);\r\n let langObj = this.getValidLanguageSelection(lang)\r\n if (langObj) {\r\n this.setLanguage(langObj);\r\n return this.current.language;\r\n }\r\n }\r\n\r\n //detect language\r\n var detectedLangCode = (window.navigator as any).userLanguage || window.navigator.language;\r\n detectedLangCode = detectedLangCode.split(\"-\")[0];\r\n var detectedLanguage = this.languages\r\n .FirstOrDefault((x: any) => x.code === detectedLangCode);\r\n this.setLanguage(detectedLanguage);\r\n }\r\n }\r\n\r\n return this.$q.resolve(this.current.language);\r\n });\r\n }\r\n\r\n public setLanguage(language): void {\r\n\r\n this.CustomerSettings.getLanguageSettings()\r\n .then((languageSettings) => {\r\n this.languages = this.languages || Linq.From(languageSettings.languages);\r\n var langObj = this.getValidLanguageSelection(language)\r\n if (langObj) {\r\n this.$window.localStorage.setItem(this.languageStorageKey, JSON.stringify(langObj));\r\n this.current.language = langObj;\r\n this.gettextCatalog.setCurrentLanguage(this.current.language.code);//this.$timeout(() => {}, 2);\r\n\r\n if (this.current.profile && this.current.profile.language !== langObj.code) {\r\n this.current.profile.language = langObj.code;\r\n this.Profile.update({\r\n accountId: this.current.account.id,\r\n id: this.current.profile.id\r\n }, this.current.profile);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getValidLanguageSelection(language: Core.ILanguage | string): Core.ILanguage {\r\n var langCode = (typeof language === 'string')\r\n ? language\r\n : (language) ? language.code : 'en';\r\n\r\n return this.languages.FirstOrDefault((x: Core.ILanguage) => langCode === x.code);\r\n }\r\n\r\n private logException(e, customMessage): void {\r\n customMessage = customMessage || '';\r\n console.log(customMessage);\r\n console.log(e);\r\n }\r\n\r\n public clearLanguage(): void {\r\n this.$window.localStorage.removeItem(this.languageStorageKey);\r\n }\r\n\r\n public assureActiveUserSession(): boolean {\r\n if (!this.current.tokens) {\r\n this.$router.navigate(['SignIn']);\r\n return false;\r\n } \r\n return true;\r\n }\r\n}\r\n\r\nexport { Session, ISessionService };\r\nexport default Session;\r\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/services/session.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport * as ASM from '../data/interfaces';\r\nimport { ISettingsResource } from '../data';\r\n\r\nlet ThemesServiceFactory: Function = function ($q: ng.IQService,\r\n $window: ng.IWindowService,\r\n $mdTheming:any,\r\n $log: ng.ILogService,\r\n themeProvider: ng.material.IThemingProvider,\r\n Settings: ISettingsResource): IThemesService {\r\n return new ThemesService($q, $window, $mdTheming, $log, themeProvider, Settings);\r\n}\r\n\r\nThemesServiceFactory.$inject = ['$q', '$window', '$mdTheming', '$log', 'themeProvider', 'Settings'];\r\n\r\nlet Themes = {\r\n name: \"Themes\",\r\n factory: ThemesServiceFactory\r\n};\r\n\r\ninterface IThemesService {\r\n loadThemes(): ng.IPromise;\r\n}\r\n\r\nexport class ThemesService implements IThemesService {\r\n constructor(private $q: ng.IQService,\r\n private $window:ng.IWindowService,\r\n private $mdTheming:any,\r\n private $log: ng.ILogService,\r\n private themeProvider: ng.material.IThemingProvider,\r\n private Settings: ISettingsResource) {\r\n }\r\n\r\n public loadThemes(): ng.IPromise {\r\n\r\n return this.getThemeSettings()\r\n .then((themeSettings) => {\r\n\r\n let useBackupTheme = true;\r\n try {\r\n if (!themeSettings) {\r\n this.$log.log('Unable to load theme from server');\r\n }\r\n else {\r\n if (themeSettings.customPalettes) {\r\n themeSettings.customPalettes.forEach((x: any) => {\r\n this.themeProvider.definePalette(x.name, x.settings);\r\n this.sanitizePalette(x.settings, x.name);\r\n });\r\n }\r\n \r\n if (themeSettings.themes) {\r\n themeSettings.themes.forEach((x) => {\r\n if (x.name && x.primaryPalette && x.primaryPalette.paletteName) {\r\n let theme = this.themeProvider.theme(x.name)\r\n .primaryPalette(x.primaryPalette.paletteName, x.primaryPalette.overrideMap);\r\n if (x.accentPalette && x.accentPalette.paletteName) {\r\n theme.accentPalette(x.accentPalette.paletteName, x.accentPalette.overrideMap);\r\n }\r\n this.$mdTheming.generateTheme(x.name);\r\n }\r\n });\r\n\r\n if (Linq.From(themeSettings.themes).Any(x => x.name == themeSettings.defaultThemeName)) {\r\n this.themeProvider.setDefaultTheme(themeSettings.defaultThemeName);\r\n useBackupTheme = false;\r\n return this.$q.resolve(true);\r\n }\r\n else {\r\n this.$log.error(`Default theme of name '${themeSettings.defaultThemeName}' does not exist in themes collection.`)\r\n };\r\n }\r\n }\r\n }\r\n catch (e) {\r\n this.$log.error(e); \r\n }\r\n finally {\r\n if (useBackupTheme) {\r\n //if the backup theam is being used then the client auth \r\n //token failed to be renewed, just reload the app and it will reset.\r\n this.$window.location.reload();\r\n this.$log.log('No themes loaded.');\r\n //this.$log.log('No themes supplied. Using a temporary theme.'); \r\n //this.themeProvider.theme('temporary')\r\n // .primaryPalette('orange')\r\n // .accentPalette('green');\r\n //this.$mdTheming.generateTheme('temporary');\r\n //this.themeProvider.setDefaultTheme('temporary');\r\n return this.$q.resolve(false);\r\n }\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n private sanitizePalette(palette, name) {\r\n var DARK_CONTRAST_COLOR = this.colorToRgbaArray('rgba(0,0,0,0.87)');\r\n var LIGHT_CONTRAST_COLOR = this.colorToRgbaArray('rgba(255,255,255,0.87)');\r\n var STRONG_LIGHT_CONTRAST_COLOR = this.colorToRgbaArray('rgb(255,255,255)');\r\n\r\n\r\n var defaultContrast = palette.contrastDefaultColor;\r\n var lightColors = palette.contrastLightColors || [];\r\n var strongLightColors = palette.contrastStrongLightColors || [];\r\n var darkColors = palette.contrastDarkColors || [];\r\n\r\n // These colors are provided as space-separated lists\r\n if (typeof lightColors === 'string') lightColors = lightColors.split(' ');\r\n if (typeof strongLightColors === 'string') strongLightColors = strongLightColors.split(' ');\r\n if (typeof darkColors === 'string') darkColors = darkColors.split(' ');\r\n\r\n // Cleanup after ourselves\r\n delete palette.contrastDefaultColor;\r\n delete palette.contrastLightColors;\r\n delete palette.contrastStrongLightColors;\r\n delete palette.contrastDarkColors;\r\n\r\n // Change { 'A100': '#fffeee' } to { 'A100': { value: '#fffeee', contrast:DARK_CONTRAST_COLOR }\r\n ng.forEach(palette, (hueValue, hueName) => {\r\n if (ng.isObject(hueValue)) return; // Already converted\r\n // Map everything to rgb colors\r\n var rgbValue = this.colorToRgbaArray(hueValue);\r\n if (!rgbValue) {\r\n throw new Error(\"Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.\"\r\n .replace('%1', hueValue)\r\n .replace('%2', palette.name)\r\n .replace('%3', hueName));\r\n }\r\n\r\n palette[hueName] = {\r\n hex: palette[hueName],\r\n value: rgbValue,\r\n contrast: getContrastColor()\r\n };\r\n function getContrastColor() {\r\n if (defaultContrast === 'light') {\r\n if (darkColors.indexOf(hueName) > -1) {\r\n return DARK_CONTRAST_COLOR;\r\n } else {\r\n return strongLightColors.indexOf(hueName) > -1 ? STRONG_LIGHT_CONTRAST_COLOR\r\n : LIGHT_CONTRAST_COLOR;\r\n }\r\n } else {\r\n if (lightColors.indexOf(hueName) > -1) {\r\n return strongLightColors.indexOf(hueName) > -1 ? STRONG_LIGHT_CONTRAST_COLOR\r\n : LIGHT_CONTRAST_COLOR;\r\n } else {\r\n return DARK_CONTRAST_COLOR;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private colorToRgbaArray(clr) {\r\n if (ng.isArray(clr) && clr.length == 3) return clr;\r\n if (/^rgb/.test(clr)) {\r\n return clr.replace(/(^\\s*rgba?\\(|\\)\\s*$)/g, '').split(',').map(function (value, i) {\r\n return i == 3 ? (Number as any).parseFloat(value, 10) : parseInt(value, 10);\r\n });\r\n }\r\n if (clr.charAt(0) == '#') clr = clr.substring(1);\r\n if (!/^([a-fA-F0-9]{3}){1,2}$/g.test(clr)) return;\r\n\r\n var dig = clr.length / 3;\r\n var red = clr.substr(0, dig);\r\n var grn = clr.substr(dig, dig);\r\n var blu = clr.substr(dig * 2);\r\n if (dig === 1) {\r\n red += red;\r\n grn += grn;\r\n blu += blu;\r\n }\r\n return [parseInt(red, 16), parseInt(grn, 16), parseInt(blu, 16)];\r\n }\r\n\r\n private getThemeSettings(): ng.IPromise {\r\n\r\n return this.Settings.get({ key: 'SiteTheme' }).$promise\r\n .then((response) => {\r\n let themeSettings = (response as ASM.ISettings)\r\n .settings as ASM.IThemeSettings;\r\n themeSettings.customPalettes.forEach(x => {\r\n let replaceFields = ['100', '200', '400', '700']\r\n replaceFields.forEach(y => {\r\n var temp = x.settings['a' + y];\r\n if (temp) {\r\n x.settings['A' + y] = temp;\r\n delete x.settings['a' + y];\r\n }\r\n }); \r\n });\r\n return this.$q.resolve(themeSettings);\r\n })\r\n .catch((e) => {\r\n this.$log.log(e, 'SettingsService: Failed load of Settings for current user');\r\n return this.$q.resolve(e);\r\n });\r\n }\r\n\r\n}\r\n\r\nexport { Themes, IThemesService };\r\nexport default Themes;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/services/themes-service.ts","import * as ng from 'angular';\r\nimport * as Linq from 'linq-es5';\r\nimport { IModelState, IKeyValuePair } from '../data/interfaces';\r\nimport * as blockUI from 'angular-block-ui';\r\nlet validationToast = require(\"../user-controls/validation-toast.html\");\r\nlet sucessToast = require(\"../user-controls/success-toast.html\");\r\nlet errorToast = require(\"../user-controls/error-toast.html\");\r\nlet warningToast = require(\"../user-controls/warning-toast.html\");\r\nlet confirmToast = require(\"../user-controls/confirm-toast.html\");\r\n\r\ninterface IToastMessageService {\r\n modelStateErrors(modelState: any): void;\r\n showSuccessMessage(message?: string): void;\r\n showServerError(message?: string): void;\r\n showWarningMessage(message: string): void;\r\n showComfirmMessage(message: string, callback: Function): void;\r\n}\r\n\r\nlet ToastMessageFactory: Function =\r\n function ($mdToast: ng.material.IToastService): IToastMessageService {\r\n return new ToastMessageService($mdToast);\r\n };\r\n\r\nToastMessageFactory.$inject = ['$mdToast'];\r\n\r\nclass ToastMessageService implements IToastMessageService {\r\n\r\n\r\n constructor(private $mdToast: ng.material.IToastService) { \r\n }\r\n\r\n public modelStateErrors(modelState: IModelState): void {\r\n let self = this;\r\n let errorMessages = Linq\r\n .From(Linq.From(Object.keys(modelState))\r\n .Where(x => x !== \"$type\")\r\n .ToArray())\r\n .SelectMany((key: any) => {\r\n return modelState[key];\r\n })\r\n .ToArray() as Array;\r\n\r\n let refObj = this.$mdToast.show({\r\n templateUrl: validationToast,\r\n controller: function () {\r\n this.content = \"Save failed.\";\r\n this.errors = errorMessages;\r\n this.hide = () => { self.$mdToast.hide(); };\r\n },\r\n hideDelay: 0,\r\n position: \"top right\",\r\n controllerAs: 'toast',\r\n autoWrap: false\r\n } as ng.material.IToastOptions);\r\n }\r\n\r\n public showSuccessMessage(message?: string): void {\r\n let self = this;\r\n let x: ng.material.IToastOptions;\r\n let refObj = this.$mdToast.show({\r\n templateUrl: sucessToast,\r\n controller: function () {\r\n this.content = message || \"Save Successful.\";\r\n this.hide = () => { self.$mdToast.hide(); };\r\n },\r\n hideDelay: 5000,\r\n position: \"top right\",\r\n controllerAs: 'toast',\r\n autoWrap: false,\r\n bindToController: true\r\n\r\n } as ng.material.IToastOptions);\r\n }\r\n\r\n public showServerError(message?: string): void {\r\n let self = this;\r\n let refObj = this.$mdToast.show({\r\n templateUrl: errorToast,\r\n controller: function () {\r\n this.content = message || \"An error occurred with the server and is unable to process request.\";\r\n this.hide = () => {\r\n self.$mdToast.hide();\r\n };\r\n },\r\n hideDelay: 5000,\r\n position: \"top right\",\r\n controllerAs: 'toast',\r\n autoWrap: false\r\n });\r\n }\r\n\r\n public showWarningMessage(message: string): void {\r\n let self = this;\r\n\r\n let refObj = this.$mdToast.show({\r\n templateUrl: warningToast,\r\n controller: function () {\r\n this.content = message;\r\n this.hide = () => {\r\n self.$mdToast.hide();\r\n };\r\n },\r\n hideDelay: 10000,\r\n position: \"top right\",\r\n controllerAs: 'toast',\r\n autoWrap: false\r\n });\r\n }\r\n\r\n public showComfirmMessage(message: string, callback: Function): void {\r\n let self = this;\r\n\r\n let refObj = this.$mdToast.show({\r\n templateUrl: confirmToast,\r\n controller: function () {\r\n this.content = message;\r\n\r\n this.yes = () => {\r\n callback(true);\r\n self.$mdToast.hide();\r\n };\r\n\r\n this.no = () => {\r\n callback(false);\r\n self.$mdToast.hide();\r\n };\r\n },\r\n hideDelay: 100000,\r\n position: \"top right\",\r\n controllerAs: 'toast',\r\n autoWrap: false\r\n });\r\n }\r\n}\r\n\r\nlet ToastMessage = {\r\n name: \"toastMessageFactory\",\r\n factory: ToastMessageFactory\r\n};\r\n\r\nexport { ToastMessage, IToastMessageService }\r\nexport default ToastMessage;\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/services/toast-message-factory.ts","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
{{toast.content}}
\\n
    \\n
  • {{msg}}
  • \\n
\\n
\\nOk\\n
\\n
\";\nvar id1=\"app/user-controls/validation-toast.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/validation-toast.html\n// module id = 693\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
{{toast.content}}
\\n
\\nOk\\n
\\n
\";\nvar id1=\"app/user-controls/success-toast.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/success-toast.html\n// module id = 694\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
{{toast.content}}
\\n
\\nOk\\n
\\n
\";\nvar id1=\"app/user-controls/error-toast.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/error-toast.html\n// module id = 695\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
\\n
{{toast.content}}
\\n
    \\n
  • {{msg}}
  • \\n
\\n
\\nOk\\n
\\n
\";\nvar id1=\"app/user-controls/warning-toast.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/warning-toast.html\n// module id = 696\n// module chunks = 0","var angular=window.angular,ngModule;\ntry {ngModule=angular.module([\"ng\"])}\ncatch(e){ngModule=angular.module(\"ng\",[])}\nvar v1=\"\\n
\\n
{{toast.content}}
\\nYes\\nNo\\n
\\n
\";\nvar id1=\"app/user-controls/confirm-toast.html\";\nvar inj=angular.element(window.document).injector();\nif(inj){inj.get(\"$templateCache\").put(id1,v1);}\nelse{ngModule.run([\"$templateCache\",function(c){c.put(id1,v1)}]);}\nmodule.exports=id1;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./app/user-controls/confirm-toast.html\n// module id = 697\n// module chunks = 0","import * as ng from 'angular';\r\nimport { AsEnumerable as Enumerable } from 'linq-es5';\r\n\r\nlet themeConfig = ($mdThemingProvider: ng.material.IThemingProvider,\r\n $mdIconProvider: ng.material.IIconProvider, $provide:any) => {\r\n\r\n $mdThemingProvider.generateThemesOnDemand(true);\r\n\r\n $provide.value('themeProvider', $mdThemingProvider);\r\n\r\n $mdThemingProvider.alwaysWatchTheme(true);\r\n\r\n};\r\n\r\nexport default ['$mdThemingProvider', '$mdIconProvider', '$provide', themeConfig];\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/theme-config.ts","import { Templates } from \"./assets\";\r\n\r\nlet BlockUIConfig = (blockUIConfig: any) => {\r\n blockUIConfig.templateUrl = Templates.blockUI;\r\n blockUIConfig.delay = 500;\r\n blockUIConfig.requestFilter = function (config) {\r\n\r\n var message;\r\n switch (config.method) {\r\n case 'GET':\r\n message = 'Loading...';\r\n break;\r\n\r\n case 'POST':\r\n message = (config.params && config.params.query)\r\n ? \"Loading...\"\r\n : \"Saving...\";\r\n break;\r\n case 'DELETE':\r\n message = 'Deleting...';\r\n break;\r\n case 'PUT':\r\n message = 'Saving...';\r\n break;\r\n };\r\n\r\n return message;\r\n };\r\n};\r\n\r\nexport default ['blockUIConfig', BlockUIConfig];\n\n\n// WEBPACK FOOTER //\n// ./node_modules/source-map-loader!./app/blockui-config.ts","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.scss\n// module id = 700\n// module chunks = 0"],"sourceRoot":""}