{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/babel-runtime/core-js/object/assign.js","node_modules/babel-runtime/core-js/object/define-property.js","node_modules/babel-runtime/core-js/promise.js","node_modules/babel-runtime/helpers/asyncToGenerator.js","node_modules/babel-runtime/helpers/classCallCheck.js","node_modules/babel-runtime/helpers/createClass.js","node_modules/babel-runtime/regenerator/index.js","node_modules/core-js/library/fn/object/assign.js","node_modules/core-js/library/fn/object/define-property.js","node_modules/core-js/library/fn/promise.js","node_modules/core-js/library/modules/_a-function.js","node_modules/core-js/library/modules/_add-to-unscopables.js","node_modules/core-js/library/modules/_an-instance.js","node_modules/core-js/library/modules/_an-object.js","node_modules/core-js/library/modules/_array-includes.js","node_modules/core-js/library/modules/_classof.js","node_modules/core-js/library/modules/_cof.js","node_modules/core-js/library/modules/_core.js","node_modules/core-js/library/modules/_ctx.js","node_modules/core-js/library/modules/_defined.js","node_modules/core-js/library/modules/_descriptors.js","node_modules/core-js/library/modules/_dom-create.js","node_modules/core-js/library/modules/_enum-bug-keys.js","node_modules/core-js/library/modules/_export.js","node_modules/core-js/library/modules/_fails.js","node_modules/core-js/library/modules/_for-of.js","node_modules/core-js/library/modules/_global.js","node_modules/core-js/library/modules/_has.js","node_modules/core-js/library/modules/_hide.js","node_modules/core-js/library/modules/_html.js","node_modules/core-js/library/modules/_ie8-dom-define.js","node_modules/core-js/library/modules/_invoke.js","node_modules/core-js/library/modules/_iobject.js","node_modules/core-js/library/modules/_is-array-iter.js","node_modules/core-js/library/modules/_is-object.js","node_modules/core-js/library/modules/_iter-call.js","node_modules/core-js/library/modules/_iter-create.js","node_modules/core-js/library/modules/_iter-define.js","node_modules/core-js/library/modules/_iter-detect.js","node_modules/core-js/library/modules/_iter-step.js","node_modules/core-js/library/modules/_iterators.js","node_modules/core-js/library/modules/_library.js","node_modules/core-js/library/modules/_microtask.js","node_modules/core-js/library/modules/_new-promise-capability.js","node_modules/core-js/library/modules/_object-assign.js","node_modules/core-js/library/modules/_object-create.js","node_modules/core-js/library/modules/_object-dp.js","node_modules/core-js/library/modules/_object-dps.js","node_modules/core-js/library/modules/_object-gops.js","node_modules/core-js/library/modules/_object-gpo.js","node_modules/core-js/library/modules/_object-keys-internal.js","node_modules/core-js/library/modules/_object-keys.js","node_modules/core-js/library/modules/_object-pie.js","node_modules/core-js/library/modules/_perform.js","node_modules/core-js/library/modules/_promise-resolve.js","node_modules/core-js/library/modules/_property-desc.js","node_modules/core-js/library/modules/_redefine-all.js","node_modules/core-js/library/modules/_redefine.js","node_modules/core-js/library/modules/_set-species.js","node_modules/core-js/library/modules/_set-to-string-tag.js","node_modules/core-js/library/modules/_shared-key.js","node_modules/core-js/library/modules/_shared.js","node_modules/core-js/library/modules/_species-constructor.js","node_modules/core-js/library/modules/_string-at.js","node_modules/core-js/library/modules/_task.js","node_modules/core-js/library/modules/_to-absolute-index.js","node_modules/core-js/library/modules/_to-integer.js","node_modules/core-js/library/modules/_to-iobject.js","node_modules/core-js/library/modules/_to-length.js","node_modules/core-js/library/modules/_to-object.js","node_modules/core-js/library/modules/_to-primitive.js","node_modules/core-js/library/modules/_uid.js","node_modules/core-js/library/modules/_wks.js","node_modules/core-js/library/modules/core.get-iterator-method.js","node_modules/core-js/library/modules/es6.array.iterator.js","node_modules/core-js/library/modules/es6.object.assign.js","node_modules/core-js/library/modules/es6.object.define-property.js","node_modules/core-js/library/modules/es6.object.to-string.js","node_modules/core-js/library/modules/es6.promise.js","node_modules/core-js/library/modules/es6.string.iterator.js","node_modules/core-js/library/modules/es7.promise.finally.js","node_modules/core-js/library/modules/es7.promise.try.js","node_modules/core-js/library/modules/web.dom.iterable.js","node_modules/regenerator-runtime/runtime-module.js","node_modules/regenerator-runtime/runtime.js","src/assets/scripts/App.js","src/assets/scripts/config.js","src/assets/scripts/main.js","src/assets/scripts/utilities/helpers.js","src/assets/scripts/utilities/util.js","src/assets/scripts/views/BoxView.js","src/assets/scripts/views/CollapsibleContentView.js","src/assets/scripts/views/DropSearchView.js","src/assets/scripts/views/FileUploadView.js","src/assets/scripts/views/FormValidation.js","src/assets/scripts/views/MenuView.js","src/assets/scripts/views/ModalView.js","src/assets/scripts/views/PasswordToggleView.js","src/assets/scripts/views/ReportsActivityView.js","src/assets/scripts/views/SelectView.js","src/assets/scripts/views/SideMenuView.js","src/assets/scripts/views/TabView.js","src/assets/scripts/views/TimeoutView.js"],"names":[],"mappings":"AAAA;ACAA;;ACAA;;ACAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;;ACDA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;;ACJA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;;ACFA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;;ACHA;AACA;;ACDA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;;ACHA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"main.js","sourceRoot":"/source/","sourcesContent":["(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && key in exports) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve();\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var hide = require('./_hide');\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];\n else hide(target, key, src[key]);\n } return target;\n};\n","module.exports = require('./_hide');\n","'use strict';\nvar global = require('./_global');\nvar core = require('./_core');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) domain.exit();\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = (function() { return this })() || Function(\"return this\")();\n\n// Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\nvar hadRuntime = g.regeneratorRuntime &&\n Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0;\n\n// Save the old regeneratorRuntime in case it needs to be restored later.\nvar oldRuntime = hadRuntime && g.regeneratorRuntime;\n\n// Force reevalutation of runtime.js.\ng.regeneratorRuntime = undefined;\n\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch(e) {\n g.regeneratorRuntime = undefined;\n }\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() { return this })() || Function(\"return this\")()\n);\n","import $ from 'jquery';\nimport BoxView from './views/BoxView';\nimport CollapsibleContentView from './views/CollapsibleContentView';\nimport DropSearchView from './views/DropSearchView';\nimport FileUploadView from './views/FileUploadView';\nimport FormValidation from './views/FormValidation';\nimport MenuView from './views/MenuView';\nimport ModalView from './views/ModalView';\nimport PasswordToggleView from './views/PasswordToggleView';\nimport ReportsActivityView from './views/ReportsActivityView';\nimport SideMenuView from './views/SideMenuView';\nimport TabView from './views/TabView';\nimport SelectView from './views/SelectView';\nimport TimeoutView from './views/TimeoutView';\nimport HasJS from 'nerdery-has-js';\n\nconst SELECTORS = {\n BOX_VIEW: '.js-box',\n COLLAPSIBLE_VIEW: '.js-collapsibleContent',\n DROP_SEARCH: '.js-dropSearch',\n FILE_UPLOAD: '.js-fileUpload',\n FORM_VALIDATION: '.js-validateForm',\n MENU_VIEW: '.js-headerNav',\n MODAL_VIEW: '.js-modal',\n PASSWORD_TOGGLE: '.js-passwordToggle',\n REPORTS_ACTIVITY: '.js-reportsActivity',\n SIDE_MENU: '.js-sideMenu',\n TAB_VIEW: '.js-tabView',\n SELECT_VIEW: '.js-selectView',\n TIMEOUT_VIEW: '.js-timeout',\n};\n\n\n\n/**\n * Application setup\n *\n * @class App\n */\nexport default class App {\n /**\n * Initialize App on startup\n * @class App\n * @constructor\n */\n constructor() {\n this.init();\n }\n\n /**\n * Initialize model, view, controller, components, services\n *\n * @method init\n */\n init() {\n HasJS.init();\n this.createChildren();\n\n return this;\n }\n\n\n /**\n * All constructor functions\n * are gathered under createChildren.\n *\n * @method createChildren\n * @public\n * @chainable\n * @returns {Object}\n */\n createChildren() {\n // Views\n this.getInstance(BoxView, $(SELECTORS.BOX_VIEW));\n this.getInstance(CollapsibleContentView, $(SELECTORS.COLLAPSIBLE_VIEW));\n this.getInstance(DropSearchView, $(SELECTORS.DROP_SEARCH));\n this.getInstance(FileUploadView, $(SELECTORS.FILE_UPLOAD));\n this.getInstance(FormValidation, $(SELECTORS.FORM_VALIDATION));\n this.getInstance(MenuView, $(SELECTORS.MENU_VIEW));\n this.getInstance(ModalView, $(SELECTORS.MODAL_VIEW));\n this.getInstance(PasswordToggleView, $(SELECTORS.PASSWORD_TOGGLE));\n this.getInstance(ReportsActivityView, $(SELECTORS.REPORTS_ACTIVITY));\n this.getInstance(SideMenuView, $(SELECTORS.SIDE_MENU));\n this.getInstance(TabView, $(SELECTORS.TAB_VIEW));\n this.getInstance(SelectView, $(SELECTORS.SELECT_VIEW));\n this.getInstance(TimeoutView, $(SELECTORS.TIMEOUT_VIEW));\n }\n\n /*\n : '.js-box',\n : '.js-collapsibleContent',\n : '.js-dropSearch',\n : '.js-fileUpload',\n : '.js-validateForm',\n : '.js-headerNav',\n : '.js-modal',\n : '.js-passwordToggle',\n : '.js-reportsActivity',\n : '.js-sideMenu',\n : '.js-tabView',\n : '.js-selectView',\n\n init() {\n this._boxView = new ('');\n this._collapsibleContentView = new ('');\n this._dropSearchView = new ();\n this._fileUploadView = new ();\n this._formValidation = new ();\n this._menuView = new ('');\n this._modalView = new ('');\n this._passwordToggleView = new ('');\n this._reportsActivityView = new ('');\n this._sideMenuView = new ();\n this._tabView = new ('');\n this._selectView = new '');\n\n return this;\n }*/\n\n getInstance(Name, container) {\n if (!this[Name]) {\n this[Name] = [];\n\n container.each((i, val) => {\n this[Name].push(\n new Name($(val))\n );\n });\n\n return this[Name];\n }\n return this[Name];\n }\n}\n","import $ from 'jquery';\n\nconst DATA_CONFIG = {\n PASSWORD_VALIDATION_PATH: '/umbraco/surface/SrtrAdmin/PasswordIsValid',\n\tCENTER_SELECT_PATH: '/umbraco/surface/SrtrAdmin/SwitchCenter',\n LIST_OF_CENTERS: '/umbraco/surface/SrtrAdmin/GetTransplantCenters',\n REPORTS_ACTIVITY: '/assets/data/reports_activity.json',\n TEST_VALIDATION_RESPONSE: '/assets/data/test_validation_response.json'\n};\n\nexport default DATA_CONFIG;\n\n$('.js-postLink').click(function(e) {\n if (this.href) {\n \tvar href = this.href;\n \tvar parts = href.split('?');\n var url = parts[0];\n var params = parts[1].split('&');\n var pp = '';\n var inputs = {};\n for(var i = 0, n = params.length; i < n; i++) {\n pp = params[i].split('=');\n inputs[pp[0]] = pp[1];\n }\n $.post(url, inputs)\n .done(location.reload());\n\n return false;\n }\n});","import 'babel-polyfill';\nimport App from 'App';\n\nnew App();\n","import $ from 'jquery';\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class Helpers {\n /**\n * Receive a path to a JSON file, get the JSON, parse and return the object.\n *\n * @method fromJSON\n * @param {string} path\n * @returns {object} with promise\n */\n fromJSON(path) {\n return new Promise((resolve, reject) => {\n $.post(path)\n .then(\n response => {\n resolve(response);\n },\n err => {\n reject(new Error('getJSON Response Error: ', err));\n });\n });\n }\n}\n","/**\n * @method delay\n * @param {String} ms milliseconds to delay\n * @return {Promise}\n */\nexport function delay(ms) {\n return new Promise(resolve => setTimeout(_ => resolve(), ms));\n}","import $ from 'jquery';\n\nconst CONFIG = {\n CLOSE: '.js-boxClose'\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class BoxView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n\n return this.setupHandlers()\n .createChildren()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {BoxView}\n */\n setupHandlers() {\n this.handleClick = this.onClick.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {BoxView}\n */\n createChildren() {\n this.$close = this.$element.find(CONFIG.CLOSE);\n\n return this;\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {BoxView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].addEventListener('click', this.handleClick);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {BoxView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].removeEventListener('click', this.handleClick);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {BoxView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles click event\n * \n * @param event\n * @returns {BoxView}\n */\n onClick(event) {\n const $target = $(event.currentTarget);\n let $next = $target.closest(this.$element).next();\n\n if (!$next.length) {\n $next = $target.closest(this.$element).parent().next();\n }\n\n $target.closest(this.$element).attr('aria-hidden', 'true').slideUp(250, () => {\n $target.blur();\n $target.closest(this.$element).remove();\n $next.find(':not(:has(*))').first().attr('tabindex', '-1').focus();\n });\n\n return this;\n }\n}\n","// Accessible and Progressively Enhanced Accordion (collapsible content)\n//\n// USAGE\n//
\n//

\n// This is a heading\n//

\n//
\n//
\n//
\n// Content goes here.\n//
\n//
\n//
\n//
\n\nexport default class CollapsibleContentView {\n static defaults = {};\n\n constructor($element, options) {\n /**\n * A reference to the containing DOM element.\n *\n * @default null\n * @property element\n * @type {object}\n * @public\n */\n this.element = $element[0];\n\n /**\n * Tracks whether component is active (content expanded/visible)\n *\n * @default false\n * @property isActive\n * @type {bool}\n * @public\n */\n this.isActive = false;\n\n /**\n * Tracks whether CSS is currently transitioning\n *\n * @default false\n * @property isTransitioning\n * @type {bool}\n * @public\n */\n this.isTransitioning = false;\n\n this.options = Object.assign({}, this.constructor.defaults, options);\n\n this.init();\n }\n\n attr = {\n controls: 'aria-controls',\n expanded: 'aria-expanded',\n hidden: 'aria-hidden',\n }\n\n selector = {\n hdg: '[data-collapsible-hdg]',\n trigger: '[data-collapsible-trigger]',\n target: '[id^=\"target\"]',\n focusControl: '[data-collapsible-focus-control]',\n }\n\n listener = {\n transitionend: [\n 'webkitTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n ],\n }\n\n /**\n * Initializes the UI Component View.\n *\n * Runs setupHandlers, createChildren and layout.\n * Exits early if it is already initialized.\n *\n * @method init\n * @returns {Object} CollapsibleContentView\n * @private\n */\n init() {\n this.createChildren()\n .layout()\n .enable();\n\n return this;\n }\n \n /**\n * Destroys the view.\n * Tears down any events, handlers, elements.\n * Should be called when the object should be left unused.\n *\n * @method destroy\n * @returns {Object} CollapsibleContentView\n * @public\n */\n destroy() {\n this.disable()\n .removeChildren();\n\n return this;\n }\n\n /**\n * Create any child objects or references to DOM elements.\n * Should only be run on initialization of the view.\n *\n * @method createChildren\n * @returns {Object} CollapsibleContentView\n * @private\n */\n createChildren() {\n this.hdg = this.element.querySelector(this.selector.hdg);\n this.hdg.innerHTML = this.createInteractiveMarkup();\n this.trigger = this.element.querySelector(this.selector.trigger);\n this.target = this.element.querySelector(this.selector.target);\n this.id = this.target.id;\n this.targetInner = this.target.firstElementChild;\n this.defaultFocusControl = this.element.querySelector(this.selector.focusControl);\n\n return this;\n }\n\n /**\n * Remove any child objects or references to DOM elements.\n *\n * @method removeChildren\n * @returns {Object} CollapsibleContentView\n * @public\n */\n removeChildren() {\n this.hdg = null;\n this.trigger = null;\n this.target = null;\n this.id = null;\n this.targetInner = null;\n this.defaultFocusControl = null;\n\n return this;\n }\n\n layout() {\n this.trigger.setAttribute(this.attr.controls, this.id);\n this.trigger.setAttribute(this.attr.expanded, 'false');\n this.target.setAttribute(this.attr.hidden, 'true');\n this.target.setAttribute('role', 'region');\n this.target.style.height = '0';\n this.target.style.overflow = 'hidden';\n this.defaultFocusControl.setAttribute('tabindex', '-1');\n\n return this;\n }\n\n createInteractiveMarkup() {\n const hdg = this.hdg.innerHTML;\n const btnMarkup = `\n `;\n\n return btnMarkup;\n }\n\n /**\n * Enables the component.\n * Performs any event binding to handlers.\n * Exits early if it is already enabled.\n *\n * @method enable\n * @returns {Object} CollapsibleContentView\n * @public\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n this.isEnabled = true;\n\n this.trigger.addEventListener('click', this.onTriggerClick);\n this.listener.transitionend.forEach(transition => {\n document.addEventListener(transition, this.onTransitionEnd);\n });\n\n return this;\n }\n\n /**\n * Disables the component.\n * Tears down any event binding to handlers.\n * Exits early if it is already disabled.\n *\n * @method disable\n * @returns {Object} CollapsibleContentView\n * @public\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n this.isEnabled = false;\n\n this.trigger.removeEventListener('click', this.onTriggerClick);\n this.listener.transitionend.forEach(transition => {\n document.removeEventListener(transition, this.onTransitionEnd);\n });\n\n return this;\n }\n\n /**\n * Toggles the component.\n *\n * @method toggle\n * @returns {Object} CollapsibleContentView\n * @public\n */\n toggle() {\n this.isTransitioning = true;\n\n this.isActive ? this.hide() : this.show();\n\n return this;\n }\n\n /**\n * Shows the component.\n * Sets aria-expanded state for accessibility\n *\n * @method show\n * @returns {Object} CollapsibleContentView\n * @public\n */\n show() {\n this.isActive = true;\n this.target.style.height = `${this.targetInner.offsetHeight}px`;\n this.target.setAttribute(this.attr.hidden, 'false');\n this.trigger.setAttribute(this.attr.expanded, 'true');\n setTimeout(() => {\n this.defaultFocusControl.focus(); \n }, 250); // --DEFAULT_TRANSITION_LENGTH\n\n return this;\n }\n\n /**\n * Hides the component.\n * Sets aria-expanded state for accessibility\n *\n * @method hide\n * @returns {Object} CollapsibleContentView\n * @public\n */\n hide() {\n this.isActive = false;\n this.target.style.height = 0;\n this.target.setAttribute(this.attr.hidden, 'true');\n this.trigger.setAttribute(this.attr.expanded, 'false');\n\n return this;\n }\n\n /*\n EVENT HANDLERS\n */\n\n /**\n * Trigger click event\n * Exits early if CSS transition is still in progress\n *\n * @method onTriggerClick\n * @param {event} e\n * @public\n */\n onTriggerClick = e => {\n if (this.isTransitioning) {\n return;\n }\n\n this.toggle();\n }\n\n /**\n * CSS transition end event\n *\n * @method onTransitionEnd\n * @param {event} e\n * @public\n */\n onTransitionEnd = e => {\n this.isTransitioning = false;\n }\n}\n","import $ from 'jquery';\nimport _ from 'lodash';\nimport Helpers from '../utilities/helpers';\nimport DATA_CONFIG from '../config';\n\nconst CONFIG = {\n ITEM: '.js-dropSearch-item',\n TOGGLE: '.js-dropSearch-toggle',\n CLOSE: '.js-dropSearch-close',\n SEARCH_BOX: '.js-dropSearch-input',\n COUNT: '.js-dropSearch-count',\n LIST_CONTAINER: '.js-dropSearch-list',\n TRANSITION_LENGTH: 250,\n NO_RESULTS: {\n centerName: 'No centers found in search',\n centerCode: ''\n }\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class DropSearchView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n /**\n * sets handlebars templates up as variables to be used to build the result list\n */\n this.dropListItemTemplate = window.JST['templates/JST/dropListItem'];\n\n /**\n * listOfCenters is JSON object with information about each center\n *\n * @type {object}\n */\n this.listOfCenters = null;\n\n /**\n * Load helpers\n *\n * @type {Helpers}\n */\n this.helpers = new Helpers();\n\n /**\n * Import JSON data\n */\n this.helpers.fromJSON(DATA_CONFIG.LIST_OF_CENTERS).then (response => {\n this.listOfCenters = response;\n this.init();\n });\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.isActive = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {DropSearchView}\n */\n setupHandlers() {\n this.handleItemClick = this.onItemClick.bind(this);\n this.handleToggleClick = this.onToggleClick.bind(this);\n this.handleCloseClick = this.onCloseClick.bind(this);\n this.handleAnyClick = this.onAnyClick.bind(this);\n this.handleKeydown = this.onKeydown.bind(this);\n this.handleSearchKeydown = this.onSearchKeydown.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {DropSearchView}\n */\n createChildren() {\n this.$toggle = $(CONFIG.TOGGLE);\n this.$close = this.$element.find(CONFIG.CLOSE);\n this.$searchBox = this.$element.find(CONFIG.SEARCH_BOX);\n this.$listContainer = this.$element.find(CONFIG.LIST_CONTAINER);\n this.$count = this.$element.find(CONFIG.COUNT);\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {DropSearchView}\n */\n layout() {\n this.populateList(this.listOfCenters);\n\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {DropSearchView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$item.length; i++) {\n this.$item[i].addEventListener('click', this.handleItemClick);\n }\n\n for (let i = 0; i < this.$toggle.length; i++) {\n this.$toggle[i].addEventListener('click', this.handleToggleClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].addEventListener('click', this.handleCloseClick);\n }\n\n for (let i = 0; i < this.$searchBox.length; i++) {\n this.$searchBox[i].addEventListener('input', this.handleSearchKeydown);\n }\n\n $('html').on('click', this.handleAnyClick);\n $('html').on('touchend', this.handleAnyClick);\n\n document.addEventListener('keydown', this.handleKeydown);\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {DropSearchView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$item.length; i++) {\n this.$item[i].removeEventListener('click', this.handleItemClick);\n }\n\n for (let i = 0; i < this.$toggle.length; i++) {\n this.$toggle[i].removeEventListener('click', this.handleToggleClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].removeEventListener('click', this.handleCloseClick);\n }\n\n for (let i = 0; i < this.$searchBox.length; i++) {\n this.$searchBox[i].removeEventListener('input', this.handleSearchKeydown);\n }\n\n document.removeEventListener('keydown', this.handleKeydown);\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {DropSearchView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Return a list of items filtered by search input\n *\n * @param objects\n * @returns {DropSearchView}\n */\n populateList(objects) {\n const searchedObjects = _.filter(objects, (obj) => {\n return (obj.centerName.toUpperCase().indexOf(this.$searchBox.val().toUpperCase()) > -1 ||\n obj.centerCode.toUpperCase().indexOf(this.$searchBox.val().toUpperCase()) > -1);\n });\n this.generateListMarkup(searchedObjects);\n this.updateResultCount(searchedObjects.length);\n\n return this;\n }\n\n /**\n * Generate markup for list of centers based on search results\n *\n * @param objects\n * @returns {DropSearchView}\n */\n generateListMarkup(objects) {\n this.$listContainer.empty();\n let listLayout = '';\n\n if (objects.length > 0) {\n _.forEach(objects, (value) => {\n listLayout += this.dropListItemTemplate(value);\n });\n } else {\n listLayout += this.dropListItemTemplate(CONFIG.NO_RESULTS);\n }\n\n this.$listContainer.append(listLayout);\n\n this.$item = this.$element.find(CONFIG.ITEM);\n\n return this;\n }\n\n /**\n * Updates count of listed results\n *\n * @param count\n */\n updateResultCount(count) {\n this.$count.empty().append(`${count} Results`);\n }\n\n /**\n * When key is inputted into search box, update the DOM\n *\n * @param event\n * @returns {DropSearchView}\n */\n onSearchKeydown(event) {\n this.render();\n\n return this;\n }\n\n /**\n * Handles item click event\n *\n * @param event\n * @returns {DropSearchView}\n */\n onItemClick(event) {\n const $target = $(event.target).closest(CONFIG.ITEM);\n\n if (this.isActive) {\n event.preventDefault();\n var centerId = $target.data('centerId');\n $.post(DATA_CONFIG.CENTER_SELECT_PATH, { centerId: centerId})\n .done(function(data) {\n location.reload();\n });\n }\n\n return this;\n }\n\n /**\n * Handles toggle click event\n *\n * @param event\n * @returns {DropSearchView}\n */\n onToggleClick(event) {\n if (this.isActive) {\n this.close(this.$element);\n } else {\n this.open(this.$element);\n }\n\n return this;\n }\n\n /**\n * Handles close click event\n *\n * @param event\n * @returns {DropSearchView}\n */\n onCloseClick(event) {\n if (this.isActive) {\n this.close(this.$element);\n }\n\n return this;\n }\n\n /**\n * Watch for page clicks and close the dropdown if it is outside the dropdown area\n *\n * @param event\n * @returns {DropSearchView}\n */\n onAnyClick(event) {\n const $target = $(event.target);\n\n if (this.isActive && $target.closest(this.$element).length === 0 && !$target.hasClass(CONFIG.TOGGLE.substring(1))) {\n this.close(this.$element);\n }\n\n return this;\n }\n\n /**\n * Handles keydown event\n * Close dropdown if user hits ESC\n *\n * @param event\n * @returns {DropSearchView}\n */\n onKeydown(event) {\n if ((this.isActive == true) && ((!event.keyCode) || (event.keyCode === 27))) {\n this.close(this.$element);\n }\n\n return this;\n }\n\n /**\n * Open the dropdown\n *\n * @param $element\n * @returns {DropSearchView}\n */\n open($element) {\n $element.addClass('open').slideDown(CONFIG.TRANSITION_LENGTH);\n this.$searchBox.focus();\n this.isActive = true;\n this.render();\n\n return this;\n }\n\n /**\n * Close the dropdown\n *\n * @param $element\n * @returns {DropSearchView}\n */\n close($element) {\n $element.removeClass('open').slideUp(CONFIG.TRANSITION_LENGTH);\n this.$searchBox.val('');\n this.isActive = false;\n this.render();\n\n return this;\n }\n}\n","import $ from 'jquery';\n\nconst CONFIG = {\n FILE_INPUT: '.js-fileUpload-input',\n FILE_NAME_TEXT: '.js-fileUpload-text',\n DEFAULT_TEXT: 'No file selected',\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class FileUploadView {\n /**\n * Construct the view and run initialization\n *\n * @param {string} form | Also accepts jQuery object\n */\n constructor(form) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$form = (form instanceof $) ? form : $(form);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$form.length) {\n return;\n }\n\n /**\n * The input item of the form\n */\n this.$input = this.$form.find(CONFIG.FILE_INPUT);\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {FileUploadView}\n */\n setupHandlers() {\n this.handleFile = this.onChange.bind(this);\n this.handleReset = this.onReset.bind(this);\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {FileUploadView}\n */\n createChildren() {\n\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {FileUploadView}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {FileUploadView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$input.length; i++) {\n this.$input[i].addEventListener('change', this.handleFile);\n }\n\n this.$form.on('reset', this.handleReset);\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {FileUploadView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$input.length; i++) {\n this.$input[i].removeEventListener('change', this.handleFile);\n }\n\n this.$form.off('reset', this.handleReset);\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {FileUploadView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles file select event, changes the file name text area\n *\n * @param event\n * @returns {FileUploadView}\n */\n onChange(event) {\n const target = event.currentTarget;\n const $fileNameText = $(target).closest(this.$form).find(`${CONFIG.FILE_NAME_TEXT}[data-file-input=${$(target).attr('id')}]`);\n\n if (target.files.length) {\n const fileName = target.files[0].name;\n $fileNameText.text(fileName);\n }\n\n return this;\n }\n\n /**\n * Handles file select event, changes the file name text area\n *\n * @param event\n * @returns {FileUploadView}\n */\n onReset(event) {\n const $target = $(event.currentTarget);\n $target.closest(this.$form).find(CONFIG.FILE_NAME_TEXT).text(CONFIG.DEFAULT_TEXT);\n\n return this;\n }\n}\n","import $ from 'jquery';\nimport _ from 'lodash';\nimport ParsleyJS from 'parsleyjs';\n\n/**\n * An object of CONFIG used in this view\n * @property CONFIG\n * @type {Object}\n * @final\n */\nconst DEFAULTS = {\n errorClass: 'error',\n focus: 'first',\n errorsWrapper: '',\n errorTemplate: '
  • ',\n};\n/*ERROR_CLASS: 'error',\n SUCCESS_CLASS: 'valid',\n ERROR_WRAPPER_CLASS: 'formError',\n SUCCESS_WRAPPER_CLASS: 'formValid',\n EMPTY_WRAPPER_CLASS: 'formMessageEmpty',\n SUCCESS_MESSAGE: 'Success',\n ERROR_MESSAGE: 'This field is required',\n NOT_EQUAL_MESSAGE: 'Passwords to not match',\n MESSAGE_WRAPPER: '',\n MIN_CHARS_TO_VALIDATE: 3,\n VALIDATE_DELAY: 350,\n VALIDATE_URL: `https://secure-srtr.nerderylabs.com${DATA_CONFIG.PASSWORD_VALIDATION_PATH}`,*/\n\n\n/**\n * Form Validation\n *\n * @class FormValidation\n * @param {jQuery} Pass in containing dom element\n * @constructor\n */\nexport default class FormValidation {\n /**\n * Form validation view\n *\n * @class Form Validation\n * @param {jQuery} $form\n * @constructor\n */\n constructor($form) {\n if (!$form) {\n throw ('No FormValidation $form passed into function');\n }\n /**\n * A reference to the containing DOM element\n *\n * @property $form\n * @type {jQuery}\n * @public\n */\n this.$form = $form;\n\n /**\n * Tracks whether view is enabled\n *\n * @default false\n * @property mapsLoaded\n * @type {Boolean}\n * @public\n */\n this.isEnabled = false;\n // If no form is found, return early\n if (!this.$form.length) {\n return;\n }\n // If form already has novalidate attribute\n if (this.$form.attr('novalidate') !== undefined) {\n return;\n }\n this.init();\n }\n /**\n * @method init\n * @public\n * @chainable\n */\n init() {\n this.isEnabled = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n /**\n * @method createChildren\n * @public\n * @chainable\n */\n createChildren() {\n this.formValidator = this.$form.parsley(DEFAULTS);\n\n return this;\n }\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n */\n setupHandlers() {\n return this;\n }\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {FormValidation}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {FormValidation}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n _.forEach(this.$submit, (value, key) => {\n this.$submit[key].addEventListener('submit', this.handleSubmit);\n });\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {FormValidation}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n _.forEach(this.$submit, (value, key) => {\n this.$submit[key].removeEventListener('submit', this.handleSubmit);\n });\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {FormValidation}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * @method revalidate\n * @public\n * @param {string} [imageUpload] the group you want to revalidate\n * @chainable\n */\n revalidate(group) {\n this.formValidator.validate(group);\n return this;\n }\n\n /**\n * @method displayCustomError\n * @public\n * @param {Object} [options] an options object of the display custom error\n * @param {jQuery} [options.$input] the jquery input that we need to display the message on\n * @param {String} [options.errorMessage] the error message string to display\n * @chainable\n */\n displayCustomError(options) {\n const parsleyInstance = this.getParsleyFieldInstance(options.$input);\n if (!parsleyInstance) {\n return this;\n }\n window.ParsleyUI.addError(parsleyInstance, 'field-error', options.errorMessage);\n return this;\n }\n\n /**\n * @method removeCustomError\n * @public\n * @param {Object} [options] an options object of the display custom error\n * @param {jQuery} [options.$input] the jquery input that we need to display the message on\n * @chainable\n */\n removeCustomError(options) {\n const parsleyInstance = this.getParsleyFieldInstance(options.$input);\n if (!parsleyInstance) {\n return this;\n }\n window.ParsleyUI.removeError(parsleyInstance, 'field-error');\n return this;\n }\n\n /**\n * @method getParsleyFieldInstance\n * @public\n * @param {jQuery} [$input]\n */\n getParsleyFieldInstance($input) {\n let parsleyFieldInstance = null;\n const parsleyFieldId = $input.data('parsleyId');\n const length = this.formValidator.fields.length;\n let id = null;\n for (let i = 0; i < length; i++) {\n id = parseInt(this.formValidator.fields[i].__id__);\n if (id === parsleyFieldId) {\n parsleyFieldInstance = this.formValidator.fields[i];\n console.log(parsleyFieldInstance);\n break;\n }\n }\n return parsleyFieldInstance;\n }\n}\n","import $ from 'jquery';\n\nconst CONFIG = {\n OPEN: '.js-headerNav-open',\n CLOSE: '.js-headerNav-close',\n OVERLAY: '.js-headerNav-overlay',\n DRAWER: '.js-headerNav-drawer',\n POST_LINK: '.js-headerNav-postLink',\n BODY_SELECTOR: 'headerNav-isActive',\n TRANSITION_LENGTH: 250\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class MenuView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.isActive = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {MenuView}\n */\n setupHandlers() {\n this.handleOpenClick = this.onOpenClick.bind(this);\n this.handleCloseClick = this.onCloseClick.bind(this);\n this.handlePostLinkClick = this.onPostLinkClick.bind(this);\n this.handleKeydown = this.onKeydown.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {MenuView}\n */\n createChildren() {\n this.$open = $(CONFIG.OPEN);\n this.$close = this.$element.find(CONFIG.CLOSE);\n this.$postLink = $(CONFIG.POST_LINK);\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {MenuView}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {MenuView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$open.length; i++) {\n this.$open[i].addEventListener('click', this.handleOpenClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].addEventListener('click', this.handleCloseClick);\n }\n\n for (let i = 0; i < this.$postLink.length; i++) {\n this.$postLink[i].addEventListener('click', this.handlePostLinkClick);\n }\n\n document.addEventListener('keydown', this.handleKeydown);\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {MenuView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$open.length; i++) {\n this.$open[i].removeEventListener('click', this.handleOpenClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].removeEventListener('click', this.handleCloseClick);\n }\n\n for (let i = 0; i < this.$postLink.length; i++) {\n this.$postLink[i].removeEventListener('click', this.handlePostLinkClick);\n }\n\n document.removeEventListener('keydown', this.handleKeydown);\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {MenuView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles open click event\n *\n * @param event\n * @returns {MenuView}\n */\n onOpenClick(event) {\n if (this.isActive === false) {\n this.openMenu(this.$element);\n }\n\n return this;\n }\n\n /**\n * Handles close click event\n *\n * @param event\n * @returns {MenuView}\n */\n onCloseClick(event) {\n if (this.isActive === true) {\n this.closeMenu(this.$element);\n }\n\n return this;\n }\n\n /**\n * Handles post link click event\n *\n * @param event\n * @returns {MenuView}\n */\n onPostLinkClick(event) {\n const $target = $(event.target).closest(CONFIG.POST_LINK);\n\n event.preventDefault();\n if ($target.attr('href')) {\n $.post($target.attr('href'));\n }\n\n return this;\n }\n\n /**\n * Handles keydown event\n * Close modal if user hits ESC\n *\n * @param event\n * @returns {MenuView}\n */\n onKeydown(event) {\n if ((this.isActive == true) && ((!event.keyCode) || (event.keyCode === 27))) {\n this.closeMenu(this.$element);\n }\n\n return this;\n }\n\n /**\n * Opens modal\n * Configure so it will not scroll behind modal\n * Fade in modal and make sure it has focus/tabindex for screen readers\n *\n * @param {jQuery|HTMLElement} $menu\n * @returns {MenuView}\n */\n openMenu($menu) {\n $menu.removeClass('u-isHiddenTablet');\n $(CONFIG.OVERLAY).animate({opacity: 1}, CONFIG.TRANSITION_LENGTH);\n $menu.css({marginRight: '-400px'}).animate({marginRight: 0}, CONFIG.TRANSITION_LENGTH);\n $('body').addClass(CONFIG.BODY_SELECTOR);\n\n this.isActive = true;\n\n return this;\n }\n\n /**\n * Closes menu\n *\n * @param {jQuery|HTMLElement} $menu\n * @returns {MenuView}\n */\n closeMenu($menu) {\n $menu.animate({marginRight: '-400px'}, CONFIG.TRANSITION_LENGTH, () => {\n $menu.addClass('u-isHiddenTablet');\n $menu.css({marginRight: '0'});\n });\n $(CONFIG.OVERLAY).animate({opacity: 0}, CONFIG.TRANSITION_LENGTH);\n $('body').removeClass(CONFIG.BODY_SELECTOR);\n\n this.isActive = false;\n\n return this;\n }\n}\n","import $ from 'jquery';\n\nconst CONFIG = {\n OPEN: '.js-modalOpen',\n CLOSE: '.js-modalClose',\n CONTAINER: '.modal',\n CONTENT: '.modal-content',\n ACTIONS: '.modal-actions',\n BODY_SELECTOR: 'modal-isActive',\n DATA_ID: 'data-modal-id',\n DATA_ID_JS: 'modalId',\n TRANSITION_LENGTH: 150\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class ModalView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.isActive = false;\n this.$activeElement = null;\n this.$lastElement = $(document);\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {ModalView}\n */\n setupHandlers() {\n this.handleOpenClick = this.onOpenClick.bind(this);\n this.handleCloseClick = this.onCloseClick.bind(this);\n this.handleKeydown = this.onKeydown.bind(this);\n this.handleTabFirst = this.onTabFirst.bind(this);\n this.handleTabLast = this.onTabLast.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {ModalView}\n */\n createChildren() {\n this.$open = $(CONFIG.OPEN);\n this.$close = this.$element.find(CONFIG.CLOSE);\n\n for (let i = 0; i < this.$element.length; i++) {\n if ($(this.$element[i]).data('modalLaunch')) {\n this.launchOnLoad($(this.$element[i]));\n }\n }\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {ModalView}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {ModalView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$open.length; i++) {\n this.$open[i].addEventListener('click', this.handleOpenClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].addEventListener('click', this.handleCloseClick);\n }\n\n document.addEventListener('keydown', this.handleKeydown);\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {ModalView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$open.length; i++) {\n this.$open[i].removeEventListener('click', this.handleOpenClick);\n }\n\n for (let i = 0; i < this.$close.length; i++) {\n this.$close[i].removeEventListener('click', this.handleCloseClick);\n }\n\n document.removeEventListener('keydown', this.handleKeydown);\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {ModalView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Open the modal on page load if data element is present\n *\n * @param $element\n * @returns {ModalView}\n */\n launchOnLoad($element) {\n if (($element.data('modalLaunch') >= $(window).width()) || ($element.data('modalLaunch') === -1)) {\n this.openModal($element);\n }\n\n return this;\n }\n\n /**\n * Handles open click event\n *\n * @param event\n * @returns {ModalView}\n */\n onOpenClick(event) {\n const $target = $(event.currentTarget);\n const itemId = $target.attr('id');\n if (this.isActive === false) {\n this.saveFocus($target);\n this.openModal($(`#${$(event.currentTarget).data(CONFIG.DATA_ID_JS)}`), itemId);\n }\n\n return this;\n }\n\n /**\n * Handles close click event\n *\n * @param event\n * @returns {ModalView}\n */\n onCloseClick(event) {\n if (this.isActive === true) {\n this.closeModal($(event.currentTarget).closest(this.$element));\n this.$inputFirst.off('keydown', this.handleTabFirst);\n this.$inputLast.off('keydown', this.handleTabLast);\n this.resetFocus(this.$lastElement);\n }\n\n return this;\n }\n\n /**\n * Handles keydown event\n * Close modal if user hits ESC\n *\n * @param event\n * @returns {ModalView}\n */\n onKeydown(event) {\n if ((this.isActive === true) && ((!event.keyCode) || (event.keyCode === 27))) {\n this.closeModal(this.$activeElement);\n this.resetFocus(this.$lastElement);\n }\n\n return this;\n }\n\n /**\n * Handles shift+tab keydowns on the first focusable element\n * Sends focus back to last element in modal\n *\n * @returns {ModalView}\n */\n onTabFirst() {\n if (event.which === 9 && event.shiftKey) {\n event.preventDefault();\n this.$inputLast.focus();\n }\n\n return this;\n }\n\n /**\n * Handles tab keydowns on the last focusable element\n * Sends focus back to first element in modal\n *\n * @returns {ModalView}\n */\n onTabLast() {\n if (event.which === 9 && !event.shiftKey) {\n event.preventDefault();\n this.$inputFirst.focus();\n }\n\n return this;\n }\n\n /**\n * Opens modal\n * Configure so it will not scroll behind modal\n * Fade in modal and make sure it has focus/tabindex for screen readers\n *\n * @param {jQuery|HTMLElement} $modal\n * @param {string} itemId\n * @returns {ModalView}\n */\n openModal($modal, itemId) {\n const $body = $('body');\n const $modalContent = $modal.find(CONFIG.CONTENT);\n const scrollPos = $body.scrollTop() * -1;\n\n $body.addClass(CONFIG.BODY_SELECTOR).css({top: scrollPos});\n $modal.fadeIn(CONFIG.TRANSITION_LENGTH).attr('aria-hidden','false');\n\n this.$inputs = this.$element.find('select, input, textarea, button, a').filter(':visible');\n this.$inputFirst = this.$inputs.first();\n this.$inputLast = this.$inputs.last();\n this.$inputFirst.on('keydown', this.handleTabFirst);\n this.$inputLast.on('keydown', this.handleTabLast);\n\n itemId ? $modal.find('.js-modal-includeId').attr('id', itemId) : '';\n\n setTimeout(() => {\n this.$inputFirst.focus();\n }, CONFIG.TRANSITION_LENGTH);\n\n this.sizeAndPosition($modal);\n\n this.isActive = true;\n this.$activeElement = $modal;\n\n return this;\n }\n\n /**\n * Closes modal\n * Reset body to default\n * Set focus to previously focused element\n *\n * @param {jQuery|HTMLElement} $modal\n * @returns {ModalView}\n */\n closeModal($modal) {\n const $body = $('body');\n const $modalContent = $modal.find(CONFIG.CONTENT);\n const scrollPos = parseInt($body.css('top')) * -1;\n\n $modal.fadeOut(CONFIG.TRANSITION_LENGTH).attr('aria-hidden','true');\n $body.removeClass(CONFIG.BODY_SELECTOR).css({top: ''}).scrollTop(scrollPos);\n $modalContent.attr('tabindex', '-1');\n this.$lastElement.focus();\n\n this.isActive = false;\n this.$activeElement = null;\n\n return this;\n }\n\n /**\n * Determine height and positioning of modal based upon window size\n *\n * @param $modal\n * @returns {ModalView}\n */\n sizeAndPosition($modal) {\n const $modalContainer = $modal.find(CONFIG.CONTAINER);\n const $modalContent = $modal.find(CONFIG.CONTENT);\n const $modalActions = $modal.find(CONFIG.ACTIONS);\n\n if ($modalContainer.height() > $(window).height()) {\n\n const borders = parseInt($modalContent.css('padding-top'))\n + parseInt($modalContent.css('padding-bottom'))\n + parseInt($modalContainer.css('margin-top'))\n + parseInt($modalContainer.css('margin-bottom'))\n + parseInt($modalContainer.css('top'))\n + parseInt($modalContainer.css('top'));\n const fitHeight = $(window).height() - $modalActions.outerHeight() - borders;\n $modalContent.css('height', `${fitHeight}px`);\n } else if ($(window).width() >= 768) {\n $modalContainer.css('top', `calc((100vh - ${$modalContainer.outerHeight()}px) * .25)`);\n }\n\n return this;\n }\n\n /**\n * Save the element that was focused before modal was opened\n *\n * @param $target\n * @returns {ModalView}\n */\n saveFocus($target) {\n this.$lastElement = $target; // Save last element of focus to return to after modal close\n\n return this;\n }\n\n /**\n * Return focus to previously focused element\n *\n * @param $target\n * @returns {ModalView}\n */\n resetFocus($target) {\n $target.focus();\n\n return this;\n }\n}\n","import $ from 'jquery';\n\nconst CONFIG = {\n PASSWORD_FIELD: '.js-passwordToggle-pw',\n TOGGLE_BUTTON: '.js-passwordToggle-btn'\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class PasswordToggleView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {PasswordToggleView}\n */\n setupHandlers() {\n this.handleClick = this.onClick.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {PasswordToggleView}\n */\n createChildren() {\n this.$toggleBtn = $(CONFIG.TOGGLE_BUTTON);\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {PasswordToggleView}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {PasswordToggleView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$toggleBtn.length; i++) {\n this.$toggleBtn[i].addEventListener('click', this.handleClick);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {PasswordToggleView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$toggleBtn.length; i++) {\n this.$toggleBtn[i].removeEventListener('click', this.handleClick);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {PasswordToggleView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles click event\n *\n * @param event\n * @returns {PasswordToggleView}\n */\n onClick(event) {\n const $target = $(event.currentTarget);\n const $container = $target.closest(this.$element);\n const $currentField = $container.find(CONFIG.PASSWORD_FIELD);\n const $currentBtn = $container.find(CONFIG.TOGGLE_BUTTON);\n\n if ($currentField.length && $currentBtn.length) {\n this.togglePassword($currentField, $currentBtn);\n }\n\n return this;\n }\n\n /**\n * Toggles the password to be visible or not, and changes button text\n *\n * @param {jQuery|HTMLElement} $pwField\n * @param {jQuery|HTMLElement} $toggleBtn\n * @returns {PasswordToggleView}\n */\n togglePassword($pwField, $toggleBtn) {\n const newType = ($pwField.prop('type') === 'password') ? 'text' : 'password';\n $pwField.prop('type', newType);\n\n const btnText = ($toggleBtn.html().toLowerCase() === 'show') ? 'hide' : 'show';\n $toggleBtn.html(btnText);\n\n $pwField.focus();\n\n return this;\n }\n}\n","import $ from 'jquery';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport Helpers from '../utilities/helpers';\nimport DATA_CONFIG from '../config';\n\nconst CONFIG = {\n CONTENTS: '.js-reportsActivity-contents',\n LOAD_MORE_BTN: '.js-reportsActivity-btn',\n PAGE_LOAD_DEFAULT: 5,\n VIEW_MORE_COUNT: 10,\n TRANSITION_LENGTH: 150,\n NO_RESULTS: '
    No more activity found
    '\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class ReportsActivityView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n this.selector = element;\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n /**\n * sets handlebars templates up as variables to be used to build the result list\n */\n this.reportsActivityTemplate = window.JST['templates/JST/reportsActivityItem'];\n\n /**\n * listOfCenters is JSON object with information about each center\n *\n * @type {object}\n */\n this.reportActivityData = null;\n\n /**\n * Load helpers\n *\n * @type {Helpers}\n */\n this.helpers = new Helpers()\n\n /**\n * Import JSON data\n */\n this.helpers.fromJSON(DATA_CONFIG.REPORTS_ACTIVITY).then (response => {\n this.reportActivityData = response;\n this.init();\n });\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.currentIndex = 0;\n this.$contents = this.$element.find(CONFIG.CONTENTS).empty();\n this.$loadBtn = this.$element.find(CONFIG.LOAD_MORE_BTN);\n this.reportActivityData = this.formatData(this.reportActivityData);\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {ReportsActivityView}\n */\n setupHandlers() {\n this.handleClick = this.onClick.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {ReportsActivityView}\n */\n createChildren() {\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {ReportsActivityView}\n */\n layout() {\n this.populateList(this.reportActivityData);\n\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {ReportsActivityView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$loadBtn.length; i++) {\n this.$loadBtn[i].addEventListener('click', this.handleClick);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {ReportsActivityView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$loadBtn.length; i++) {\n this.$loadBtn[i].removeEventListener('click', this.handleClick);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {ReportsActivityView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Reformat data to create readable dates and file types\n *\n * @param object\n * @returns {Object|*}\n */\n formatData(object) {\n object = this.reformatDates(object);\n object = this.extractFileNames(object);\n\n return object;\n }\n\n /**\n * Takes in reports activity data and re-formats the dates to be relative when relevant\n *\n * @param object\n * @returns {object}\n */\n reformatDates(object) {\n let reformattedDates = object;\n const twoDaysAgo = moment().subtract(2, 'days').endOf('day');\n\n _.forEach(reformattedDates, (value) => {\n let relativeDate = moment(value.date);\n\n value.date = moment(value.date).format('MMMM D YYYY');\n\n if (relativeDate.isAfter(twoDaysAgo)) {\n relativeDate = relativeDate.fromNow();\n } else {\n relativeDate = relativeDate.format('MMMM D YYYY');\n }\n\n value.relativeDate = relativeDate;\n });\n\n return reformattedDates;\n }\n\n /**\n * Look at the file URL and extract the file name, if present, into a new item in the object\n *\n * @param object\n * @returns {object}\n */\n extractFileNames(object) {\n let objectWithFileNames = object;\n _.forEach(objectWithFileNames, (value) => {\n let fileName = value.url;\n if (fileName.split('.').pop() !== fileName) {\n value.fileType = fileName.split('.').pop().toUpperCase();\n value.fileName = fileName.split('\\\\').pop().split('/').pop();\n }\n });\n\n return objectWithFileNames;\n }\n\n /**\n * Return a list of first N items\n *\n * @param objects\n * @returns {ReportsActivityView}\n */\n populateList(objects) {\n let objectsToLoad = objects;\n\n if (this.currentIndex === 0) {\n objectsToLoad = objects.slice(0, CONFIG.PAGE_LOAD_DEFAULT);\n this.currentIndex += CONFIG.PAGE_LOAD_DEFAULT;\n } else {\n objectsToLoad = objects.slice(this.currentIndex, (this.currentIndex + CONFIG.VIEW_MORE_COUNT));\n this.currentIndex += CONFIG.VIEW_MORE_COUNT;\n }\n\n this.generateActivityMarkup(objectsToLoad);\n\n return this;\n }\n\n /**\n * Generate markup for list of results activity\n *\n * @param objects\n * @returns {ReportsActivityView}\n */\n generateActivityMarkup(objects) {\n let reportsLayout = '';\n\n if (objects.length > 0) {\n _.forEach(objects, (value) => {\n reportsLayout += this.reportsActivityTemplate(value);\n });\n } else {\n reportsLayout += CONFIG.NO_RESULTS;\n this.$loadBtn.remove();\n }\n\n this.$contents.append(reportsLayout);\n if (this.currentIndex > CONFIG.PAGE_LOAD_DEFAULT) {\n this.$contents.find(` > *:gt(${this.currentIndex - CONFIG.VIEW_MORE_COUNT - 1})`).hide().slideDown('fast');\n }\n\n return this;\n }\n\n /**\n * Handles open click event\n *\n * @returns {ReportsActivityView}\n */\n onClick() {\n this.render();\n\n return this;\n }\n}\n","import $ from 'jquery';\nimport wurl from 'wurl';\n\nconst SELECTORS = {\n SELECT: '.js-selectView-select',\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n * Controls the display of content depending on which tab is selected\n */\nexport default class SelectView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {SelectView}\n */\n setupHandlers() {\n this.handleChange = this.onChange.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {SelectView}\n */\n createChildren() {\n this.$select = this.$element.find(SELECTORS.SELECT);\n this.params = wurl('?') || {};\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {SelectView}\n */\n layout() {\n this.updateSelected();\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {SelectView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$select.length; i++) {\n this.$select[i].addEventListener('change', this.handleChange);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {SelectView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$select.length; i++) {\n this.$select[i].removeEventListener('change', this.handleChange);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {SelectView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles select change event\n * Creates a new query string based upon the item selected\n * and refreshes the page with the new url\n *\n * @param event\n * @returns {SelectView}\n */\n onChange(event) {\n event.preventDefault();\n const $target = $(event.currentTarget);\n const name = $target.data('selectQueryName');\n\n this.params[name] = $target.find(':selected').val();\n window.location.href = `?${$.param(this.params)}`;\n\n return this;\n }\n\n /**\n * Update the selected item with the option from query string if applicable\n *\n * @returns {SelectView}\n */\n updateSelected() {\n this.$select.each((key) => {\n const $select = $(this.$select[key]);\n const name = $select.data('selectQueryName');\n if (name && this.params[name]) {\n $select.find(`[value=\"${this.params[name]}\"]`).prop('selected', true);\n } else {\n $select.first().prop('selected', true);\n }\n });\n\n return this;\n }\n}\n","import $ from 'jquery';\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class SideMenuView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n this.selector = element;\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.isActive = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {SideMenuView}\n */\n setupHandlers() {\n this.handleMenuClick = this.onMenuClick.bind(this);\n this.handleAnyClick = this.onAnyClick.bind(this);\n this.handleKeydown = this.onKeydown.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {SideMenuView}\n */\n createChildren() {\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {SideMenuView}\n */\n layout() {\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {SideMenuView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$element.length; i++) {\n this.$element[i].addEventListener('click', this.handleMenuClick);\n }\n\n $('html').on('click', this.handleAnyClick);\n $('html').on('touchend', this.handleAnyClick);\n\n document.addEventListener('keydown', this.handleKeydown);\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {SideMenuView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$element.length; i++) {\n this.$element[i].removeEventListener('click', this.handleMenuClick);\n }\n\n document.removeEventListener('keydown', this.handleKeydown);\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {SideMenuView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles open click event\n *\n * @param event\n * @returns {SideMenuView}\n */\n onMenuClick(event) {\n const $target = $(event.currentTarget);\n\n if (this.isActive) {\n this.closeDrawer();\n } else {\n this.openDrawer();\n }\n\n return this;\n }\n\n /**\n * Watch for page clicks and close the dropdown if it is outside the dropdown area\n *\n * @param event\n */\n onAnyClick(event) {\n const $target = $(event.target);\n\n if (this.isActive && $target.closest(this.$element).length === 0) {\n this.closeDrawer();\n this.isActive = false;\n }\n }\n\n /**\n * Handles keydown event\n * Close menu if user hits ESC\n *\n * @param event\n * @returns {SideMenuView}\n */\n onKeydown(event) {\n if ((this.isActive == true) && ((!event.keyCode) || (event.keyCode === 27))) {\n this.closeDrawer();\n this.$element.focus();\n }\n\n return this;\n }\n\n /**\n * Opens nav drawer\n * @returns {SideMenuView}\n */\n openDrawer() {\n this.addGap();\n this.$element.addClass('open');\n this.isActive = true;\n return this;\n }\n\n /**\n * Close nav drawer\n * @returns {SideMenuView}\n */\n closeDrawer() {\n this.removeGap();\n this.$element.removeClass('open');\n this.isActive = false;\n return this;\n }\n\n /**\n * Offset the height lost when the input is made to be absolutely positioned\n * @returns {SideMenuView}\n */\n addGap() {\n const inputHeight = this.$element.parent().height();\n console.log(inputHeight);\n this.$element.parent().height(inputHeight);\n return this;\n }\n\n /**\n * Remove height offset\n * @returns {SideMenuView}\n */\n removeGap() {\n this.$element.parent().removeAttr('style');\n return this;\n }\n}\n","import $ from 'jquery';\nimport { delay } from '../utilities/util';\n\nconst CONFIG = {\n DEFAULT_TRANSITION_LENGTH: 250,\n};\n\nconst SELECTORS = {\n LINK: '.js-tabView-link',\n CONTENT: '.js-tabView-content',\n CURRENT: 'current mix-iconBackground_chevronAlt',\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n * Controls the display of content depending on which tab is selected\n */\nexport default class TabView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * Track the ID of the current tab\n * @type {string}\n */\n this.currentTab = '';\n\n /**\n * Track if the page is being rendered for the first time\n * @type {boolean}\n */\n this.isFirstRender = true;\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n /**\n * If element has no links, exit early\n */\n this.$link = this.$element.find(SELECTORS.LINK);\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {TabView}\n */\n setupHandlers() {\n this.handleClick = this.onClick.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {TabView}\n */\n createChildren() {\n this.$content = this.$element.find(SELECTORS.CONTENT);\n this.$contentChildren = this.$content.children();\n this.currentTab = this.getHash();\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {TabView}\n */\n layout() {\n this.updateLinks();\n this.updateContent();\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {TabView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$link.length; i++) {\n this.$link[i].addEventListener('click', this.handleClick);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {TabView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$link.length; i++) {\n this.$link[i].removeEventListener('click', this.handleClick);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {TabView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * check page for hash and return it\n * otherwise return first hash so the page can be defaulted to the first linked content\n *\n * @returns {string}\n */\n getHash() {\n let hash = this.$link[0].hash;\n this.$link.each((key) => {\n if (window.location.hash === this.$link[key].hash) {\n hash = window.location.hash;\n return false; // Exit loop early\n }\n });\n\n return hash;\n }\n\n /**\n * Handles click event\n *\n * @param event\n * @returns {TabView}\n */\n onClick(event) {\n const $target = $(event.currentTarget);\n const targetId = $target.prop('hash');\n\n if (this.$content.find(targetId)) {\n this.currentTab = targetId;\n }\n\n this.render();\n\n return this;\n }\n\n /**\n * Update page links and set current tab\n *\n * @returns {TabView}\n */\n updateLinks() {\n this.$link.parent().removeClass(SELECTORS.CURRENT);\n this.$link.each((key) => {\n if (this.$link[key].hash === this.currentTab) {\n $(this.$link[key]).parent().addClass(SELECTORS.CURRENT);\n return false; // Exit loop early\n }\n });\n\n return this;\n }\n\n /**\n * Upadate tab content to show current content and hide others\n * Manage aria attributes for screen readers\n *\n * @returns {Promise.}\n */\n async updateContent() {\n let transition = CONFIG.DEFAULT_TRANSITION_LENGTH / 2;\n\n if (this.isFirstRender) {\n transition = 0;\n this.isFirstRender = false;\n }\n\n this.$contentChildren.each((key) => {\n $(this.$contentChildren[key]).fadeOut(transition)\n .attr('aria-hidden', 'true')\n .removeAttr('aria-live');\n });\n\n await delay(transition);\n this.$content.find(this.currentTab).fadeIn(transition)\n .attr('aria-hidden', 'false')\n .attr('aria-live', 'polite');\n\n return this;\n }\n}\n","import $ from 'jquery';\nimport ModalView from 'views/ModalView';\n\nconst SELECTORS = {\n EXTEND: '.js-timeout-extend',\n COUNTDOWN: '.js-timeout-countdown',\n};\n\nconst CONFIG = {\n TIMEOUT_SECONDS: '300', // 300 seconds = 5 minutes\n EXTEND_WINDOW_SECONDS: '20',\n LOGOUT_URL: '/login?reason=inactivity',\n};\n\n/**\n * @fileOverview View handles updating the visual elements on the page\n */\nexport default class TimeoutView {\n /**\n * Construct the view and run initialization\n *\n * @param element\n */\n constructor(element) {\n /**\n * Check to see if elements are passed in as jQuery objects or strings\n */\n this.$element = (element instanceof $) ? element : $(element);\n\n /**\n * If element doesn't exist, exit early\n */\n if (!this.$element.length) {\n return;\n }\n\n this.init();\n }\n\n /**\n * Initialize the view\n *\n * @method init\n */\n init() {\n this.isEnabled = false;\n this.isActive = false;\n\n return this.setupHandlers()\n .createChildren()\n .layout()\n .enable();\n }\n\n /**\n * Binds the scope of handler functions\n * Should be run once on view initialization\n *\n * @method setupHandlers\n * @returns {TimeoutView}\n */\n setupHandlers() {\n this.handleExtendClick = this.onExtendClick.bind(this);\n\n return this;\n }\n\n /**\n * Create any child objects and references to DOM elements\n * Should only be run once on init of the view\n *\n * @method createChildren\n * @returns {TimeoutView}\n */\n createChildren() {\n this.timeoutLength = CONFIG.TIMEOUT_SECONDS - CONFIG.EXTEND_WINDOW_SECONDS;\n this.$extend = this.$element.find('.js-timeout-extend');\n this.$countdown = this.$element.find('.js-timeout-countdown');\n\n return this;\n }\n\n /**\n * Update the DOM to reflect the current state of the model\n *\n * @method layout\n * @returns {TimeoutView}\n */\n layout() {\n this.isActive = false;\n\n setTimeout(() => {\n this._modal = new ModalView(this.$element);\n this.isActive = true;\n this.countdown(CONFIG.EXTEND_WINDOW_SECONDS);\n }, this.secondsToMiliseconds(this.timeoutLength));\n\n return this;\n }\n\n /**\n * Disable, update the DOM, and then re-enable to create handlers for new DOM\n *\n * @method render\n */\n render() {\n this.disable();\n this.layout();\n this.enable();\n }\n\n /**\n * Enables the view\n * Performs binding to handlers\n * Exits early if already enabled\n *\n * @method enable\n * @returns {TimeoutView}\n */\n enable() {\n if (this.isEnabled) {\n return this;\n }\n\n this.isEnabled = true;\n\n for (let i = 0; i < this.$extend.length; i++) {\n this.$extend[i].addEventListener('click', this.handleExtendClick);\n }\n\n return this;\n }\n\n /**\n * Disables the view\n * Tears down any event binding to handlers\n * Exits early if it is already disabled\n *\n * @method disable\n * @returns {TimeoutView}\n */\n disable() {\n if (!this.isEnabled) {\n return this;\n }\n\n for (let i = 0; i < this.$extend.length; i++) {\n this.$extend[i].removeEventListener('click', this.handleExtendClick);\n }\n\n this.isEnabled = false;\n\n return this;\n }\n\n /**\n * Destroys the view\n * Tears down any events, handlers, elements\n * Should be called when the object should be left unused\n *\n * @method destroy\n * @returns {TimeoutView}\n */\n destroy() {\n this.disable();\n\n return this;\n }\n\n /**\n * Handles extend time click event\n *\n * @returns {TimeoutView}\n */\n onExtendClick() {\n this.render();\n return this;\n }\n\n /**\n * Visual display of seconds remaining to extend timeout\n *\n * @param {number} seconds\n */\n countdown(seconds) {\n this.$countdown.text(seconds);\n setTimeout(() => {\n if ((seconds > 0) && this.isActive) {\n this.countdown(seconds - 1);\n } else if (seconds <= 0) {\n this.logOut();\n }\n }, 1000);\n }\n\n /**\n * Send user to logout URL\n */\n logOut() {\n window.location = CONFIG.LOGOUT_URL;\n }\n\n /**\n * Convert seconds to ms\n *\n * @param num\n * @returns {number}\n */\n secondsToMiliseconds(num) {\n return num * 1000;\n }\n}\n"]}