{"version":3,"sources":["webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/@fullcalendar/core/main.esm.js","webpack:///./node_modules/tslib/tslib.es6.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/@microsoft/applicationinsights-shims/dist-esm/Constants.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/bootstrap-sweetalert/dist/sweetalert.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_typed-array.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/@microsoft/applicationinsights-shims/dist-esm/Helpers.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_typed.js","webpack:///./node_modules/qs/lib/index.js","webpack:///./node_modules/uuid/v1.js","webpack:///./node_modules/@fullcalendar/daygrid/main.esm.js","webpack:///./node_modules/@fullcalendar/moment/main.esm.js","webpack:///./node_modules/@fullcalendar/core/locales/en-gb.js","webpack:///./node_modules/@fullcalendar/core/locales/nl.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/core-js/modules/_math-expm1.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_typed-buffer.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/qs/lib/formats.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_parse-int.js","webpack:///./node_modules/core-js/modules/_parse-float.js","webpack:///./node_modules/core-js/modules/_a-number-value.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/core-js/modules/_math-log1p.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/qs/lib/utils.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/dropzone/dist/dropzone.js","webpack:///./node_modules/@babel/polyfill/lib/index.js","webpack:///./node_modules/@babel/polyfill/lib/noConflict.js","webpack:///./node_modules/core-js/es6/index.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/es6.object.create.js","webpack:///./node_modules/core-js/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/modules/es6.object.define-properties.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es6.object.freeze.js","webpack:///./node_modules/core-js/modules/es6.object.seal.js","webpack:///./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es6.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es6.object.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/es6.function.bind.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.function.has-instance.js","webpack:///./node_modules/core-js/modules/es6.parse-int.js","webpack:///./node_modules/core-js/modules/es6.parse-float.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/es6.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es6.number.to-precision.js","webpack:///./node_modules/core-js/modules/es6.number.epsilon.js","webpack:///./node_modules/core-js/modules/es6.number.is-finite.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.parse-float.js","webpack:///./node_modules/core-js/modules/es6.number.parse-int.js","webpack:///./node_modules/core-js/modules/es6.math.acosh.js","webpack:///./node_modules/core-js/modules/es6.math.asinh.js","webpack:///./node_modules/core-js/modules/es6.math.atanh.js","webpack:///./node_modules/core-js/modules/es6.math.cbrt.js","webpack:///./node_modules/core-js/modules/es6.math.clz32.js","webpack:///./node_modules/core-js/modules/es6.math.cosh.js","webpack:///./node_modules/core-js/modules/es6.math.expm1.js","webpack:///./node_modules/core-js/modules/es6.math.fround.js","webpack:///./node_modules/core-js/modules/_math-fround.js","webpack:///./node_modules/core-js/modules/es6.math.hypot.js","webpack:///./node_modules/core-js/modules/es6.math.imul.js","webpack:///./node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/core-js/modules/es6.math.log1p.js","webpack:///./node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/core-js/modules/es6.math.sinh.js","webpack:///./node_modules/core-js/modules/es6.math.tanh.js","webpack:///./node_modules/core-js/modules/es6.math.trunc.js","webpack:///./node_modules/core-js/modules/es6.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es6.string.raw.js","webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/es6.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/core-js/modules/es6.string.big.js","webpack:///./node_modules/core-js/modules/es6.string.blink.js","webpack:///./node_modules/core-js/modules/es6.string.bold.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/es6.string.fontcolor.js","webpack:///./node_modules/core-js/modules/es6.string.fontsize.js","webpack:///./node_modules/core-js/modules/es6.string.italics.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/core-js/modules/es6.string.small.js","webpack:///./node_modules/core-js/modules/es6.string.strike.js","webpack:///./node_modules/core-js/modules/es6.string.sub.js","webpack:///./node_modules/core-js/modules/es6.string.sup.js","webpack:///./node_modules/core-js/modules/es6.date.now.js","webpack:///./node_modules/core-js/modules/es6.date.to-json.js","webpack:///./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack:///./node_modules/core-js/modules/_date-to-iso-string.js","webpack:///./node_modules/core-js/modules/es6.date.to-string.js","webpack:///./node_modules/core-js/modules/es6.date.to-primitive.js","webpack:///./node_modules/core-js/modules/_date-to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.array.of.js","webpack:///./node_modules/core-js/modules/es6.array.join.js","webpack:///./node_modules/core-js/modules/es6.array.slice.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/modules/es6.array.for-each.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/modules/es6.array.some.js","webpack:///./node_modules/core-js/modules/es6.array.every.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/core-js/modules/es6.array.reduce-right.js","webpack:///./node_modules/core-js/modules/es6.array.index-of.js","webpack:///./node_modules/core-js/modules/es6.array.last-index-of.js","webpack:///./node_modules/core-js/modules/es6.array.copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/es6.array.species.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack:///./node_modules/core-js/modules/es6.typed.data-view.js","webpack:///./node_modules/core-js/modules/es6.typed.int8-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.float64-array.js","webpack:///./node_modules/core-js/modules/es6.reflect.apply.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.has.js","webpack:///./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.reflect.set.js","webpack:///./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/fn/array/includes.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/fn/array/flat-map.js","webpack:///./node_modules/core-js/modules/es7.array.flat-map.js","webpack:///./node_modules/core-js/modules/_flatten-into-array.js","webpack:///./node_modules/core-js/fn/string/pad-start.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/fn/string/pad-end.js","webpack:///./node_modules/core-js/modules/es7.string.pad-end.js","webpack:///./node_modules/core-js/fn/string/trim-start.js","webpack:///./node_modules/core-js/modules/es7.string.trim-left.js","webpack:///./node_modules/core-js/fn/string/trim-end.js","webpack:///./node_modules/core-js/modules/es7.string.trim-right.js","webpack:///./node_modules/core-js/fn/symbol/async-iterator.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/fn/object/get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/fn/object/values.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/fn/object/entries.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/core-js/fn/promise/finally.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/web/index.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/core-js/library/fn/global.js","webpack:///./node_modules/core-js/library/modules/es7.global.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/angularjs-toaster/index.js","webpack:///./node_modules/angularjs-toaster/toaster.js","webpack:///./node_modules/angular-animate/index.js","webpack:///./node_modules/angular-animate/angular-animate.js","webpack:///./node_modules/qs/lib/stringify.js","webpack:///./node_modules/side-channel/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/object-inspect/index.js","webpack:///./node_modules/qs/lib/parse.js","webpack:///./node_modules/uuid/lib/rng-browser.js","webpack:///./node_modules/uuid/lib/bytesToUuid.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/@microsoft/applicationinsights-shims/dist-esm/TsLibShims.js","webpack:///./node_modules/@microsoft/dynamicproto-js/lib/dist/esm/dynamicproto-js.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/LoggingEnums.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/HelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/EnvUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DbgExtensionUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/DiagnosticLogger.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/PerfManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryPluginChain.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ProcessTelemetryContext.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseTelemetryPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/TelemetryHelpers.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/ChannelController.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CookieMgr.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/BaseCore.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK.Enums/EventsDiscardedReason.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/NotificationManager.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/AppInsightsCore.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/RandomHelper.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/CoreUtils.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataSanitizer.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPointType.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Constants.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/TelemetryItemCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/EventData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Event.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Trace.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MessageData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/MetricData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/DataPoint.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/DataPoint.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Metric.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/HelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageView.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/PageViewPerformance.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/PageViewPerfData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/StackFrame.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionDetails.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Exception.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/SeverityLevel.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ExceptionData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Enums.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/StorageHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/DomHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/RequestResponseHeaders.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/UrlHelperFuncs.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Util.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/RemoteDependencyData.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","webpack:///./node_modules/@microsoft/applicationinsights-analytics-js/dist-esm/JavaScriptSDK/ApplicationInsights.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/applicationinsights-common.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/SendBuffer.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/ContextTagKeys.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/PartAExtensions.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Envelope.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Base.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/Contracts/Generated/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Telemetry/Common/Data.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/EnvelopeCreator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Serializer.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Sender.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/Offline.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","webpack:///./node_modules/@microsoft/applicationinsights-channel-js/dist-esm/TelemetryProcessors/Sample.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Session.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Application.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Device.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Internal.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/User.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/Location.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/Context/TelemetryTrace.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/TelemetryContext.js","webpack:///./node_modules/@microsoft/applicationinsights-properties-js/dist-esm/PropertiesPlugin.js","webpack:///./node_modules/@microsoft/applicationinsights-core-js/dist-esm/JavaScriptSDK/InstrumentHooks.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajaxRecord.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/TraceParent.js","webpack:///./node_modules/@microsoft/applicationinsights-dependencies-js/dist-esm/ajax.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/ConnectionStringParser.js","webpack:///./node_modules/@microsoft/applicationinsights-common/dist-esm/Interfaces/IConfig.js","webpack:///./node_modules/@microsoft/applicationinsights-web/dist-esm/Initialization.js"],"names":["module","exports","hookCallback","some","hooks","apply","arguments","isArray","input","Array","Object","prototype","toString","call","isObject","hasOwnProp","a","b","hasOwnProperty","isObjectEmpty","obj","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","i","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","m","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","t","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","key","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","name","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","value","isFinite","makeGetSet","keepTime","set$1","get","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","s","indexOf","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","d","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","n","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","l","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","property","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","Symbol","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","elementPropHash","className","colSpan","rowSpan","containerTagHash","createElement","tagName","attrs","content","el","document","attrName","applyStyle","setAttribute","innerHTML","appendToElement","htmlToElement","html","trim","container","computeContainerTag","firstChild","htmlToElements","childNodes","htmlToNodeList","normalizeContent","appendChild","prependToElement","parent","newEls","afterEl","insertBefore","insertAfterElement","refEl","nextSibling","parentNode","Node","removeElement","removeChild","matchesMethod","Element","matchesSelector","msMatchesSelector","closestMethod","closest","selector","documentElement","contains","elementMatches","parentElement","nodeType","elementClosest","findElements","containers","HTMLElement","allMatches","querySelectorAll","findChildren","parents","children","childNode","PIXEL_PROP_RE","props","propName","applyStyleProp","style","isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","outerEl","position","top","left","border","padding","body","getBoundingClientRect","computeIsRtlScrollbarOnLeft","sanitizeScrollbarWidth","width","computeEdges","getPadding","computedStyle","window","getComputedStyle","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","scrollbarLeftRight","offsetWidth","clientWidth","scrollbarBottom","offsetHeight","clientHeight","scrollbarLeft","scrollbarRight","paddingLeft","paddingRight","paddingTop","paddingBottom","computeRect","rect","pageXOffset","pageYOffset","right","bottom","computeHeightAndMargins","height","computeVMargins","computed","marginTop","marginBottom","computeClippingRect","overflowY","overflowX","getClippingParents","goWithinPadding","outerRect","edges","computeInnerRect","reduce","rect0","rect1","rect2","intersectRects","listenBySelector","eventType","handler","realHandler","ev","matchedChild","target","addEventListener","removeEventListener","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addDays","addMs","diffWeeks","m0","m1","diffDays","diffWholeDays","timeAsMs","startOfDay","weekOfGivenYear","marker","firstWeekStart","dayStart","dateToLocalArray","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","getUTCHours","getUTCSeconds","getUTCMilliseconds","isValidDate","PARSE_RE","parseString","normalizeObject","getWeeksFromInput","durationsEqual","d0","d1","asRoughDays","dur","asRoughMs","greatestDurationDenominator","dontReturnWeeks","compensateScroll","rowEl","scrollbarWidths","marginLeft","marginRight","uncompensateScroll","distributeHeight","els","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","minOffset","naturalHeight","naturalOffset","newHeight","matchCellWidths","maxInnerWidth","innerEl","innerWidth_1","subtractInnerElHeight","reflowStyleProps","resetStyleProps","compareByFieldSpec","obj0","obj1","fieldSpec","localeCompare","flexibleCompare","order","capitaliseFirstLetter","str","padStart","isInt","applyAll","functions","thisObj","firstDefined","debounce","wait","timeout","context","timestamp","later","last","setTimeout","refineProps","rawProps","processors","leftoverProps","refined","processor","Number","Boolean","computeAlignedDayRange","timedRange","dayCnt","start","end","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","diffDates","date0","date1","dateEnv","largeUnit","diffWholeYears","diffWholeMonths","m0day","m1day","extendStatics","setPrototypeOf","__proto__","p","__extends","__","constructor","create","__assign","expandRecurringRanges","eventDef","framingRange","recurringTypes","markers","recurringDef","typeId","expand","typeData","allDay","mergeProps","propObjs","complexProps","complexObjs","dest","unshift","filterHash","hash","filtered","mapHash","newHash","arrayToHash","a_1","hashValuesToArray","isPropsEqual","parseEvents","rawEvents","sourceId","allowOpenRange","eventStore","defs","instances","rawEvents_1","tuple","parseEvent","eventTupleToStore","def","defId","instance","instanceId","expandRecurring","defaultAllDayEventDuration","defaultTimedEventDuration","starts_1","pluginSystem","createEventInstance","getRelevantEvents","def_1","newStore","filterEventStoreDefs","lookDef","def0","def1","groupId","transformEachRawEvent","refinedEvents","rawEvents_2","rawEvent","refinedEvent","mergeEventStores","store0","store1","filterFunc","parseRange","createMarker","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","range","isArraysEqual","a0","a1","memoize","workerFunc","EXTENDED_SETTINGS_AND_SEVERITIES","omitZeroMinute","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","name_1","buildFormattingFunc","formatRange","diffSeverity","ca","getMarkerYear","getMarkerMonth","getMarkerDay","computeMarkerDiffSeverity","calendarSystem","biggestUnitForPartial","full0","full1","partialFormattingFunc","options","biggestUnit","partialOptions","name_2","computePartialFormattingOptions","partial0","partial1","insertion","i0","found0","before0","after0","i1","found1","before1","after1","before","after","findCommonInsertion","getLargestUnit","standardDatePropCnt","formatTimeZoneOffset","timeZoneOffset","num","weekLabel","display","simpleNumberFormat","isRtl","reverse","formatWeekNumber","computeWeekNumber","sanitizeSettings","timeZone","zeroFormat","normalFormat","Intl","DateTimeFormat","codes","zeroProps","tzoStr","replaced","injectTzoStr","postProcess","buildNativeFormattingFunc","CmdFormatter","cmdStr","cmdFormatter","createVerboseFormattingArg","FuncFormatter","createFormatter","defaultSeparator","doIso","mins","startInfo","expandZonedMarker","localeCodes","dateInfo","markerToArray","EventSourceApi","internalEventSource","remove","dispatch","type","refetch","sourceIds","defineProperty","publicId","enumerable","configurable","meta","url","EventApi","_def","_instance","setProp","_b","DATE_PROPS","NON_DATE_PROPS","mutate","standardProps","UNSCOPED_EVENT_UI_PROPS","ui","backgroundColor","borderColor","startEditable","durationEditable","setExtendedProp","extendedProps","setStart","startInput","startDelta","granularity","maintainDuration","datesDelta","setEnd","endInput","endDelta","hasEnd","setDates","instanceRange","moveStart","deltaInput","delta","moveEnd","moveDates","setAllDay","opt","formatInput","formatter","forcedStartTzo","forcedEndTzo","forcedTzo","mutation","fromApi","state","eventSources","title","rendering","constraints","overlap","allows","textColor","classNames","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","compileEventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRanges_1","invertedRange","invertedRanges_2","bg","fg","filterSegsViaEls","segs","isMirror","view","hasPublicHandlers","seg","custom","publiclyTrigger","event","eventRange","segs_1","setElSeg","fcSeg","getElSeg","eventDefs","compileEventUi","uis","combineEventUis","triggerRenderedSegs","isMirrors","segs_2","publiclyTriggerAfterSizing","eventSourceLoadingLevel","afterSizingTriggers","_eventsPositioned","triggerWillRemoveSegs","segs_3","trigger","segs_4","computeEventDraggable","eventUi","transformers","isDraggableTransformers","transformers_1","transformer","computeEventStartResizable","eventResizableFromStart","computeEventEndResizable","applyMutationToEventDef","eventConfig","appliers","copy","appliers_1","applier","applyMutationToEventInstance","eventInstance","forceAllDay","clearEnd","getDefaultEventEnd","reduceEventStore","action","dateProfile","eventSource","fetchId","fetchRange","latestFetchId","subset","calEachTransform","sourceEachTransform","eventDataTransform","transformRawEvents","excludeEventsBySourceId","receiveRawEvents","expandRange","addEvent","activeRange","oldDateEnv","newDateEnv","canComputeOffset","rezoneDates","relevant","eventConfigBase","eventConfigs","eventDefMutationAppliers","applyMutationToEventStore","applyMutationToRelated","excludeInstances","removals","isNewPropsValid","newProps","businessHours","dateSelection","eventSelection","eventDrag","eventResize","isPropsValid","dateSpanMeta","filterConfig","interaction","subjectEventStore","mutatedEvents","subjectDefs","subjectInstances","subjectConfigs","isEvent","selectionConfig","otherEventStore","affectedEvents","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","overlapFunc","otherInstanceId","otherInstance","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","eventApi","buildDateSpanApi","isInteractionPropsValid","relevantEventStore","relevantDefs","relevantInstances","selection","selectionRange","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","isDateSelectionPropsValid","businessHoursUnexpanded","constraints_1","anyRangesContainRange","constraintToRanges","constraint","eventStoreToRanges","outerRanges","outerRanges_1","htmlEscape","cssToStr","cssProps","statements","parseClassName","raw","editable","allow","color","processUnscopedUiProps","leftovers","normalizeConstraint","processScopedUiProps","rawScoped","rawUnscoped","wasFound","scopedKey","EMPTY_EVENT_UI","combineTwoEventUis","item0","item1","id","uid","allDayDefault","computeIsAllDayDefault","leftovers0","recurringRes","eventInput","localLeftovers","parsed","parse","allDayGuess","parseRecurring","parseEventDef","leftovers1","singleRes","startMeta","endMeta","pluckDateProps","startMarker","endMarker","createMarkerMeta","isTimeUnspecified","parseSingle","preLeftovers","pluckNonDateProps","eventDefParsers","newLeftovers","eventDefParser","freeze","DEF_DEFAULTS","startTime","endTime","daysOfWeek","parseBusinessHours","rawDefs","rawDef","refineInputs","memoizeRendering","renderFunc","unrenderFunc","dependencies","thisContext","prevArgs","dependents","unrender","dependents_1","dependencies_1","EMPTY_EVENT_STORE","Splitter","getKeysForEventDefs","_getKeysForEventDefs","splitDateSelection","_splitDateSpan","splitEventStore","_splitEventStore","splitIndividualUi","_splitIndividualUi","splitEventDrag","_splitInteraction","splitEventResize","eventUiBuilders","splitProps","_this","keyInfos","getKeyInfo","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","info","buildEventUiForKey","keyInfo","buildEventUi","dateSpan","dateSpans","keys_1","getKeysForDateSpan","getKeysForEventDef","splitStores","_c","splitHashes","splitStates","affectedStores_1","mutatedKeysByDefId","mutatedStores_1","populate","origSeg","allUi","eventUiForKey","baseParts","stuff","buildGotoAnchorHtml","allOptions","gotoOptions","innerHtml","forceOff","finalOptions","formatIso","omitTime","attrsToStr","navLinks","JSON","stringify","getDayClasses","noThemeHighlight","todayStart","todayEnd","theme","classes","monthMode","currentRange","getNow","getClass","EmitterMixin","_super","on","addToHash","_handlers","one","_oneHandlers","off","removeFromHash","triggerWith","hasHandlers","Mixin","mixInto","destClass","mixIntoObj","destObj","mixOver","PositionCache","originEl","isHorizontal","isVertical","build","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftToIndex","leftPosition","topToIndex","topPosition","getWidth","leftIndex","getHeight","topIndex","ScrollController","getMaxScrollTop","getScrollHeight","getClientHeight","getMaxScrollLeft","getScrollWidth","getClientWidth","canScrollVertically","canScrollHorizontally","canScrollUp","getScrollTop","canScrollDown","canScrollLeft","getScrollLeft","canScrollRight","ElementScrollController","scrollTop","scrollLeft","setScrollTop","setScrollLeft","scrollWidth","scrollHeight","ScrollComponent","WindowScrollController","scroll","applyOverflow","clear","setHeight","destroy","lockOverflow","getScrollbarWidths","Theme","calendarOptions","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","iconClasses","applyIconOverridePrefix","iconOverridePrefix","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","guid","ComponentContext","eventOrderSpecs","specs","substring","parseFieldSpecs","eventOrder","Component","everRendered","addEqualityFuncs","newFuncs","equalityFuncs","receiveProps","receiveContext","oldProps","comboProps","anyChanges","recycleProps","beforeUpdate","render","afterUpdate","oldContext","firstContext","DateComponent","buildPositionCaches","queryHit","positionLeft","positionTop","elWidth","elHeight","isInteractionValid","validRange","isDateSelectionValid","isValidSegDownEl","isPopover","isInPopover","isValidDateDownEl","segEl","fgSegSelector","classList","bgSegSelector","uid$1","createPlugin","deps","reducers","eventDragMutationMassagers","dateSelectionTransformers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","externalDefTransforms","eventResizeJoinTransforms","viewContainerModifiers","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","eventSourceDefs","namedTimeZonedImpl","defaultView","elementDraggingImpl","optionChangeHandlers","PluginSystem","addedHash","plugin","dep","hooks0","hooks1","ArrayEventSourcePlugin","ignoreRange","parseMeta","events","fetch","success","FuncEventSourcePlugin","failure","isResolved","wrappedSuccess","wrappedFailure","then","unpromisify","bind","startStr","endStr","requestJson","method","params","successCallback","failureCallback","encodeParams","injectQueryStringParams","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","responseText","err","onerror","send","encodeURIComponent","JsonFeedEventSourcePlugin","extraParams","startParam","endParam","timeZoneParam","requestParams","customRequestParams","buildRequestParams","errorMessage","message","SimpleRecurrencePlugin","startRecur","endRecur","anyValid","clippedFramingRange","dowHash","dayMarker","instanceStarts","instanceStart","expandRanges","DefaultOptionChangeHandlers","deepEqual","handleEventSources","plugins","inputs","addPluginInputs","unfoundSources","newInputs","inputs_1","inputFound","_raw","splice","unfoundSources_1","unfoundSource","newInputs_1","newInput","addEventSource","globalDefaults","defaultRangeSeparator","titleRangeSeparator","forceEventDuration","columnHeader","aspectRatio","header","center","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","timeGridEventMinHeight","themeSystem","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventLimit","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","eventDragMinDistance","rtlDefaults","buttonIcons","prev","prevYear","nextYear","complexOptions","INTERNAL_PLUGINS","RAW_EN_LOCALE","code","buttonText","today","list","allDayText","eventLimitText","noEventsMessage","parseRawLocales","explicitRawLocales","defaultCode","globalArray","globalObject","allRawLocales","rawLocaleMap","en","allRawLocales_1","rawLocale","buildLocale","inputSingular","available","codeArg","simpleId","queryRawLocale","parseLocale","queryLocale","merged","NumberFormat","OptionsManager","overrides","dynamicOverrides","compute","updates","isDynamic","overrideHash","removals_1","localeDefaults","dirDefaults","calendarSystemClassMap","theClass","GregorianCalendarSystem","arrayToMarker","ISO_RE","DateEnv","settings","isNamedTimeZone","namedTimeZoneImpl","createCalendarSystem","weekDow","weekDoy","firstDay","weekNumberFunc","createNowMarker","timestampToMarker","getYear","addYears","addMonths","greatestWholeUnit","diffWholeWeeks","diffHours","diffMinutes","diffSeconds","countDurationsBetween","asRoughMonths","startOfYear","startOfMonth","startOfWeek","startOfHour","startOfMinute","startOfSecond","nextW","dateOptions","offsetForMarker","isEndExclusive","extraOptions","omitTimeZoneOffset","stripZeroTime","buildIsoString","timestampToArray","offsetForArray","SIMPLE_SOURCE_PROPS","uid$2","doesSourceNeedRange","sourceDefId","parseEventSource","parseEventSourceProps","isFetching","reduceEventSources","eventSourceHash","sources","sources_1","fetchDirtySources","addSources","fetchSourcesByIds","excludeStaticSources","sourceHash","receiveResponse","uid$3","isSourceDirty","prevSources","sourceIdHash","nextSources","fetchSource","sourceDef","calSuccessRes","sourceSuccessRes","calSuccess","error","callFailure","DateProfileGenerator","viewSpec","initHiddenDays","buildPrev","currentDateProfile","prevDate","currentRangeUnit","dateIncrement","buildNext","nextDate","forceToValid","currentInfo","isRangeAllDay","renderRange","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","getRangeOption","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","class","usesMinMaxTime","dateIncrementInput","dateIncrementDuration","alignment","dateAlignment","computeRes","isHiddenDay","skipHiddenDays","customAlignment","runningCount","visibleRange","fallback","otherArgs","hiddenDays","isHiddenDayHash","inc","isExclusive","viewType","currentViewType","reduceViewType","newDateProfile","dateProfileGenerators","dateMarker","generator","p0","reduceDateProfile","nextState","reduceCurrentDate","reduceDateSelection","reduceSelectedEvent","reduceEventDrag","reduceEventResize","computeLoadingLevel","loadingLevel","reducerFunc","newDate","currentSelection","currentInstanceId","eventInstanceId","currentDrag","newDrag","currentResize","newResize","cnt","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","fabricateEventRange","ensureViewDef","defaultConfigs","overrideConfigs","viewDef","defaultConfig","overrideConfig","queryProp","superType","findViewNameBySubclass","superDef","buildViewDef","viewSubclass","configs","superProto","getPrototypeOf","parseViewConfigs","parseViewConfig","VIEW_DEF_PROPS","buildViewSpecs","defaultInputs","optionsManager","compileViewDefs","durationInput","singleUnit","singleUnitOverrides","denom","queryButtonText","buttonTextMap","buttonTextKey","buttonTextOverride","buttonTextDefault","buildViewSpec","Toolbar","extraClassName","_renderLayout","renderLayout","unrenderLayout","_updateTitle","updateTitle","_updateActiveButton","updateActiveButton","_updateToday","updateToday","_updatePrev","updatePrev","_updateNext","updateNext","layout","activeButton","isTodayEnabled","isPrevEnabled","isNextEnabled","viewsWithButtons","renderSection","buttonStr","viewSpecs","sectionEl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","click","text","changeView","buttonGroupClassName","toggleButtonEnabled","titleEl","innerText","bool","disabled","CalendarComponent","elClassNames","renderSkeleton","_renderSkeleton","_unrenderSkeleton","renderToolbars","_renderToolbars","_unrenderToolbars","buildComponentContext","buildViewPropTransformers","computeTitle","freezeHeight","renderView","updateSize","thawHeight","footer","updateElClassNames","contentEl","modifyViewContainer","savedScroll","queryScroll","removeElClassNames","headerLayout","footerLayout","dateProfileGenerator","todayInfo","prevInfo","nextInfo","toolbarProps","addScroll","viewProps","transform","isResize","isHeightAuto","computeHeightVars","viewHeight","updateNowIndicator","popScroll","heightInput","contentHeightInput","queryToolbarsHeight","parentEl","viewOptions","titleFormat","computeTitleFormat","theClasses","Interaction","component","interactionSettingsStore","EventClicking","handleSegClick","hasUrlContainer","querySelector","href","jsEvent","defaultPrevented","location","EventHovering","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","onMouseEnter","onMouseLeave","currentMatchedChild","removeHoverListeners","realOnMouseLeave_1","publicEvName","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","button","buttonActive","popoverHeader","popoverContent","headerRow","dayRow","listView","close","Calendar","equalityFunc","cachedRes","buildComponentContext$1","buildDateEnv","buildTheme","buildEventUiSingleBase","_buildEventUiSingleBase","buildSelectionConfig","_buildSelectionConfig","buildEventUiBySource","newRes","buildEventUiBases","interactionsStore","actionQueue","isReducing","needsRerender","isRendering","renderingPauseDepth","buildDelayedRerender","isViewUpdated","isDatesUpdated","isEventsUpdated","handleOptions","hydrate","calendarInteractionClass","pluginInputs","pluginDefs","pluginInputs_1","pluginInput","globalName","default","refinePluginDefs","pluginDefs_1","pluginDef","requestRerender","renderableEventStore","bindHandlers","executeRender","unbindHandlers","removeNavLinkListener","anchorEl","getAttribute","customAction","viewOpt","zoomTo","windowResizeProxy","windowResize","buildInitialState","rawSources","singleRawSource","rawSources_1","batchRendering","getInitialDate","oldState","newState","delayedRerender","tryRerender","renderComponent","eventUiSingleBase","eventUiBySource","releaseAfterSizingTriggers","setOption","mutateOptions","getOption","viewOpts","changeHandlers","normalUpdates","specialUpdates","isTimeZoneDirty","isSizeDirty","anyDifficultOptions","name_3","pluginHooks","rerenderDelay","availableRawLocales","dateProfileGeneratorClass","getAvailableLocaleCodes","rawOpts","eventEditable","optHandler","name_4","isValidViewType","dateOrRange","unselect","spec","getUnitViewSpec","viewTypes","defaultDateInput","gotoDate","zonedDateInput","incrementDate","formatDate","isHandlingWindowResize","registerInteractiveComponent","settingsInput","useEventCenter","parseInteractionSettings","interactions","interactionClass","unregisterInteractiveComponent","select","dateOrObj","endDate","triggerDateSelect","pev","triggerDateUnselect","origEvent","triggerDateClick","dayEl","buildDatePointApi","dateStr","sourceInput","sourceApi","getEventSourceById","getEventById","getEvents","eventApis","removeAllEvents","rerenderEvents","getEventSources","sourceApis","internalId","removeAllEventSources","refetchEvents","scrollToTime","timeInput","scrollToDuration","View","renderDatesMem","renderDatesWrap","unrenderDatesWrap","renderBusinessHoursMem","renderBusinessHours","unrenderBusinessHours","renderDateSelectionMem","renderDateSelectionWrap","unrenderDateSelectionWrap","renderEventsMem","renderEvents","unrenderEvents","renderEventSelectionMem","renderEventSelectionWrap","unrenderEventSelectionWrap","renderEventDragMem","renderEventDragWrap","unrenderEventDragWrap","renderEventResizeMem","renderEventResizeWrap","unrenderEventResizeWrap","initialize","isAuto","updateBaseSize","renderDates","stopNowIndicator","unrenderDates","renderDateSelection","unrenderDateSelection","sliceEvents","renderEventSelection","unrenderEventSelection","renderEventDrag","unrenderEventDrag","renderEventResize","unrenderEventResize","startNowIndicator","update","delay","nowIndicator","initialNowDate","getNowIndicatorUnit","initialNowQueriedMs","nowIndicatorTimeoutID","nowIndicatorIntervalID","setInterval","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearTimeout","clearInterval","isForced","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeDateScroll","applyDateScroll","FgEventRenderer","renderSegs","mirrorInfo","rangeUpdated","renderSegEls","attachSegs","_segs","detachSegs","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","renderSegHtml","getSegClasses","isDraggable","isResizable","isDragging","isResizing","getTimeText","displayEnd","_getTimeText","getSkinCss","sortEventSegs","objs","buildSegCompareObj","fieldSpecs","cmp","compareByFieldSpecs","_seg","computeSizes","force","computeSegSizes","assignSizes","assignSegSizes","hideByHash","visibility","showByHash","selectByInstanceId","unselectByInstanceId","FillRenderer","fillSegTag","dirtySizeFlags","containerElsByType","segsByType","getSegsByType","renderedSegs","containerEls","css","ElementDragging","emitter","setMirrorIsVisible","setMirrorNeedsRevert","setAutoScrollEnabled","renderDateCell","datesRepDistinctDays","colCnt","colHeadFormat","colspan","otherAttrs","isDateValid","columnHeaderHtml","columnHeaderText","DayHeader","renderIntroHtml","columnHeaderFormat","computeFallbackHeaderFormat","dates_1","thead","DaySeries","indices","dayIndex","sliceRange","firstIndex","getDateDayIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTable","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","nextIndex","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","sliceProps","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","sliceNowDate","computeActiveRange","rangeRes","sliceEventRanges","affectedInstances","sourceSeg","eventRanges","eventRanges_1","sliceEventRange","isComponentAllDay","__awaiter","thisArg","_arguments","P","Promise","resolve","reject","fulfilled","step","rejected","done","__generator","f","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","__spreadArrays","il","r","jl","global","core","hide","redefine","ctx","$export","own","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","expProto","U","R","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strShimHasOwnProperty","strDefault","ObjClass","ObjProto","ObjAssign","ObjCreate","ObjDefineProperty","ObjHasOwnProperty","self","__g","it","1","require","allowOutsideClick","showConfirmButton","showCancelButton","closeOnConfirm","closeOnCancel","confirmButtonText","confirmButtonClass","cancelButtonText","cancelButtonClass","containerClass","titleClass","textClass","imageUrl","imageSize","timer","customClass","animation","allowEscapeKey","inputType","inputPlaceholder","inputValue","showLoaderOnConfirm","2","handleCancel","handleConfirm","handleButton","_handleDom","modal","callbackValue","hasClass","doneFunction","sweetAlert","disableButtons","functionAsStr","normalColor","srcElement","targetedConfirm","targetedOverlay","modalIsVisible","doneFunctionExists","confirmButtonColor","colorLuminance","clickedOnModal","clickedOnModalChild","isDescendant","3","elem","_show","opacity","_hide","addClass","removeClass","newClass","escapeHtml","div","createTextNode","show","elems","child","node","getTopMargin","getPropertyValue","currentStyle","fadeIn","interval","tick","fadeOut","fireClick","MouseEvent","mevt","bubbles","cancelable","dispatchEvent","createEvent","evt","initEvent","createEventObject","fireEvent","onclick","stopEventPropagation","stopPropagation","preventDefault","cancelBubble","4","_handleSwalDom","keyCode","which","$okButton","$cancelButton","$modalButtons","$targetElement","btnIndex","focus","setFocusStyle","5","fixVerticalPosition","resetInputError","resetInput","openModal","getInput","getOverlay","getModal","sweetAlertInitialize","_defaultParams2","_interopRequireDefault","_injectedHtml2","__esModule","sweetWrap","$modal","$errorIcon","$errorContainer","previousActiveElement","activeElement","timerCallback","$input","6","7","_typeof","_utils","alertTypes","$title","$text","$cancelBtn","$confirmBtn","isIE8","_ret","validType","logStr","$icon","swal","$customIcon","backgroundImage","_imgWidth","_imgHeight","dimensions","imgWidth","imgHeight","hasDoneFunction","8","attachEvent","log","9","previousWindowKeyDown","lastFocusedButton","_swal","_handleClick","_handleKey2","_setParams2","customizations","argumentOrDefault","customName","$buttons","buttonEvents","onButtonEvent","evtIndex","btnEvt","onkeydown","onKeyEvent","onfocus","enableButtons","setDefaults","userParams","$successIcon","$warningIcon","showInputError","$confirmButton","store","USE_SYMBOL","toInteger","__e","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","defined","has","SRC","$toString","TPL","inspectSource","safe","fails","quot","createHTML","tag","attribute","NAME","createDesc","object","IObject","aFunction","pIE","toIObject","gOPD","getOwnPropertyDescriptor","KEY","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","LIBRARY","$typed","$buffer","anInstance","propertyDesc","redefineAll","toIndex","toAbsoluteIndex","classof","isArrayIter","gOPN","getIterFn","wks","createArrayMethod","createArrayIncludes","speciesConstructor","ArrayIterators","Iterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","RangeError","Uint8Array","ArrayProto","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayIndexOf","arrayValues","arrayKeys","arrayEntries","entries","arrayLastIndexOf","lastIndexOf","arrayReduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","ITERATOR","TAG","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","BYTES","validate","C","speciesFromList","fromList","addGetter","internal","$from","aLen","mapfn","mapping","iterFn","$of","TO_LOCALE_BUG","$toLocaleString","copyWithin","every","fill","find","predicate","findIndex","searchElement","includes","middle","comparefn","subarray","begin","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","src","$iterators","isTAIndex","$getDesc","$setDesc","desc","writable","$TypedArrayPrototype$","wrapper","CLAMPED","GETTER","SETTER","TypedArray","Base","TAC","FORCED","ABV","TypedArrayPrototype","addElement","$offset","$length","byteLength","klass","$len","iter","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","bitmap","px","random","$keys","enumBugKeys","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","Properties","hiddenKeys","ObjectProto","UNSCOPABLES","_t","stat","spaces","space","ltrim","rtrim","exporter","ALIAS","FORCE","DESCRIPTORS","SPECIES","Constructor","forbiddenField","getGlobal","globalThis","throwTypeError","objCreateFn","tmpFunc","cof","propertyIsEnumerable","ARG","T","tryGet","callee","D","mode","copyright","IS_INCLUDES","fromIndex","getOwnPropertySymbols","SAFE_CLOSING","riter","skipClosing","ignoreCase","multiline","unicode","sticky","builtinExec","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","arg2","forceStringMethod","strfn","rxfn","BREAK","RETURN","iterable","navigator","userAgent","forOf","setToStringTag","inheritIfRequired","methods","common","IS_WEAK","ADDER","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","getConstructor","setStrong","Typed","TypedArrayConstructors","_nodeId","_clockseq","rng","bytesToUuid","_lastMSecs","_lastNSecs","buf","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","DayGridDateProfileGenerator","endOfWeek","fixedWeekCount","Popover","isHidden","margin","documentMousedown","autoHide","elDims","origin","offsetParent","clippingRect","SimpleDayGridEventRenderer","timeText","titleHtml","isResizableFromStart","isResizableFromEnd","skinCss","timeHtml","DayGridEventRenderer","dayGrid","rowStructs","renderSegRows","rowEls","rowNode","tbodyEl","removeSegPopover","rowStruct","segRows","groupSegRows","renderSegRow","rowSegs","levelSegs","tr","td","segLevels","buildSegLevels","levelCnt","tbody","segMatrix","cellMatrix","loneCellMatrix","emptyCellsUntil","endCol","leftCol","rightCol","introHtml","renderProps","levels","isDaySegCollision","level","compareDaySegCols","otherSegs","otherSeg","DayGridMirrorRenderer","skeletonTopEl","skeletonTop","skeletonEl","DayGridFillRenderer","renderFillRow","trEl","startCol","getElementsByTagName","DayTile","eventRenderer","DayTileEventRenderer","renderFrame","_renderFrame","renderFgEvents","fgSegs","eventDragInstances","eventResizeInstances","segContainerEl","layer","dayTile","DayBgRow","renderHtml","cell","renderCellHtml","htmlAttrs","DAY_NUM_FORMAT","WEEK_NUM_FORMAT","DayGrid","bottomCoordPadding","isCellSizesDirty","fillRenderer","mirrorRenderer","renderCells","_renderCells","_unrenderCells","renderBgEvents","_renderEventDrag","_unrenderEventDrag","_renderEventResize","_unrenderEventResize","isRigid","segPopoverTile","updateSegPopoverTile","getCellRange","ownProps","renderDayRowHtml","cellEls","rowPositions","colPositions","getCellEl","bgRow","renderBgIntroHtml","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","cellWeekNumbersVisible","colWeekNumbersVisible","intro","renderNumberIntroHtml","renderNumberCellsHtml","htmls","renderNumberCellHtml","weekCalcFirstDow","isDayNumberVisible","buildColPositions","buildRowPositions","positionToHit","relativeRect","segPopover","limitRows","levelLimit","rowLevelLimit","unlimitRow","computeRowLevelLimit","limitRow","rowBottom","trEls","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","segMoreNodes","moreTd","moreWrap","moreLink","moreNodes","getCellSegs","renderMoreLink","moreEls","limitedEls","limitedEl","hiddenSegs","getMoreLinkText","clickOption","_col","moreEl","currentTarget","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","topEl","dayDate","dayRange","newSegs","startLevel","WEEK_NUM_FORMAT$1","AbstractDayGridView","processOptions","_processOptions","renderHeadIntroHtml","weekNumberStyleAttr","renderDayGridNumberIntroHtml","weekStart","renderDayGridBgIntroHtml","renderDayGridIntroHtml","weekNumbersWithinDays","renderSkeletonHtml","scroller","dayGridContainerEl","dayGridEl","weekNumberWidth","hasRigidRows","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","SimpleDayGrid","slicer","DayGridSlicer","dayTable","rawHit","DayGridView","buildDayTable","simpleDayGrid","main","dayGridDay","dayGridWeek","dayGridMonth","moment","cmd","parseCmdStr","head","tail","whole","startMom","convertToMoment","endMom","formatStart","formatEnd","startHead","startMiddle","startTail","endHead","endMiddle","endTail","startWhole","endWhole","createMomentFormatFunc","tz","is","shared","check","buggy","count","Infinity","$expm1","expm1","TO_STRING","charCodeAt","$iterCreate","BUGGY","returnThis","DEFAULT","IS_SET","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","isRegExp","searchString","MATCH","$defineProperty","getIteratorMethod","endPos","addToUnscopables","iterated","_k","Arguments","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","at","defer","channel","port","invoke","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","nextTick","port2","port1","onmessage","postMessage","importScripts","BaseBuffer","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","isLittleEndian","intIndex","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","needsEval","INTRINSICS","AggregateError","Atomics","BigInt","decodeURI","decodeURIComponent","encodeURI","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","Map","Proxy","ReferenceError","Reflect","Set","SharedArrayBuffer","Uint8ClampedArray","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","first","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","doEval","gen","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","implementation","percentTwenties","Format","formatters","RFC1738","RFC3986","wksExt","$Symbol","getKeys","defineProperties","windowNames","getWindowNames","gOPS","$assign","A","K","getSymbols","isEnum","factories","construct","partArgs","bound","un","$parseInt","$trim","hex","radix","$parseFloat","log1p","descriptor","original","memo","isRight","forced","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","isNode","newPromiseCapability","USE_NATIVE","promise","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_v","ok","_s","reaction","exited","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","onrejectionhandled","$reject","$resolve","executor","onFulfilled","onRejected","capability","$$reject","all","remaining","$index","alreadyCalled","race","PromiseCapability","$$resolve","promiseCapability","$iterDefine","SIZE","getEntry","entry","$has","uncaughtFrozenStore","UncaughtFrozenStore","findUncaughtFrozen","ufstore","ownKeys","repeat","maxLength","fillString","fillStr","intMaxLength","fillLen","stringFiller","isEntries","hexTable","arrayToObject","plainObjects","acc","combine","compact","refs","compacted","compactQueue","decode","decoder","charset","strWithoutPlus","unescape","encode","defaultEncoder","escape","$0","isBuffer","maybeMap","mapped","merge","allowPrototypes","mergeTarget","targetItem","webpackPolyfill","paths","symbolMap","0","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","_setPrototypeOf","_classCallCheck","_defineProperties","_createClass","protoProps","staticProps","Emitter","_callbacks","callbacks","_len","_key","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Dropzone","_Emitter","element","defaultOptions","previewTemplate","clickableElements","listeners","files","dropzone","elementOptions","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","uploadMultiple","chunking","renameFilename","renameFile","file","getExistingFallback","previewsContainer","getElement","clickable","getElements","init","subClass","superClass","_inherits","withCredentials","parallelUploads","forceChunking","chunkSize","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","maxFiles","headers","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictUploadCanceled","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","gb","mb","kb","chunk","dzuuid","upload","uuid","dzchunkindex","dztotalfilesize","size","dzchunksize","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","accept","chunksUploaded","messageElement","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","textContent","getFallbackForm","resize","srcX","srcY","srcWidth","srcHeight","srcRatio","trgRatio","trgWidth","trgHeight","transformFile","resizeImage","drop","dragstart","dragend","dragenter","dragover","dragleave","paste","reset","addedfile","_this2","previewElement","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","filesize","_removeLink","removeFileEvent","UPLOADING","confirm","removeFile","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","thumbnailElement","alt","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","nodeName","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_thumbnailQueue","_processingThumbnail","_len2","objects","_key2","_objects","accepted","getFilesWithStatus","QUEUED","ADDED","_this3","setupHiddenFileInput","hiddenFileInput","_iteratorNormalCompletion9","_didIteratorError9","_iteratorError9","_step9","_iterator9","addFile","URL","webkitURL","_iteratorNormalCompletion10","_didIteratorError10","_iteratorError10","_step10","_iterator10","eventName","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","noPropagation","dataTransfer","types","containsFiles","returnValue","efct","effectAllowed","dropEffect","clickableElement","elementInside","enable","disable","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","getActiveFiles","_iteratorNormalCompletion11","_didIteratorError11","_iteratorError11","_step11","_iterator11","existingFallback","form","fieldsString","_getParamName","fields","getFallback","elements","_iteratorNormalCompletion12","_didIteratorError12","_iteratorError12","_step12","_iterator12","_i2","_arr","elementListeners","_this4","removeEventListeners","cancelUpload","setupEventListeners","selectedSize","selectedUnit","getAcceptedFiles","items","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","_iteratorNormalCompletion13","_didIteratorError13","_iteratorError13","_step13","_iterator13","_this5","_iteratorNormalCompletion14","_didIteratorError14","_iteratorError14","_step14","_iterator14","isFile","getAsFile","isDirectory","_addFilesFromDirectory","directory","path","_this6","dirReader","createReader","errorHandler","methodName","readEntries","_iteratorNormalCompletion15","_didIteratorError15","_iteratorError15","_step15","_iterator15","fullPath","isValidFile","_this7","uuidv4","filename","_renameFile","_enqueueThumbnail","_errorProcessing","enqueueFile","_iteratorNormalCompletion16","_didIteratorError16","_iteratorError16","_step16","_iterator16","_this8","processQueue","_this9","_processThumbnailQueue","_this10","createThumbnail","without","cancelIfNecessary","_iteratorNormalCompletion17","_didIteratorError17","_iteratorError17","_step17","_iterator17","_this11","canvas","resizedDataURL","toDataURL","ExifRestore","restore","dataURL","dataURItoBlob","fixOrientation","_this12","fileReader","FileReader","createThumbnailFromUrl","readAsDataURL","mockFile","crossOrigin","_this13","resizeThumbnail","onDone","_this14","img","loadExif","EXIF","getData","getTag","orientation","resizeInfo","getContext","scale","rotate","PI","drawImageIOSFix","trgX","trgY","processingLength","queuedFiles","processFiles","processFile","_iteratorNormalCompletion18","_didIteratorError18","_iteratorError18","_step18","_iterator18","uploadFiles","groupedFiles","_getFilesWithXhr","_iteratorNormalCompletion19","_didIteratorError19","_iteratorError19","_step19","_iterator19","CANCELED","abort","_iteratorNormalCompletion20","_didIteratorError20","_iteratorError20","_step20","_iterator20","_groupedFile","option","_len3","_key3","_this15","_transformFiles","transformedFiles","transformedFile","chunked","_transformedFile","chunks","handleNextChunk","chunkIndex","startedChunkCount","dataBlock","webkitSlice","retries","_uploadData","finishedChunkUpload","allFinished","SUCCESS","_finished","dataBlocks","_i3","_this16","_iteratorNormalCompletion21","_didIteratorError21","_iteratorError21","_step21","_iterator21","resolveOption","_finishedUploading","ontimeout","_handleUploadError","onprogress","_updateFilesUploadProgress","headerName","headerValue","formData","FormData","additionalParams","_getChunk","append","_iteratorNormalCompletion22","_didIteratorError22","_iteratorError22","_step22","_iterator22","_file","_addFormElementData","submitRequest","_this17","doneCounter","_loop","_iteratorNormalCompletion23","_didIteratorError23","_iteratorError23","_step23","_iterator23","inputName","hasAttribute","_iteratorNormalCompletion24","_didIteratorError24","_iteratorError24","_step24","_iterator24","selected","checked","loaded","_iteratorNormalCompletion25","_didIteratorError25","_iteratorError25","_step25","_iterator25","_file2","_iteratorNormalCompletion26","_didIteratorError26","_iteratorError26","_step26","_iterator26","_file3","allFilesFinished","_iteratorNormalCompletion27","_didIteratorError27","_iteratorError27","_step27","_iterator27","_file4","_iteratorNormalCompletion28","_didIteratorError28","_iteratorError28","_step28","_iterator28","_file5","response","readyState","responseType","getResponseHeader","_iteratorNormalCompletion29","_didIteratorError29","_iteratorError29","_step29","_iterator29","_iteratorNormalCompletion30","_didIteratorError30","_iteratorError30","_step30","_iterator30","ERROR","initClass","camelize","forElement","autoDiscover","discover","dropzones","checkElements","_iteratorNormalCompletion31","_didIteratorError31","_iteratorError31","_step31","_iterator31","_iteratorNormalCompletion32","_didIteratorError32","_iteratorError32","_step32","_iterator32","blacklistedBrowsers","capableBrowser","File","FileList","Blob","_iteratorNormalCompletion33","_didIteratorError33","_iteratorError33","_step33","_iterator33","dataURI","byteString","atob","mimeString","ab","ia","rejectedItem","_iteratorNormalCompletion34","_didIteratorError34","_iteratorError34","_step34","_iterator34","_iteratorNormalCompletion35","_didIteratorError35","_iteratorError35","_step35","_iterator35","question","mimeType","baseMimeType","_iteratorNormalCompletion36","_didIteratorError36","_iteratorError36","_step36","_iterator36","jQuery","each","ACCEPTED","PROCESSING","sx","sy","sw","sh","dx","dy","dw","dh","vertSquashRatio","naturalWidth","ih","drawImage","getImageData","ey","py","ratio","detectVerticalSquash","KEY_STR","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","image","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","imageData","separatePoint","mae","ato","rawImageArray","endPoint","_autoDiscoverFunction","win","doc","root","rem","pre","doScroll","frameElement","poll","contentLoaded","_global","_babelPolyfill","$fails","wksDefine","enumKeys","_create","gOPNExt","$GOPS","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","symbols","$getPrototypeOf","$freeze","$seal","$preventExtensions","$isFrozen","$isSealed","$isExtensible","FProto","nameRE","HAS_INSTANCE","FunctionProto","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","digits","aNumberValue","$toFixed","multiply","c2","divide","numToString","fractionDigits","z","x2","$toPrecision","toPrecision","precision","EPSILON","_isFinite","isInteger","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","sqrt","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","fround","EPSILON32","MAX32","MIN32","$abs","$sign","hypot","value1","value2","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","callSite","tpl","$at","point","codePointAt","$endsWith","endsWith","endPosition","search","$startsWith","startsWith","pv","$toISOString","lz","DateProto","hint","createProperty","upTo","cloned","$sort","$forEach","STRICT","$filter","$some","$every","$reduce","$indexOf","NEGATIVE_ZERO","$find","$flags","$RegExp","CORRECT_NEW","tiRE","piRE","fiU","proxy","define","advanceStringIndex","regExpExec","$match","maybeCallNative","rx","fullUnicode","matchStr","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","sameValue","SEARCH","$search","previousLastIndex","callRegExpExec","$min","$push","LENGTH","SUPPORTS_Y","SPLIT","$split","internalSplit","lastLength","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","q","macrotask","Observer","MutationObserver","WebKitMutationObserver","flush","toggle","observe","characterData","strong","InternalMap","weak","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","$WeakMap","$isView","isView","fin","viewS","viewT","rApply","fApply","thisArgument","argumentsList","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","attributes","deleteProperty","Enumerate","enumerate","receiver","V","existingDescriptor","ownDesc","setProto","$includes","flatMap","flattenIntoArray","arraySpeciesCreate","sourceLen","IS_CONCAT_SPREADABLE","depth","mapper","spreadable","targetIndex","sourceIndex","mapFn","$pad","WEBKIT_BUG","padEnd","trimLeft","trimRight","getOwnPropertyDescriptors","getDesc","$values","onFinally","MSIE","boundArgs","$task","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","IS_WRAP","virtual","angular","constant","warning","$templateCache","put","service","$rootScope","toasterConfig","Guid","bodyOutputType","clickHandler","toasterId","showCloseButton","toastId","onHideCallback","toast","closeHtml","onShowCallback","directiveData","tapToDismiss","newGuid","$emit","createTypeMethod","toasterType","toasterFactory","deregisterNewToast","deregisterClearToasts","newToastEventSubscribers","clearToastsEventSubscribers","setup","$on","subscribeToNewToastEvent","onNewToast","subscribeToClearToastsEvent","onClearToasts","unsubscribeToNewToastEvent","unsubscribeToClearToastsEvent","directive","$compile","$injector","restrict","scope","directiveName","link","elm","$watch","$normalize","directiveDetails","fromJson","template","$parse","$interval","$sce","toaster","toasterEventRegistry","mergedConfig","removeToast","toastIndex","toasters","timeoutPromise","cancel","isUndefinedOrNull","$eval","toasterOptions","tap","closeButton","mouseoverTimer","_onNewToast","_onClearToasts","configureTimer","dupFound","closeButtonForType","trustAsHtml","bodyTemplate","templateWithData","fcGet","addToast","removeAllToasts","controller","$scope","$element","$attrs","stopTimer","restartTimer","isCloseButton","$parent","templateUrl","TRANSITION_PROP","TRANSITIONEND_EVENT","ANIMATION_PROP","ANIMATIONEND_EVENT","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","ANIMATION_DELAY_PROP","ANIMATION_DURATION_PROP","TRANSITION_DELAY_PROP","TRANSITION_DURATION_PROP","ngMinErr","$$minErr","assertArg","mergeClasses","pendClasses","fix","isPrefix","stripCommentsFromElement","jqLite","extractElementNode","applyAnimationClassesFactory","$$jqLite","$$addClass","$$removeClass","prepareAnimationOptions","$$prepared","domOperation","noop","$$domOperationFired","applyAnimationStyles","applyAnimationFromStyles","applyAnimationToStyles","mergeAnimationDetails","oldAnimation","newAnimation","newOptions","toAdd","toRemove","existing","splitClassesToLookup","resolveElementClasses","attr","preparationClasses","concatWithSpace","realDomOperation","getDomNode","blockKeyframeAnimations","applyBlock","applyInlineStyle","styleTuple","helpers","$$AnimateChildrenDirective","$interpolate","ngAnimateChildren","setData","$observe","DETECT_CSS_PROPERTIES","transitionDuration","transitionDelay","transitionProperty","animationDuration","animationDelay","animationIterationCount","DETECT_STAGGER_CSS_PROPERTIES","getCssDelayStyle","isKeyframeAnimation","computeCssStyles","$window","styles","detectedStyles","formalStyleName","actualStyleName","maxValue","truthyTimingValue","getCssTransitionDurationStyle","applyOnlyDuration","registerRestorableStyles","backup","isDefined","isElement","$AnimateCssProvider","$animateProvider","$get","$$AnimateRunner","$timeout","$$animateCache","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue","applyAnimationClasses","rafWaitQueue","waitUntilQuiet","pageWidth","computeTimings","cacheKey","allowNoDuration","timings","hasDuration","computeCachedCssStyles","aD","tD","maxDelay","maxDuration","initialOptions","restoreStyles","enabled","closeAndReturnNoopAnimator","animationClosed","animationPaused","animationCompleted","runner","runnerHost","maxDelayTime","maxDurationTime","temporaryStyles","packageStyles","animations","transitions","isStructural","structural","structuralClassName","addRemoveClassName","applyClassesEarly","hasToStyles","keyframeStyle","stagger","containsCachedAnimationWithoutDuration","staggerVal","staggerCacheKey","staggerClassName","computeCachedCssStaggerStyles","$$skipPreparationClasses","transitionStyle","durationStyle","itemIndex","staggerIndex","isFirst","skipBlocking","fullClassName","relativeDelay","hasTransitions","hasAnimations","hasTransitionAll","applyTransitionDuration","applyAnimationDuration","applyTransitionDelay","applyAnimationDelay","recalculateTimingStyles","delayStyle","activeClasses","blockTransition","blockKeyframeAnimation","cleanupStyles","applyBlocking","$$willAnimate","endFn","cancelFn","resume","pause","setProperty","removeProperty","onAnimationProgress","animationTimerData","removeData","originalEvent","timeStamp","$manualTimeStamp","elapsedTime","playPause","playAnimation","maxStagger","triggerAnimationStart","easing","easeProp","easeVal","timerTime","animationsData","setupFallbackTimer","currentTimerData","expectedEndTime","onAnimationExpired","$$AnimateCssDriverProvider","$$animationProvider","drivers","$animateCss","$rootElement","$document","bodyNode","rootNode","rootBodyElement","animationDetails","anchors","fromAnimation","prepareRegularAnimation","toAnimation","anchorAnimations","animator","outAnchor","inAnchor","cloneNode","startingClasses","filterCssClasses","getClassVal","animatorIn","animatorOut","calculateAnchorStyles","prepareOutAnimation","prepareInAnimation","startingAnimator","currentAnimation","coords","endingClasses","getUniqueValues","NG_IN_ANCHOR_CLASS_NAME","NG_OUT_ANCHOR_CLASS_NAME","prepareAnchoredAnimation","animationRunners","prepareFromToAnchorAnimation","$$AnimateJsProvider","afterFn","beforeFn","classesToAdd","classesToRemove","lookupAnimations","packageAnimations","closeActiveAnimations","applyOptions","setHost","endAnimations","onComplete","cancelled","executeAnimationFn","groupEventedAnimations","fnName","operations","ani","endProgressCb","resolved","onAnimationComplete","runners","animateFn","flagMap","animationFactory","$$registeredAnimations","$$AnimateJsDriverProvider","$$animateJs","prepareAnimation","endFnFactory","$$AnimateQueueProvider","rules","skip","getEventData","hasMatchingClasses","newClassString","currentClassString","currentClassMap","classString","makeTruthyCssClassMap","isAllowed","ruleType","previousAnimation","hasAnimationClasses","and","nA","nR","cA","cR","$$rAF","$$Map","$$animation","$templateRequest","$$isDocumentHidden","activeAnimationsLookup","disabledElementsLookup","animationsEnabled","removeFromDisabledElementsLookup","delete","deregisterWatch","totalPendingRequests","isEmpty","$$postDigest","callbackRegistry","customFilter","classNameFilter","returnTrue","isAnimatableByFilter","isAnimatableClassName","normalizeAnimationDetails","compareDocumentPosition","filterFromRegistry","matchContainer","matchCallback","containerNode","cleanupEventListeners","phase","$animate","pin","originalElement","runInNextPostDigestOrNow","postDigestCalled","documentHidden","skipAnimations","existingAnimation","hasExistingAnimation","animateChildren","bodyNodeDetected","rootNodeDetected","parentAnimationDetected","elementDisabled","parentHost","details","parentNodeDisabled","areAnimationsAllowed","notifyProgress","closeChildAnimations","applyGeneratedPreparationClasses","isValidAnimation","clearElementAnimationState","markElementAnimationState","animationCancelled","realRunner","targetParentNode","targetNode","findCallbacks","clearGeneratedClasses","queueAnimation","argCount","hasElement","removeAttribute","oldValue","newValue","$$AnimationProvider","getRunner","animationQueue","tempClasses","setRunner","beforeStart","prepareClassName","handleDestroyedElement","groupedAnimations","preparedAnimations","refLookup","enterOrMove","anchorNodes","getAnchorNodes","animationID","usedIndicesLookup","anchorGroups","lookupKey","group","cssClassesIntersection","indexKey","groupAnimations","toBeSortedAnimations","animationEntry","extraClasses","domNode","startAnimationFn","closeFn","operation","driverName","driver","invokeFirstDriver","animationRunner","newRunner","updateAnimationRunners","finalAnimations","tree","lookup","processNode","remainingLevelEntries","nextLevelEntries","childEntry","flatten","processed","parentEntry","elementNode","sortAnimations","innerArray","aa","removeRunner","angularVersion","transclude","terminal","ctrl","$transclude","previousElement","previousScope","$watchCollection","ngAnimateSwap","leave","$destroy","childScope","scheduler","tasks","provider","parentCounter","cache","getSideChannel","utils","arrayPrefixGenerators","brackets","comma","pushToArray","valueOrArray","toISO","addQueryPrefix","allowDots","charsetSentinel","delimiter","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","sentinel","generateArrayPrefix","sideChannel","tmpSc","findFlag","keyValue","valuesArray","valuesJoined","objKeys","keyPrefix","valueSideChannel","opts","normalizeStringifyOptions","arrayFormat","joined","GetIntrinsic","callBound","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","curr","$wm","$m","$o","assert","listGet","listHas","listSet","origSymbol","hasSymbolSham","symObj","syms","ERROR_MESSAGE","toStr","binder","boundLength","callBind","$apply","$call","$reflectApply","$max","originalFunction","applyBind","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","bigIntValueOf","symToString","hasShammedSymbols","isEnumerable","gPO","inspectCustom","inspectSymbol","wrapQuotes","defaultStyle","quoteChar","quoteStyle","inspect_","seen","maxStringLength","customInspect","indent","inspectString","trailer","lowbyte","maxDepth","baseIndent","getIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","xs","singleLineValues","indentedJoin","isError","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","isBoolean","ys","isPlainObject","protoTag","stringTag","lineJoiner","isArr","symMap","allowSparse","arrayLimit","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","segment","leaf","cleanRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","encodedVal","parseValues","newObj","getRandomValues","crypto","msCrypto","rnds8","rnds","byteToHex","bth","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","Obj","_objGetPrototypeOf","_dynamicNames","_hasOwnProperty","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","_forEachProp","getOwnProps","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","_getInstFunc","currentDynProtoProxy","instFunc","instFuncTable","canAddInst","objProto","visited","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","instFuncs_1","dynProtoProxy","_createDynamicPrototype","_getObjName","unknownValue","dynamicProto","delegateFunc","classProto","thisTarget","thisProto","_checkPrototype","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","_instFuncProxy","funcHost","theFunc","baseFuncs","baseProto","_getBaseFuncs","setInstFuncs","LoggingSeverity","_InternalMessageId","_objDefineProperty","objToString","isNullOrUndefined","isNotNullOrUndefined","eventNameWithoutOn","handlerRef","useCapture","objForEachKey","strContains","pad","arrForEach","idx","arrIndexOf","arrMap","arrReduce","initialValue","strTrim","_objKeysHasDontEnumBug","_objKeysDontEnums","objType","dontEnumsLength","objDefineAccessors","getProp","dateNow","getExceptionName","setValue","valChk","srcChk","theValue","getSetValue","defValue","isNotTruthy","isTruthy","throwError","optimizeObject","theObject","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","getGlobalInst","gbl","hasWindow","getWindow","hasDocument","getDocument","hasNavigator","getNavigator","getHistory","history","getLocation","checkForMock","mockLocation","getPerformance","hasJSON","getJSON","isIE","nav","getIEVersion","userAgentStr","navigator_1","ua","tridentVer","dumpObj","objectTypeDump","propertyValueDump","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","request","useXDomainRequest","XDomainRequest","isXhrSupported","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","dbgExt","getDebugExt","ns","disableDbgExt","_sanitizeDiagnosticText","_logToConsole","theConsole","logFunc","_InternalLogMessage","msgId","isUserAct","messageId","strProps","diagnosticText","dataType","safeGetLogger","logger","DiagnosticLogger","identifier","_messageCount","_messageLogged","_self","_getConfigValue","_debugExtMsg","diagLog","consoleLoggingLevel","telemetryLoggingLevel","maxInternalMessageLimit","enableDebugExceptions","throwInternal","CRITICAL","logLevel","messageKey","logInternalMessage","warnToConsole","errorToConsole","resetInternalMessageCount","logMessage","throttleLimitMessage","throttleMessage","_defaultPerfManager","PerfEvent","payloadDetails","isAsync","theDetails_1","accessorDefined","isChildEvt","getCtx","ParentContextKey","ChildrenContextKey","setCtx","childTime","childEvts","childEvt","exTime","payload","PerfManager","manager","fire","perfEvent","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","ex","defItemCtx","_nextProxy","_hasProcessTelemetry","processTelemetry","_hasSetNext","setNextPlugin","_hasRun","getPlugin","getNext","setNext","nextPlugin","env","itemCtx","hasRun","_createProxyChain","proxies","lastProxy","thePlugin","newProxy","ProcessTelemetryContext","startAt","_copyProxyChain","srcPlugins","_copyPluginChain","getCfg","getExtCfg","defaultValue","theConfig","extConfig","extensionConfig","getConfig","hasNext","processNext","createNew","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_getTelCtx","isInitialized","setInitialized","currentCtx","rootCtx","_baseTelInit","extensions","pluginChain","getProcessTelContext","initializePlugins","processContext","initPlugins","lastPlugin","sortPlugins","extA","extB","bHasProcess","ChannelController","_channelQueue","_addChannelQueue","queueItem","_checkQueuePriority","_base","queues","getChannelControls","channels","extensionQueue_1","_createChannelQueues","_staticInit","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","isEnabled","safeGetCookieMgr","getCookieMgr","cookieCfg","rootConfig","cookieMgrConfig","cookieMgrCfg","cookieDomain","cookiePath","cookieEnabled","_createCookieMgrConfig","_path","_domain","_enabled","areCookiesSupported","gblManager","setEnabled","maxAgeSec","_extractParts","_isIE","expireMs","expiry","_formatDate","location_1","protocol","uaDisallowsSameSiteNone","setCookie","_setCookieValue","_formatCookieValue","getCookie","_getCookieValue","del","purge","delCookie","WARNING","thePart","theDate","cookieValue","theCookie","searchLen","valLen","strEndsWith","_createPerfManager","notificationMgr","EventsDiscardedReason","NotificationManager","perfEvtsSendAll","addNotificationListener","removeNotificationListener","eventsSent","eventsDiscarded","eventsSendRequest","sendReason","AppInsightsCore","_internalLogPoller","_notifyInvalidEvent","telemetryItem","getNotifyMgr","notificationManager","track","getPerfMgr","_validateTelemetryItem","pollInternalLogs","diagnosticLogInterval","stopPollingInternalLogs","iKey","instrumentationKey","baseType","baseData","BaseCore","_eventQueue","_channelController","_notificationManager","_perfManager","_cookieManager","_isInitialized","_extensions","loggingLevelConsole","getDebugListener","enablePerfMgr","allExtensions","coreExtensions","channelExtensions","extPriorities","ext","extPriority","getTransmissionControls","releaseQueue","thePlugins","setCookieMgr","createPerfMgr","setPerfMgr","eventCnt","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","randomValue","random32","signed","mwcRandom32","_canUseCookies","_cookieMgrs","addEventHandler","addPageUnloadEventListener","excludeEvents","addEventListeners","added","excluded_1","addPageHideEventListener","pageUnloadAdded","visibilityState","newId","chars","generateW3CId","hexValues","oct","clockSequenceHi","CoreUtils","isTypeof","theType","objCreate","disableCookies","GuidRegex","perfNow","perf","mwcRandomSeed","_legacyCookieMgr","legacyCanUseCookies","mgr","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","DataPointType","DisabledPropertyName","TelemetryItemCreator","envelopeName","customProperties","systemProperties","tags","EventData","ver","Event","aiDataContract","envelopeType","Trace","severityLevel","MetricData","metrics","DataPoint","stdDev","Measurement","Metric","dataPoint","PageViewData","stringToBoolOrDefault","msToTimeSpan","totalms","sec","getExtensionByName","extension","isCrossOriginError","lineNumber","columnNumber","PageView","durationMs","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","PageViewPerfData","StackFrame","ExceptionDetails","hasFullStack","parsedStack","convertToString","_formatMessage","theEvent","errorType","evtMessage","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","lines","_getOperaStack","_getErrorType","typeName","_formatErrorCode","SeverityLevel","Exception","exceptions","_isExceptionInternal","problemGroup","isManual","CreateAutoException","errorSrc","stackDetails","CreateFromInterface","toInterface","CreateSimpleException","assembly","fileName","line","formatError","_ExceptionDetails","outerId","_isExceptionDetailsInternal","frames","level_1","totalSizeInBytes_1","frame","theFrame","parsedFrame","sizeInBytes","acceptedLeft","acceptedRight","howMany","_parseStack","_formatStackTrace","_StackFrame","sourceFrame","baseSize","StorageType","DistributedTracingModes","_canUseLocalStorage","_canUseSessionStorage","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","LocalStorage","storageType","storage","setItem","getItem","removeItem","_getSessionStorageObject","utlCanUseSessionStorage","SessionStorage","utlDisableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","createDomEvent","RequestHeaders","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","host","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","CorrelationIdHelper","correlationIdPrefix","canIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","excludedDomains","correlationHeaderExcludedDomains","getCorrelationContext","responseHeader","correlationId","getCorrelationContextValue","keyValues","dateTimeUtilsNow","timing","navigationStart","dateTimeUtilsDuration","RemoteDependencyData","commandName","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","parsedUrl","pathname","pathName","AjaxHelperParseDependencyPath","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","_logger","intervalHandle","itemQueue","pageViewPerformanceSent","_flushChannels","trackPageView","pageView","uri","isPerformanceTimingSupported","sendPageViewInternal","customDuration","cb","pageViewSent","getPerformanceTiming","shouldCollectDuration","isPerformanceTimingDataReady","pageViewPerformance","populatePageViewPerformanceEvent","sendPageViewPerformanceInternal","allItems","doFlush","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","trackPreviousPageVisit","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","pageVisitTime","prevPageVisitData","stopPageVisitTimer","startPageVisitTimer","currPageVisitData","currPageVisitDataStr","pageVisitEndTime","pageVisitDataJsonStr","pageVisitStartTime","PageViewPerformanceManager","MAX_DURATION_ALLOWED","navigationTiming","getPerformanceNavigationTiming","network","dom","connectEnd","requestStart","responseStart","responseEnd","loadEventEnd","isPerformanceNavigationTimingSupported","getEntriesByType","domainLookupStart","domLoading","durations","_navigator","botAgentNames","isGoogleBot","_dispatchEvent","evnt","ApplicationInsights","_eventTracking","_pageTracking","_properties","autoRoutePVDelay","_prevUri","_currUri","doNotSendItem","telemetryInitializersCount","_telemetryInitializers","telemetryInitializer","trackEvent","startTrackEvent","stopTrackEvent","trackTrace","trace","trackMetric","metric","inPv","_pageViewManager","autoTrackPageVisitTime","_pageVisitTimeManager","refUri","referrer","trackPageViewPerformance","_pageViewPerformanceManager","startTrackPage","stopTrackPage","measurement","sendExceptionInternal","theError","exceptionPartB","trackException","_onerror","_window","_sendCORSException","errorString","addTelemetryInitializer","getDefaultConfig","isStorageUseDisabled","configGetters","accountId","sessionRenewalMs","sessionExpirationMs","sampleRate","samplingPercentage","sdkExtension","isBrowserLinkTrackingEnabled","appId","PageName","PageUrl","average","sampleCount","trackPageVisitTime","browserLinkPaths_1","envelope","remoteData","_addDefaultTelemetryInitializers","pageViewItem","_history","_location","disableExceptionTracking","autoExceptionInstrumented","originalOnError_1","handled","enableUnhandledPromiseRejectionTracking","autoUnhandledPromiseInstrumented","originalOnUnhandledRejection_1","_getReason","enableAutoRouteTracking","pushState","replaceState","_self_1","namePrefix","telemetryTrace","traceID","traceLocationName","enableDebug","disableFlushOnBeforeUnload","disableFlushOnUnload","Version","_events","BaseSendBuffer","_buffer","_bufferFullMessageSent","_get","_set","enqueue","eventsLimitInMem","emitLineDelimitedJson","getItems","batchPayloads","ArraySendBuffer","markAsSent","clearSent","SessionStorageSendBuffer","bufferItems","_getBuffer","BUFFER_KEY","notDeliveredItems","SENT_BUFFER_KEY","_removePayloadsFromBuffer","payloads","prefixedKey","bufferJson","buffer_1","_setBuffer","MAX_BUFFER_SIZE","sentElements","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","applicationVersion","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","_this_1","Extensions","UserExt","DeviceExt","TraceExt","WebExt","AppExt","OSExt","SessionExt","SDKExt","CtxTagKeys","Envelope","Data","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","iKeyNoDashes","envTags","itmExt","itmTags","extUser","user","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","web","browserLang","browserVer","browser","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","extTrace","parentID","tgs","tg","theTags","EnvelopeCreator","_extractPartAExtensions","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","eventData","Serializer","_serializeObject","_serializeStringMap","_serializeArray","contract","isRequired","isPresent","isObj","expectedType","serialize","Offline","OfflineListener","_document","isListening","_onlineStatus","_setOnline","_setOffline","ononline","onoffline","onLine","isOnline","isOffline","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","hashCodeGenerator","getSamplingScore","Sample","samplingRate","samplingScoreGenerator","isSampledIn","EnvelopeTypeCreator","currentContextId","bd","pageType","isLoggedIn","pageViewData","exData","baseMetricData","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_timeoutHandle","_serializer","_stamp_specific_redirects","_fallbackSender","_syncUnloadSender","_paused","_headers","_syncFetchPayload","_senderConfig","maxBatchInterval","maxBatchSizeInBytes","disableTelemetry","enableSessionStorageBuffer","isRetryDisabled","isBeaconApiDisabled","disableXhr","onunloadDisableFetch","onunloadDisableBeacon","customHeaders","convertUndefined","_checkResponsStatus","responseUrl","countOfItemsInPayload","_appId","_parseResponse","_checkAndUpdateEndPointUrl","_onError","_isRetriable","_resendPayload","_onPartialSuccess","_onSuccess","_doUnloadSend","_beaconSender","_doBeaconSend","batch","plainTextBatch","queued","droppedPayload","thePayload","_xhrSender","endPointUrl","onreadystatechange","_xhrReadyStateChange","_formatErrorMessageXhr","_fetchKeepAliveSender","payloadSize","_doFetchSender","_fetchSender","requestHeaders","Headers","batchLength","keepalive","Request","statusText","itemsReceived","itemsAccepted","errors","linearFactor","payload_1","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","_setRetryTime","_setupTimer","retryInterval","timerValue","triggerSend","_clearScheduledTimer","statusCode","_xdrSender","xdr","_xdrOnLoad","_formatErrorMessageXdr","hostingProtocol","onunloadFlush","teardown","addHeader","_sender","_sample","disableInstrumentationKeyValidation","_validateInstrumentationKey","customHeader","senderConfig","sendPostFunc","SampleRate","defaultEnvelopeIkey","aiEnvelope_1","constructEnvelope","doNotSendItem_1","callBack","responseURL","forcedSender","sendRequest","_getNotifyMgr","_notifySendRequest","ieVer","failed","retry","errors_1","extracted","orig","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","acquisitionSpan","renewalSpan","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","acqMs","renewalMs","acquisitionDate","renewalDate","_setCookie","nowMs","acq","renewalPeriodMs","acqTimeLeftMs","cookie","automaticSession","isExpired","storageValue","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","getNewId","idLength","_renew","cookieUpdateInterval","renewal","Application","Device","sdkVersion","_validateUserInput","User","isNewUser","isUserCookieSet","userCookiePostfix","userCookieName","cookieSeparator","_generateNewId","_generateNewCookie","acqStr","accountAcquisitionDate","_setUserCookie","authCookie","authUserCookieName","authCookieString","authenticatedId","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","clearAuthenticatedUserContext","Location","parentId","_removeEmpty","TelemetryContext","getSessionId","application","sessionManager","autoSession","applySessionContext","applyOperatingSystemContxt","applyApplicationContext","applyDeviceContext","applyInternalContext","agentVersion","snippetVer","sdkSrc","applyLocationContext","applyOperationContext","applyWebContext","applyUserContext","cleanUp","PropertiesPlugin","_breezeChannel","_extensionConfig","theContext","userCtx","_processTelemetryInternal","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_getOwner","checkPrototype","owner","InstrumentFunc","aiHook_1","newFunc","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","theArgs","rslt","theHook","rm","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","XHRMonitoringState","openDone","setRequestHeaderDone","sendDone","abortDone","stateChangeAttached","ajaxRecord","spanID","perfMark","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","ajaxTotalDuration","aborted","requestSize","requestSentTime","responseStartedTime","responseFinishedTime","callbackFinishedTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","getPathName","CreateTrackItem","ajaxType","enableRequestHeaderTracking","getResponse","dependency","HttpMethod","ajaxData","perfTiming","propsSet","strRedirect","strRedirectStart","strRedirectEnd","strDomainLookup","strConnect","strRequest","strResponse","serverTiming","server_1","normalizeJsName","perfAttempts","_populatePerfData","headerMap","responseHeaders","errorStatusText","Traceparent","traceId","spanId","traceFlag","DEFAULT_TRACE_FLAG","DEFAULT_VERSION","isValidTraceId","isValidSpanId","_markCount","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_indexOf","AjaxMonitor","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_fetchInitialized","_xhrInitialized","_currentWindowHost","getEmptyConfig","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_hooks","_disabledUrls","_canIncludeHeaders","rlt","ignoreHeaders","_hookProto","InstrumentProto","_isDisabledRequest","isDisabled","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_getResponseText","_getAjaxCorrelationContext","responseHeadersString","getAllResponseHeaders","_createMarkId","performance_1","markId","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","performance","maxAttempts","maxAjaxPerfLookupAttempts","retryDelay","ajaxPerfLookupDelay","attempt","locateResourceTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","_getFetchCorrelationContext","fetchDiagnosticsMessage","ctx_1","distributedTracingMode","enableAjaxErrorStatusText","enableAjaxPerfTracking","maxAjaxCallsPerView","enableResponseHeaderTracking","excludeRequestFromAutoTrackingPatterns","addRequestContext","AI","AI_AND_W3C","W3C","disableAjaxTracking","theOpen","_supportsAjaxMonitoring","req","_openHandler","_reportXhrError","ajaxResponse","responseHeaderMap_2","_onAjaxComplete","exceptionText","_attachToOnReadyStateChange","hkErr","includeCorrelationHeaders","isPolyfill","polyfill","disableFetchTracking","fetchData","_createFetchRecord","newInit","rsp","responseHeaderMap_1","_instrumentFetch","propExt","extIx","trackDependencyData","currentWindowHost","traceparent","emptyConfig","parseConnectionString","connectionString","kv","kvParts","endpointsuffix","locationPrefix","ingestionendpoint","ConfigurationManager","configValue","_internalSdkSrc","_ignoreUpdateSnippetProperties","Initialization","snippet","_snippetVersion","sv","cs","ingest","instrumentationkey","getSKUDefaults","inPvp","loadAppInsights","legacyMode","_updateSnippetProperties","emptyQueue","addHousekeepingBeforeUnload","updateSnippetDefinitions","chkSet","_loop_1","originalArguments","proxyAssign","length_1","appInsightsInstance","performHousekeeping","_sessionManager","excludePageUnloadEvents","disablePageUnloadEvents","product","getSender","cdns","scrpt","currentScript"],"mappings":"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AQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,KAER,EAAQ,M,gBC5BR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,IACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KACR,EAAQ,KAC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","file":"node_vendors~main.591ecb396ac13ec653ec.js","sourcesContent":["/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*!\nFullCalendar Core Package v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\n// Creating\n// ----------------------------------------------------------------------------------------------------------------\nvar elementPropHash = {\n className: true,\n colSpan: true,\n rowSpan: true\n};\nvar containerTagHash = {\n '= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n var res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom)\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top\n };\n}\n\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\nvar isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (isRtlScrollbarOnLeft === null) {\n isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n var outerEl = createElement('div', {\n style: {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl'\n }\n }, '
');\n document.body.appendChild(outerEl);\n var innerEl = outerEl.firstChild;\n var res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n// The scrollbar width computations in computeEdges are sometimes flawed when it comes to\n// retina displays, rounding, and IE11. Massage them into a usable value.\nfunction sanitizeScrollbarWidth(width) {\n width = Math.max(0, width); // no negatives\n width = Math.round(width);\n return width;\n}\n\nfunction computeEdges(el, getPadding) {\n if (getPadding === void 0) { getPadding = false; }\n var computedStyle = window.getComputedStyle(el);\n var borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n var borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n var borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n var borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n // must use offset(Width|Height) because compatible with client(Width|Height)\n var scrollbarLeftRight = sanitizeScrollbarWidth(el.offsetWidth - el.clientWidth - borderLeft - borderRight);\n var scrollbarBottom = sanitizeScrollbarWidth(el.offsetHeight - el.clientHeight - borderTop - borderBottom);\n var res = {\n borderLeft: borderLeft,\n borderRight: borderRight,\n borderTop: borderTop,\n borderBottom: borderBottom,\n scrollbarBottom: scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding) {\n if (goWithinPadding === void 0) { goWithinPadding = false; }\n var outerRect = computeRect(el);\n var edges = computeEdges(el, goWithinPadding);\n var res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n var rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.pageXOffset,\n top: rect.top + window.pageYOffset,\n right: rect.right + window.pageXOffset,\n bottom: rect.bottom + window.pageYOffset\n };\n}\nfunction computeViewportRect() {\n return {\n left: window.pageXOffset,\n right: window.pageXOffset + document.documentElement.clientWidth,\n top: window.pageYOffset,\n bottom: window.pageYOffset + document.documentElement.clientHeight\n };\n}\nfunction computeHeightAndMargins(el) {\n return el.getBoundingClientRect().height + computeVMargins(el);\n}\nfunction computeVMargins(el) {\n var computed = window.getComputedStyle(el);\n return parseInt(computed.marginTop, 10) +\n parseInt(computed.marginBottom, 10);\n}\n// does not return window\nfunction getClippingParents(el) {\n var parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n var computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\nfunction computeClippingRect(el) {\n return getClippingParents(el)\n .map(function (el) {\n return computeInnerRect(el);\n })\n .concat(computeViewportRect())\n .reduce(function (rect0, rect1) {\n return intersectRects(rect0, rect1) || rect1; // should always intersect\n });\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction listenBySelector(container, eventType, selector, handler) {\n function realHandler(ev) {\n var matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n }\n container.addEventListener(eventType, realHandler);\n return function () {\n container.removeEventListener(eventType, realHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n var currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, function (ev, matchedChild) {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(ev, matchedChild);\n var realOnMouseLeave_1 = function (ev) {\n currentMatchedChild = null;\n onMouseLeave(ev, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave_1);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave_1);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nvar transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend'\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n var realCallback = function (ev) {\n callback(ev);\n transitionEventNames.forEach(function (eventName) {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach(function (eventName) {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n\nvar DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n var a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n var a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n var m0day = startOfDay(m0);\n var m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf())\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n var d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate()\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours()\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes()\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds()\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n var y = marker.getUTCFullYear();\n var w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n var nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n var firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n var dayStart = startOfDay(marker);\n var days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n var fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n var fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC.apply(Date, a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\nvar INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nvar PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n var _a;\n if (typeof input === 'string') {\n return parseString(input);\n }\n else if (typeof input === 'object' && input) { // non-null object\n return normalizeObject(input);\n }\n else if (typeof input === 'number') {\n return normalizeObject((_a = {}, _a[unit || 'milliseconds'] = input, _a));\n }\n else {\n return null;\n }\n}\nfunction parseString(s) {\n var m = PARSE_RE.exec(s);\n if (m) {\n var sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n )\n };\n }\n return null;\n}\nfunction normalizeObject(obj) {\n return {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: (obj.days || obj.day || 0) +\n getWeeksFromInput(obj) * 7,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0) // ms\n };\n}\nfunction getWeeksFromInput(obj) {\n return obj.weeks || obj.week || 0;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction isSingleDay(dur) {\n return dur.years === 0 && dur.months === 0 && dur.days === 1 && dur.milliseconds === 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n var res = null;\n for (var i = 0; i < INTERNAL_UNITS.length; i++) {\n var unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n var localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur, dontReturnWeeks) {\n var ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (!dontReturnWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\nfunction compensateScroll(rowEl, scrollbarWidths) {\n if (scrollbarWidths.left) {\n applyStyle(rowEl, {\n borderLeftWidth: 1,\n marginLeft: scrollbarWidths.left - 1\n });\n }\n if (scrollbarWidths.right) {\n applyStyle(rowEl, {\n borderRightWidth: 1,\n marginRight: scrollbarWidths.right - 1\n });\n }\n}\n// Undoes compensateScroll and restores all borders/margins\nfunction uncompensateScroll(rowEl) {\n applyStyle(rowEl, {\n marginLeft: '',\n marginRight: '',\n borderLeftWidth: '',\n borderRightWidth: ''\n });\n}\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\n// reduces the available height.\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\n var flexOffsets = []; // amount of vertical space it takes up\n var flexHeights = []; // actual css height\n var usedHeight = 0;\n undistributeHeight(els); // give all elements their natural height\n // find elements that are below the recommended height (expandable).\n // important to query for heights in a single first pass (to avoid reflow oscillation).\n els.forEach(function (el, i) {\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\n var naturalHeight = el.getBoundingClientRect().height;\n var naturalOffset = naturalHeight + computeVMargins(el);\n if (naturalOffset < minOffset) {\n flexEls.push(el);\n flexOffsets.push(naturalOffset);\n flexHeights.push(naturalHeight);\n }\n else {\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\n usedHeight += naturalOffset;\n }\n });\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\n if (shouldRedistribute) {\n availableHeight -= usedHeight;\n minOffset1 = Math.floor(availableHeight / flexEls.length);\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\n }\n // assign heights to all expandable elements\n flexEls.forEach(function (el, i) {\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\n var naturalOffset = flexOffsets[i];\n var naturalHeight = flexHeights[i];\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\n if (naturalOffset < minOffset) { // we check this again because redistribution might have changed things\n el.style.height = newHeight + 'px';\n }\n });\n}\n// Undoes distrubuteHeight, restoring all els to their natural height\nfunction undistributeHeight(els) {\n els.forEach(function (el) {\n el.style.height = '';\n });\n}\n// Given `els`, a set of cells, find the cell with the largest natural width and set the widths of all the\n// cells to be that width.\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\nfunction matchCellWidths(els) {\n var maxInnerWidth = 0;\n els.forEach(function (el) {\n var innerEl = el.firstChild; // hopefully an element\n if (innerEl instanceof HTMLElement) {\n var innerWidth_1 = innerEl.getBoundingClientRect().width;\n if (innerWidth_1 > maxInnerWidth) {\n maxInnerWidth = innerWidth_1;\n }\n }\n });\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\n els.forEach(function (el) {\n el.style.width = maxInnerWidth + 'px';\n });\n return maxInnerWidth;\n}\n// Given one element that resides inside another,\n// Subtracts the height of the inner element from the outer element.\nfunction subtractInnerElHeight(outerEl, innerEl) {\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\n var reflowStyleProps = {\n position: 'relative',\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\n };\n applyStyle(outerEl, reflowStyleProps);\n applyStyle(innerEl, reflowStyleProps);\n var diff = // grab the dimensions\n outerEl.getBoundingClientRect().height -\n innerEl.getBoundingClientRect().height;\n // undo hack\n var resetStyleProps = { position: '', left: '' };\n applyStyle(outerEl, resetStyleProps);\n applyStyle(innerEl, resetStyleProps);\n return diff;\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.classList.add('fc-unselectable');\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.classList.remove('fc-unselectable');\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\n/* Object Ordering by Field\n----------------------------------------------------------------------------------------------------------------------*/\nfunction parseFieldSpecs(input) {\n var specs = [];\n var tokens = [];\n var i;\n var token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n var i;\n var cmp;\n for (i = 0; i < fieldSpecs.length; i++) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction capitaliseFirstLetter(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nfunction padStart(val, len) {\n var s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* Weird Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction applyAll(functions, thisObj, args) {\n if (typeof functions === 'function') { // supplied a single function\n functions = [functions];\n }\n if (functions) {\n var i = void 0;\n var ret = void 0;\n for (i = 0; i < functions.length; i++) {\n ret = functions[i].apply(thisObj, args) || ret;\n }\n return ret;\n }\n}\nfunction firstDefined() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== undefined) {\n return args[i];\n }\n }\n}\n// Returns a function, that, as long as it continues to be invoked, will not\n// be triggered. The function will be called after it stops being called for\n// N milliseconds. If `immediate` is passed, trigger the function on the\n// leading edge, instead of the trailing.\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\nfunction debounce(func, wait) {\n var timeout;\n var args;\n var context;\n var timestamp;\n var result;\n var later = function () {\n var last = new Date().valueOf() - timestamp;\n if (last < wait) {\n timeout = setTimeout(later, wait - last);\n }\n else {\n timeout = null;\n result = func.apply(context, args);\n context = args = null;\n }\n };\n return function () {\n context = this;\n args = arguments;\n timestamp = new Date().valueOf();\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n return result;\n };\n}\n// Number and Boolean are only types that defaults or not computed for\n// TODO: write more comments\nfunction refineProps(rawProps, processors, defaults, leftoverProps) {\n if (defaults === void 0) { defaults = {}; }\n var refined = {};\n for (var key in processors) {\n var processor = processors[key];\n if (rawProps[key] !== undefined) {\n // found\n if (processor === Function) {\n refined[key] = typeof rawProps[key] === 'function' ? rawProps[key] : null;\n }\n else if (processor) { // a refining function?\n refined[key] = processor(rawProps[key]);\n }\n else {\n refined[key] = rawProps[key];\n }\n }\n else if (defaults[key] !== undefined) {\n // there's an explicit default\n refined[key] = defaults[key];\n }\n else {\n // must compute a default\n if (processor === String) {\n refined[key] = ''; // empty string is default for String\n }\n else if (!processor || processor === Number || processor === Boolean || processor === Function) {\n refined[key] = null; // assign null for other non-custom processor funcs\n }\n else {\n refined[key] = processor(null); // run the custom processor func\n }\n }\n }\n if (leftoverProps) {\n for (var key in rawProps) {\n if (processors[key] === undefined) {\n leftoverProps[key] = rawProps[key];\n }\n }\n }\n return refined;\n}\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n var dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n var start = startOfDay(timedRange.start);\n var end = addDays(start, dayCnt);\n return { start: start, end: end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold) {\n if (nextDayThreshold === void 0) { nextDayThreshold = createDuration(0); }\n var startDay = null;\n var endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n var endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n var visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n else if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n else {\n return diffDayAndTime(date0, date1); // returns a duration\n }\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nfunction parseRecurring(eventInput, allDayDefault, dateEnv, recurringTypes, leftovers) {\n for (var i = 0; i < recurringTypes.length; i++) {\n var localLeftovers = {};\n var parsed = recurringTypes[i].parse(eventInput, localLeftovers, dateEnv);\n if (parsed) {\n var allDay = localLeftovers.allDay;\n delete localLeftovers.allDay; // remove from leftovers\n if (allDay == null) {\n allDay = allDayDefault;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n __assign(leftovers, localLeftovers);\n return {\n allDay: allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i\n };\n }\n }\n return null;\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n var typeDef = recurringTypes[eventDef.recurringDef.typeId];\n var markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexProps) {\n var dest = {};\n var i;\n var name;\n var complexObjs;\n var j;\n var val;\n var props;\n if (complexProps) {\n for (i = 0; i < complexProps.length; i++) {\n name = complexProps[i];\n complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (j = propObjs.length - 1; j >= 0; j--) {\n val = propObjs[j][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n // copy values into the destination, going from last to first\n for (i = propObjs.length - 1; i >= 0; i--) {\n props = propObjs[i];\n for (name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n var filtered = {};\n for (var key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n var newHash = {};\n for (var key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n var hash = {};\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\n var item = a_1[_i];\n hash[item] = true;\n }\n return hash;\n}\nfunction hashValuesToArray(obj) {\n var a = [];\n for (var key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n for (var key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (var key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction parseEvents(rawEvents, sourceId, calendar, allowOpenRange) {\n var eventStore = createEmptyEventStore();\n for (var _i = 0, rawEvents_1 = rawEvents; _i < rawEvents_1.length; _i++) {\n var rawEvent = rawEvents_1[_i];\n var tuple = parseEvent(rawEvent, sourceId, calendar, allowOpenRange);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore) {\n if (eventStore === void 0) { eventStore = createEmptyEventStore(); }\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\nfunction expandRecurring(eventStore, framingRange, calendar) {\n var dateEnv = calendar.dateEnv;\n var defs = eventStore.defs, instances = eventStore.instances;\n // remove existing recurring instances\n instances = filterHash(instances, function (instance) {\n return !defs[instance.defId].recurringDef;\n });\n for (var defId in defs) {\n var def = defs[defId];\n if (def.recurringDef) {\n var duration = def.recurringDef.duration;\n if (!duration) {\n duration = def.allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration;\n }\n var starts = expandRecurringRanges(def, duration, framingRange, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes);\n for (var _i = 0, starts_1 = starts; _i < starts_1.length; _i++) {\n var start = starts_1[_i];\n var instance = createEventInstance(defId, {\n start: start,\n end: dateEnv.add(start, duration)\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs: defs, instances: instances };\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n var instance = eventStore.instances[instanceId];\n if (instance) {\n var def_1 = eventStore.defs[instance.defId];\n // get events/instances with same group\n var newStore = filterEventStoreDefs(eventStore, function (lookDef) {\n return isEventDefsGrouped(def_1, lookDef);\n });\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def_1.defId] = def_1;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction transformRawEvents(rawEvents, eventSource, calendar) {\n var calEachTransform = calendar.opt('eventDataTransform');\n var sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n var refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (var _i = 0, rawEvents_2 = rawEvents; _i < rawEvents_2.length; _i++) {\n var rawEvent = rawEvents_2[_i];\n var refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: __assign({}, store0.defs, store1.defs),\n instances: __assign({}, store0.instances, store1.instances)\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n var defs = filterHash(eventStore.defs, filterFunc);\n var instances = filterHash(eventStore.instances, function (instance) {\n return defs[instance.defId]; // still exists?\n });\n return { defs: defs, instances: instances };\n}\n\nfunction parseRange(input, dateEnv) {\n var start = null;\n var end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start: start, end: end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n var invertedRanges = [];\n var start = constraintRange.start; // the end of the previous range. the start of the new range\n var i;\n var dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i++) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start: start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n var start = range0.start;\n var end = range0.end;\n var newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start: start, end: end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\nfunction removeExact(array, exactVal) {\n var removeCnt = 0;\n var i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt++;\n }\n else {\n i++;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1) {\n var len = a0.length;\n var i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i++) {\n if (a0[i] !== a1[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoize(workerFunc) {\n var args;\n var res;\n return function () {\n if (!args || !isArraysEqual(args, arguments)) {\n args = arguments;\n res = workerFunc.apply(this, arguments);\n }\n return res;\n };\n}\n/*\nalways executes the workerFunc, but if the result is equal to the previous result,\nreturn the previous result instead.\n*/\nfunction memoizeOutput(workerFunc, equalityFunc) {\n var cachedRes = null;\n return function () {\n var newRes = workerFunc.apply(this, arguments);\n if (cachedRes === null || !(cachedRes === newRes || equalityFunc(cachedRes, newRes))) {\n cachedRes = newRes;\n }\n return cachedRes;\n };\n}\n\nvar EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0\n};\nvar STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1\n};\nvar MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nvar COMMA_RE = /,/g; // we need re for globalness\nvar MULTI_SPACE_RE = /\\s+/g;\nvar LTR_RE = /\\u200e/g; // control character\nvar UTC_RE = /UTC|GMT/;\nvar NativeFormatter = /** @class */ (function () {\n function NativeFormatter(formatSettings) {\n var standardDateProps = {};\n var extendedSettings = {};\n var severity = 0;\n for (var name_1 in formatSettings) {\n if (name_1 in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name_1] = formatSettings[name_1];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name_1], severity);\n }\n else {\n standardDateProps[name_1] = formatSettings[name_1];\n if (name_1 in STANDARD_DATE_PROP_SEVERITIES) {\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name_1], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n NativeFormatter.prototype.format = function (date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n };\n NativeFormatter.prototype.formatRange = function (start, end, context) {\n var _a = this, standardDateProps = _a.standardDateProps, extendedSettings = _a.extendedSettings;\n var diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n var biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n var full0 = this.format(start, context);\n var full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n var partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n var partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n var partial0 = partialFormattingFunc(start);\n var partial1 = partialFormattingFunc(end);\n var insertion = findCommonInsertion(full0, partial0, full1, partial1);\n var separator = extendedSettings.separator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n };\n NativeFormatter.prototype.getLargestUnit = function () {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n default:\n return 'day';\n }\n };\n return NativeFormatter;\n}());\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n var standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return function (date) {\n return formatTimeZoneOffset(date.timeZoneOffset);\n };\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return function (date) {\n return formatWeekNumber(context.computeWeekNumber(date.marker), context.weekLabel, context.locale, extendedSettings.week);\n };\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = __assign({}, standardDateProps); // copy\n extendedSettings = __assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n var normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n var zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n var zeroProps = __assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return function (date) {\n var marker = date.marker;\n var format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n var s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase();\n });\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, function (m0, m1) {\n return m1.toLocaleLowerCase() + 'm';\n });\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, function (m0) {\n return m0.toLocaleLowerCase();\n });\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n var replaced = false;\n s = s.replace(UTC_RE, function () {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ' ' + tzoStr;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekLabel, locale, display) {\n var parts = [];\n if (display === 'narrow') {\n parts.push(weekLabel);\n }\n else if (display === 'short') {\n parts.push(weekLabel, ' ');\n }\n // otherwise, considered 'numeric'\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.isRtl) { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n var partialOptions = {};\n for (var name_2 in options) {\n if (!(name_2 in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name_2] <= biggestUnit) {\n partialOptions[name_2] = options[name_2];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n var i0 = 0;\n while (i0 < full0.length) {\n var found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n var before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n var after0 = full0.substr(i0);\n var i1 = 0;\n while (i1 < full1.length) {\n var found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n var before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n var after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0\n };\n }\n }\n }\n return null;\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nvar CmdFormatter = /** @class */ (function () {\n function CmdFormatter(cmdStr, separator) {\n this.cmdStr = cmdStr;\n this.separator = separator;\n }\n CmdFormatter.prototype.format = function (date, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, this.separator));\n };\n CmdFormatter.prototype.formatRange = function (start, end, context) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, this.separator));\n };\n return CmdFormatter;\n}());\n\nvar FuncFormatter = /** @class */ (function () {\n function FuncFormatter(func) {\n this.func = func;\n }\n FuncFormatter.prototype.format = function (date, context) {\n return this.func(createVerboseFormattingArg(date, null, context));\n };\n FuncFormatter.prototype.formatRange = function (start, end, context) {\n return this.func(createVerboseFormattingArg(start, end, context));\n };\n return FuncFormatter;\n}());\n\n// Formatter Object Creation\nfunction createFormatter(input, defaultSeparator) {\n if (typeof input === 'object' && input) { // non-null object\n if (typeof defaultSeparator === 'string') {\n input = __assign({ separator: defaultSeparator }, input);\n }\n return new NativeFormatter(input);\n }\n else if (typeof input === 'string') {\n return new CmdFormatter(input, defaultSeparator);\n }\n else if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n}\n// String Utils\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime) {\n if (stripZeroTime === void 0) { stripZeroTime = false; }\n var s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso) {\n if (doIso === void 0) { doIso = false; }\n var sign = minutes < 0 ? '-' : '+';\n var abs = Math.abs(minutes);\n var hours = Math.floor(abs / 60);\n var mins = Math.round(abs % 60);\n if (doIso) {\n return sign + padStart(hours, 2) + ':' + padStart(mins, 2);\n }\n else {\n return 'GMT' + sign + hours + (mins ? ':' + padStart(mins, 2) : '');\n }\n}\n// Arg Utils\nfunction createVerboseFormattingArg(start, end, context, separator) {\n var startInfo = expandZonedMarker(start, context.calendarSystem);\n var endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n separator: separator\n };\n}\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n var a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6]\n };\n}\n\nvar EventSourceApi = /** @class */ (function () {\n function EventSourceApi(calendar, internalEventSource) {\n this.calendar = calendar;\n this.internalEventSource = internalEventSource;\n }\n EventSourceApi.prototype.remove = function () {\n this.calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId\n });\n };\n EventSourceApi.prototype.refetch = function () {\n this.calendar.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId]\n });\n };\n Object.defineProperty(EventSourceApi.prototype, \"id\", {\n get: function () {\n return this.internalEventSource.publicId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventSourceApi.prototype, \"url\", {\n // only relevant to json-feed event sources\n get: function () {\n return this.internalEventSource.meta.url;\n },\n enumerable: true,\n configurable: true\n });\n return EventSourceApi;\n}());\n\nvar EventApi = /** @class */ (function () {\n function EventApi(calendar, def, instance) {\n this._calendar = calendar;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n EventApi.prototype.setProp = function (name, val) {\n var _a, _b;\n if (name in DATE_PROPS) ;\n else if (name in NON_DATE_PROPS) {\n if (typeof NON_DATE_PROPS[name] === 'function') {\n val = NON_DATE_PROPS[name](val);\n }\n this.mutate({\n standardProps: (_a = {}, _a[name] = val, _a)\n });\n }\n else if (name in UNSCOPED_EVENT_UI_PROPS) {\n var ui = void 0;\n if (typeof UNSCOPED_EVENT_UI_PROPS[name] === 'function') {\n val = UNSCOPED_EVENT_UI_PROPS[name](val);\n }\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = (_b = {}, _b[name] = val, _b);\n }\n this.mutate({\n standardProps: { ui: ui }\n });\n }\n };\n EventApi.prototype.setExtendedProp = function (name, val) {\n var _a;\n this.mutate({\n extendedProps: (_a = {}, _a[name] = val, _a)\n });\n };\n EventApi.prototype.setStart = function (startInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n var instanceRange = this._instance.range;\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta: startDelta });\n }\n }\n };\n EventApi.prototype.setEnd = function (endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n var endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta: endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n };\n EventApi.prototype.setDates = function (startInput, endInput, options) {\n if (options === void 0) { options = {}; }\n var dateEnv = this._calendar.dateEnv;\n var standardProps = { allDay: options.allDay };\n var start = dateEnv.createMarker(startInput);\n var end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n var instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n var startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n var endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n else {\n this.mutate({ startDelta: startDelta, endDelta: endDelta, standardProps: standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps: standardProps });\n }\n }\n };\n EventApi.prototype.moveStart = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n };\n EventApi.prototype.moveEnd = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n };\n EventApi.prototype.moveDates = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n };\n EventApi.prototype.setAllDay = function (allDay, options) {\n if (options === void 0) { options = {}; }\n var standardProps = { allDay: allDay };\n var maintainDuration = options.maintainDuration;\n if (maintainDuration == null) {\n maintainDuration = this._calendar.opt('allDayMaintainDuration');\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps: standardProps });\n };\n EventApi.prototype.formatRange = function (formatInput) {\n var dateEnv = this._calendar.dateEnv;\n var instance = this._instance;\n var formatter = createFormatter(formatInput, this._calendar.opt('defaultRangeSeparator'));\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo\n });\n }\n else {\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo\n });\n }\n };\n EventApi.prototype.mutate = function (mutation) {\n var def = this._def;\n var instance = this._instance;\n if (instance) {\n this._calendar.dispatch({\n type: 'MUTATE_EVENTS',\n instanceId: instance.instanceId,\n mutation: mutation,\n fromApi: true\n });\n var eventStore = this._calendar.state.eventStore;\n this._def = eventStore.defs[def.defId];\n this._instance = eventStore.instances[instance.instanceId];\n }\n };\n EventApi.prototype.remove = function () {\n this._calendar.dispatch({\n type: 'REMOVE_EVENT_DEF',\n defId: this._def.defId\n });\n };\n Object.defineProperty(EventApi.prototype, \"source\", {\n get: function () {\n var sourceId = this._def.sourceId;\n if (sourceId) {\n return new EventSourceApi(this._calendar, this._calendar.state.eventSources[sourceId]);\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"start\", {\n get: function () {\n return this._instance ?\n this._calendar.dateEnv.toDate(this._instance.range.start) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"end\", {\n get: function () {\n return (this._instance && this._def.hasEnd) ?\n this._calendar.dateEnv.toDate(this._instance.range.end) :\n null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"id\", {\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get: function () { return this._def.publicId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"groupId\", {\n get: function () { return this._def.groupId; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allDay\", {\n get: function () { return this._def.allDay; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"title\", {\n get: function () { return this._def.title; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"url\", {\n get: function () { return this._def.url; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"rendering\", {\n get: function () { return this._def.rendering; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"startEditable\", {\n get: function () { return this._def.ui.startEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"durationEditable\", {\n get: function () { return this._def.ui.durationEditable; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"constraint\", {\n get: function () { return this._def.ui.constraints[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"overlap\", {\n get: function () { return this._def.ui.overlap; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"allow\", {\n get: function () { return this._def.ui.allows[0] || null; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"backgroundColor\", {\n get: function () { return this._def.ui.backgroundColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"borderColor\", {\n get: function () { return this._def.ui.borderColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"textColor\", {\n get: function () { return this._def.ui.textColor; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"classNames\", {\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get: function () { return this._def.ui.classNames; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(EventApi.prototype, \"extendedProps\", {\n get: function () { return this._def.extendedProps; },\n enumerable: true,\n configurable: true\n });\n return EventApi;\n}());\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n var inverseBgByGroupId = {};\n var inverseBgByDefId = {};\n var defByGroupId = {};\n var bgRanges = [];\n var fgRanges = [];\n var eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = eventStore.defs[instance.defId];\n var ui = eventUis[def.defId];\n var origRange = instance.range;\n var normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n var slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (def.rendering === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else {\n (def.rendering === 'background' ? bgRanges : fgRanges).push({\n def: def,\n ui: ui,\n instance: instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf()\n });\n }\n }\n }\n for (var groupId in inverseBgByGroupId) { // BY GROUP\n var ranges = inverseBgByGroupId[groupId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _i = 0, invertedRanges_1 = invertedRanges; _i < invertedRanges_1.length; _i++) {\n var invertedRange = invertedRanges_1[_i];\n var def = defByGroupId[groupId];\n var ui = eventUis[def.defId];\n bgRanges.push({\n def: def,\n ui: ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n for (var defId in inverseBgByDefId) {\n var ranges = inverseBgByDefId[defId];\n var invertedRanges = invertRanges(ranges, framingRange);\n for (var _a = 0, invertedRanges_2 = invertedRanges; _a < invertedRanges_2.length; _a++) {\n var invertedRange = invertedRanges_2[_a];\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.rendering === 'background' || def.rendering === 'inverse-background';\n}\nfunction filterSegsViaEls(context, segs, isMirror) {\n var calendar = context.calendar, view = context.view;\n if (calendar.hasPublicHandlers('eventRender')) {\n segs = segs.filter(function (seg) {\n var custom = calendar.publiclyTrigger('eventRender', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirror,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n // TODO: include seg.range once all components consistently generate it\n el: seg.el,\n view: view\n }\n ]);\n if (custom === false) { // means don't render at all\n return false;\n }\n else if (custom && custom !== true) {\n seg.el = custom;\n }\n return true;\n });\n }\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n setElSeg(seg.el, seg);\n }\n return segs;\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg || null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, function (eventDef) {\n return compileEventUi(eventDef, eventUiBases);\n });\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n var uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\n// triggers\nfunction triggerRenderedSegs(context, segs, isMirrors) {\n var calendar = context.calendar, view = context.view;\n if (calendar.hasPublicHandlers('eventPositioned')) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n calendar.publiclyTriggerAfterSizing('eventPositioned', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n el: seg.el,\n view: view\n }\n ]);\n }\n }\n if (!calendar.state.eventSourceLoadingLevel) { // avoid initial empty state while pending\n calendar.afterSizingTriggers._eventsPositioned = [null]; // fire once\n }\n}\nfunction triggerWillRemoveSegs(context, segs, isMirrors) {\n var calendar = context.calendar, view = context.view;\n for (var _i = 0, segs_3 = segs; _i < segs_3.length; _i++) {\n var seg = segs_3[_i];\n calendar.trigger('eventElRemove', seg.el);\n }\n if (calendar.hasPublicHandlers('eventDestroy')) {\n for (var _a = 0, segs_4 = segs; _a < segs_4.length; _a++) {\n var seg = segs_4[_a];\n calendar.publiclyTrigger('eventDestroy', [\n {\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n isMirror: isMirrors,\n el: seg.el,\n view: view\n }\n ]);\n }\n }\n}\n// is-interactable\nfunction computeEventDraggable(context, eventDef, eventUi) {\n var calendar = context.calendar, view = context.view;\n var transformers = calendar.pluginSystem.hooks.isDraggableTransformers;\n var val = eventUi.startEditable;\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n val = transformer(val, eventDef, eventUi, view);\n }\n return val;\n}\nfunction computeEventStartResizable(context, eventDef, eventUi) {\n return eventUi.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeEventEndResizable(context, eventDef, eventUi) {\n return eventUi.durationEditable;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, calendar) {\n var eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n var dest = createEmptyEventStore();\n for (var defId in eventStore.defs) {\n var def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, calendar.pluginSystem.hooks.eventDefMutationAppliers, calendar);\n }\n for (var instanceId in eventStore.instances) {\n var instance = eventStore.instances[instanceId];\n var def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, calendar);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, appliers, calendar) {\n var standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n var copy = __assign({}, eventDef, standardProps, { ui: __assign({}, eventDef.ui, standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = __assign({}, copy.extendedProps, mutation.extendedProps);\n }\n for (var _i = 0, appliers_1 = appliers; _i < appliers_1.length; _i++) {\n var applier = appliers_1[_i];\n applier(copy, mutation, calendar);\n }\n if (!copy.hasEnd && calendar.opt('forceEventDuration')) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, calendar) {\n var dateEnv = calendar.dateEnv;\n var forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n var clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n var copy = __assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta)\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta)\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start)\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end)\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = calendar.getDefaultEventEnd(eventDef.allDay, copy.range.start);\n }\n return copy;\n}\n\nfunction reduceEventStore (eventStore, action, eventSources, dateProfile, calendar) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, calendar);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, calendar);\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, calendar);\n }\n else {\n return eventStore;\n }\n case 'CHANGE_TIMEZONE':\n return rezoneDates(eventStore, action.oldDateEnv, calendar.dateEnv);\n case 'MUTATE_EVENTS':\n return applyMutationToRelated(eventStore, action.instanceId, action.mutation, action.fromApi, calendar);\n case 'REMOVE_EVENT_INSTANCES':\n return excludeInstances(eventStore, action.instances);\n case 'REMOVE_EVENT_DEF':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.defId !== action.defId;\n });\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return !eventDef.sourceId; // only keep events with no source id\n });\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n case 'RESET_EVENTS':\n return {\n defs: eventStore.defs,\n instances: eventStore.instances\n };\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, calendar) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n var subset = parseEvents(transformRawEvents(rawEvents, eventSource, calendar), eventSource.sourceId, calendar);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, calendar);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction addEvent(eventStore, subset, expandRange, calendar) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, calendar);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneDates(eventStore, oldDateEnv, newDateEnv) {\n var defs = eventStore.defs;\n var instances = mapHash(eventStore.instances, function (instance) {\n var def = defs[instance.defId];\n if (def.allDay || def.recurringDef) {\n return instance; // isn't dependent on timezone\n }\n else {\n return __assign({}, instance, { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n }\n });\n return { defs: defs, instances: instances };\n}\nfunction applyMutationToRelated(eventStore, instanceId, mutation, fromApi, calendar) {\n var relevant = getRelevantEvents(eventStore, instanceId);\n var eventConfigBase = fromApi ?\n { '': {\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n } } :\n calendar.eventUiBases;\n relevant = applyMutationToEventStore(relevant, eventConfigBase, mutation, calendar);\n return mergeEventStores(eventStore, relevant);\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, function (eventDef) {\n return eventDef.sourceId !== sourceId;\n });\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, function (instance) {\n return !removals[instance.instanceId];\n })\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, calendar) {\n return isNewPropsValid({ eventDrag: interaction }, calendar); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, calendar) {\n return isNewPropsValid({ dateSelection: dateSelection }, calendar);\n}\nfunction isNewPropsValid(newProps, calendar) {\n var view = calendar.view;\n var props = __assign({ businessHours: view ? view.props.businessHours : createEmptyEventStore(), dateSelection: '', eventStore: calendar.state.eventStore, eventUiBases: calendar.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (calendar.pluginSystem.hooks.isPropsValid || isPropsValid)(props, calendar);\n}\nfunction isPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n if (dateSpanMeta === void 0) { dateSpanMeta = {}; }\n if (state.eventDrag && !isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n var subjectEventStore = interaction.mutatedEvents;\n var subjectDefs = subjectEventStore.defs;\n var subjectInstances = subjectEventStore.instances;\n var subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': calendar.selectionConfig } // if not a real event, validate as a selection\n );\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n var otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances); // exclude the subject events. TODO: exclude defs too?\n var otherDefs = otherEventStore.defs;\n var otherInstances = otherEventStore.instances;\n var otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (var subjectInstanceId in subjectInstances) {\n var subjectInstance = subjectInstances[subjectInstanceId];\n var subjectRange = subjectInstance.range;\n var subjectConfig = subjectConfigs[subjectInstance.defId];\n var subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('eventOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var otherInstanceId in otherInstances) {\n var otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n var otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventApi(calendar, subjectDef, subjectInstance) // moving event\n )) {\n return false;\n }\n }\n }\n // allow (a function)\n var calendarEventStore = calendar.state.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (var _i = 0, _a = subjectConfig.allows; _i < _a.length; _i++) {\n var subjectAllow = _a[_i];\n var subjectDateSpan = __assign({}, dateSpanMeta, { range: subjectInstance.range, allDay: subjectDef.allDay });\n var origDef = calendarEventStore.defs[subjectDef.defId];\n var origInstance = calendarEventStore.instances[subjectInstanceId];\n var eventApi = void 0;\n if (origDef) { // was previously in the calendar\n eventApi = new EventApi(calendar, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventApi(calendar, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(calendar.buildDateSpanApi(subjectDateSpan), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, calendar, dateSpanMeta, filterConfig) {\n var relevantEventStore = state.eventStore;\n var relevantDefs = relevantEventStore.defs;\n var relevantInstances = relevantEventStore.instances;\n var selection = state.dateSelection;\n var selectionRange = selection.range;\n var selectionConfig = calendar.selectionConfig;\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, calendar)) {\n return false;\n }\n // overlap\n var overlapFunc = calendar.opt('selectOverlap');\n if (typeof overlapFunc !== 'function') {\n overlapFunc = null;\n }\n for (var relevantInstanceId in relevantInstances) {\n var relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (overlapFunc && !overlapFunc(new EventApi(calendar, relevantDefs[relevantInstance.defId], relevantInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n for (var _i = 0, _a = selectionConfig.allows; _i < _a.length; _i++) {\n var selectionAllow = _a[_i];\n var fullDateSpan = __assign({}, dateSpanMeta, selection);\n if (!selectionAllow(calendar.buildDateSpanApi(fullDateSpan), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, calendar) {\n for (var _i = 0, constraints_1 = constraints; _i < constraints_1.length; _i++) {\n var constraint = constraints_1[_i];\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, calendar), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncalendar // for expanding businesshours\n) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, calendar));\n }\n else if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, function (eventDef) {\n return eventDef.groupId === constraint;\n }));\n }\n else if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, calendar));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n var instances = eventStore.instances;\n var ranges = [];\n for (var instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (var _i = 0, outerRanges_1 = outerRanges; _i < outerRanges_1.length; _i++) {\n var outerRange = outerRanges_1[_i];\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n// Parsing\n// ------------------------------------------------------------------------------------------------------------------------\nfunction normalizeConstraint(input, calendar) {\n if (Array.isArray(input)) {\n return parseEvents(input, '', calendar, true); // allowOpenRange=true\n }\n else if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], '', calendar, true); // allowOpenRange=true\n }\n else if (input != null) {\n return String(input);\n }\n else {\n return null;\n }\n}\n\nfunction htmlEscape(s) {\n return (s + '').replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/'/g, ''')\n .replace(/\"/g, '"')\n .replace(/\\n/g, '
');\n}\n// Given a hash of CSS properties, returns a string of CSS.\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\nfunction cssToStr(cssProps) {\n var statements = [];\n for (var name_1 in cssProps) {\n var val = cssProps[name_1];\n if (val != null && val !== '') {\n statements.push(name_1 + ':' + val);\n }\n }\n return statements.join(';');\n}\n// Given an object hash of HTML attribute names to values,\n// generates a string that can be injected between < > in HTML\nfunction attrsToStr(attrs) {\n var parts = [];\n for (var name_2 in attrs) {\n var val = attrs[name_2];\n if (val != null) {\n parts.push(name_2 + '=\"' + htmlEscape(val) + '\"');\n }\n }\n return parts.join(' ');\n}\nfunction parseClassName(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n else if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n else {\n return [];\n }\n}\n\nvar UNSCOPED_EVENT_UI_PROPS = {\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: null,\n overlap: null,\n allow: null,\n className: parseClassName,\n classNames: parseClassName,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String\n};\nfunction processUnscopedUiProps(rawProps, calendar, leftovers) {\n var props = refineProps(rawProps, UNSCOPED_EVENT_UI_PROPS, {}, leftovers);\n var constraint = normalizeConstraint(props.constraint, calendar);\n return {\n startEditable: props.startEditable != null ? props.startEditable : props.editable,\n durationEditable: props.durationEditable != null ? props.durationEditable : props.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: props.overlap,\n allows: props.allow != null ? [props.allow] : [],\n backgroundColor: props.backgroundColor || props.color,\n borderColor: props.borderColor || props.color,\n textColor: props.textColor,\n classNames: props.classNames.concat(props.className)\n };\n}\nfunction processScopedUiProps(prefix, rawScoped, calendar, leftovers) {\n var rawUnscoped = {};\n var wasFound = {};\n for (var key in UNSCOPED_EVENT_UI_PROPS) {\n var scopedKey = prefix + capitaliseFirstLetter(key);\n rawUnscoped[key] = rawScoped[scopedKey];\n wasFound[scopedKey] = true;\n }\n if (prefix === 'event') {\n rawUnscoped.editable = rawScoped.editable; // special case. there is no 'eventEditable', just 'editable'\n }\n if (leftovers) {\n for (var key in rawScoped) {\n if (!wasFound[key]) {\n leftovers[key] = rawScoped[key];\n }\n }\n }\n return processUnscopedUiProps(rawUnscoped, calendar);\n}\nvar EMPTY_EVENT_UI = {\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: []\n};\n// prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames)\n };\n}\n\nvar NON_DATE_PROPS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n rendering: String,\n extendedProps: null\n};\nvar DATE_PROPS = {\n start: null,\n date: null,\n end: null,\n allDay: null\n};\nvar uid = 0;\nfunction parseEvent(raw, sourceId, calendar, allowOpenRange) {\n var allDayDefault = computeIsAllDayDefault(sourceId, calendar);\n var leftovers0 = {};\n var recurringRes = parseRecurring(raw, // raw, but with single-event stuff stripped out\n allDayDefault, calendar.dateEnv, calendar.pluginSystem.hooks.recurringTypes, leftovers0 // will populate with non-recurring props\n );\n if (recurringRes) {\n var def = parseEventDef(leftovers0, sourceId, recurringRes.allDay, Boolean(recurringRes.duration), calendar);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration\n };\n return { def: def, instance: null };\n }\n else {\n var leftovers1 = {};\n var singleRes = parseSingle(raw, allDayDefault, calendar, leftovers1, allowOpenRange);\n if (singleRes) {\n var def = parseEventDef(leftovers1, sourceId, singleRes.allDay, singleRes.hasEnd, calendar);\n var instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n return { def: def, instance: instance };\n }\n }\n return null;\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\nThe EventNonDateInput has been normalized (id => publicId, etc).\n*/\nfunction parseEventDef(raw, sourceId, allDay, hasEnd, calendar) {\n var leftovers = {};\n var def = pluckNonDateProps(raw, calendar, leftovers);\n def.defId = String(uid++);\n def.sourceId = sourceId;\n def.allDay = allDay;\n def.hasEnd = hasEnd;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.eventDefParsers; _i < _a.length; _i++) {\n var eventDefParser = _a[_i];\n var newLeftovers = {};\n eventDefParser(def, leftovers, newLeftovers);\n leftovers = newLeftovers;\n }\n def.extendedProps = __assign(leftovers, def.extendedProps || {});\n // help out EventApi from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: String(uid++),\n defId: defId,\n range: range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n };\n}\nfunction parseSingle(raw, allDayDefault, calendar, leftovers, allowOpenRange) {\n var props = pluckDateProps(raw, leftovers);\n var allDay = props.allDay;\n var startMeta;\n var startMarker = null;\n var hasEnd = false;\n var endMeta;\n var endMarker = null;\n startMeta = calendar.dateEnv.createMarkerMeta(props.start);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (props.end != null) {\n endMeta = calendar.dateEnv.createMarkerMeta(props.end);\n }\n if (allDay == null) {\n if (allDayDefault != null) {\n allDay = allDayDefault;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = calendar.opt('forceEventDuration') || false;\n endMarker = calendar.dateEnv.add(startMarker, allDay ?\n calendar.defaultAllDayEventDuration :\n calendar.defaultTimedEventDuration);\n }\n return {\n allDay: allDay,\n hasEnd: hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n };\n}\nfunction pluckDateProps(raw, leftovers) {\n var props = refineProps(raw, DATE_PROPS, {}, leftovers);\n props.start = (props.start !== null) ? props.start : props.date;\n delete props.date;\n return props;\n}\nfunction pluckNonDateProps(raw, calendar, leftovers) {\n var preLeftovers = {};\n var props = refineProps(raw, NON_DATE_PROPS, {}, preLeftovers);\n var ui = processUnscopedUiProps(preLeftovers, calendar, leftovers);\n props.publicId = props.id;\n delete props.id;\n props.ui = ui;\n return props;\n}\nfunction computeIsAllDayDefault(sourceId, calendar) {\n var res = null;\n if (sourceId) {\n var source = calendar.state.eventSources[sourceId];\n res = source.allDayDefault;\n }\n if (res == null) {\n res = calendar.opt('allDayDefault');\n }\n return res;\n}\n\nvar DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n rendering: 'inverse-background',\n classNames: 'fc-nonbusiness',\n groupId: '_businessHours' // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, calendar) {\n return parseEvents(refineInputs(input), '', calendar);\n}\nfunction refineInputs(input) {\n var rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter(function (rawDef) {\n return rawDef.daysOfWeek;\n });\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map(function (rawDef) {\n return __assign({}, DEF_DEFAULTS, rawDef);\n });\n return rawDefs;\n}\n\nfunction memoizeRendering(renderFunc, unrenderFunc, dependencies) {\n if (dependencies === void 0) { dependencies = []; }\n var dependents = [];\n var thisContext;\n var prevArgs;\n function unrender() {\n if (prevArgs) {\n for (var _i = 0, dependents_1 = dependents; _i < dependents_1.length; _i++) {\n var dependent = dependents_1[_i];\n dependent.unrender();\n }\n if (unrenderFunc) {\n unrenderFunc.apply(thisContext, prevArgs);\n }\n prevArgs = null;\n }\n }\n function res() {\n if (!prevArgs || !isArraysEqual(prevArgs, arguments)) {\n unrender();\n thisContext = this;\n prevArgs = arguments;\n renderFunc.apply(this, arguments);\n }\n }\n res.dependents = dependents;\n res.unrender = unrender;\n for (var _i = 0, dependencies_1 = dependencies; _i < dependencies_1.length; _i++) {\n var dependency = dependencies_1[_i];\n dependency.dependents.push(res);\n }\n return res;\n}\n\nvar EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nvar Splitter = /** @class */ (function () {\n function Splitter() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n Splitter.prototype.splitProps = function (props) {\n var _this = this;\n var keyInfos = this.getKeyInfo(props);\n var defKeys = this.getKeysForEventDefs(props.eventStore);\n var dateSelections = this.splitDateSelection(props.dateSelection);\n var individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n var eventStores = this.splitEventStore(props.eventStore, defKeys);\n var eventDrags = this.splitEventDrag(props.eventDrag);\n var eventResizes = this.splitEventResize(props.eventResize);\n var splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, function (info, key) {\n return _this.eventUiBuilders[key] || memoize(buildEventUiForKey);\n });\n for (var key in keyInfos) {\n var keyInfo = keyInfos[key];\n var eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n var buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore: eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null\n };\n }\n return splitProps;\n };\n Splitter.prototype._splitDateSpan = function (dateSpan) {\n var dateSpans = {};\n if (dateSpan) {\n var keys = this.getKeysForDateSpan(dateSpan);\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n };\n Splitter.prototype._getKeysForEventDefs = function (eventStore) {\n var _this = this;\n return mapHash(eventStore.defs, function (eventDef) {\n return _this.getKeysForEventDef(eventDef);\n });\n };\n Splitter.prototype._splitEventStore = function (eventStore, defKeys) {\n var defs = eventStore.defs, instances = eventStore.instances;\n var splitStores = {};\n for (var defId in defs) {\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n for (var _b = 0, _c = defKeys[instance.defId]; _b < _c.length; _b++) {\n var key = _c[_b];\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n };\n Splitter.prototype._splitIndividualUi = function (eventUiBases, defKeys) {\n var splitHashes = {};\n for (var defId in eventUiBases) {\n if (defId) { // not the '' key\n for (var _i = 0, _a = defKeys[defId]; _i < _a.length; _i++) {\n var key = _a[_i];\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n };\n Splitter.prototype._splitInteraction = function (interaction) {\n var splitStates = {};\n if (interaction) {\n var affectedStores_1 = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents) // can't use cached. might be events from other calendar\n );\n // can't rely on defKeys because event data is mutated\n var mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n var mutatedStores_1 = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n var populate = function (key) {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores_1[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores_1[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n origSeg: interaction.origSeg\n };\n }\n };\n for (var key in affectedStores_1) {\n populate(key);\n }\n for (var key in mutatedStores_1) {\n populate(key);\n }\n }\n return splitStates;\n };\n return Splitter;\n}());\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n var baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n var stuff = {\n '': combineEventUis(baseParts)\n };\n if (individualUi) {\n __assign(stuff, individualUi);\n }\n return stuff;\n}\n\n// Generates HTML for an anchor to another view into the calendar.\n// Will either generate an tag or a non-clickable tag, depending on enabled settings.\n// `gotoOptions` can either be a DateMarker, or an object with the form:\n// { date, type, forceOff }\n// `type` is a view-type like \"day\" or \"week\". default value is \"day\".\n// `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\nfunction buildGotoAnchorHtml(allOptions, dateEnv, gotoOptions, attrs, innerHtml) {\n var date;\n var type;\n var forceOff;\n var finalOptions;\n if (gotoOptions instanceof Date) {\n date = gotoOptions; // a single date-like input\n }\n else {\n date = gotoOptions.date;\n type = gotoOptions.type;\n forceOff = gotoOptions.forceOff;\n }\n finalOptions = {\n date: dateEnv.formatIso(date, { omitTime: true }),\n type: type || 'day'\n };\n if (typeof attrs === 'string') {\n innerHtml = attrs;\n attrs = null;\n }\n attrs = attrs ? ' ' + attrsToStr(attrs) : ''; // will have a leading space\n innerHtml = innerHtml || '';\n if (!forceOff && allOptions.navLinks) {\n return '' +\n innerHtml +\n '';\n }\n else {\n return '' +\n innerHtml +\n '';\n }\n}\nfunction getAllDayHtml(allOptions) {\n return allOptions.allDayHtml || htmlEscape(allOptions.allDayText);\n}\n// Computes HTML classNames for a single-day element\nfunction getDayClasses(date, dateProfile, context, noThemeHighlight) {\n var calendar = context.calendar, options = context.options, theme = context.theme, dateEnv = context.dateEnv;\n var classes = [];\n var todayStart;\n var todayEnd;\n if (!rangeContainsMarker(dateProfile.activeRange, date)) {\n classes.push('fc-disabled-day');\n }\n else {\n classes.push('fc-' + DAY_IDS[date.getUTCDay()]);\n if (options.monthMode &&\n dateEnv.getMonth(date) !== dateEnv.getMonth(dateProfile.currentRange.start)) {\n classes.push('fc-other-month');\n }\n todayStart = startOfDay(calendar.getNow());\n todayEnd = addDays(todayStart, 1);\n if (date < todayStart) {\n classes.push('fc-past');\n }\n else if (date >= todayEnd) {\n classes.push('fc-future');\n }\n else {\n classes.push('fc-today');\n if (noThemeHighlight !== true) {\n classes.push(theme.getClass('today'));\n }\n }\n }\n return classes;\n}\n\n// given a function that resolves a result asynchronously.\n// the function can either call passed-in success and failure callbacks,\n// or it can return a promise.\n// if you need to pass additional params to func, bind them first.\nfunction unpromisify(func, success, failure) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n var isResolved = false;\n var wrappedSuccess = function () {\n if (!isResolved) {\n isResolved = true;\n success.apply(this, arguments);\n }\n };\n var wrappedFailure = function () {\n if (!isResolved) {\n isResolved = true;\n if (failure) {\n failure.apply(this, arguments);\n }\n }\n };\n var res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nvar Mixin = /** @class */ (function () {\n function Mixin() {\n }\n // mix into a CLASS\n Mixin.mixInto = function (destClass) {\n this.mixIntoObj(destClass.prototype);\n };\n // mix into ANY object\n Mixin.mixIntoObj = function (destObj) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n if (!destObj[name]) { // if destination doesn't already define it\n destObj[name] = _this.prototype[name];\n }\n });\n };\n /*\n will override existing methods\n TODO: remove! not used anymore\n */\n Mixin.mixOver = function (destClass) {\n var _this = this;\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\n destClass.prototype[name] = _this.prototype[name];\n });\n };\n return Mixin;\n}());\n\n/*\nUSAGE:\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\nin class:\n on: EmitterInterface['on']\n one: EmitterInterface['one']\n off: EmitterInterface['off']\n trigger: EmitterInterface['trigger']\n triggerWith: EmitterInterface['triggerWith']\n hasHandlers: EmitterInterface['hasHandlers']\nafter class:\n EmitterMixin.mixInto(TheClass)\n*/\nvar EmitterMixin = /** @class */ (function (_super) {\n __extends(EmitterMixin, _super);\n function EmitterMixin() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmitterMixin.prototype.on = function (type, handler) {\n addToHash(this._handlers || (this._handlers = {}), type, handler);\n return this; // for chaining\n };\n // todo: add comments\n EmitterMixin.prototype.one = function (type, handler) {\n addToHash(this._oneHandlers || (this._oneHandlers = {}), type, handler);\n return this; // for chaining\n };\n EmitterMixin.prototype.off = function (type, handler) {\n if (this._handlers) {\n removeFromHash(this._handlers, type, handler);\n }\n if (this._oneHandlers) {\n removeFromHash(this._oneHandlers, type, handler);\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.trigger = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n this.triggerWith(type, this, args);\n return this; // for chaining\n };\n EmitterMixin.prototype.triggerWith = function (type, context, args) {\n if (this._handlers) {\n applyAll(this._handlers[type], context, args);\n }\n if (this._oneHandlers) {\n applyAll(this._oneHandlers[type], context, args);\n delete this._oneHandlers[type]; // will never fire again\n }\n return this; // for chaining\n };\n EmitterMixin.prototype.hasHandlers = function (type) {\n return (this._handlers && this._handlers[type] && this._handlers[type].length) ||\n (this._oneHandlers && this._oneHandlers[type] && this._oneHandlers[type].length);\n };\n return EmitterMixin;\n}(Mixin));\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter(function (func) {\n return func !== handler;\n });\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nvar PositionCache = /** @class */ (function () {\n function PositionCache(originEl, els, isHorizontal, isVertical) {\n this.originEl = originEl;\n this.els = els;\n this.isHorizontal = isHorizontal;\n this.isVertical = isVertical;\n }\n // Queries the els for coordinates and stores them.\n // Call this method before using and of the get* methods below.\n PositionCache.prototype.build = function () {\n var originEl = this.originEl;\n var originClientRect = this.originClientRect =\n originEl.getBoundingClientRect(); // relative to viewport top-left\n if (this.isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (this.isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n };\n // Populates the left/right internal coordinate arrays\n PositionCache.prototype.buildElHorizontals = function (originClientLeft) {\n var lefts = [];\n var rights = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n };\n // Populates the top/bottom internal coordinate arrays\n PositionCache.prototype.buildElVerticals = function (originClientTop) {\n var tops = [];\n var bottoms = [];\n for (var _i = 0, _a = this.els; _i < _a.length; _i++) {\n var el = _a[_i];\n var rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n };\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.leftToIndex = function (leftPosition) {\n var lefts = this.lefts;\n var rights = this.rights;\n var len = lefts.length;\n var i;\n for (i = 0; i < len; i++) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n };\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n PositionCache.prototype.topToIndex = function (topPosition) {\n var tops = this.tops;\n var bottoms = this.bottoms;\n var len = tops.length;\n var i;\n for (i = 0; i < len; i++) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n };\n // Gets the width of the element at the given index\n PositionCache.prototype.getWidth = function (leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n };\n // Gets the height of the element at the given index\n PositionCache.prototype.getHeight = function (topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n };\n return PositionCache;\n}());\n\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nvar ScrollController = /** @class */ (function () {\n function ScrollController() {\n }\n ScrollController.prototype.getMaxScrollTop = function () {\n return this.getScrollHeight() - this.getClientHeight();\n };\n ScrollController.prototype.getMaxScrollLeft = function () {\n return this.getScrollWidth() - this.getClientWidth();\n };\n ScrollController.prototype.canScrollVertically = function () {\n return this.getMaxScrollTop() > 0;\n };\n ScrollController.prototype.canScrollHorizontally = function () {\n return this.getMaxScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollUp = function () {\n return this.getScrollTop() > 0;\n };\n ScrollController.prototype.canScrollDown = function () {\n return this.getScrollTop() < this.getMaxScrollTop();\n };\n ScrollController.prototype.canScrollLeft = function () {\n return this.getScrollLeft() > 0;\n };\n ScrollController.prototype.canScrollRight = function () {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n };\n return ScrollController;\n}());\nvar ElementScrollController = /** @class */ (function (_super) {\n __extends(ElementScrollController, _super);\n function ElementScrollController(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n ElementScrollController.prototype.getScrollTop = function () {\n return this.el.scrollTop;\n };\n ElementScrollController.prototype.getScrollLeft = function () {\n return this.el.scrollLeft;\n };\n ElementScrollController.prototype.setScrollTop = function (top) {\n this.el.scrollTop = top;\n };\n ElementScrollController.prototype.setScrollLeft = function (left) {\n this.el.scrollLeft = left;\n };\n ElementScrollController.prototype.getScrollWidth = function () {\n return this.el.scrollWidth;\n };\n ElementScrollController.prototype.getScrollHeight = function () {\n return this.el.scrollHeight;\n };\n ElementScrollController.prototype.getClientHeight = function () {\n return this.el.clientHeight;\n };\n ElementScrollController.prototype.getClientWidth = function () {\n return this.el.clientWidth;\n };\n return ElementScrollController;\n}(ScrollController));\nvar WindowScrollController = /** @class */ (function (_super) {\n __extends(WindowScrollController, _super);\n function WindowScrollController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WindowScrollController.prototype.getScrollTop = function () {\n return window.pageYOffset;\n };\n WindowScrollController.prototype.getScrollLeft = function () {\n return window.pageXOffset;\n };\n WindowScrollController.prototype.setScrollTop = function (n) {\n window.scroll(window.pageXOffset, n);\n };\n WindowScrollController.prototype.setScrollLeft = function (n) {\n window.scroll(n, window.pageYOffset);\n };\n WindowScrollController.prototype.getScrollWidth = function () {\n return document.documentElement.scrollWidth;\n };\n WindowScrollController.prototype.getScrollHeight = function () {\n return document.documentElement.scrollHeight;\n };\n WindowScrollController.prototype.getClientHeight = function () {\n return document.documentElement.clientHeight;\n };\n WindowScrollController.prototype.getClientWidth = function () {\n return document.documentElement.clientWidth;\n };\n return WindowScrollController;\n}(ScrollController));\n\n/*\nEmbodies a div that has potential scrollbars\n*/\nvar ScrollComponent = /** @class */ (function (_super) {\n __extends(ScrollComponent, _super);\n function ScrollComponent(overflowX, overflowY) {\n var _this = _super.call(this, createElement('div', {\n className: 'fc-scroller'\n })) || this;\n _this.overflowX = overflowX;\n _this.overflowY = overflowY;\n _this.applyOverflow();\n return _this;\n }\n // sets to natural height, unlocks overflow\n ScrollComponent.prototype.clear = function () {\n this.setHeight('auto');\n this.applyOverflow();\n };\n ScrollComponent.prototype.destroy = function () {\n removeElement(this.el);\n };\n // Overflow\n // -----------------------------------------------------------------------------------------------------------------\n ScrollComponent.prototype.applyOverflow = function () {\n applyStyle(this.el, {\n overflowX: this.overflowX,\n overflowY: this.overflowY\n });\n };\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\n // Useful for preserving scrollbar widths regardless of future resizes.\n // Can pass in scrollbarWidths for optimization.\n ScrollComponent.prototype.lockOverflow = function (scrollbarWidths) {\n var overflowX = this.overflowX;\n var overflowY = this.overflowY;\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\n if (overflowX === 'auto') {\n overflowX = (scrollbarWidths.bottom || // horizontal scrollbars?\n this.canScrollHorizontally() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n if (overflowY === 'auto') {\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // horizontal scrollbars?\n this.canScrollVertically() // OR scrolling pane with massless scrollbars?\n ) ? 'scroll' : 'hidden';\n }\n applyStyle(this.el, { overflowX: overflowX, overflowY: overflowY });\n };\n ScrollComponent.prototype.setHeight = function (height) {\n applyStyleProp(this.el, 'height', height);\n };\n ScrollComponent.prototype.getScrollbarWidths = function () {\n var edges = computeEdges(this.el);\n return {\n left: edges.scrollbarLeft,\n right: edges.scrollbarRight,\n bottom: edges.scrollbarBottom\n };\n };\n return ScrollComponent;\n}(ElementScrollController));\n\nvar Theme = /** @class */ (function () {\n function Theme(calendarOptions) {\n this.calendarOptions = calendarOptions;\n this.processIconOverride();\n }\n Theme.prototype.processIconOverride = function () {\n if (this.iconOverrideOption) {\n this.setIconOverride(this.calendarOptions[this.iconOverrideOption]);\n }\n };\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\n var iconClassesCopy;\n var buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = __assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n };\n Theme.prototype.applyIconOverridePrefix = function (className) {\n var prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n };\n Theme.prototype.getClass = function (key) {\n return this.classes[key] || '';\n };\n Theme.prototype.getIconClass = function (buttonName) {\n var className = this.iconClasses[buttonName];\n if (className) {\n return this.baseIconClass + ' ' + className;\n }\n return '';\n };\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\n var className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\n }\n }\n return '';\n };\n return Theme;\n}());\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\nvar guid = 0;\nvar ComponentContext = /** @class */ (function () {\n function ComponentContext(calendar, theme, dateEnv, options, view) {\n this.calendar = calendar;\n this.theme = theme;\n this.dateEnv = dateEnv;\n this.options = options;\n this.view = view;\n this.isRtl = options.dir === 'rtl';\n this.eventOrderSpecs = parseFieldSpecs(options.eventOrder);\n this.nextDayThreshold = createDuration(options.nextDayThreshold);\n }\n ComponentContext.prototype.extend = function (options, view) {\n return new ComponentContext(this.calendar, this.theme, this.dateEnv, options || this.options, view || this.view);\n };\n return ComponentContext;\n}());\nvar Component = /** @class */ (function () {\n function Component() {\n this.everRendered = false;\n this.uid = String(guid++);\n }\n Component.addEqualityFuncs = function (newFuncs) {\n this.prototype.equalityFuncs = __assign({}, this.prototype.equalityFuncs, newFuncs);\n };\n Component.prototype.receiveProps = function (props, context) {\n this.receiveContext(context);\n var _a = recycleProps(this.props || {}, props, this.equalityFuncs), anyChanges = _a.anyChanges, comboProps = _a.comboProps;\n this.props = comboProps;\n if (anyChanges) {\n if (this.everRendered) {\n this.beforeUpdate();\n }\n this.render(comboProps, context);\n if (this.everRendered) {\n this.afterUpdate();\n }\n }\n this.everRendered = true;\n };\n Component.prototype.receiveContext = function (context) {\n var oldContext = this.context;\n this.context = context;\n if (!oldContext) {\n this.firstContext(context);\n }\n };\n Component.prototype.render = function (props, context) {\n };\n Component.prototype.firstContext = function (context) {\n };\n Component.prototype.beforeUpdate = function () {\n };\n Component.prototype.afterUpdate = function () {\n };\n // after destroy is called, this component won't ever be used again\n Component.prototype.destroy = function () {\n };\n return Component;\n}());\nComponent.prototype.equalityFuncs = {};\n/*\nReuses old values when equal. If anything is unequal, returns newProps as-is.\nGreat for PureComponent, but won't be feasible with React, so just eliminate and use React's DOM diffing.\n*/\nfunction recycleProps(oldProps, newProps, equalityFuncs) {\n var comboProps = {}; // some old, some new\n var anyChanges = false;\n for (var key in newProps) {\n if (key in oldProps && (oldProps[key] === newProps[key] ||\n (equalityFuncs[key] && equalityFuncs[key](oldProps[key], newProps[key])))) {\n // equal to old? use old prop\n comboProps[key] = oldProps[key];\n }\n else {\n comboProps[key] = newProps[key];\n anyChanges = true;\n }\n }\n for (var key in oldProps) {\n if (!(key in newProps)) {\n anyChanges = true;\n break;\n }\n }\n return { anyChanges: anyChanges, comboProps: comboProps };\n}\n\n/*\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nvar DateComponent = /** @class */ (function (_super) {\n __extends(DateComponent, _super);\n function DateComponent(el) {\n var _this = _super.call(this) || this;\n _this.el = el;\n return _this;\n }\n DateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n removeElement(this.el);\n };\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.buildPositionCaches = function () {\n };\n DateComponent.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n };\n // Validation\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isInteractionValid = function (interaction) {\n var calendar = this.context.calendar;\n var dateProfile = this.props.dateProfile; // HACK\n var instances = interaction.mutatedEvents.instances;\n if (dateProfile) { // HACK for DayTile\n for (var instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n }\n return isInteractionValid(interaction, calendar);\n };\n DateComponent.prototype.isDateSelectionValid = function (selection) {\n var calendar = this.context.calendar;\n var dateProfile = this.props.dateProfile; // HACK\n if (dateProfile && // HACK for DayTile\n !rangeContainsRange(dateProfile.validRange, selection.range)) {\n return false;\n }\n return isDateSelectionValid(selection, calendar);\n };\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n DateComponent.prototype.isValidSegDownEl = function (el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-mirror') &&\n (this.isPopover() || !this.isInPopover(el));\n // ^above line ensures we don't detect a seg interaction within a nested component.\n // it's a HACK because it only supports a popover as the nested component.\n };\n DateComponent.prototype.isValidDateDownEl = function (el) {\n var segEl = elementClosest(el, this.fgSegSelector);\n return (!segEl || segEl.classList.contains('fc-mirror')) &&\n !elementClosest(el, '.fc-more') && // a \"more..\" link\n !elementClosest(el, 'a[data-goto]') && // a clickable nav link\n !this.isInPopover(el);\n };\n DateComponent.prototype.isPopover = function () {\n return this.el.classList.contains('fc-popover');\n };\n DateComponent.prototype.isInPopover = function (el) {\n return Boolean(elementClosest(el, '.fc-popover'));\n };\n return DateComponent;\n}(Component));\nDateComponent.prototype.fgSegSelector = '.fc-event-container > *';\nDateComponent.prototype.bgSegSelector = '.fc-bgevent:not(.fc-nonbusiness)';\n\nvar uid$1 = 0;\nfunction createPlugin(input) {\n return {\n id: String(uid$1++),\n deps: input.deps || [],\n reducers: input.reducers || [],\n eventDefParsers: input.eventDefParsers || [],\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],\n viewContainerModifiers: input.viewContainerModifiers || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n defaultView: input.defaultView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {}\n };\n}\nvar PluginSystem = /** @class */ (function () {\n function PluginSystem() {\n this.hooks = {\n reducers: [],\n eventDefParsers: [],\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n eventResizeJoinTransforms: [],\n viewContainerModifiers: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n defaultView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {}\n };\n this.addedHash = {};\n }\n PluginSystem.prototype.add = function (plugin) {\n if (!this.addedHash[plugin.id]) {\n this.addedHash[plugin.id] = true;\n for (var _i = 0, _a = plugin.deps; _i < _a.length; _i++) {\n var dep = _a[_i];\n this.add(dep);\n }\n this.hooks = combineHooks(this.hooks, plugin);\n }\n };\n return PluginSystem;\n}());\nfunction combineHooks(hooks0, hooks1) {\n return {\n reducers: hooks0.reducers.concat(hooks1.reducers),\n eventDefParsers: hooks0.eventDefParsers.concat(hooks1.eventDefParsers),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: __assign({}, hooks0.views, hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),\n viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: __assign({}, hooks0.themeClasses, hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n defaultView: hooks0.defaultView || hooks1.defaultView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: __assign({}, hooks0.optionChangeHandlers, hooks1.optionChangeHandlers)\n };\n}\n\nvar eventSourceDef = {\n ignoreRange: true,\n parseMeta: function (raw) {\n if (Array.isArray(raw)) { // short form\n return raw;\n }\n else if (Array.isArray(raw.events)) {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success) {\n success({\n rawEvents: arg.eventSource.meta\n });\n }\n};\nvar ArrayEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef]\n});\n\nvar eventSourceDef$1 = {\n parseMeta: function (raw) {\n if (typeof raw === 'function') { // short form\n return raw;\n }\n else if (typeof raw.events === 'function') {\n return raw.events;\n }\n return null;\n },\n fetch: function (arg, success, failure) {\n var dateEnv = arg.calendar.dateEnv;\n var func = arg.eventSource.meta;\n unpromisify(func.bind(null, {\n start: dateEnv.toDate(arg.range.start),\n end: dateEnv.toDate(arg.range.end),\n startStr: dateEnv.formatIso(arg.range.start),\n endStr: dateEnv.formatIso(arg.range.end),\n timeZone: dateEnv.timeZone\n }), function (rawEvents) {\n success({ rawEvents: rawEvents }); // needs an object response\n }, failure // send errorObj directly to failure callback\n );\n }\n};\nvar FuncEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$1]\n});\n\nfunction requestJson(method, url, params, successCallback, failureCallback) {\n method = method.toUpperCase();\n var body = null;\n if (method === 'GET') {\n url = injectQueryStringParams(url, params);\n }\n else {\n body = encodeParams(params);\n }\n var xhr = new XMLHttpRequest();\n xhr.open(method, url, true);\n if (method !== 'GET') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n try {\n var res = JSON.parse(xhr.responseText);\n successCallback(res, xhr);\n }\n catch (err) {\n failureCallback('Failure parsing JSON', xhr);\n }\n }\n else {\n failureCallback('Request failed', xhr);\n }\n };\n xhr.onerror = function () {\n failureCallback('Request failed', xhr);\n };\n xhr.send(body);\n}\nfunction injectQueryStringParams(url, params) {\n return url +\n (url.indexOf('?') === -1 ? '?' : '&') +\n encodeParams(params);\n}\nfunction encodeParams(params) {\n var parts = [];\n for (var key in params) {\n parts.push(encodeURIComponent(key) + '=' + encodeURIComponent(params[key]));\n }\n return parts.join('&');\n}\n\nvar eventSourceDef$2 = {\n parseMeta: function (raw) {\n if (typeof raw === 'string') { // short form\n raw = { url: raw };\n }\n else if (!raw || typeof raw !== 'object' || !raw.url) {\n return null;\n }\n return {\n url: raw.url,\n method: (raw.method || 'GET').toUpperCase(),\n extraParams: raw.extraParams,\n startParam: raw.startParam,\n endParam: raw.endParam,\n timeZoneParam: raw.timeZoneParam\n };\n },\n fetch: function (arg, success, failure) {\n var meta = arg.eventSource.meta;\n var requestParams = buildRequestParams(meta, arg.range, arg.calendar);\n requestJson(meta.method, meta.url, requestParams, function (rawEvents, xhr) {\n success({ rawEvents: rawEvents, xhr: xhr });\n }, function (errorMessage, xhr) {\n failure({ message: errorMessage, xhr: xhr });\n });\n }\n};\nvar JsonFeedEventSourcePlugin = createPlugin({\n eventSourceDefs: [eventSourceDef$2]\n});\nfunction buildRequestParams(meta, range, calendar) {\n var dateEnv = calendar.dateEnv;\n var startParam;\n var endParam;\n var timeZoneParam;\n var customRequestParams;\n var params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = calendar.opt('startParam');\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = calendar.opt('endParam');\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = calendar.opt('timeZoneParam');\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n __assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nvar recurring = {\n parse: function (rawEvent, leftoverProps, dateEnv) {\n var createMarker = dateEnv.createMarker.bind(dateEnv);\n var processors = {\n daysOfWeek: null,\n startTime: createDuration,\n endTime: createDuration,\n startRecur: createMarker,\n endRecur: createMarker\n };\n var props = refineProps(rawEvent, processors, {}, leftoverProps);\n var anyValid = false;\n for (var propName in props) {\n if (props[propName] != null) {\n anyValid = true;\n break;\n }\n }\n if (anyValid) {\n var duration = null;\n if ('duration' in leftoverProps) {\n duration = createDuration(leftoverProps.duration);\n delete leftoverProps.duration;\n }\n if (!duration && props.startTime && props.endTime) {\n duration = subtractDurations(props.endTime, props.startTime);\n }\n return {\n allDayGuess: Boolean(!props.startTime && !props.endTime),\n duration: duration,\n typeData: props // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand: function (typeData, framingRange, dateEnv) {\n var clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n else {\n return [];\n }\n }\n};\nvar SimpleRecurrencePlugin = createPlugin({\n recurringTypes: [recurring]\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n var dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n var dayMarker = startOfDay(framingRange.start);\n var endMarker = framingRange.end;\n var instanceStarts = [];\n while (dayMarker < endMarker) {\n var instanceStart \n // if everyday, or this particular day-of-week\n = void 0;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nvar DefaultOptionChangeHandlers = createPlugin({\n optionChangeHandlers: {\n events: function (events, calendar, deepEqual) {\n handleEventSources([events], calendar, deepEqual);\n },\n eventSources: handleEventSources,\n plugins: handlePlugins\n }\n});\nfunction handleEventSources(inputs, calendar, deepEqual) {\n var unfoundSources = hashValuesToArray(calendar.state.eventSources);\n var newInputs = [];\n for (var _i = 0, inputs_1 = inputs; _i < inputs_1.length; _i++) {\n var input = inputs_1[_i];\n var inputFound = false;\n for (var i = 0; i < unfoundSources.length; i++) {\n if (deepEqual(unfoundSources[i]._raw, input)) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (var _a = 0, unfoundSources_1 = unfoundSources; _a < unfoundSources_1.length; _a++) {\n var unfoundSource = unfoundSources_1[_a];\n calendar.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId\n });\n }\n for (var _b = 0, newInputs_1 = newInputs; _b < newInputs_1.length; _b++) {\n var newInput = newInputs_1[_b];\n calendar.addEventSource(newInput);\n }\n}\n// shortcoming: won't remove plugins\nfunction handlePlugins(inputs, calendar) {\n calendar.addPluginInputs(inputs); // will gracefully handle duplicates\n}\n\nvar config = {}; // TODO: make these options\nvar globalDefaults = {\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n // display\n columnHeader: true,\n defaultView: '',\n aspectRatio: 1.35,\n header: {\n left: 'title',\n center: '',\n right: 'today prev,next'\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n // nowIndicator: false,\n scrollTime: '06:00:00',\n minTime: '00:00:00',\n maxTime: '24:00:00',\n showNonCurrentDates: true,\n // event ajax\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n // allDayDefault: undefined,\n // locale\n locales: [],\n locale: '',\n // dir: will get this from the default locale\n // buttonIcons: null,\n // allows setting a min-height to the event segment to prevent short events overlapping each other\n timeGridEventMinHeight: 0,\n themeSystem: 'standard',\n // eventResizableFromStart: false,\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n // selectable: false,\n unselectAuto: true,\n // selectMinDistance: 0,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n // ^ if start tie, longer events go before shorter. final tie-breaker is title text\n // rerenderDelay: null,\n eventLimit: false,\n eventLimitClick: 'popover',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5 // only applies to mouse\n};\nvar rtlDefaults = {\n header: {\n left: 'next,prev today',\n center: '',\n right: 'title'\n },\n buttonIcons: {\n // TODO: make RTL support the responibility of the theme\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left'\n }\n};\nvar complexOptions = [\n 'header',\n 'footer',\n 'buttonText',\n 'buttonIcons'\n];\n// Merges an array of option objects into a single object\nfunction mergeOptions(optionObjs) {\n return mergeProps(optionObjs, complexOptions);\n}\n// TODO: move this stuff to a \"plugin\"-related file...\nvar INTERNAL_PLUGINS = [\n ArrayEventSourcePlugin,\n FuncEventSourcePlugin,\n JsonFeedEventSourcePlugin,\n SimpleRecurrencePlugin,\n DefaultOptionChangeHandlers\n];\nfunction refinePluginDefs(pluginInputs) {\n var plugins = [];\n for (var _i = 0, pluginInputs_1 = pluginInputs; _i < pluginInputs_1.length; _i++) {\n var pluginInput = pluginInputs_1[_i];\n if (typeof pluginInput === 'string') {\n var globalName = 'FullCalendar' + capitaliseFirstLetter(pluginInput);\n if (!window[globalName]) {\n console.warn('Plugin file not loaded for ' + pluginInput);\n }\n else {\n plugins.push(window[globalName].default); // is an ES6 module\n }\n }\n else {\n plugins.push(pluginInput);\n }\n }\n return INTERNAL_PLUGINS.concat(plugins);\n}\n\nvar RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4 // 4 days need to be within the year to be considered the first week\n },\n dir: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list'\n },\n weekLabel: 'W',\n allDayText: 'all-day',\n eventLimitText: 'more',\n noEventsMessage: 'No events to display'\n};\nfunction parseRawLocales(explicitRawLocales) {\n var defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n var globalArray = window['FullCalendarLocalesAll'] || []; // from locales-all.js\n var globalObject = window['FullCalendarLocales'] || {}; // from locales/*.js. keys are meaningless\n var allRawLocales = globalArray.concat(// globalArray is low prio\n hashValuesToArray(globalObject), // medium prio\n explicitRawLocales // highest prio\n );\n var rawLocaleMap = {\n en: RAW_EN_LOCALE // necessary?\n };\n for (var _i = 0, allRawLocales_1 = allRawLocales; _i < allRawLocales_1.length; _i++) {\n var rawLocale = allRawLocales_1[_i];\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode: defaultCode\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n else {\n return queryLocale(inputSingular, available);\n }\n}\nfunction queryLocale(codeArg, available) {\n var codes = [].concat(codeArg || []); // will convert to array\n var raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (var i = 0; i < codes.length; i++) {\n var parts = codes[i].toLocaleLowerCase().split('-');\n for (var j = parts.length; j > 0; j--) {\n var simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n var merged = mergeProps([RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n var week = merged.week;\n delete merged.week;\n return {\n codeArg: codeArg,\n codes: codes,\n week: week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged\n };\n}\n\nvar OptionsManager = /** @class */ (function () {\n function OptionsManager(overrides) {\n this.overrides = __assign({}, overrides); // make a copy\n this.dynamicOverrides = {};\n this.compute();\n }\n OptionsManager.prototype.mutate = function (updates, removals, isDynamic) {\n if (!Object.keys(updates).length && !removals.length) {\n return;\n }\n var overrideHash = isDynamic ? this.dynamicOverrides : this.overrides;\n __assign(overrideHash, updates);\n for (var _i = 0, removals_1 = removals; _i < removals_1.length; _i++) {\n var propName = removals_1[_i];\n delete overrideHash[propName];\n }\n this.compute();\n };\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\n OptionsManager.prototype.compute = function () {\n // TODO: not a very efficient system\n var locales = firstDefined(// explicit locale option given?\n this.dynamicOverrides.locales, this.overrides.locales, globalDefaults.locales);\n var locale = firstDefined(// explicit locales option given?\n this.dynamicOverrides.locale, this.overrides.locale, globalDefaults.locale);\n var available = parseRawLocales(locales);\n var localeDefaults = buildLocale(locale || available.defaultCode, available.map).options;\n var dir = firstDefined(// based on options computed so far, is direction RTL?\n this.dynamicOverrides.dir, this.overrides.dir, localeDefaults.dir);\n var dirDefaults = dir === 'rtl' ? rtlDefaults : {};\n this.dirDefaults = dirDefaults;\n this.localeDefaults = localeDefaults;\n this.computed = mergeOptions([\n globalDefaults,\n dirDefaults,\n localeDefaults,\n this.overrides,\n this.dynamicOverrides\n ]);\n };\n return OptionsManager;\n}());\n\nvar calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nvar GregorianCalendarSystem = /** @class */ (function () {\n function GregorianCalendarSystem() {\n }\n GregorianCalendarSystem.prototype.getMarkerYear = function (d) {\n return d.getUTCFullYear();\n };\n GregorianCalendarSystem.prototype.getMarkerMonth = function (d) {\n return d.getUTCMonth();\n };\n GregorianCalendarSystem.prototype.getMarkerDay = function (d) {\n return d.getUTCDate();\n };\n GregorianCalendarSystem.prototype.arrayToMarker = function (arr) {\n return arrayToUtcDate(arr);\n };\n GregorianCalendarSystem.prototype.markerToArray = function (marker) {\n return dateToUtcArray(marker);\n };\n return GregorianCalendarSystem;\n}());\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nvar ISO_RE = /^\\s*(\\d{4})(-(\\d{2})(-(\\d{2})([T ](\\d{2}):(\\d{2})(:(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n var m = ISO_RE.exec(str);\n if (m) {\n var marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number('0.' + m[12]) * 1000 : 0));\n if (isValidDate(marker)) {\n var timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker: marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset: timeZoneOffset\n };\n }\n }\n return null;\n}\n\nvar DateEnv = /** @class */ (function () {\n function DateEnv(settings) {\n var timeZone = this.timeZone = settings.timeZone;\n var isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekLabel = settings.weekLabel != null ? settings.weekLabel : settings.locale.options.weekLabel;\n this.cmdFormatter = settings.cmdFormatter;\n }\n // Creating / Parsing\n DateEnv.prototype.createMarker = function (input) {\n var meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n };\n DateEnv.prototype.createNowMarker = function () {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n else {\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n };\n DateEnv.prototype.createMarkerMeta = function (input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n var marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker: marker, isTimeUnspecified: false, forcedTzo: null };\n };\n DateEnv.prototype.parse = function (s) {\n var parts = parse(s);\n if (parts === null) {\n return null;\n }\n var marker = parts.marker;\n var forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker: marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo: forcedTzo };\n };\n // Accessors\n DateEnv.prototype.getYear = function (marker) {\n return this.calendarSystem.getMarkerYear(marker);\n };\n DateEnv.prototype.getMonth = function (marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n };\n // Adding / Subtracting\n DateEnv.prototype.add = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.subtract = function (marker, dur) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addYears = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n DateEnv.prototype.addMonths = function (marker, n) {\n var a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n };\n // Diffing Whole Units\n DateEnv.prototype.diffWholeYears = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n };\n DateEnv.prototype.diffWholeMonths = function (m0, m1) {\n var calendarSystem = this.calendarSystem;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n };\n // Range / Duration\n DateEnv.prototype.greatestWholeUnit = function (m0, m1) {\n var n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n };\n DateEnv.prototype.countDurationsBetween = function (m0, m1, d) {\n // TODO: can use greatestWholeUnit\n var diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n };\n // Start-Of\n DateEnv.prototype.startOf = function (m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n else if (unit === 'month') {\n return this.startOfMonth(m);\n }\n else if (unit === 'week') {\n return this.startOfWeek(m);\n }\n else if (unit === 'day') {\n return startOfDay(m);\n }\n else if (unit === 'hour') {\n return startOfHour(m);\n }\n else if (unit === 'minute') {\n return startOfMinute(m);\n }\n else if (unit === 'second') {\n return startOfSecond(m);\n }\n };\n DateEnv.prototype.startOfYear = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m)\n ]);\n };\n DateEnv.prototype.startOfMonth = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m)\n ]);\n };\n DateEnv.prototype.startOfWeek = function (m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7)\n ]);\n };\n // Week Number\n DateEnv.prototype.computeWeekNumber = function (marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n else {\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n };\n // TODO: choke on timeZoneName: long\n DateEnv.prototype.format = function (marker, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n return formatter.format({\n marker: marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker)\n }, this);\n };\n DateEnv.prototype.formatRange = function (start, end, formatter, dateOptions) {\n if (dateOptions === void 0) { dateOptions = {}; }\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start)\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end)\n }, this);\n };\n DateEnv.prototype.formatIso = function (marker, extraOptions) {\n if (extraOptions === void 0) { extraOptions = {}; }\n var timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n };\n // TimeZone\n DateEnv.prototype.timestampToMarker = function (ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n else if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n else {\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n };\n DateEnv.prototype.offsetForMarker = function (m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n else if (this.timeZone === 'UTC') {\n return 0;\n }\n else if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n };\n // Conversion\n DateEnv.prototype.toDate = function (m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n else if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n else if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n else {\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60 // convert minutes -> ms\n );\n }\n };\n return DateEnv;\n}());\n\nvar SIMPLE_SOURCE_PROPS = {\n id: String,\n allDayDefault: Boolean,\n eventDataTransform: Function,\n success: Function,\n failure: Function\n};\nvar uid$2 = 0;\nfunction doesSourceNeedRange(eventSource, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\nfunction parseEventSource(raw, calendar) {\n var defs = calendar.pluginSystem.hooks.eventSourceDefs;\n for (var i = defs.length - 1; i >= 0; i--) { // later-added plugins take precedence\n var def = defs[i];\n var meta = def.parseMeta(raw);\n if (meta) {\n var res = parseEventSourceProps(typeof raw === 'object' ? raw : {}, meta, i, calendar);\n res._raw = raw;\n return res;\n }\n }\n return null;\n}\nfunction parseEventSourceProps(raw, meta, sourceDefId, calendar) {\n var leftovers0 = {};\n var props = refineProps(raw, SIMPLE_SOURCE_PROPS, {}, leftovers0);\n var leftovers1 = {};\n var ui = processUnscopedUiProps(leftovers0, calendar, leftovers1);\n props.isFetching = false;\n props.latestFetchId = '';\n props.fetchRange = null;\n props.publicId = String(raw.id || '');\n props.sourceId = String(uid$2++);\n props.sourceDefId = sourceDefId;\n props.meta = meta;\n props.ui = ui;\n props.extendedProps = leftovers1;\n return props;\n}\n\nfunction reduceEventSources (eventSources, action, dateProfile, calendar) {\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, dateProfile ? dateProfile.activeRange : null, calendar);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, dateProfile.activeRange, calendar);\n }\n else {\n return eventSources;\n }\n case 'FETCH_EVENT_SOURCES':\n case 'CHANGE_TIMEZONE':\n return fetchSourcesByIds(eventSources, action.sourceIds ?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, calendar), dateProfile ? dateProfile.activeRange : null, calendar);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nvar uid$3 = 0;\nfunction addSources(eventSourceHash, sources, fetchRange, calendar) {\n var hash = {};\n for (var _i = 0, sources_1 = sources; _i < sources_1.length; _i++) {\n var source = sources_1[_i];\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, calendar);\n }\n return __assign({}, eventSourceHash, hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, function (eventSource) {\n return eventSource.sourceId !== sourceId;\n });\n}\nfunction fetchDirtySources(sourceHash, fetchRange, calendar) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, function (eventSource) {\n return isSourceDirty(eventSource, fetchRange, calendar);\n }), fetchRange, calendar);\n}\nfunction isSourceDirty(eventSource, fetchRange, calendar) {\n if (!doesSourceNeedRange(eventSource, calendar)) {\n return !eventSource.latestFetchId;\n }\n else {\n return !calendar.opt('lazyFetching') ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n }\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, calendar) {\n var nextSources = {};\n for (var sourceId in prevSources) {\n var source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, calendar);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, calendar) {\n var sourceDef = calendar.pluginSystem.hooks.eventSourceDefs[eventSource.sourceDefId];\n var fetchId = String(uid$3++);\n sourceDef.fetch({\n eventSource: eventSource,\n calendar: calendar,\n range: fetchRange\n }, function (res) {\n var rawEvents = res.rawEvents;\n var calSuccess = calendar.opt('eventSourceSuccess');\n var calSuccessRes;\n var sourceSuccessRes;\n if (eventSource.success) {\n sourceSuccessRes = eventSource.success(rawEvents, res.xhr);\n }\n if (calSuccess) {\n calSuccessRes = calSuccess(rawEvents, res.xhr);\n }\n rawEvents = sourceSuccessRes || calSuccessRes || rawEvents;\n calendar.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n rawEvents: rawEvents\n });\n }, function (error) {\n var callFailure = calendar.opt('eventSourceFailure');\n console.warn(error.message, error);\n if (eventSource.failure) {\n eventSource.failure(error);\n }\n if (callFailure) {\n callFailure(error);\n }\n calendar.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId: fetchId,\n fetchRange: fetchRange,\n error: error\n });\n });\n return __assign({}, eventSource, { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n var _a;\n var eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return __assign({}, sourceHash, (_a = {}, _a[sourceId] = __assign({}, eventSource, { isFetching: false, fetchRange: fetchRange // also serves as a marker that at least one fetch has completed\n }), _a));\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, calendar) {\n return filterHash(eventSources, function (eventSource) {\n return doesSourceNeedRange(eventSource, calendar);\n });\n}\n\nvar DateProfileGenerator = /** @class */ (function () {\n function DateProfileGenerator(viewSpec, calendar) {\n this.viewSpec = viewSpec;\n this.options = viewSpec.options;\n this.dateEnv = calendar.dateEnv;\n this.calendar = calendar;\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1);\n };\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile, currentDate) {\n var dateEnv = this.dateEnv;\n var nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1);\n };\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n DateProfileGenerator.prototype.build = function (currentDate, direction, forceToValid) {\n if (forceToValid === void 0) { forceToValid = false; }\n var validRange;\n var minTime = null;\n var maxTime = null;\n var currentInfo;\n var isRangeAllDay;\n var renderRange;\n var activeRange;\n var isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!this.options.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n minTime = createDuration(this.options.minTime);\n maxTime = createDuration(this.options.maxTime);\n activeRange = this.adjustActiveRange(activeRange, minTime, maxTime);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n return {\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange: validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay: isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange: activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange: renderRange,\n // Duration object that denotes the first visible time of any given day\n minTime: minTime,\n // Duration object that denotes the exclusive visible end time of any given day\n maxTime: maxTime,\n isValid: isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\n // pass a fallback (might be null) ^\n };\n };\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildValidRange = function () {\n return this.getRangeOption('validRange', this.calendar.getNow()) ||\n { start: null, end: null }; // completely open-ended\n };\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\n var _a = this, viewSpec = _a.viewSpec, dateEnv = _a.dateEnv;\n var duration = null;\n var unit = null;\n var range = null;\n var dayCount;\n if (viewSpec.duration) {\n duration = viewSpec.duration;\n unit = viewSpec.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.options.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration: duration, unit: unit, range: range };\n };\n DateProfileGenerator.prototype.getFallbackDuration = function () {\n return createDuration({ day: 1 });\n };\n // Returns a new activeRange to have time values (un-ambiguate)\n // minTime or maxTime causes the range to expand.\n DateProfileGenerator.prototype.adjustActiveRange = function (range, minTime, maxTime) {\n var dateEnv = this.dateEnv;\n var start = range.start;\n var end = range.end;\n if (this.viewSpec.class.prototype.usesMinMaxTime) {\n // expand active range if minTime is negative (why not when positive?)\n if (asRoughDays(minTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, minTime);\n }\n // expand active range if maxTime is beyond one day (why not when positive?)\n if (asRoughDays(maxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, maxTime);\n }\n }\n return { start: start, end: end };\n };\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\n var dateEnv = this.dateEnv;\n var alignment = this.options.dateAlignment;\n var dateIncrementInput;\n var dateIncrementDuration;\n var start;\n var end;\n var res;\n // compute what the alignment should be\n if (!alignment) {\n dateIncrementInput = this.options.dateIncrement;\n if (dateIncrementInput) {\n dateIncrementDuration = createDuration(dateIncrementInput);\n // use the smaller of the two units\n if (asRoughMs(dateIncrementDuration) < asRoughMs(duration)) {\n alignment = greatestDurationDenominator(dateIncrementDuration, !getWeeksFromInput(dateIncrementInput)).unit;\n }\n else {\n alignment = unit;\n }\n }\n else {\n alignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, alignment);\n end = dateEnv.add(start, duration);\n res = { start: start, end: end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n };\n // Builds the \"current\" range when a dayCount is specified.\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\n var dateEnv = this.dateEnv;\n var customAlignment = this.options.dateAlignment;\n var runningCount = 0;\n var start = date;\n var end;\n if (customAlignment) {\n start = dateEnv.startOf(start, customAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount++;\n }\n } while (runningCount < dayCount);\n return { start: start, end: end };\n };\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\n var dateEnv = this.dateEnv;\n var visibleRange = this.getRangeOption('visibleRange', dateEnv.toDate(date));\n if (visibleRange && (visibleRange.start == null || visibleRange.end == null)) {\n return null;\n }\n return visibleRange;\n };\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n DateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n };\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\n var dateIncrementInput = this.options.dateIncrement;\n var customAlignment;\n if (dateIncrementInput) {\n return createDuration(dateIncrementInput);\n }\n else if ((customAlignment = this.options.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n else if (fallback) {\n return fallback;\n }\n else {\n return createDuration({ days: 1 });\n }\n };\n // Arguments after name will be forwarded to a hypothetical function value\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\n // Always clone your objects if you fear mutation.\n DateProfileGenerator.prototype.getRangeOption = function (name) {\n var otherArgs = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n otherArgs[_i - 1] = arguments[_i];\n }\n var val = this.options[name];\n if (typeof val === 'function') {\n val = val.apply(null, otherArgs);\n }\n if (val) {\n val = parseRange(val, this.dateEnv);\n }\n if (val) {\n val = computeVisibleDayRange(val);\n }\n return val;\n };\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n DateProfileGenerator.prototype.initHiddenDays = function () {\n var hiddenDays = this.options.hiddenDays || []; // array of day-of-week indices that are hidden\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n var dayCnt = 0;\n var i;\n if (this.options.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i++) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt++;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n };\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n DateProfileGenerator.prototype.trimHiddenDays = function (range) {\n var start = range.start;\n var end = range.end;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start: start, end: end };\n }\n return null;\n };\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n DateProfileGenerator.prototype.isHiddenDay = function (day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n };\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n DateProfileGenerator.prototype.skipHiddenDays = function (date, inc, isExclusive) {\n if (inc === void 0) { inc = 1; }\n if (isExclusive === void 0) { isExclusive = false; }\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n };\n return DateProfileGenerator;\n}());\n// TODO: find a way to avoid comparing DateProfiles. it's tedious\nfunction isDateProfilesEqual(p0, p1) {\n return rangesEqual(p0.validRange, p1.validRange) &&\n rangesEqual(p0.activeRange, p1.activeRange) &&\n rangesEqual(p0.renderRange, p1.renderRange) &&\n durationsEqual(p0.minTime, p1.minTime) &&\n durationsEqual(p0.maxTime, p1.maxTime);\n /*\n TODO: compare more?\n currentRange: DateRange\n currentRangeUnit: string\n isRangeAllDay: boolean\n isValid: boolean\n dateIncrement: Duration\n */\n}\n\nfunction reduce (state, action, calendar) {\n var viewType = reduceViewType(state.viewType, action);\n var dateProfile = reduceDateProfile(state.dateProfile, action, state.currentDate, viewType, calendar);\n var eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendar);\n var nextState = __assign({}, state, { viewType: viewType,\n dateProfile: dateProfile, currentDate: reduceCurrentDate(state.currentDate, action, dateProfile), eventSources: eventSources, eventStore: reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendar), dateSelection: reduceDateSelection(state.dateSelection, action, calendar), eventSelection: reduceSelectedEvent(state.eventSelection, action), eventDrag: reduceEventDrag(state.eventDrag, action, eventSources, calendar), eventResize: reduceEventResize(state.eventResize, action, eventSources, calendar), eventSourceLoadingLevel: computeLoadingLevel(eventSources), loadingLevel: computeLoadingLevel(eventSources) });\n for (var _i = 0, _a = calendar.pluginSystem.hooks.reducers; _i < _a.length; _i++) {\n var reducerFunc = _a[_i];\n nextState = reducerFunc(nextState, action, calendar);\n }\n // console.log(action.type, nextState)\n return nextState;\n}\nfunction reduceViewType(currentViewType, action) {\n switch (action.type) {\n case 'SET_VIEW_TYPE':\n return action.viewType;\n default:\n return currentViewType;\n }\n}\nfunction reduceDateProfile(currentDateProfile, action, currentDate, viewType, calendar) {\n var newDateProfile;\n switch (action.type) {\n case 'PREV':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildPrev(currentDateProfile, currentDate);\n break;\n case 'NEXT':\n newDateProfile = calendar.dateProfileGenerators[viewType].buildNext(currentDateProfile, currentDate);\n break;\n case 'SET_DATE':\n if (!currentDateProfile.activeRange ||\n !rangeContainsMarker(currentDateProfile.currentRange, action.dateMarker)) {\n newDateProfile = calendar.dateProfileGenerators[viewType].build(action.dateMarker, undefined, true // forceToValid\n );\n }\n break;\n case 'SET_VIEW_TYPE':\n var generator = calendar.dateProfileGenerators[viewType];\n if (!generator) {\n throw new Error(viewType ?\n 'The FullCalendar view \"' + viewType + '\" does not exist. Make sure your plugins are loaded correctly.' :\n 'No available FullCalendar view plugins.');\n }\n newDateProfile = generator.build(action.dateMarker || currentDate, undefined, true // forceToValid\n );\n break;\n }\n if (newDateProfile &&\n newDateProfile.isValid &&\n !(currentDateProfile && isDateProfilesEqual(currentDateProfile, newDateProfile))) {\n return newDateProfile;\n }\n else {\n return currentDateProfile;\n }\n}\nfunction reduceCurrentDate(currentDate, action, dateProfile) {\n switch (action.type) {\n case 'PREV':\n case 'NEXT':\n if (!rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return currentDate;\n }\n case 'SET_DATE':\n case 'SET_VIEW_TYPE':\n var newDate = action.dateMarker || currentDate;\n if (dateProfile.activeRange && !rangeContainsMarker(dateProfile.activeRange, newDate)) {\n return dateProfile.currentRange.start;\n }\n else {\n return newDate;\n }\n default:\n return currentDate;\n }\n}\nfunction reduceDateSelection(currentSelection, action, calendar) {\n switch (action.type) {\n case 'SELECT_DATES':\n return action.selection;\n case 'UNSELECT_DATES':\n return null;\n default:\n return currentSelection;\n }\n}\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n case 'UNSELECT_EVENT':\n return '';\n default:\n return currentInstanceId;\n }\n}\nfunction reduceEventDrag(currentDrag, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n var newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n origSeg: newDrag.origSeg\n };\n case 'UNSET_EVENT_DRAG':\n return null;\n default:\n return currentDrag;\n }\n}\nfunction reduceEventResize(currentResize, action, sources, calendar) {\n switch (action.type) {\n case 'SET_EVENT_RESIZE':\n var newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n origSeg: newResize.origSeg\n };\n case 'UNSET_EVENT_RESIZE':\n return null;\n default:\n return currentResize;\n }\n}\nfunction computeLoadingLevel(eventSources) {\n var cnt = 0;\n for (var sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n cnt++;\n }\n }\n return cnt;\n}\n\nvar STANDARD_PROPS = {\n start: null,\n end: null,\n allDay: Boolean\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n var span = parseOpenDateSpan(raw, dateEnv);\n var range = span.range;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n else {\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n var leftovers = {};\n var standardProps = refineProps(raw, STANDARD_PROPS, {}, leftovers);\n var startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n var endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n var allDay = standardProps.allDay;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n // use this leftover object as the selection object\n leftovers.range = {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null\n };\n leftovers.allDay = allDay;\n return leftovers;\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (var propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (var propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return {\n start: dateEnv.toDate(span.range.start),\n end: dateEnv.toDate(span.range.end),\n startStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n endStr: dateEnv.formatIso(span.range.end, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, calendar) {\n var def = parseEventDef({ editable: false }, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n calendar);\n return {\n def: def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true\n };\n}\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n var hash = {};\n var viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n var viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n var defaultConfig = defaultConfigs[viewType];\n var overrideConfig = overrideConfigs[viewType];\n var queryProp = function (name) {\n return (defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null);\n };\n var theClass = queryProp('class');\n var superType = queryProp('superType');\n if (!superType && theClass) {\n superType =\n findViewNameBySubclass(theClass, overrideConfigs) ||\n findViewNameBySubclass(theClass, defaultConfigs);\n }\n var superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theClass && superDef) {\n theClass = superDef.class;\n }\n if (!theClass) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n class: theClass,\n defaults: __assign({}, (superDef ? superDef.defaults : {}), (defaultConfig ? defaultConfig.options : {})),\n overrides: __assign({}, (superDef ? superDef.overrides : {}), (overrideConfig ? overrideConfig.options : {}))\n };\n}\nfunction findViewNameBySubclass(viewSubclass, configs) {\n var superProto = Object.getPrototypeOf(viewSubclass.prototype);\n for (var viewType in configs) {\n var parsed = configs[viewType];\n // need DIRECT subclass, so instanceof won't do it\n if (parsed.class && parsed.class.prototype === superProto) {\n return viewType;\n }\n }\n return '';\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nvar VIEW_DEF_PROPS = {\n type: String,\n class: null\n};\nfunction parseViewConfig(input) {\n if (typeof input === 'function') {\n input = { class: input };\n }\n var options = {};\n var props = refineProps(input, VIEW_DEF_PROPS, {}, options);\n return {\n superType: props.type,\n class: props.class,\n options: options\n };\n}\n\nfunction buildViewSpecs(defaultInputs, optionsManager) {\n var defaultConfigs = parseViewConfigs(defaultInputs);\n var overrideConfigs = parseViewConfigs(optionsManager.overrides.views);\n var viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, function (viewDef) {\n return buildViewSpec(viewDef, overrideConfigs, optionsManager);\n });\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionsManager) {\n var durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n optionsManager.dynamicOverrides.duration ||\n optionsManager.overrides.duration;\n var duration = null;\n var durationUnit = '';\n var singleUnit = '';\n var singleUnitOverrides = {};\n if (durationInput) {\n duration = createDuration(durationInput);\n if (duration) { // valid?\n var denom = greatestDurationDenominator(duration, !getWeeksFromInput(durationInput));\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].options : {};\n }\n }\n }\n var queryButtonText = function (options) {\n var buttonTextMap = options.buttonText || {};\n var buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n };\n return {\n type: viewDef.type,\n class: viewDef.class,\n duration: duration,\n durationUnit: durationUnit,\n singleUnit: singleUnit,\n options: __assign({}, globalDefaults, viewDef.defaults, optionsManager.dirDefaults, optionsManager.localeDefaults, optionsManager.overrides, singleUnitOverrides, viewDef.overrides, optionsManager.dynamicOverrides),\n buttonTextOverride: queryButtonText(optionsManager.dynamicOverrides) ||\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(optionsManager.localeDefaults) ||\n queryButtonText(optionsManager.dirDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(globalDefaults) ||\n viewDef.type // fall back to given view name\n };\n}\n\nvar Toolbar = /** @class */ (function (_super) {\n __extends(Toolbar, _super);\n function Toolbar(extraClassName) {\n var _this = _super.call(this) || this;\n _this._renderLayout = memoizeRendering(_this.renderLayout, _this.unrenderLayout);\n _this._updateTitle = memoizeRendering(_this.updateTitle, null, [_this._renderLayout]);\n _this._updateActiveButton = memoizeRendering(_this.updateActiveButton, null, [_this._renderLayout]);\n _this._updateToday = memoizeRendering(_this.updateToday, null, [_this._renderLayout]);\n _this._updatePrev = memoizeRendering(_this.updatePrev, null, [_this._renderLayout]);\n _this._updateNext = memoizeRendering(_this.updateNext, null, [_this._renderLayout]);\n _this.el = createElement('div', { className: 'fc-toolbar ' + extraClassName });\n return _this;\n }\n Toolbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._renderLayout.unrender(); // should unrender everything else\n removeElement(this.el);\n };\n Toolbar.prototype.render = function (props) {\n this._renderLayout(props.layout);\n this._updateTitle(props.title);\n this._updateActiveButton(props.activeButton);\n this._updateToday(props.isTodayEnabled);\n this._updatePrev(props.isPrevEnabled);\n this._updateNext(props.isNextEnabled);\n };\n Toolbar.prototype.renderLayout = function (layout) {\n var el = this.el;\n this.viewsWithButtons = [];\n appendToElement(el, this.renderSection('left', layout.left));\n appendToElement(el, this.renderSection('center', layout.center));\n appendToElement(el, this.renderSection('right', layout.right));\n };\n Toolbar.prototype.unrenderLayout = function () {\n this.el.innerHTML = '';\n };\n Toolbar.prototype.renderSection = function (position, buttonStr) {\n var _this = this;\n var _a = this.context, theme = _a.theme, calendar = _a.calendar;\n var optionsManager = calendar.optionsManager;\n var viewSpecs = calendar.viewSpecs;\n var sectionEl = createElement('div', { className: 'fc-' + position });\n var calendarCustomButtons = optionsManager.computed.customButtons || {};\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\n var calendarButtonText = optionsManager.computed.buttonText || {};\n if (buttonStr) {\n buttonStr.split(' ').forEach(function (buttonGroupStr, i) {\n var groupChildren = [];\n var isOnlyButtons = true;\n var groupEl;\n buttonGroupStr.split(',').forEach(function (buttonName, j) {\n var customButtonProps;\n var viewSpec;\n var buttonClick;\n var buttonIcon; // only one of these will be set\n var buttonText; // \"\n var buttonInnerHtml;\n var buttonClasses;\n var buttonEl;\n var buttonAriaAttr;\n if (buttonName === 'title') {\n groupChildren.push(htmlToElement('

 

')); // we always want it to take up height\n isOnlyButtons = false;\n }\n else {\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = function (ev) {\n if (customButtonProps.click) {\n customButtonProps.click.call(buttonEl, ev);\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = customButtonProps.text);\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n _this.viewsWithButtons.push(buttonName);\n buttonClick = function () {\n calendar.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = viewSpec.buttonTextDefault);\n }\n else if (calendar[buttonName]) { // a calendar method\n buttonClick = function () {\n calendar[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName)) ||\n (buttonText = calendarButtonText[buttonName]);\n // ^ everything else is considered default\n }\n if (buttonClick) {\n buttonClasses = [\n 'fc-' + buttonName + '-button',\n theme.getClass('button')\n ];\n if (buttonText) {\n buttonInnerHtml = htmlEscape(buttonText);\n buttonAriaAttr = '';\n }\n else if (buttonIcon) {\n buttonInnerHtml = \"\";\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\n }\n buttonEl = htmlToElement(// type=\"button\" so that it doesn't submit a form\n '');\n buttonEl.addEventListener('click', buttonClick);\n groupChildren.push(buttonEl);\n }\n }\n });\n if (groupChildren.length > 1) {\n groupEl = document.createElement('div');\n var buttonGroupClassName = theme.getClass('buttonGroup');\n if (isOnlyButtons && buttonGroupClassName) {\n groupEl.classList.add(buttonGroupClassName);\n }\n appendToElement(groupEl, groupChildren);\n sectionEl.appendChild(groupEl);\n }\n else {\n appendToElement(sectionEl, groupChildren); // 1 or 0 children\n }\n });\n }\n return sectionEl;\n };\n Toolbar.prototype.updateToday = function (isTodayEnabled) {\n this.toggleButtonEnabled('today', isTodayEnabled);\n };\n Toolbar.prototype.updatePrev = function (isPrevEnabled) {\n this.toggleButtonEnabled('prev', isPrevEnabled);\n };\n Toolbar.prototype.updateNext = function (isNextEnabled) {\n this.toggleButtonEnabled('next', isNextEnabled);\n };\n Toolbar.prototype.updateTitle = function (text) {\n findElements(this.el, 'h2').forEach(function (titleEl) {\n titleEl.innerText = text;\n });\n };\n Toolbar.prototype.updateActiveButton = function (buttonName) {\n var theme = this.context.theme;\n var className = theme.getClass('buttonActive');\n findElements(this.el, 'button').forEach(function (buttonEl) {\n if (buttonName && buttonEl.classList.contains('fc-' + buttonName + '-button')) {\n buttonEl.classList.add(className);\n }\n else {\n buttonEl.classList.remove(className);\n }\n });\n };\n Toolbar.prototype.toggleButtonEnabled = function (buttonName, bool) {\n findElements(this.el, '.fc-' + buttonName + '-button').forEach(function (buttonEl) {\n buttonEl.disabled = !bool;\n });\n };\n return Toolbar;\n}(Component));\n\nvar CalendarComponent = /** @class */ (function (_super) {\n __extends(CalendarComponent, _super);\n function CalendarComponent(el) {\n var _this = _super.call(this) || this;\n _this.elClassNames = [];\n _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n _this.renderToolbars = memoizeRendering(_this._renderToolbars, _this._unrenderToolbars, [_this.renderSkeleton]);\n _this.buildComponentContext = memoize(buildComponentContext);\n _this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n _this.el = el;\n _this.computeTitle = memoize(computeTitle);\n _this.parseBusinessHours = memoize(function (input) {\n return parseBusinessHours(input, _this.context.calendar);\n });\n return _this;\n }\n CalendarComponent.prototype.render = function (props, context) {\n this.freezeHeight();\n var title = this.computeTitle(props.dateProfile, props.viewSpec.options);\n this.renderSkeleton(context);\n this.renderToolbars(props.viewSpec, props.dateProfile, props.currentDate, title);\n this.renderView(props, title);\n this.updateSize();\n this.thawHeight();\n };\n CalendarComponent.prototype.destroy = function () {\n if (this.header) {\n this.header.destroy();\n }\n if (this.footer) {\n this.footer.destroy();\n }\n this.renderSkeleton.unrender(); // will call destroyView\n _super.prototype.destroy.call(this);\n };\n CalendarComponent.prototype._renderSkeleton = function (context) {\n this.updateElClassNames(context);\n prependToElement(this.el, this.contentEl = createElement('div', { className: 'fc-view-container' }));\n var calendar = context.calendar;\n for (var _i = 0, _a = calendar.pluginSystem.hooks.viewContainerModifiers; _i < _a.length; _i++) {\n var modifyViewContainer = _a[_i];\n modifyViewContainer(this.contentEl, calendar);\n }\n };\n CalendarComponent.prototype._unrenderSkeleton = function () {\n // weird to have this here\n if (this.view) {\n this.savedScroll = this.view.queryScroll();\n this.view.destroy();\n this.view = null;\n }\n removeElement(this.contentEl);\n this.removeElClassNames();\n };\n CalendarComponent.prototype.removeElClassNames = function () {\n var classList = this.el.classList;\n for (var _i = 0, _a = this.elClassNames; _i < _a.length; _i++) {\n var className = _a[_i];\n classList.remove(className);\n }\n this.elClassNames = [];\n };\n CalendarComponent.prototype.updateElClassNames = function (context) {\n this.removeElClassNames();\n var theme = context.theme, options = context.options;\n this.elClassNames = [\n 'fc',\n 'fc-' + options.dir,\n theme.getClass('widget')\n ];\n var classList = this.el.classList;\n for (var _i = 0, _a = this.elClassNames; _i < _a.length; _i++) {\n var className = _a[_i];\n classList.add(className);\n }\n };\n CalendarComponent.prototype._renderToolbars = function (viewSpec, dateProfile, currentDate, title) {\n var _a = this, context = _a.context, header = _a.header, footer = _a.footer;\n var options = context.options, calendar = context.calendar;\n var headerLayout = options.header;\n var footerLayout = options.footer;\n var dateProfileGenerator = this.props.dateProfileGenerator;\n var now = calendar.getNow();\n var todayInfo = dateProfileGenerator.build(now);\n var prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate);\n var nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate);\n var toolbarProps = {\n title: title,\n activeButton: viewSpec.type,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid\n };\n if (headerLayout) {\n if (!header) {\n header = this.header = new Toolbar('fc-header-toolbar');\n prependToElement(this.el, header.el);\n }\n header.receiveProps(__assign({ layout: headerLayout }, toolbarProps), context);\n }\n else if (header) {\n header.destroy();\n header = this.header = null;\n }\n if (footerLayout) {\n if (!footer) {\n footer = this.footer = new Toolbar('fc-footer-toolbar');\n appendToElement(this.el, footer.el);\n }\n footer.receiveProps(__assign({ layout: footerLayout }, toolbarProps), context);\n }\n else if (footer) {\n footer.destroy();\n footer = this.footer = null;\n }\n };\n CalendarComponent.prototype._unrenderToolbars = function () {\n if (this.header) {\n this.header.destroy();\n this.header = null;\n }\n if (this.footer) {\n this.footer.destroy();\n this.footer = null;\n }\n };\n CalendarComponent.prototype.renderView = function (props, title) {\n var view = this.view;\n var _a = this.context, calendar = _a.calendar, options = _a.options;\n var viewSpec = props.viewSpec, dateProfileGenerator = props.dateProfileGenerator;\n if (!view || view.viewSpec !== viewSpec) {\n if (view) {\n view.destroy();\n }\n view = this.view = new viewSpec['class'](viewSpec, this.contentEl);\n if (this.savedScroll) {\n view.addScroll(this.savedScroll, true);\n this.savedScroll = null;\n }\n }\n view.title = title; // for the API\n var viewProps = {\n dateProfileGenerator: dateProfileGenerator,\n dateProfile: props.dateProfile,\n businessHours: this.parseBusinessHours(viewSpec.options.businessHours),\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize\n };\n var transformers = this.buildViewPropTransformers(calendar.pluginSystem.hooks.viewPropsTransformers);\n for (var _i = 0, transformers_1 = transformers; _i < transformers_1.length; _i++) {\n var transformer = transformers_1[_i];\n __assign(viewProps, transformer.transform(viewProps, viewSpec, props, options));\n }\n view.receiveProps(viewProps, this.buildComponentContext(this.context, viewSpec, view));\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.updateSize = function (isResize) {\n if (isResize === void 0) { isResize = false; }\n var view = this.view;\n if (!view) {\n return; // why?\n }\n if (isResize || this.isHeightAuto == null) {\n this.computeHeightVars();\n }\n view.updateSize(isResize, this.viewHeight, this.isHeightAuto);\n view.updateNowIndicator(); // we need to guarantee this will run after updateSize\n view.popScroll(isResize);\n };\n CalendarComponent.prototype.computeHeightVars = function () {\n var calendar = this.context.calendar; // yuck. need to handle dynamic options\n var heightInput = calendar.opt('height');\n var contentHeightInput = calendar.opt('contentHeight');\n this.isHeightAuto = heightInput === 'auto' || contentHeightInput === 'auto';\n if (typeof contentHeightInput === 'number') { // exists and not 'auto'\n this.viewHeight = contentHeightInput;\n }\n else if (typeof contentHeightInput === 'function') { // exists and is a function\n this.viewHeight = contentHeightInput();\n }\n else if (typeof heightInput === 'number') { // exists and not 'auto'\n this.viewHeight = heightInput - this.queryToolbarsHeight();\n }\n else if (typeof heightInput === 'function') { // exists and is a function\n this.viewHeight = heightInput() - this.queryToolbarsHeight();\n }\n else if (heightInput === 'parent') { // set to height of parent element\n var parentEl = this.el.parentNode;\n this.viewHeight = parentEl.getBoundingClientRect().height - this.queryToolbarsHeight();\n }\n else {\n this.viewHeight = Math.round(this.contentEl.getBoundingClientRect().width /\n Math.max(calendar.opt('aspectRatio'), .5));\n }\n };\n CalendarComponent.prototype.queryToolbarsHeight = function () {\n var height = 0;\n if (this.header) {\n height += computeHeightAndMargins(this.header.el);\n }\n if (this.footer) {\n height += computeHeightAndMargins(this.footer.el);\n }\n return height;\n };\n // Height \"Freezing\"\n // -----------------------------------------------------------------------------------------------------------------\n CalendarComponent.prototype.freezeHeight = function () {\n applyStyle(this.el, {\n height: this.el.getBoundingClientRect().height,\n overflow: 'hidden'\n });\n };\n CalendarComponent.prototype.thawHeight = function () {\n applyStyle(this.el, {\n height: '',\n overflow: ''\n });\n };\n return CalendarComponent;\n}(Component));\n// Title and Date Formatting\n// -----------------------------------------------------------------------------------------------------------------\n// Computes what the title at the top of the calendar should be for this view\nfunction computeTitle(dateProfile, viewOptions) {\n var range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return this.context.dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || computeTitleFormat(dateProfile), viewOptions.titleRangeSeparator), { isEndExclusive: dateProfile.isRangeAllDay });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction computeTitleFormat(dateProfile) {\n var currentRangeUnit = dateProfile.currentRangeUnit;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n else if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n else {\n var days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n else {\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n }\n }\n}\n// build a context scoped to the view\nfunction buildComponentContext(context, viewSpec, view) {\n return context.extend(viewSpec.options, view);\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map(function (theClass) {\n return new theClass();\n });\n}\n\nvar Interaction = /** @class */ (function () {\n function Interaction(settings) {\n this.component = settings.component;\n }\n Interaction.prototype.destroy = function () {\n };\n return Interaction;\n}());\nfunction parseInteractionSettings(component, input) {\n return {\n component: component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true\n };\n}\nfunction interactionSettingsToStore(settings) {\n var _a;\n return _a = {},\n _a[settings.component.uid] = settings,\n _a;\n}\n// global state\nvar interactionSettingsStore = {};\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nvar EventClicking = /** @class */ (function (_super) {\n __extends(EventClicking, _super);\n function EventClicking(settings) {\n var _this = _super.call(this, settings) || this;\n _this.handleSegClick = function (ev, segEl) {\n var component = _this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var seg = getElSeg(segEl);\n if (seg && // might be the
surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n var hasUrlContainer = elementClosest(ev.target, '.fc-has-url');\n var url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n calendar.publiclyTrigger('eventClick', [\n {\n el: segEl,\n event: new EventApi(component.context.calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: view\n }\n ]);\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n var component = settings.component;\n _this.destroy = listenBySelector(component.el, 'click', component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegClick);\n return _this;\n }\n return EventClicking;\n}(Interaction));\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nvar EventHovering = /** @class */ (function (_super) {\n __extends(EventHovering, _super);\n function EventHovering(settings) {\n var _this = _super.call(this, settings) || this;\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n _this.handleEventElRemove = function (el) {\n if (el === _this.currentSegEl) {\n _this.handleSegLeave(null, _this.currentSegEl);\n }\n };\n _this.handleSegEnter = function (ev, segEl) {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n segEl.classList.add('fc-allow-mouse-resize');\n _this.currentSegEl = segEl;\n _this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n _this.handleSegLeave = function (ev, segEl) {\n if (_this.currentSegEl) {\n segEl.classList.remove('fc-allow-mouse-resize');\n _this.currentSegEl = null;\n _this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n var component = settings.component;\n _this.removeHoverListeners = listenToHoverBySelector(component.el, component.fgSegSelector + ',' + component.bgSegSelector, _this.handleSegEnter, _this.handleSegLeave);\n // how to make sure component already has context?\n component.context.calendar.on('eventElRemove', _this.handleEventElRemove);\n return _this;\n }\n EventHovering.prototype.destroy = function () {\n this.removeHoverListeners();\n this.component.context.calendar.off('eventElRemove', this.handleEventElRemove);\n };\n EventHovering.prototype.triggerEvent = function (publicEvName, ev, segEl) {\n var component = this.component;\n var _a = component.context, calendar = _a.calendar, view = _a.view;\n var seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n calendar.publiclyTrigger(publicEvName, [\n {\n el: segEl,\n event: new EventApi(calendar, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: view\n }\n ]);\n }\n };\n return EventHovering;\n}(Interaction));\n\nvar StandardTheme = /** @class */ (function (_super) {\n __extends(StandardTheme, _super);\n function StandardTheme() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return StandardTheme;\n}(Theme));\nStandardTheme.prototype.classes = {\n widget: 'fc-unthemed',\n widgetHeader: 'fc-widget-header',\n widgetContent: 'fc-widget-content',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n popoverHeader: 'fc-widget-header',\n popoverContent: 'fc-widget-content',\n // day grid\n headerRow: 'fc-widget-header',\n dayRow: 'fc-widget-content',\n // list view\n listView: 'fc-widget-content'\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right'\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nvar Calendar = /** @class */ (function () {\n function Calendar(el, overrides) {\n var _this = this;\n this.buildComponentContext = memoize(buildComponentContext$1);\n this.parseRawLocales = memoize(parseRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildDateEnv = memoize(buildDateEnv);\n this.buildTheme = memoize(buildTheme);\n this.buildEventUiSingleBase = memoize(this._buildEventUiSingleBase);\n this.buildSelectionConfig = memoize(this._buildSelectionConfig);\n this.buildEventUiBySource = memoizeOutput(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.interactionsStore = {};\n this.actionQueue = [];\n this.isReducing = false;\n // isDisplaying: boolean = false // installed in DOM? accepting renders?\n this.needsRerender = false; // needs a render?\n this.isRendering = false; // currently in the executeRender function?\n this.renderingPauseDepth = 0;\n this.buildDelayedRerender = memoize(buildDelayedRerender);\n this.afterSizingTriggers = {};\n this.isViewUpdated = false;\n this.isDatesUpdated = false;\n this.isEventsUpdated = false;\n this.el = el;\n this.optionsManager = new OptionsManager(overrides || {});\n this.pluginSystem = new PluginSystem();\n // only do once. don't do in handleOptions. because can't remove plugins\n this.addPluginInputs(this.optionsManager.computed.plugins || []);\n this.handleOptions(this.optionsManager.computed);\n this.publiclyTrigger('_init'); // for tests\n this.hydrate();\n this.calendarInteractions = this.pluginSystem.hooks.calendarInteractions\n .map(function (calendarInteractionClass) {\n return new calendarInteractionClass(_this);\n });\n }\n Calendar.prototype.addPluginInputs = function (pluginInputs) {\n var pluginDefs = refinePluginDefs(pluginInputs);\n for (var _i = 0, pluginDefs_1 = pluginDefs; _i < pluginDefs_1.length; _i++) {\n var pluginDef = pluginDefs_1[_i];\n this.pluginSystem.add(pluginDef);\n }\n };\n Object.defineProperty(Calendar.prototype, \"view\", {\n // public API\n get: function () {\n return this.component ? this.component.view : null;\n },\n enumerable: true,\n configurable: true\n });\n // Public API for rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.render = function () {\n if (!this.component) {\n this.component = new CalendarComponent(this.el);\n this.renderableEventStore = createEmptyEventStore();\n this.bindHandlers();\n this.executeRender();\n }\n else {\n this.requestRerender();\n }\n };\n Calendar.prototype.destroy = function () {\n if (this.component) {\n this.unbindHandlers();\n this.component.destroy(); // don't null-out. in case API needs access\n this.component = null; // umm ???\n for (var _i = 0, _a = this.calendarInteractions; _i < _a.length; _i++) {\n var interaction = _a[_i];\n interaction.destroy();\n }\n this.publiclyTrigger('_destroyed');\n }\n };\n // Handlers\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.bindHandlers = function () {\n var _this = this;\n // event delegation for nav links\n this.removeNavLinkListener = listenBySelector(this.el, 'click', 'a[data-goto]', function (ev, anchorEl) {\n var gotoOptions = anchorEl.getAttribute('data-goto');\n gotoOptions = gotoOptions ? JSON.parse(gotoOptions) : {};\n var dateEnv = _this.dateEnv;\n var dateMarker = dateEnv.createMarker(gotoOptions.date);\n var viewType = gotoOptions.type;\n // property like \"navLinkDayClick\". might be a string or a function\n var customAction = _this.viewOpt('navLink' + capitaliseFirstLetter(viewType) + 'Click');\n if (typeof customAction === 'function') {\n customAction(dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n _this.zoomTo(dateMarker, viewType);\n }\n });\n if (this.opt('handleWindowResize')) {\n window.addEventListener('resize', this.windowResizeProxy = debounce(// prevents rapid calls\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\n }\n };\n Calendar.prototype.unbindHandlers = function () {\n this.removeNavLinkListener();\n if (this.windowResizeProxy) {\n window.removeEventListener('resize', this.windowResizeProxy);\n this.windowResizeProxy = null;\n }\n };\n // Dispatcher\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hydrate = function () {\n var _this = this;\n this.state = this.buildInitialState();\n var rawSources = this.opt('eventSources') || [];\n var singleRawSource = this.opt('events');\n var sources = []; // parsed\n if (singleRawSource) {\n rawSources.unshift(singleRawSource);\n }\n for (var _i = 0, rawSources_1 = rawSources; _i < rawSources_1.length; _i++) {\n var rawSource = rawSources_1[_i];\n var source = parseEventSource(rawSource, this);\n if (source) {\n sources.push(source);\n }\n }\n this.batchRendering(function () {\n _this.dispatch({ type: 'INIT' }); // pass in sources here?\n _this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: sources });\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.opt('defaultView') || _this.pluginSystem.hooks.defaultView\n });\n });\n };\n Calendar.prototype.buildInitialState = function () {\n return {\n viewType: null,\n loadingLevel: 0,\n eventSourceLoadingLevel: 0,\n currentDate: this.getInitialDate(),\n dateProfile: null,\n eventSources: {},\n eventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null\n };\n };\n Calendar.prototype.dispatch = function (action) {\n this.actionQueue.push(action);\n if (!this.isReducing) {\n this.isReducing = true;\n var oldState = this.state;\n while (this.actionQueue.length) {\n this.state = this.reduce(this.state, this.actionQueue.shift(), this);\n }\n var newState = this.state;\n this.isReducing = false;\n if (!oldState.loadingLevel && newState.loadingLevel) {\n this.publiclyTrigger('loading', [true]);\n }\n else if (oldState.loadingLevel && !newState.loadingLevel) {\n this.publiclyTrigger('loading', [false]);\n }\n var view = this.component && this.component.view;\n if (oldState.eventStore !== newState.eventStore) {\n if (oldState.eventStore) {\n this.isEventsUpdated = true;\n }\n }\n if (oldState.dateProfile !== newState.dateProfile) {\n if (oldState.dateProfile && view) { // why would view be null!?\n this.publiclyTrigger('datesDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isDatesUpdated = true;\n }\n if (oldState.viewType !== newState.viewType) {\n if (oldState.viewType && view) { // why would view be null!?\n this.publiclyTrigger('viewSkeletonDestroy', [\n {\n view: view,\n el: view.el\n }\n ]);\n }\n this.isViewUpdated = true;\n }\n this.requestRerender();\n }\n };\n Calendar.prototype.reduce = function (state, action, calendar) {\n return reduce(state, action, calendar);\n };\n // Render Queue\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.requestRerender = function () {\n this.needsRerender = true;\n this.delayedRerender(); // will call a debounced-version of tryRerender\n };\n Calendar.prototype.tryRerender = function () {\n if (this.component && // must be accepting renders\n this.needsRerender && // indicates that a rerender was requested\n !this.renderingPauseDepth && // not paused\n !this.isRendering // not currently in the render loop\n ) {\n this.executeRender();\n }\n };\n Calendar.prototype.batchRendering = function (func) {\n this.renderingPauseDepth++;\n func();\n this.renderingPauseDepth--;\n if (this.needsRerender) {\n this.requestRerender();\n }\n };\n // Rendering\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.executeRender = function () {\n // clear these BEFORE the render so that new values will accumulate during render\n this.needsRerender = false;\n this.isRendering = true;\n this.renderComponent();\n this.isRendering = false;\n // received a rerender request while rendering\n if (this.needsRerender) {\n this.delayedRerender();\n }\n };\n /*\n don't call this directly. use executeRender instead\n */\n Calendar.prototype.renderComponent = function () {\n var _a = this, state = _a.state, component = _a.component;\n var viewType = state.viewType;\n var viewSpec = this.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\n }\n // if event sources are still loading and progressive rendering hasn't been enabled,\n // keep rendering the last fully loaded set of events\n var renderableEventStore = this.renderableEventStore =\n (state.eventSourceLoadingLevel && !this.opt('progressiveEventRendering')) ?\n this.renderableEventStore :\n state.eventStore;\n var eventUiSingleBase = this.buildEventUiSingleBase(viewSpec.options);\n var eventUiBySource = this.buildEventUiBySource(state.eventSources);\n var eventUiBases = this.eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n component.receiveProps(__assign({}, state, { viewSpec: viewSpec, dateProfileGenerator: this.dateProfileGenerators[viewType], dateProfile: state.dateProfile, eventStore: renderableEventStore, eventUiBases: eventUiBases, dateSelection: state.dateSelection, eventSelection: state.eventSelection, eventDrag: state.eventDrag, eventResize: state.eventResize }), this.buildComponentContext(this.theme, this.dateEnv, this.optionsManager.computed));\n if (this.isViewUpdated) {\n this.isViewUpdated = false;\n this.publiclyTrigger('viewSkeletonRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isDatesUpdated) {\n this.isDatesUpdated = false;\n this.publiclyTrigger('datesRender', [\n {\n view: component.view,\n el: component.view.el\n }\n ]);\n }\n if (this.isEventsUpdated) {\n this.isEventsUpdated = false;\n }\n this.releaseAfterSizingTriggers();\n };\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.setOption = function (name, val) {\n var _a;\n this.mutateOptions((_a = {}, _a[name] = val, _a), [], true);\n };\n Calendar.prototype.getOption = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.opt = function (name) {\n return this.optionsManager.computed[name];\n };\n Calendar.prototype.viewOpt = function (name) {\n return this.viewOpts()[name];\n };\n Calendar.prototype.viewOpts = function () {\n return this.viewSpecs[this.state.viewType].options;\n };\n /*\n handles option changes (like a diff)\n */\n Calendar.prototype.mutateOptions = function (updates, removals, isDynamic, deepEqual) {\n var _this = this;\n var changeHandlers = this.pluginSystem.hooks.optionChangeHandlers;\n var normalUpdates = {};\n var specialUpdates = {};\n var oldDateEnv = this.dateEnv; // do this before handleOptions\n var isTimeZoneDirty = false;\n var isSizeDirty = false;\n var anyDifficultOptions = Boolean(removals.length);\n for (var name_1 in updates) {\n if (changeHandlers[name_1]) {\n specialUpdates[name_1] = updates[name_1];\n }\n else {\n normalUpdates[name_1] = updates[name_1];\n }\n }\n for (var name_2 in normalUpdates) {\n if (/^(height|contentHeight|aspectRatio)$/.test(name_2)) {\n isSizeDirty = true;\n }\n else if (/^(defaultDate|defaultView)$/.test(name_2)) ;\n else {\n anyDifficultOptions = true;\n if (name_2 === 'timeZone') {\n isTimeZoneDirty = true;\n }\n }\n }\n this.optionsManager.mutate(normalUpdates, removals, isDynamic);\n if (anyDifficultOptions) {\n this.handleOptions(this.optionsManager.computed);\n }\n this.batchRendering(function () {\n if (anyDifficultOptions) {\n if (isTimeZoneDirty) {\n _this.dispatch({\n type: 'CHANGE_TIMEZONE',\n oldDateEnv: oldDateEnv\n });\n }\n /* HACK\n has the same effect as calling this.requestRerender()\n but recomputes the state's dateProfile\n */\n _this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: _this.state.viewType\n });\n }\n else if (isSizeDirty) {\n _this.updateSize();\n }\n // special updates\n if (deepEqual) {\n for (var name_3 in specialUpdates) {\n changeHandlers[name_3](specialUpdates[name_3], _this, deepEqual);\n }\n }\n });\n };\n /*\n rebuilds things based off of a complete set of refined options\n */\n Calendar.prototype.handleOptions = function (options) {\n var _this = this;\n var pluginHooks = this.pluginSystem.hooks;\n this.defaultAllDayEventDuration = createDuration(options.defaultAllDayEventDuration);\n this.defaultTimedEventDuration = createDuration(options.defaultTimedEventDuration);\n this.delayedRerender = this.buildDelayedRerender(options.rerenderDelay);\n this.theme = this.buildTheme(options);\n var available = this.parseRawLocales(options.locales);\n this.availableRawLocales = available.map;\n var locale = this.buildLocale(options.locale || available.defaultCode, available.map);\n this.dateEnv = this.buildDateEnv(locale, options.timeZone, pluginHooks.namedTimeZonedImpl, options.firstDay, options.weekNumberCalculation, options.weekLabel, pluginHooks.cmdFormatter);\n this.selectionConfig = this.buildSelectionConfig(options); // needs dateEnv. do after :(\n // ineffecient to do every time?\n this.viewSpecs = buildViewSpecs(pluginHooks.views, this.optionsManager);\n // ineffecient to do every time?\n this.dateProfileGenerators = mapHash(this.viewSpecs, function (viewSpec) {\n return new viewSpec.class.prototype.dateProfileGeneratorClass(viewSpec, _this);\n });\n };\n Calendar.prototype.getAvailableLocaleCodes = function () {\n return Object.keys(this.availableRawLocales);\n };\n Calendar.prototype._buildSelectionConfig = function (rawOpts) {\n return processScopedUiProps('select', rawOpts, this);\n };\n Calendar.prototype._buildEventUiSingleBase = function (rawOpts) {\n if (rawOpts.editable) { // so 'editable' affected events\n rawOpts = __assign({}, rawOpts, { eventEditable: true });\n }\n return processScopedUiProps('event', rawOpts, this);\n };\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.hasPublicHandlers = function (name) {\n return this.hasHandlers(name) ||\n this.opt(name); // handler specified in options\n };\n Calendar.prototype.publiclyTrigger = function (name, args) {\n var optHandler = this.opt(name);\n this.triggerWith(name, this, args);\n if (optHandler) {\n return optHandler.apply(this, args);\n }\n };\n Calendar.prototype.publiclyTriggerAfterSizing = function (name, args) {\n var afterSizingTriggers = this.afterSizingTriggers;\n (afterSizingTriggers[name] || (afterSizingTriggers[name] = [])).push(args);\n };\n Calendar.prototype.releaseAfterSizingTriggers = function () {\n var afterSizingTriggers = this.afterSizingTriggers;\n for (var name_4 in afterSizingTriggers) {\n for (var _i = 0, _a = afterSizingTriggers[name_4]; _i < _a.length; _i++) {\n var args = _a[_i];\n this.publiclyTrigger(name_4, args);\n }\n }\n this.afterSizingTriggers = {};\n };\n // View\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a boolean about whether the view is okay to instantiate at some point\n Calendar.prototype.isValidViewType = function (viewType) {\n return Boolean(this.viewSpecs[viewType]);\n };\n Calendar.prototype.changeView = function (viewType, dateOrRange) {\n var dateMarker = null;\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.optionsManager.mutate({ visibleRange: dateOrRange }, []); // will not rerender\n this.handleOptions(this.optionsManager.computed); // ...but yuck\n }\n else { // a date\n dateMarker = this.dateEnv.createMarker(dateOrRange); // just like gotoDate\n }\n }\n this.unselect();\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: viewType,\n dateMarker: dateMarker\n });\n };\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n Calendar.prototype.zoomTo = function (dateMarker, viewType) {\n var spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = this.viewSpecs[viewType] ||\n this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'SET_VIEW_TYPE',\n viewType: spec.type,\n dateMarker: dateMarker\n });\n }\n else {\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: dateMarker\n });\n }\n };\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n Calendar.prototype.getUnitViewSpec = function (unit) {\n var component = this.component;\n var viewTypes = [];\n var i;\n var spec;\n // put views that have buttons first. there will be duplicates, but oh\n if (component.header) {\n viewTypes.push.apply(viewTypes, component.header.viewsWithButtons);\n }\n if (component.footer) {\n viewTypes.push.apply(viewTypes, component.footer.viewsWithButtons);\n }\n for (var viewType in this.viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i++) {\n spec = this.viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n };\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getInitialDate = function () {\n var defaultDateInput = this.opt('defaultDate');\n // compute the initial ambig-timezone date\n if (defaultDateInput != null) {\n return this.dateEnv.createMarker(defaultDateInput);\n }\n else {\n return this.getNow(); // getNow already returns unzoned\n }\n };\n Calendar.prototype.prev = function () {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n };\n Calendar.prototype.next = function () {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n };\n Calendar.prototype.prevYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, -1)\n });\n };\n Calendar.prototype.nextYear = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.addYears(this.state.currentDate, 1)\n });\n };\n Calendar.prototype.today = function () {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.getNow()\n });\n };\n Calendar.prototype.gotoDate = function (zonedDateInput) {\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.createMarker(zonedDateInput)\n });\n };\n Calendar.prototype.incrementDate = function (deltaInput) {\n var delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'SET_DATE',\n dateMarker: this.dateEnv.add(this.state.currentDate, delta)\n });\n }\n };\n // for external API\n Calendar.prototype.getDate = function () {\n return this.dateEnv.toDate(this.state.currentDate);\n };\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.formatDate = function (d, formatter) {\n var dateEnv = this.dateEnv;\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n };\n // `settings` is for formatter AND isEndExclusive\n Calendar.prototype.formatRange = function (d0, d1, settings) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings, this.opt('defaultRangeSeparator')), settings);\n };\n Calendar.prototype.formatIso = function (d, omitTime) {\n var dateEnv = this.dateEnv;\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime: omitTime });\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.windowResize = function (ev) {\n if (!this.isHandlingWindowResize &&\n this.component && // why?\n ev.target === window // not a jqui resize event\n ) {\n this.isHandlingWindowResize = true;\n this.updateSize();\n this.publiclyTrigger('windowResize', [this.view]);\n this.isHandlingWindowResize = false;\n }\n };\n Calendar.prototype.updateSize = function () {\n if (this.component) { // when?\n this.component.updateSize(true);\n }\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.registerInteractiveComponent = function (component, settingsInput) {\n var settings = parseInteractionSettings(component, settingsInput);\n var DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering\n ];\n var interactionClasses = DEFAULT_INTERACTIONS.concat(this.pluginSystem.hooks.componentInteractions);\n var interactions = interactionClasses.map(function (interactionClass) {\n return new interactionClass(settings);\n });\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n Calendar.prototype.unregisterInteractiveComponent = function (component) {\n for (var _i = 0, _a = this.interactionsStore[component.uid]; _i < _a.length; _i++) {\n var listener = _a[_i];\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n delete interactionSettingsStore[component.uid];\n };\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n // this public method receives start/end dates in any format, with any timezone\n // NOTE: args were changed from v3\n Calendar.prototype.select = function (dateOrObj, endDate) {\n var selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate\n };\n }\n var selection = parseDateSpan(selectionInput, this.dateEnv, createDuration({ days: 1 }) // TODO: cache this?\n );\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection: selection });\n this.triggerDateSelect(selection);\n }\n };\n // public method\n Calendar.prototype.unselect = function (pev) {\n if (this.state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n this.triggerDateUnselect(pev);\n }\n };\n Calendar.prototype.triggerDateSelect = function (selection, pev) {\n var arg = __assign({}, this.buildDateSpanApi(selection), { jsEvent: pev ? pev.origEvent : null, view: this.view });\n this.publiclyTrigger('select', [arg]);\n };\n Calendar.prototype.triggerDateUnselect = function (pev) {\n this.publiclyTrigger('unselect', [\n {\n jsEvent: pev ? pev.origEvent : null,\n view: this.view\n }\n ]);\n };\n // TODO: receive pev?\n Calendar.prototype.triggerDateClick = function (dateSpan, dayEl, view, ev) {\n var arg = __assign({}, this.buildDatePointApi(dateSpan), { dayEl: dayEl, jsEvent: ev, // Is this always a mouse event? See #4655\n view: view });\n this.publiclyTrigger('dateClick', [arg]);\n };\n Calendar.prototype.buildDatePointApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.datePointTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDatePointApi(dateSpan, this.dateEnv));\n return props;\n };\n Calendar.prototype.buildDateSpanApi = function (dateSpan) {\n var props = {};\n for (var _i = 0, _a = this.pluginSystem.hooks.dateSpanTransforms; _i < _a.length; _i++) {\n var transform = _a[_i];\n __assign(props, transform(dateSpan, this));\n }\n __assign(props, buildDateSpanApi(dateSpan, this.dateEnv));\n return props;\n };\n // Date Utils\n // -----------------------------------------------------------------------------------------------------------------\n // Returns a DateMarker for the current date, as defined by the client's computer or from the `now` option\n Calendar.prototype.getNow = function () {\n var now = this.opt('now');\n if (typeof now === 'function') {\n now = now();\n }\n if (now == null) {\n return this.dateEnv.createNowMarker();\n }\n return this.dateEnv.createMarker(now);\n };\n // Event-Date Utilities\n // -----------------------------------------------------------------------------------------------------------------\n // Given an event's allDay status and start date, return what its fallback end date should be.\n // TODO: rename to computeDefaultEventEnd\n Calendar.prototype.getDefaultEventEnd = function (allDay, marker) {\n var end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = this.dateEnv.add(end, this.defaultAllDayEventDuration);\n }\n else {\n end = this.dateEnv.add(end, this.defaultTimedEventDuration);\n }\n return end;\n };\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.addEvent = function (eventInput, sourceInput) {\n if (eventInput instanceof EventApi) {\n var def = eventInput._def;\n var instance = eventInput._instance;\n // not already present? don't want to add an old snapshot\n if (!this.state.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def: def, instance: instance }) // TODO: better util for two args?\n });\n }\n return eventInput;\n }\n var sourceId;\n if (sourceInput instanceof EventSourceApi) {\n sourceId = sourceInput.internalEventSource.sourceId;\n }\n else if (sourceInput != null) {\n var sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn('Could not find an event source with ID \"' + sourceInput + '\"'); // TODO: test\n return null;\n }\n else {\n sourceId = sourceApi.internalEventSource.sourceId;\n }\n }\n var tuple = parseEvent(eventInput, sourceId, this);\n if (tuple) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple)\n });\n return new EventApi(this, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n }\n return null;\n };\n // TODO: optimize\n Calendar.prototype.getEventById = function (id) {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n id = String(id);\n for (var defId in defs) {\n var def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventApi(this, def, null);\n }\n else {\n for (var instanceId in instances) {\n var instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventApi(this, def, instance);\n }\n }\n }\n }\n }\n return null;\n };\n Calendar.prototype.getEvents = function () {\n var _a = this.state.eventStore, defs = _a.defs, instances = _a.instances;\n var eventApis = [];\n for (var id in instances) {\n var instance = instances[id];\n var def = defs[instance.defId];\n eventApis.push(new EventApi(this, def, instance));\n }\n return eventApis;\n };\n Calendar.prototype.removeAllEvents = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n };\n Calendar.prototype.rerenderEvents = function () {\n this.dispatch({ type: 'RESET_EVENTS' });\n };\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.getEventSources = function () {\n var sourceHash = this.state.eventSources;\n var sourceApis = [];\n for (var internalId in sourceHash) {\n sourceApis.push(new EventSourceApi(this, sourceHash[internalId]));\n }\n return sourceApis;\n };\n Calendar.prototype.getEventSourceById = function (id) {\n var sourceHash = this.state.eventSources;\n id = String(id);\n for (var sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceApi(this, sourceHash[sourceId]);\n }\n }\n return null;\n };\n Calendar.prototype.addEventSource = function (sourceInput) {\n if (sourceInput instanceof EventSourceApi) {\n // not already present? don't want to add an old snapshot\n if (!this.state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource]\n });\n }\n return sourceInput;\n }\n var eventSource = parseEventSource(sourceInput, this);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceApi(this, eventSource);\n }\n return null;\n };\n Calendar.prototype.removeAllEventSources = function () {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n };\n Calendar.prototype.refetchEvents = function () {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES' });\n };\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n Calendar.prototype.scrollToTime = function (timeInput) {\n var duration = createDuration(timeInput);\n if (duration) {\n this.component.view.scrollToDuration(duration);\n }\n };\n return Calendar;\n}());\nEmitterMixin.mixInto(Calendar);\n// for memoizers\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildComponentContext$1(theme, dateEnv, options) {\n return new ComponentContext(this, theme, dateEnv, options, null);\n}\nfunction buildDateEnv(locale, timeZone, namedTimeZoneImpl, firstDay, weekNumberCalculation, weekLabel, cmdFormatter) {\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone: timeZone,\n namedTimeZoneImpl: namedTimeZoneImpl,\n locale: locale,\n weekNumberCalculation: weekNumberCalculation,\n firstDay: firstDay,\n weekLabel: weekLabel,\n cmdFormatter: cmdFormatter\n });\n}\nfunction buildTheme(calendarOptions) {\n var themeClass = this.pluginSystem.hooks.themeClasses[calendarOptions.themeSystem] || StandardTheme;\n return new themeClass(calendarOptions);\n}\nfunction buildDelayedRerender(wait) {\n var func = this.tryRerender.bind(this);\n if (wait != null) {\n func = debounce(func, wait);\n }\n return func;\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, function (eventSource) {\n return eventSource.ui;\n });\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n var eventUiBases = { '': eventUiSingleBase };\n for (var defId in eventDefs) {\n var def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\n\nvar View = /** @class */ (function (_super) {\n __extends(View, _super);\n function View(viewSpec, parentEl) {\n var _this = _super.call(this, createElement('div', { className: 'fc-view fc-' + viewSpec.type + '-view' })) || this;\n _this.renderDatesMem = memoizeRendering(_this.renderDatesWrap, _this.unrenderDatesWrap);\n _this.renderBusinessHoursMem = memoizeRendering(_this.renderBusinessHours, _this.unrenderBusinessHours, [_this.renderDatesMem]);\n _this.renderDateSelectionMem = memoizeRendering(_this.renderDateSelectionWrap, _this.unrenderDateSelectionWrap, [_this.renderDatesMem]);\n _this.renderEventsMem = memoizeRendering(_this.renderEvents, _this.unrenderEvents, [_this.renderDatesMem]);\n _this.renderEventSelectionMem = memoizeRendering(_this.renderEventSelectionWrap, _this.unrenderEventSelectionWrap, [_this.renderEventsMem]);\n _this.renderEventDragMem = memoizeRendering(_this.renderEventDragWrap, _this.unrenderEventDragWrap, [_this.renderDatesMem]);\n _this.renderEventResizeMem = memoizeRendering(_this.renderEventResizeWrap, _this.unrenderEventResizeWrap, [_this.renderDatesMem]);\n _this.viewSpec = viewSpec;\n _this.type = viewSpec.type;\n parentEl.appendChild(_this.el);\n _this.initialize();\n return _this;\n }\n View.prototype.initialize = function () {\n };\n Object.defineProperty(View.prototype, \"activeStart\", {\n // Date Setting/Unsetting\n // -----------------------------------------------------------------------------------------------------------------\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.activeRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"activeEnd\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.activeRange.end);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentStart\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.currentRange.start);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(View.prototype, \"currentEnd\", {\n get: function () {\n return this.context.dateEnv.toDate(this.props.dateProfile.currentRange.end);\n },\n enumerable: true,\n configurable: true\n });\n // General Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.render = function (props, context) {\n this.renderDatesMem(props.dateProfile);\n this.renderBusinessHoursMem(props.businessHours);\n this.renderDateSelectionMem(props.dateSelection);\n this.renderEventsMem(props.eventStore);\n this.renderEventSelectionMem(props.eventSelection);\n this.renderEventDragMem(props.eventDrag);\n this.renderEventResizeMem(props.eventResize);\n };\n View.prototype.beforeUpdate = function () {\n this.addScroll(this.queryScroll());\n };\n View.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderDatesMem.unrender(); // should unrender everything else\n };\n // Sizing\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n var calendar = this.context.calendar;\n if (isResize) {\n this.addScroll(this.queryScroll()); // NOTE: same code as in beforeUpdate\n }\n if (isResize || // HACKS...\n calendar.isViewUpdated ||\n calendar.isDatesUpdated ||\n calendar.isEventsUpdated) {\n // sort of the catch-all sizing\n // anything that might cause dimension changes\n this.updateBaseSize(isResize, viewHeight, isAuto);\n }\n // NOTE: popScroll is called by CalendarComponent\n };\n View.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n };\n // Date Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDatesWrap = function (dateProfile) {\n this.renderDates(dateProfile);\n this.addScroll({\n duration: createDuration(this.context.options.scrollTime)\n });\n };\n View.prototype.unrenderDatesWrap = function () {\n this.stopNowIndicator();\n this.unrenderDates();\n };\n View.prototype.renderDates = function (dateProfile) { };\n View.prototype.unrenderDates = function () { };\n // Business Hours\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderBusinessHours = function (businessHours) { };\n View.prototype.unrenderBusinessHours = function () { };\n // Date Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderDateSelectionWrap = function (selection) {\n if (selection) {\n this.renderDateSelection(selection);\n }\n };\n View.prototype.unrenderDateSelectionWrap = function (selection) {\n if (selection) {\n this.unrenderDateSelection(selection);\n }\n };\n View.prototype.renderDateSelection = function (selection) { };\n View.prototype.unrenderDateSelection = function (selection) { };\n // Event Rendering\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEvents = function (eventStore) { };\n View.prototype.unrenderEvents = function () { };\n // util for subclasses\n View.prototype.sliceEvents = function (eventStore, allDay) {\n var props = this.props;\n return sliceEventStore(eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? this.context.nextDayThreshold : null).fg;\n };\n // Event Selection\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.renderEventSelection(instanceId);\n }\n };\n View.prototype.unrenderEventSelectionWrap = function (instanceId) {\n if (instanceId) {\n this.unrenderEventSelection(instanceId);\n }\n };\n View.prototype.renderEventSelection = function (instanceId) { };\n View.prototype.unrenderEventSelection = function (instanceId) { };\n // Event Drag\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventDragWrap = function (state) {\n if (state) {\n this.renderEventDrag(state);\n }\n };\n View.prototype.unrenderEventDragWrap = function (state) {\n if (state) {\n this.unrenderEventDrag(state);\n }\n };\n View.prototype.renderEventDrag = function (state) { };\n View.prototype.unrenderEventDrag = function (state) { };\n // Event Resize\n // -----------------------------------------------------------------------------------------------------------------\n View.prototype.renderEventResizeWrap = function (state) {\n if (state) {\n this.renderEventResize(state);\n }\n };\n View.prototype.unrenderEventResizeWrap = function (state) {\n if (state) {\n this.unrenderEventResize(state);\n }\n };\n View.prototype.renderEventResize = function (state) { };\n View.prototype.unrenderEventResize = function (state) { };\n /* Now Indicator\n ------------------------------------------------------------------------------------------------------------------*/\n // Immediately render the current time indicator and begins re-rendering it at an interval,\n // which is defined by this.getNowIndicatorUnit().\n // TODO: somehow do this for the current whole day's background too\n // USAGE: must be called manually from subclasses' render methods! don't need to call stopNowIndicator tho\n View.prototype.startNowIndicator = function (dateProfile, dateProfileGenerator) {\n var _this = this;\n var _a = this.context, calendar = _a.calendar, dateEnv = _a.dateEnv, options = _a.options;\n var unit;\n var update;\n var delay; // ms wait value\n if (options.nowIndicator && !this.initialNowDate) {\n unit = this.getNowIndicatorUnit(dateProfile, dateProfileGenerator);\n if (unit) {\n update = this.updateNowIndicator.bind(this);\n this.initialNowDate = calendar.getNow();\n this.initialNowQueriedMs = new Date().valueOf();\n // wait until the beginning of the next interval\n delay = dateEnv.add(dateEnv.startOf(this.initialNowDate, unit), createDuration(1, unit)).valueOf() - this.initialNowDate.valueOf();\n // TODO: maybe always use setTimeout, waiting until start of next unit\n this.nowIndicatorTimeoutID = setTimeout(function () {\n _this.nowIndicatorTimeoutID = null;\n update();\n if (unit === 'second') {\n delay = 1000; // every second\n }\n else {\n delay = 1000 * 60; // otherwise, every minute\n }\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\n }, delay);\n }\n // rendering will be initiated in updateSize\n }\n };\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\n // since the initial getNow call.\n View.prototype.updateNowIndicator = function () {\n if (this.props.dateProfile && // a way to determine if dates were rendered yet\n this.initialNowDate // activated before?\n ) {\n this.unrenderNowIndicator(); // won't unrender if unnecessary\n this.renderNowIndicator(addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs));\n this.isNowIndicatorRendered = true;\n }\n };\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\n // Won't cause side effects if indicator isn't rendered.\n View.prototype.stopNowIndicator = function () {\n if (this.nowIndicatorTimeoutID) {\n clearTimeout(this.nowIndicatorTimeoutID);\n this.nowIndicatorTimeoutID = null;\n }\n if (this.nowIndicatorIntervalID) {\n clearInterval(this.nowIndicatorIntervalID);\n this.nowIndicatorIntervalID = null;\n }\n if (this.isNowIndicatorRendered) {\n this.unrenderNowIndicator();\n this.isNowIndicatorRendered = false;\n }\n };\n View.prototype.getNowIndicatorUnit = function (dateProfile, dateProfileGenerator) {\n // subclasses should implement\n };\n // Renders a current time indicator at the given datetime\n View.prototype.renderNowIndicator = function (date) {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n // Undoes the rendering actions from renderNowIndicator\n View.prototype.unrenderNowIndicator = function () {\n // SUBCLASSES MUST PASS TO CHILDREN!\n };\n /* Scroller\n ------------------------------------------------------------------------------------------------------------------*/\n View.prototype.addScroll = function (scroll, isForced) {\n if (isForced) {\n scroll.isForced = isForced;\n }\n __assign(this.queuedScroll || (this.queuedScroll = {}), scroll);\n };\n View.prototype.popScroll = function (isResize) {\n this.applyQueuedScroll(isResize);\n this.queuedScroll = null;\n };\n View.prototype.applyQueuedScroll = function (isResize) {\n if (this.queuedScroll) {\n this.applyScroll(this.queuedScroll, isResize);\n }\n };\n View.prototype.queryScroll = function () {\n var scroll = {};\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.queryDateScroll());\n }\n return scroll;\n };\n View.prototype.applyScroll = function (scroll, isResize) {\n var duration = scroll.duration, isForced = scroll.isForced;\n if (duration != null && !isForced) {\n delete scroll.duration;\n if (this.props.dateProfile) { // dates rendered yet?\n __assign(scroll, this.computeDateScroll(duration));\n }\n }\n if (this.props.dateProfile) { // dates rendered yet?\n this.applyDateScroll(scroll);\n }\n };\n View.prototype.computeDateScroll = function (duration) {\n return {}; // subclasses must implement\n };\n View.prototype.queryDateScroll = function () {\n return {}; // subclasses must implement\n };\n View.prototype.applyDateScroll = function (scroll) {\n // subclasses must implement\n };\n // for API\n View.prototype.scrollToDuration = function (duration) {\n this.applyScroll({ duration: duration }, false);\n };\n return View;\n}(DateComponent));\nEmitterMixin.mixInto(View);\nView.prototype.usesMinMaxTime = false;\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator;\n\nvar FgEventRenderer = /** @class */ (function () {\n function FgEventRenderer() {\n this.segs = [];\n this.isSizeDirty = false;\n }\n FgEventRenderer.prototype.renderSegs = function (context, segs, mirrorInfo) {\n this.context = context;\n this.rangeUpdated(); // called too frequently :(\n // render an `.el` on each seg\n // returns a subset of the segs. segs that were actually rendered\n segs = this.renderSegEls(segs, mirrorInfo);\n this.segs = segs;\n this.attachSegs(segs, mirrorInfo);\n this.isSizeDirty = true;\n triggerRenderedSegs(this.context, this.segs, Boolean(mirrorInfo));\n };\n FgEventRenderer.prototype.unrender = function (context, _segs, mirrorInfo) {\n triggerWillRemoveSegs(this.context, this.segs, Boolean(mirrorInfo));\n this.detachSegs(this.segs);\n this.segs = [];\n };\n // Updates values that rely on options and also relate to range\n FgEventRenderer.prototype.rangeUpdated = function () {\n var options = this.context.options;\n var displayEventTime;\n var displayEventEnd;\n this.eventTimeFormat = createFormatter(options.eventTimeFormat || this.computeEventTimeFormat(), options.defaultRangeSeparator);\n displayEventTime = options.displayEventTime;\n if (displayEventTime == null) {\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\n }\n displayEventEnd = options.displayEventEnd;\n if (displayEventEnd == null) {\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\n }\n this.displayEventTime = displayEventTime;\n this.displayEventEnd = displayEventEnd;\n };\n // Renders and assigns an `el` property for each foreground event segment.\n // Only returns segments that successfully rendered.\n FgEventRenderer.prototype.renderSegEls = function (segs, mirrorInfo) {\n var html = '';\n var i;\n if (segs.length) { // don't build an empty html string\n // build a large concatenation of event segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(segs[i], mirrorInfo);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n segs = filterSegsViaEls(this.context, segs, Boolean(mirrorInfo));\n }\n return segs;\n };\n // Generic utility for generating the HTML classNames for an event segment's element\n FgEventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable, mirrorInfo) {\n var classes = [\n 'fc-event',\n seg.isStart ? 'fc-start' : 'fc-not-start',\n seg.isEnd ? 'fc-end' : 'fc-not-end'\n ].concat(seg.eventRange.ui.classNames);\n if (isDraggable) {\n classes.push('fc-draggable');\n }\n if (isResizable) {\n classes.push('fc-resizable');\n }\n if (mirrorInfo) {\n classes.push('fc-mirror');\n if (mirrorInfo.isDragging) {\n classes.push('fc-dragging');\n }\n if (mirrorInfo.isResizing) {\n classes.push('fc-resizing');\n }\n }\n return classes;\n };\n // Compute the text that should be displayed on an event's element.\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\n // If event times are disabled, or the event has no time, will return a blank string.\n // If not specified, formatter will default to the eventTimeFormat setting,\n // and displayEnd will default to the displayEventEnd setting.\n FgEventRenderer.prototype.getTimeText = function (eventRange, formatter, displayEnd) {\n var def = eventRange.def, instance = eventRange.instance;\n return this._getTimeText(instance.range.start, def.hasEnd ? instance.range.end : null, def.allDay, formatter, displayEnd, instance.forcedStartTzo, instance.forcedEndTzo);\n };\n FgEventRenderer.prototype._getTimeText = function (start, end, allDay, formatter, displayEnd, forcedStartTzo, forcedEndTzo) {\n var dateEnv = this.context.dateEnv;\n if (formatter == null) {\n formatter = this.eventTimeFormat;\n }\n if (displayEnd == null) {\n displayEnd = this.displayEventEnd;\n }\n if (this.displayEventTime && !allDay) {\n if (displayEnd && end) {\n return dateEnv.formatRange(start, end, formatter, {\n forcedStartTzo: forcedStartTzo,\n forcedEndTzo: forcedEndTzo\n });\n }\n else {\n return dateEnv.format(start, formatter, {\n forcedTzo: forcedStartTzo\n });\n }\n }\n return '';\n };\n FgEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true\n };\n };\n FgEventRenderer.prototype.computeDisplayEventTime = function () {\n return true;\n };\n FgEventRenderer.prototype.computeDisplayEventEnd = function () {\n return true;\n };\n // Utility for generating event skin-related CSS properties\n FgEventRenderer.prototype.getSkinCss = function (ui) {\n return {\n 'background-color': ui.backgroundColor,\n 'border-color': ui.borderColor,\n color: ui.textColor\n };\n };\n FgEventRenderer.prototype.sortEventSegs = function (segs) {\n var specs = this.context.eventOrderSpecs;\n var objs = segs.map(buildSegCompareObj);\n objs.sort(function (obj0, obj1) {\n return compareByFieldSpecs(obj0, obj1, specs);\n });\n return objs.map(function (c) {\n return c._seg;\n });\n };\n FgEventRenderer.prototype.computeSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.computeSegSizes(this.segs);\n }\n };\n FgEventRenderer.prototype.assignSizes = function (force) {\n if (force || this.isSizeDirty) {\n this.assignSegSizes(this.segs);\n this.isSizeDirty = false;\n }\n };\n FgEventRenderer.prototype.computeSegSizes = function (segs) {\n };\n FgEventRenderer.prototype.assignSegSizes = function (segs) {\n };\n // Manipulation on rendered segs\n FgEventRenderer.prototype.hideByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = 'hidden';\n }\n }\n }\n };\n FgEventRenderer.prototype.showByHash = function (hash) {\n if (hash) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (hash[seg.eventRange.instance.instanceId]) {\n seg.el.style.visibility = '';\n }\n }\n }\n };\n FgEventRenderer.prototype.selectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n var eventInstance = seg.eventRange.instance;\n if (eventInstance && eventInstance.instanceId === instanceId &&\n seg.el // necessary?\n ) {\n seg.el.classList.add('fc-selected');\n }\n }\n }\n };\n FgEventRenderer.prototype.unselectByInstanceId = function (instanceId) {\n if (instanceId) {\n for (var _i = 0, _a = this.segs; _i < _a.length; _i++) {\n var seg = _a[_i];\n if (seg.el) { // necessary?\n seg.el.classList.remove('fc-selected');\n }\n }\n }\n };\n return FgEventRenderer;\n}());\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n var eventDef = seg.eventRange.def;\n var range = seg.eventRange.instance.range;\n var start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n var end = range.end ? range.end.valueOf() : 0; // \"\n return __assign({}, eventDef.extendedProps, eventDef, { id: eventDef.publicId, start: start,\n end: end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg // for later retrieval\n });\n}\n\n/*\nTODO: when refactoring this class, make a new FillRenderer instance for each `type`\n*/\nvar FillRenderer = /** @class */ (function () {\n function FillRenderer() {\n this.fillSegTag = 'div';\n this.dirtySizeFlags = {};\n this.containerElsByType = {};\n this.segsByType = {};\n }\n FillRenderer.prototype.getSegsByType = function (type) {\n return this.segsByType[type] || [];\n };\n FillRenderer.prototype.renderSegs = function (type, context, segs) {\n var _a;\n this.context = context;\n var renderedSegs = this.renderSegEls(type, segs); // assignes `.el` to each seg. returns successfully rendered segs\n var containerEls = this.attachSegs(type, renderedSegs);\n if (containerEls) {\n (_a = (this.containerElsByType[type] || (this.containerElsByType[type] = []))).push.apply(_a, containerEls);\n }\n this.segsByType[type] = renderedSegs;\n if (type === 'bgEvent') {\n triggerRenderedSegs(context, renderedSegs, false); // isMirror=false\n }\n this.dirtySizeFlags[type] = true;\n };\n // Unrenders a specific type of fill that is currently rendered on the grid\n FillRenderer.prototype.unrender = function (type, context) {\n var segs = this.segsByType[type];\n if (segs) {\n if (type === 'bgEvent') {\n triggerWillRemoveSegs(context, segs, false); // isMirror=false\n }\n this.detachSegs(type, segs);\n }\n };\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\n // Only returns segments that successfully rendered.\n FillRenderer.prototype.renderSegEls = function (type, segs) {\n var _this = this;\n var html = '';\n var i;\n if (segs.length) {\n // build a large concatenation of segment HTML\n for (i = 0; i < segs.length; i++) {\n html += this.renderSegHtml(type, segs[i]);\n }\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\n // Then, compute the 'el' for each segment.\n htmlToElements(html).forEach(function (el, i) {\n var seg = segs[i];\n if (el) {\n seg.el = el;\n }\n });\n if (type === 'bgEvent') {\n segs = filterSegsViaEls(this.context, segs, false // isMirror. background events can never be mirror elements\n );\n }\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\n segs = segs.filter(function (seg) {\n return elementMatches(seg.el, _this.fillSegTag);\n });\n }\n return segs;\n };\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\n FillRenderer.prototype.renderSegHtml = function (type, seg) {\n var css = null;\n var classNames = [];\n if (type !== 'highlight' && type !== 'businessHours') {\n css = {\n 'background-color': seg.eventRange.ui.backgroundColor\n };\n }\n if (type !== 'highlight') {\n classNames = classNames.concat(seg.eventRange.ui.classNames);\n }\n if (type === 'businessHours') {\n classNames.push('fc-bgevent');\n }\n else {\n classNames.push('fc-' + type.toLowerCase());\n }\n return '<' + this.fillSegTag +\n (classNames.length ? ' class=\"' + classNames.join(' ') + '\"' : '') +\n (css ? ' style=\"' + cssToStr(css) + '\"' : '') +\n '>';\n };\n FillRenderer.prototype.detachSegs = function (type, segs) {\n var containerEls = this.containerElsByType[type];\n if (containerEls) {\n containerEls.forEach(removeElement);\n delete this.containerElsByType[type];\n }\n };\n FillRenderer.prototype.computeSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.computeSegSizes(this.segsByType[type]);\n }\n }\n };\n FillRenderer.prototype.assignSizes = function (force) {\n for (var type in this.segsByType) {\n if (force || this.dirtySizeFlags[type]) {\n this.assignSegSizes(this.segsByType[type]);\n }\n }\n this.dirtySizeFlags = {};\n };\n FillRenderer.prototype.computeSegSizes = function (segs) {\n };\n FillRenderer.prototype.assignSegSizes = function (segs) {\n };\n return FillRenderer;\n}());\n\nvar NamedTimeZoneImpl = /** @class */ (function () {\n function NamedTimeZoneImpl(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n return NamedTimeZoneImpl;\n}());\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nvar ElementDragging = /** @class */ (function () {\n function ElementDragging(el) {\n this.emitter = new EmitterMixin();\n }\n ElementDragging.prototype.destroy = function () {\n };\n ElementDragging.prototype.setMirrorIsVisible = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setMirrorNeedsRevert = function (bool) {\n // optional if subclass doesn't want to support a mirror\n };\n ElementDragging.prototype.setAutoScrollEnabled = function (bool) {\n // optional\n };\n return ElementDragging;\n}());\n\nfunction formatDate(dateInput, settings) {\n if (settings === void 0) { settings = {}; }\n var dateEnv = buildDateEnv$1(settings);\n var formatter = createFormatter(settings);\n var dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo\n });\n}\nfunction formatRange(startInput, endInput, settings // mixture of env and formatter settings\n) {\n var dateEnv = buildDateEnv$1(typeof settings === 'object' && settings ? settings : {}); // pass in if non-null object\n var formatter = createFormatter(settings, globalDefaults.defaultRangeSeparator);\n var startMeta = dateEnv.createMarkerMeta(startInput);\n var endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: settings.isEndExclusive\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv$1(settings) {\n var locale = buildLocale(settings.locale || 'en', parseRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n // ensure required settings\n settings = __assign({ timeZone: globalDefaults.timeZone, calendarSystem: 'gregory' }, settings, { locale: locale });\n return new DateEnv(settings);\n}\n\nvar DRAG_META_PROPS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String\n};\nvar DRAG_META_DEFAULTS = {\n create: true\n};\nfunction parseDragMeta(raw) {\n var leftoverProps = {};\n var refined = refineProps(raw, DRAG_META_PROPS, DRAG_META_DEFAULTS, leftoverProps);\n refined.leftoverProps = leftoverProps;\n return refined;\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return { weekday: 'short' }; // \"Sat\"\n }\n else if (dayCnt > 1) {\n return { weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }; // \"Sat 11/12\"\n }\n else {\n return { weekday: 'long' }; // \"Saturday\"\n }\n}\nfunction renderDateCell(dateMarker, dateProfile, datesRepDistinctDays, colCnt, colHeadFormat, context, colspan, otherAttrs) {\n var dateEnv = context.dateEnv, theme = context.theme, options = context.options;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, dateMarker); // TODO: called too frequently. cache somehow.\n var classNames = [\n 'fc-day-header',\n theme.getClass('widgetHeader')\n ];\n var innerHtml;\n if (typeof options.columnHeaderHtml === 'function') {\n innerHtml = options.columnHeaderHtml(dateEnv.toDate(dateMarker));\n }\n else if (typeof options.columnHeaderText === 'function') {\n innerHtml = htmlEscape(options.columnHeaderText(dateEnv.toDate(dateMarker)));\n }\n else {\n innerHtml = htmlEscape(dateEnv.format(dateMarker, colHeadFormat));\n }\n // if only one row of days, the classNames on the header can represent the specific days beneath\n if (datesRepDistinctDays) {\n classNames = classNames.concat(\n // includes the day-of-week class\n // noThemeHighlight=true (don't highlight the header)\n getDayClasses(dateMarker, dateProfile, context, true));\n }\n else {\n classNames.push('fc-' + DAY_IDS[dateMarker.getUTCDay()]); // only add the day-of-week class\n }\n return '' +\n ' 1 ?\n ' colspan=\"' + colspan + '\"' :\n '') +\n (otherAttrs ?\n ' ' + otherAttrs :\n '') +\n '>' +\n (isDateValid ?\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\n buildGotoAnchorHtml(options, dateEnv, { date: dateMarker, forceOff: !datesRepDistinctDays || colCnt === 1 }, innerHtml) :\n // if not valid, display text, but no link\n innerHtml) +\n '';\n}\n\nvar DayHeader = /** @class */ (function (_super) {\n __extends(DayHeader, _super);\n function DayHeader(parentEl) {\n var _this = _super.call(this) || this;\n _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n _this.parentEl = parentEl;\n return _this;\n }\n DayHeader.prototype.render = function (props, context) {\n var dates = props.dates, datesRepDistinctDays = props.datesRepDistinctDays;\n var parts = [];\n this.renderSkeleton(context);\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n var colHeadFormat = createFormatter(context.options.columnHeaderFormat ||\n computeFallbackHeaderFormat(datesRepDistinctDays, dates.length));\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\n var date = dates_1[_i];\n parts.push(renderDateCell(date, props.dateProfile, datesRepDistinctDays, dates.length, colHeadFormat, context));\n }\n if (context.isRtl) {\n parts.reverse();\n }\n this.thead.innerHTML = '' + parts.join('') + '';\n };\n DayHeader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderSkeleton.unrender();\n };\n DayHeader.prototype._renderSkeleton = function (context) {\n var theme = context.theme;\n var parentEl = this.parentEl;\n parentEl.innerHTML = ''; // because might be nbsp\n parentEl.appendChild(this.el = htmlToElement('
' +\n '' +\n '' +\n '
' +\n '
'));\n this.thead = this.el.querySelector('thead');\n };\n DayHeader.prototype._unrenderSkeleton = function () {\n removeElement(this.el);\n };\n return DayHeader;\n}(Component));\n\nvar DaySeries = /** @class */ (function () {\n function DaySeries(range, dateProfileGenerator) {\n var date = range.start;\n var end = range.end;\n var indices = [];\n var dates = [];\n var dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex++;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n DaySeries.prototype.sliceRange = function (range) {\n var firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n var lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n var clippedFirstIndex = Math.max(0, firstIndex);\n var clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex\n };\n }\n else {\n return null;\n }\n };\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n DaySeries.prototype.getDateDayIndex = function (date) {\n var indices = this.indices;\n var dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n else if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n else {\n return indices[dayOffset];\n }\n };\n return DaySeries;\n}());\n\nvar DayTable = /** @class */ (function () {\n function DayTable(daySeries, breakOnWeeks) {\n var dates = daySeries.dates;\n var daysPerRow;\n var firstDay;\n var rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow++) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n DayTable.prototype.buildCells = function () {\n var rows = [];\n for (var row = 0; row < this.rowCnt; row++) {\n var cells = [];\n for (var col = 0; col < this.colCnt; col++) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n };\n DayTable.prototype.buildCell = function (row, col) {\n return {\n date: this.daySeries.dates[row * this.colCnt + col]\n };\n };\n DayTable.prototype.buildHeaderDates = function () {\n var dates = [];\n for (var col = 0; col < this.colCnt; col++) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n };\n DayTable.prototype.sliceRange = function (range) {\n var colCnt = this.colCnt;\n var seriesSeg = this.daySeries.sliceRange(range);\n var segs = [];\n if (seriesSeg) {\n var firstIndex = seriesSeg.firstIndex, lastIndex = seriesSeg.lastIndex;\n var index = firstIndex;\n while (index <= lastIndex) {\n var row = Math.floor(index / colCnt);\n var nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row: row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex\n });\n index = nextIndex;\n }\n }\n return segs;\n };\n return DayTable;\n}());\n\nvar Slicer = /** @class */ (function () {\n function Slicer() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n }\n Slicer.prototype.sliceProps = function (props, dateProfile, nextDayThreshold, calendar, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n var eventUiBases = props.eventUiBases;\n var eventSegs = this.sliceEventStore.apply(this, [props.eventStore, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs));\n return {\n dateSelectionSegs: this.sliceDateSelection.apply(this, [props.dateSelection, eventUiBases, component].concat(extraArgs)),\n businessHourSegs: this.sliceBusinessHours.apply(this, [props.businessHours, dateProfile, nextDayThreshold, calendar, component].concat(extraArgs)),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag.apply(this, [props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventResize: this.sliceEventResize.apply(this, [props.eventResize, eventUiBases, dateProfile, nextDayThreshold, component].concat(extraArgs)),\n eventSelection: props.eventSelection\n }; // TODO: give interactionSegs?\n };\n Slicer.prototype.sliceNowDate = function (// does not memoize\n date, component) {\n var extraArgs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n extraArgs[_i - 2] = arguments[_i];\n }\n return this._sliceDateSpan.apply(this, [{ range: { start: date, end: addMs(date, 1) }, allDay: false },\n {},\n component].concat(extraArgs));\n };\n Slicer.prototype._sliceBusinessHours = function (businessHours, dateProfile, nextDayThreshold, calendar, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore.apply(this, [expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), calendar),\n {},\n dateProfile,\n nextDayThreshold,\n component].concat(extraArgs)).bg;\n };\n Slicer.prototype._sliceEventStore = function (eventStore, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (eventStore) {\n var rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, component, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, component, extraArgs)\n };\n }\n else {\n return { bg: [], fg: [] };\n }\n };\n Slicer.prototype._sliceInteraction = function (interaction, eventUiBases, dateProfile, nextDayThreshold, component) {\n var extraArgs = [];\n for (var _i = 5; _i < arguments.length; _i++) {\n extraArgs[_i - 5] = arguments[_i];\n }\n if (!interaction) {\n return null;\n }\n var rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, component, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n sourceSeg: interaction.origSeg\n };\n };\n Slicer.prototype._sliceDateSpan = function (dateSpan, eventUiBases, component) {\n var extraArgs = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n extraArgs[_i - 3] = arguments[_i];\n }\n if (!dateSpan) {\n return [];\n }\n var eventRange = fabricateEventRange(dateSpan, eventUiBases, component.context.calendar);\n var segs = this.sliceRange.apply(this, [dateSpan.range].concat(extraArgs));\n for (var _a = 0, segs_1 = segs; _a < segs_1.length; _a++) {\n var seg = segs_1[_a];\n seg.component = component;\n seg.eventRange = eventRange;\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRanges = function (eventRanges, component, // TODO: kill\n extraArgs) {\n var segs = [];\n for (var _i = 0, eventRanges_1 = eventRanges; _i < eventRanges_1.length; _i++) {\n var eventRange = eventRanges_1[_i];\n segs.push.apply(segs, this.sliceEventRange(eventRange, component, extraArgs));\n }\n return segs;\n };\n /*\n \"complete\" seg means it has component and eventRange\n */\n Slicer.prototype.sliceEventRange = function (eventRange, component, // TODO: kill\n extraArgs) {\n var segs = this.sliceRange.apply(this, [eventRange.range].concat(extraArgs));\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n seg.component = component;\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n };\n return Slicer;\n}());\n/*\nfor incorporating minTime/maxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n var range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.minTime.milliseconds),\n end: addMs(range.end, dateProfile.maxTime.milliseconds - 864e5) // 864e5 = ms in a day\n };\n}\n\n// exports\n// --------------------------------------------------------------------------------------------------\nvar version = '4.4.2';\n\nexport { Calendar, Component, ComponentContext, DateComponent, DateEnv, DateProfileGenerator, DayHeader, DaySeries, DayTable, ElementDragging, ElementScrollController, EmitterMixin, EventApi, FgEventRenderer, FillRenderer, Interaction, Mixin, NamedTimeZoneImpl, PositionCache, ScrollComponent, ScrollController, Slicer, Splitter, Theme, View, WindowScrollController, addDays, addDurations, addMs, addWeeks, allowContextMenu, allowSelection, appendToElement, applyAll, applyMutationToEventStore, applyStyle, applyStyleProp, asRoughMinutes, asRoughMs, asRoughSeconds, buildGotoAnchorHtml, buildSegCompareObj, capitaliseFirstLetter, combineEventUis, compareByFieldSpec, compareByFieldSpecs, compareNumbers, compensateScroll, computeClippingRect, computeEdges, computeEventDraggable, computeEventEndResizable, computeEventStartResizable, computeFallbackHeaderFormat, computeHeightAndMargins, computeInnerRect, computeRect, computeVisibleDayRange, config, constrainPoint, createDuration, createElement, createEmptyEventStore, createEventInstance, createFormatter, createPlugin, cssToStr, debounce, diffDates, diffDayAndTime, diffDays, diffPoints, diffWeeks, diffWholeDays, diffWholeWeeks, disableCursor, distributeHeight, elementClosest, elementMatches, enableCursor, eventTupleToStore, filterEventStoreDefs, filterHash, findChildren, findElements, flexibleCompare, forceClassName, formatDate, formatIsoTimeString, formatRange, getAllDayHtml, getClippingParents, getDayClasses, getElSeg, getRectCenter, getRelevantEvents, globalDefaults, greatestDurationDenominator, hasBgRendering, htmlEscape, htmlToElement, insertAfterElement, interactionSettingsStore, interactionSettingsToStore, intersectRanges, intersectRects, isArraysEqual, isDateSpansEqual, isInt, isInteractionValid, isMultiDayRange, isPropsEqual, isPropsValid, isSingleDay, isValidDate, listenBySelector, mapHash, matchCellWidths, memoize, memoizeOutput, memoizeRendering, mergeEventStores, multiplyDuration, padStart, parseBusinessHours, parseDragMeta, parseEventDef, parseFieldSpecs, parse as parseMarker, pointInsideRect, prependToElement, preventContextMenu, preventDefault, preventSelection, processScopedUiProps, rangeContainsMarker, rangeContainsRange, rangesEqual, rangesIntersect, refineProps, removeElement, removeExact, renderDateCell, requestJson, sliceEventStore, startOfDay, subtractInnerElHeight, translateRect, uncompensateScroll, undistributeHeight, unpromisify, version, whenTransitionDone, wholeDivideDurations };\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\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 target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strShimHasOwnProperty = \"hasOwnProperty\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\nexport var ObjAssign = ObjClass[\"assign\"];\r\nexport var ObjCreate = ObjClass[\"create\"];\r\nexport var ObjDefineProperty = ObjClass[\"defineProperty\"];\r\nexport var ObjHasOwnProperty = ObjProto[strShimHasOwnProperty];\r\n//# sourceMappingURL=Constants.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n;(function(window, document, undefined) {\n\"use strict\";\n\n(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= 0) {\n newClass = newClass.replace(' ' + className + ' ', ' ');\n }\n elem.className = newClass.replace(/^\\s+|\\s+$/g, '');\n }\n};\n\nvar escapeHtml = function escapeHtml(str) {\n var div = document.createElement('div');\n div.appendChild(document.createTextNode(str));\n return div.innerHTML;\n};\n\nvar _show = function _show(elem) {\n elem.style.opacity = '';\n elem.style.display = 'block';\n};\n\nvar show = function show(elems) {\n if (elems && !elems.length) {\n return _show(elems);\n }\n for (var i = 0; i < elems.length; ++i) {\n _show(elems[i]);\n }\n};\n\nvar _hide = function _hide(elem) {\n elem.style.opacity = '';\n elem.style.display = 'none';\n};\n\nvar hide = function hide(elems) {\n if (elems && !elems.length) {\n return _hide(elems);\n }\n for (var i = 0; i < elems.length; ++i) {\n _hide(elems[i]);\n }\n};\n\nvar isDescendant = function isDescendant(parent, child) {\n var node = child.parentNode;\n while (node !== null) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n};\n\nvar getTopMargin = function getTopMargin(elem) {\n elem.style.left = '-9999px';\n elem.style.display = 'block';\n\n var height = elem.clientHeight,\n padding;\n if (typeof getComputedStyle !== \"undefined\") {\n // IE 8\n padding = parseInt(getComputedStyle(elem).getPropertyValue('padding-top'), 10);\n } else {\n padding = parseInt(elem.currentStyle.padding);\n }\n\n elem.style.left = '';\n elem.style.display = 'none';\n return '-' + parseInt((height + padding) / 2) + 'px';\n};\n\nvar fadeIn = function fadeIn(elem, interval) {\n if (+elem.style.opacity < 1) {\n interval = interval || 16;\n elem.style.opacity = 0;\n elem.style.display = 'block';\n var last = +new Date();\n var tick = function tick() {\n elem.style.opacity = +elem.style.opacity + (new Date() - last) / 100;\n last = +new Date();\n\n if (+elem.style.opacity < 1) {\n setTimeout(tick, interval);\n }\n };\n tick();\n }\n elem.style.display = 'block'; //fallback IE8\n};\n\nvar fadeOut = function fadeOut(elem, interval) {\n interval = interval || 16;\n elem.style.opacity = 1;\n var last = +new Date();\n var tick = function tick() {\n elem.style.opacity = +elem.style.opacity - (new Date() - last) / 100;\n last = +new Date();\n\n if (+elem.style.opacity > 0) {\n setTimeout(tick, interval);\n } else {\n elem.style.display = 'none';\n }\n };\n tick();\n};\n\nvar fireClick = function fireClick(node) {\n // Taken from http://www.nonobtrusive.com/2011/11/29/programatically-fire-crossbrowser-click-event-with-javascript/\n // Then fixed for today's Chrome browser.\n if (typeof MouseEvent === 'function') {\n // Up-to-date approach\n var mevt = new MouseEvent('click', {\n view: window,\n bubbles: false,\n cancelable: true\n });\n node.dispatchEvent(mevt);\n } else if (document.createEvent) {\n // Fallback\n var evt = document.createEvent('MouseEvents');\n evt.initEvent('click', false, false);\n node.dispatchEvent(evt);\n } else if (document.createEventObject) {\n node.fireEvent('onclick');\n } else if (typeof node.onclick === 'function') {\n node.onclick();\n }\n};\n\nvar stopEventPropagation = function stopEventPropagation(e) {\n // In particular, make sure the space bar doesn't scroll the main window.\n if (typeof e.stopPropagation === 'function') {\n e.stopPropagation();\n e.preventDefault();\n } else if (window.event && window.event.hasOwnProperty('cancelBubble')) {\n window.event.cancelBubble = true;\n }\n};\n\nexports.hasClass = hasClass;\nexports.addClass = addClass;\nexports.removeClass = removeClass;\nexports.escapeHtml = escapeHtml;\nexports._show = _show;\nexports.show = show;\nexports._hide = _hide;\nexports.hide = hide;\nexports.isDescendant = isDescendant;\nexports.getTopMargin = getTopMargin;\nexports.fadeIn = fadeIn;\nexports.fadeOut = fadeOut;\nexports.fireClick = fireClick;\nexports.stopEventPropagation = stopEventPropagation;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _handleDom = require('./handle-dom');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar handleKeyDown = function handleKeyDown(event, params, modal) {\n var e = event || window.event;\n var keyCode = e.keyCode || e.which;\n\n var $okButton = modal.querySelector('button.confirm');\n var $cancelButton = modal.querySelector('button.cancel');\n var $modalButtons = modal.querySelectorAll('button[tabindex]');\n\n if ([9, 13, 32, 27].indexOf(keyCode) === -1) {\n // Don't do work on keys we don't care about.\n return;\n }\n\n var $targetElement = e.target || e.srcElement;\n\n var btnIndex = -1; // Find the button - note, this is a nodelist, not an array.\n for (var i = 0; i < $modalButtons.length; i++) {\n if ($targetElement === $modalButtons[i]) {\n btnIndex = i;\n break;\n }\n }\n\n if (keyCode === 9) {\n // TAB\n if (btnIndex === -1) {\n // No button focused. Jump to the confirm button.\n $targetElement = $okButton;\n } else {\n // Cycle to the next button\n if (btnIndex === $modalButtons.length - 1) {\n $targetElement = $modalButtons[0];\n } else {\n $targetElement = $modalButtons[btnIndex + 1];\n }\n }\n\n (0, _handleDom.stopEventPropagation)(e);\n $targetElement.focus();\n\n if (params.confirmButtonColor) {\n (0, _handleSwalDom.setFocusStyle)($targetElement, params.confirmButtonColor);\n }\n } else {\n if (keyCode === 13) {\n if ($targetElement.tagName === 'INPUT') {\n $targetElement = $okButton;\n $okButton.focus();\n }\n\n if (btnIndex === -1) {\n // ENTER/SPACE clicked outside of a button.\n $targetElement = $okButton;\n } else {\n // Do nothing - let the browser handle it.\n $targetElement = undefined;\n }\n } else if (keyCode === 27 && params.allowEscapeKey === true) {\n $targetElement = $cancelButton;\n (0, _handleDom.fireClick)($targetElement, e);\n } else {\n // Fallback - let the browser handle it.\n $targetElement = undefined;\n }\n }\n};\n\nexports.default = handleKeyDown;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fixVerticalPosition = exports.resetInputError = exports.resetInput = exports.openModal = exports.getInput = exports.getOverlay = exports.getModal = exports.sweetAlertInitialize = undefined;\n\nvar _handleDom = require('./handle-dom');\n\nvar _defaultParams = require('./default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _injectedHtml = require('./injected-html');\n\nvar _injectedHtml2 = _interopRequireDefault(_injectedHtml);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar modalClass = '.sweet-alert';\nvar overlayClass = '.sweet-overlay';\n\n/*\n * Add modal + overlay to DOM\n */\n\n\nvar sweetAlertInitialize = function sweetAlertInitialize() {\n var sweetWrap = document.createElement('div');\n sweetWrap.innerHTML = _injectedHtml2.default;\n\n // Append elements to body\n while (sweetWrap.firstChild) {\n document.body.appendChild(sweetWrap.firstChild);\n }\n};\n\n/*\n * Get DOM element of modal\n */\nvar getModal = function getModal() {\n var $modal = document.querySelector(modalClass);\n\n if (!$modal) {\n sweetAlertInitialize();\n $modal = getModal();\n }\n\n return $modal;\n};\n\n/*\n * Get DOM element of input (in modal)\n */\nvar getInput = function getInput() {\n var $modal = getModal();\n if ($modal) {\n return $modal.querySelector('input');\n }\n};\n\n/*\n * Get DOM element of overlay\n */\nvar getOverlay = function getOverlay() {\n return document.querySelector(overlayClass);\n};\n\n/*\n * Animation when opening modal\n */\nvar openModal = function openModal(callback) {\n var $modal = getModal();\n (0, _handleDom.fadeIn)(getOverlay(), 10);\n (0, _handleDom.show)($modal);\n (0, _handleDom.addClass)($modal, 'showSweetAlert');\n (0, _handleDom.removeClass)($modal, 'hideSweetAlert');\n\n window.previousActiveElement = document.activeElement;\n var $okButton = $modal.querySelector('button.confirm');\n $okButton.focus();\n\n setTimeout(function () {\n (0, _handleDom.addClass)($modal, 'visible');\n }, 500);\n\n var timer = $modal.getAttribute('data-timer');\n\n if (timer !== 'null' && timer !== '') {\n var timerCallback = callback;\n $modal.timeout = setTimeout(function () {\n var doneFunctionExists = (timerCallback || null) && $modal.getAttribute('data-has-done-function') === 'true';\n if (doneFunctionExists) {\n timerCallback(null);\n } else {\n sweetAlert.close();\n }\n }, timer);\n }\n};\n\n/*\n * Reset the styling of the input\n * (for example if errors have been shown)\n */\nvar resetInput = function resetInput() {\n var $modal = getModal();\n var $input = getInput();\n\n (0, _handleDom.removeClass)($modal, 'show-input');\n $input.value = _defaultParams2.default.inputValue;\n $input.setAttribute('type', _defaultParams2.default.inputType);\n $input.setAttribute('placeholder', _defaultParams2.default.inputPlaceholder);\n\n resetInputError();\n};\n\nvar resetInputError = function resetInputError(event) {\n // If press enter => ignore\n if (event && event.keyCode === 13) {\n return false;\n }\n\n var $modal = getModal();\n\n var $errorIcon = $modal.querySelector('.sa-input-error');\n (0, _handleDom.removeClass)($errorIcon, 'show');\n\n var $errorContainer = $modal.querySelector('.form-group');\n (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Set \"margin-top\"-property on modal based on its computed height\n */\nvar fixVerticalPosition = function fixVerticalPosition() {\n var $modal = getModal();\n $modal.style.marginTop = (0, _handleDom.getTopMargin)(getModal());\n};\n\nexports.sweetAlertInitialize = sweetAlertInitialize;\nexports.getModal = getModal;\nexports.getOverlay = getOverlay;\nexports.getInput = getInput;\nexports.openModal = openModal;\nexports.resetInput = resetInput;\nexports.resetInputError = resetInputError;\nexports.fixVerticalPosition = fixVerticalPosition;\n\n},{\"./default-params\":1,\"./handle-dom\":3,\"./injected-html\":6}],6:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar injectedHTML =\n\n// Dark overlay\n\"
\" +\n\n// Modal\n\"
\" +\n\n// Error icon\n\"
\\n \\n \\n \\n \\n
\" +\n\n// Warning icon\n\"
\\n \\n \\n
\" +\n\n// Info icon\n\"
\" +\n\n// Success icon\n\"
\\n \\n \\n\\n
\\n
\\n
\" + \"
\" +\n\n// Title, text and input\n\"

Title

\\n

Text

\\n
\\n \\n \\n Not valid\\n \\n
\" +\n\n// Cancel and confirm buttons\n\"
\\n \\n
\\n \" +\n\n// Loading animation\n\"
\\n
\\n
\\n
\\n
\\n
\\n
\" +\n\n// End of modal\n\"
\";\n\nexports.default = injectedHTML;\n\n},{}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\nvar _utils = require('./utils');\n\nvar _handleSwalDom = require('./handle-swal-dom');\n\nvar _handleDom = require('./handle-dom');\n\nvar alertTypes = ['error', 'warning', 'info', 'success', 'input', 'prompt'];\n\n/*\n * Set type, text and actions on modal\n */\nvar setParameters = function setParameters(params) {\n var modal = (0, _handleSwalDom.getModal)();\n\n var $title = modal.querySelector('h2');\n var $text = modal.querySelector('p');\n var $cancelBtn = modal.querySelector('button.cancel');\n var $confirmBtn = modal.querySelector('button.confirm');\n\n /*\n * Title\n */\n $title.innerHTML = params.html ? params.title : (0, _handleDom.escapeHtml)(params.title).split('\\n').join('
');\n\n /*\n * Text\n */\n $text.innerHTML = params.html ? params.text : (0, _handleDom.escapeHtml)(params.text || '').split('\\n').join('
');\n if (params.text) (0, _handleDom.show)($text);\n\n /*\n * Custom class\n */\n if (params.customClass) {\n (0, _handleDom.addClass)(modal, params.customClass);\n modal.setAttribute('data-custom-class', params.customClass);\n } else {\n // Find previously set classes and remove them\n var customClass = modal.getAttribute('data-custom-class');\n (0, _handleDom.removeClass)(modal, customClass);\n modal.setAttribute('data-custom-class', '');\n }\n\n /*\n * Icon\n */\n (0, _handleDom.hide)(modal.querySelectorAll('.sa-icon'));\n\n if (params.type && !(0, _utils.isIE8)()) {\n var _ret = function () {\n\n var validType = false;\n\n for (var i = 0; i < alertTypes.length; i++) {\n if (params.type === alertTypes[i]) {\n validType = true;\n break;\n }\n }\n\n if (!validType) {\n logStr('Unknown alert type: ' + params.type);\n return {\n v: false\n };\n }\n\n var typesWithIcons = ['success', 'error', 'warning', 'info'];\n var $icon = void 0;\n\n if (typesWithIcons.indexOf(params.type) !== -1) {\n $icon = modal.querySelector('.sa-icon.' + 'sa-' + params.type);\n (0, _handleDom.show)($icon);\n }\n\n var $input = (0, _handleSwalDom.getInput)();\n\n // Animate icon\n switch (params.type) {\n\n case 'success':\n (0, _handleDom.addClass)($icon, 'animate');\n (0, _handleDom.addClass)($icon.querySelector('.sa-tip'), 'animateSuccessTip');\n (0, _handleDom.addClass)($icon.querySelector('.sa-long'), 'animateSuccessLong');\n break;\n\n case 'error':\n (0, _handleDom.addClass)($icon, 'animateErrorIcon');\n (0, _handleDom.addClass)($icon.querySelector('.sa-x-mark'), 'animateXMark');\n break;\n\n case 'warning':\n (0, _handleDom.addClass)($icon, 'pulseWarning');\n (0, _handleDom.addClass)($icon.querySelector('.sa-body'), 'pulseWarningIns');\n (0, _handleDom.addClass)($icon.querySelector('.sa-dot'), 'pulseWarningIns');\n break;\n\n case 'input':\n case 'prompt':\n $input.setAttribute('type', params.inputType);\n $input.value = params.inputValue;\n $input.setAttribute('placeholder', params.inputPlaceholder);\n (0, _handleDom.addClass)(modal, 'show-input');\n setTimeout(function () {\n $input.focus();\n $input.addEventListener('keyup', swal.resetInputError);\n }, 400);\n break;\n }\n }();\n\n if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n }\n\n /*\n * Custom image\n */\n if (params.imageUrl) {\n var $customIcon = modal.querySelector('.sa-icon.sa-custom');\n\n $customIcon.style.backgroundImage = 'url(' + params.imageUrl + ')';\n (0, _handleDom.show)($customIcon);\n\n var _imgWidth = 80;\n var _imgHeight = 80;\n\n if (params.imageSize) {\n var dimensions = params.imageSize.toString().split('x');\n var imgWidth = dimensions[0];\n var imgHeight = dimensions[1];\n\n if (!imgWidth || !imgHeight) {\n logStr('Parameter imageSize expects value with format WIDTHxHEIGHT, got ' + params.imageSize);\n } else {\n _imgWidth = imgWidth;\n _imgHeight = imgHeight;\n }\n }\n\n $customIcon.setAttribute('style', $customIcon.getAttribute('style') + 'width:' + _imgWidth + 'px; height:' + _imgHeight + 'px');\n }\n\n /*\n * Show cancel button?\n */\n modal.setAttribute('data-has-cancel-button', params.showCancelButton);\n if (params.showCancelButton) {\n $cancelBtn.style.display = 'inline-block';\n } else {\n (0, _handleDom.hide)($cancelBtn);\n }\n\n /*\n * Show confirm button?\n */\n modal.setAttribute('data-has-confirm-button', params.showConfirmButton);\n if (params.showConfirmButton) {\n $confirmBtn.style.display = 'inline-block';\n } else {\n (0, _handleDom.hide)($confirmBtn);\n }\n\n /*\n * Custom text on cancel/confirm buttons\n */\n if (params.cancelButtonText) {\n $cancelBtn.innerHTML = (0, _handleDom.escapeHtml)(params.cancelButtonText);\n }\n if (params.confirmButtonText) {\n $confirmBtn.innerHTML = (0, _handleDom.escapeHtml)(params.confirmButtonText);\n }\n\n /*\n * Reset confirm buttons to default class (Ugly fix)\n */\n $confirmBtn.className = 'confirm btn btn-lg';\n\n /*\n * Attach selected class to the sweet alert modal\n */\n (0, _handleDom.addClass)(modal, params.containerClass);\n\n /*\n * Set confirm button to selected class\n */\n (0, _handleDom.addClass)($confirmBtn, params.confirmButtonClass);\n\n /*\n * Set cancel button to selected class\n */\n (0, _handleDom.addClass)($cancelBtn, params.cancelButtonClass);\n\n /*\n * Set title to selected class\n */\n (0, _handleDom.addClass)($title, params.titleClass);\n\n /*\n * Set text to selected class\n */\n (0, _handleDom.addClass)($text, params.textClass);\n\n /*\n * Allow outside click\n */\n modal.setAttribute('data-allow-outside-click', params.allowOutsideClick);\n\n /*\n * Callback function\n */\n var hasDoneFunction = params.doneFunction ? true : false;\n modal.setAttribute('data-has-done-function', hasDoneFunction);\n\n /*\n * Animation\n */\n if (!params.animation) {\n modal.setAttribute('data-animation', 'none');\n } else if (typeof params.animation === 'string') {\n modal.setAttribute('data-animation', params.animation); // Custom animation\n } else {\n modal.setAttribute('data-animation', 'pop');\n }\n\n /*\n * Timer\n */\n modal.setAttribute('data-timer', params.timer);\n};\n\nexports.default = setParameters;\n\n},{\"./handle-dom\":3,\"./handle-swal-dom\":5,\"./utils\":8}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/*\n * Allow user to pass their own params\n */\nvar extend = function extend(a, b) {\n for (var key in b) {\n if (b.hasOwnProperty(key)) {\n a[key] = b[key];\n }\n }\n return a;\n};\n\n/*\n * Check if the user is using Internet Explorer 8 (for fallbacks)\n */\nvar isIE8 = function isIE8() {\n return window.attachEvent && !window.addEventListener;\n};\n\n/*\n * IE compatible logging for developers\n */\nvar logStr = function logStr(string) {\n if (window.console) {\n // IE...\n window.console.log('SweetAlert: ' + string);\n }\n};\n\nexports.extend = extend;\nexports.isIE8 = isIE8;\nexports.logStr = logStr;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; }; // SweetAlert\n// 2014-2015 (c) - Tristan Edwards\n// github.com/t4t5/sweetalert\n\n/*\n * jQuery-like functions for manipulating the DOM\n */\n\n\n/*\n * Handy utilities\n */\n\n\n/*\n * Handle sweetAlert's DOM elements\n */\n\n\n// Handle button events and keyboard events\n\n\n// Default values\n\n\nvar _handleDom = require('./modules/handle-dom');\n\nvar _utils = require('./modules/utils');\n\nvar _handleSwalDom = require('./modules/handle-swal-dom');\n\nvar _handleClick = require('./modules/handle-click');\n\nvar _handleKey = require('./modules/handle-key');\n\nvar _handleKey2 = _interopRequireDefault(_handleKey);\n\nvar _defaultParams = require('./modules/default-params');\n\nvar _defaultParams2 = _interopRequireDefault(_defaultParams);\n\nvar _setParams = require('./modules/set-params');\n\nvar _setParams2 = _interopRequireDefault(_setParams);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * (We also use window.previousActiveElement as a global variable)\n */\nvar previousWindowKeyDown;\nvar lastFocusedButton;\n\n/*\n * Global sweetAlert function\n * (this is what the user calls)\n */\nvar sweetAlert, _swal;\n\nexports.default = sweetAlert = _swal = function swal() {\n var customizations = arguments[0];\n\n (0, _handleDom.addClass)(document.body, 'stop-scrolling');\n (0, _handleSwalDom.resetInput)();\n\n /*\n * Use argument if defined or default value from params object otherwise.\n * Supports the case where a default value is boolean true and should be\n * overridden by a corresponding explicit argument which is boolean false.\n */\n function argumentOrDefault(key) {\n var args = customizations;\n return args[key] === undefined ? _defaultParams2.default[key] : args[key];\n }\n\n if (customizations === undefined) {\n (0, _utils.logStr)('SweetAlert expects at least 1 attribute!');\n return false;\n }\n\n var params = (0, _utils.extend)({}, _defaultParams2.default);\n\n switch (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)) {\n\n // Ex: swal(\"Hello\", \"Just testing\", \"info\");\n case 'string':\n params.title = customizations;\n params.text = arguments[1] || '';\n params.type = arguments[2] || '';\n break;\n\n // Ex: swal({ title:\"Hello\", text: \"Just testing\", type: \"info\" });\n case 'object':\n if (customizations.title === undefined) {\n (0, _utils.logStr)('Missing \"title\" argument!');\n return false;\n }\n\n params.title = customizations.title;\n\n for (var customName in _defaultParams2.default) {\n params[customName] = argumentOrDefault(customName);\n }\n\n // Show \"Confirm\" instead of \"OK\" if cancel button is visible\n params.confirmButtonText = params.showCancelButton ? 'Confirm' : _defaultParams2.default.confirmButtonText;\n params.confirmButtonText = argumentOrDefault('confirmButtonText');\n\n // Callback function when clicking on \"OK\"/\"Cancel\"\n params.doneFunction = arguments[1] || null;\n\n break;\n\n default:\n (0, _utils.logStr)('Unexpected type of argument! Expected \"string\" or \"object\", got ' + (typeof customizations === 'undefined' ? 'undefined' : _typeof(customizations)));\n return false;\n\n }\n\n (0, _setParams2.default)(params);\n (0, _handleSwalDom.fixVerticalPosition)();\n (0, _handleSwalDom.openModal)(arguments[1]);\n\n // Modal interactions\n var modal = (0, _handleSwalDom.getModal)();\n\n /*\n * Make sure all modal buttons respond to all events\n */\n var $buttons = modal.querySelectorAll('button');\n var buttonEvents = ['onclick'];\n var onButtonEvent = function onButtonEvent(e) {\n return (0, _handleClick.handleButton)(e, params, modal);\n };\n\n for (var btnIndex = 0; btnIndex < $buttons.length; btnIndex++) {\n for (var evtIndex = 0; evtIndex < buttonEvents.length; evtIndex++) {\n var btnEvt = buttonEvents[evtIndex];\n $buttons[btnIndex][btnEvt] = onButtonEvent;\n }\n }\n\n // Clicking outside the modal dismisses it (if allowed by user)\n (0, _handleSwalDom.getOverlay)().onclick = onButtonEvent;\n\n previousWindowKeyDown = window.onkeydown;\n\n var onKeyEvent = function onKeyEvent(e) {\n return (0, _handleKey2.default)(e, params, modal);\n };\n window.onkeydown = onKeyEvent;\n\n window.onfocus = function () {\n // When the user has focused away and focused back from the whole window.\n setTimeout(function () {\n // Put in a timeout to jump out of the event sequence.\n // Calling focus() in the event sequence confuses things.\n if (lastFocusedButton !== undefined) {\n lastFocusedButton.focus();\n lastFocusedButton = undefined;\n }\n }, 0);\n };\n\n // Show alert with enabled buttons always\n _swal.enableButtons();\n};\n\n/*\n * Set default params for each popup\n * @param {Object} userParams\n */\n\n\nsweetAlert.setDefaults = _swal.setDefaults = function (userParams) {\n if (!userParams) {\n throw new Error('userParams is required');\n }\n if ((typeof userParams === 'undefined' ? 'undefined' : _typeof(userParams)) !== 'object') {\n throw new Error('userParams has to be a object');\n }\n\n (0, _utils.extend)(_defaultParams2.default, userParams);\n};\n\n/*\n * Animation when closing modal\n */\nsweetAlert.close = _swal.close = function () {\n var modal = (0, _handleSwalDom.getModal)();\n\n (0, _handleDom.fadeOut)((0, _handleSwalDom.getOverlay)(), 5);\n (0, _handleDom.fadeOut)(modal, 5);\n (0, _handleDom.removeClass)(modal, 'showSweetAlert');\n (0, _handleDom.addClass)(modal, 'hideSweetAlert');\n (0, _handleDom.removeClass)(modal, 'visible');\n\n /*\n * Reset icon animations\n */\n var $successIcon = modal.querySelector('.sa-icon.sa-success');\n (0, _handleDom.removeClass)($successIcon, 'animate');\n (0, _handleDom.removeClass)($successIcon.querySelector('.sa-tip'), 'animateSuccessTip');\n (0, _handleDom.removeClass)($successIcon.querySelector('.sa-long'), 'animateSuccessLong');\n\n var $errorIcon = modal.querySelector('.sa-icon.sa-error');\n (0, _handleDom.removeClass)($errorIcon, 'animateErrorIcon');\n (0, _handleDom.removeClass)($errorIcon.querySelector('.sa-x-mark'), 'animateXMark');\n\n var $warningIcon = modal.querySelector('.sa-icon.sa-warning');\n (0, _handleDom.removeClass)($warningIcon, 'pulseWarning');\n (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-body'), 'pulseWarningIns');\n (0, _handleDom.removeClass)($warningIcon.querySelector('.sa-dot'), 'pulseWarningIns');\n\n // Reset custom class (delay so that UI changes aren't visible)\n setTimeout(function () {\n var customClass = modal.getAttribute('data-custom-class');\n (0, _handleDom.removeClass)(modal, customClass);\n }, 300);\n\n // Make page scrollable again\n (0, _handleDom.removeClass)(document.body, 'stop-scrolling');\n\n // Reset the page to its previous state\n window.onkeydown = previousWindowKeyDown;\n if (window.previousActiveElement) {\n window.previousActiveElement.focus();\n }\n lastFocusedButton = undefined;\n clearTimeout(modal.timeout);\n\n return true;\n};\n\n/*\n * Validation of the input field is done by user\n * If something is wrong => call showInputError with errorMessage\n */\nsweetAlert.showInputError = _swal.showInputError = function (errorMessage) {\n var modal = (0, _handleSwalDom.getModal)();\n\n var $errorIcon = modal.querySelector('.sa-input-error');\n (0, _handleDom.addClass)($errorIcon, 'show');\n\n var $errorContainer = modal.querySelector('.form-group');\n (0, _handleDom.addClass)($errorContainer, 'has-error');\n\n $errorContainer.querySelector('.sa-help-text').innerHTML = errorMessage;\n\n setTimeout(function () {\n sweetAlert.enableButtons();\n }, 1);\n\n modal.querySelector('input').focus();\n};\n\n/*\n * Reset input error DOM elements\n */\nsweetAlert.resetInputError = _swal.resetInputError = function (event) {\n // If press enter => ignore\n if (event && event.keyCode === 13) {\n return false;\n }\n\n var $modal = (0, _handleSwalDom.getModal)();\n\n var $errorIcon = $modal.querySelector('.sa-input-error');\n (0, _handleDom.removeClass)($errorIcon, 'show');\n\n var $errorContainer = $modal.querySelector('.form-group');\n (0, _handleDom.removeClass)($errorContainer, 'has-error');\n};\n\n/*\n * Disable confirm and cancel buttons\n */\nsweetAlert.disableButtons = _swal.disableButtons = function (event) {\n var modal = (0, _handleSwalDom.getModal)();\n var $confirmButton = modal.querySelector('button.confirm');\n var $cancelButton = modal.querySelector('button.cancel');\n $confirmButton.disabled = true;\n $cancelButton.disabled = true;\n};\n\n/*\n * Enable confirm and cancel buttons\n */\nsweetAlert.enableButtons = _swal.enableButtons = function (event) {\n var modal = (0, _handleSwalDom.getModal)();\n var $confirmButton = modal.querySelector('button.confirm');\n var $cancelButton = modal.querySelector('button.cancel');\n $confirmButton.disabled = false;\n $cancelButton.disabled = false;\n};\n\nif (typeof window !== 'undefined') {\n // The 'handle-click' module requires\n // that 'sweetAlert' was set as global.\n window.sweetAlert = window.swal = sweetAlert;\n} else {\n (0, _utils.logStr)('SweetAlert is a frontend module!');\n}\n\n},{\"./modules/default-params\":1,\"./modules/handle-click\":2,\"./modules/handle-dom\":3,\"./modules/handle-key\":4,\"./modules/handle-swal-dom\":5,\"./modules/set-params\":7,\"./modules/utils\":8}]},{},[9]);\n\n/*\n * Use SweetAlert with RequireJS\n */\n\nif (typeof define === 'function' && define.amd) {\n define(function () {\n return sweetAlert;\n });\n} else if (typeof module !== 'undefined' && module.exports) {\n module.exports = sweetAlert;\n}\n\n})(window, document);\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = false;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = {};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjCreate, strShimFunction, strShimObject, strShimPrototype, strShimUndefined } from \"./Constants\";\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions.\r\n */\r\nexport function getGlobal() {\r\n if (typeof globalThis !== strShimUndefined && globalThis) {\r\n return globalThis;\r\n }\r\n if (typeof self !== strShimUndefined && self) {\r\n return self;\r\n }\r\n if (typeof window !== strShimUndefined && window) {\r\n return window;\r\n }\r\n if (typeof global !== strShimUndefined && global) {\r\n return global;\r\n }\r\n return null;\r\n}\r\nexport function throwTypeError(message) {\r\n throw new TypeError(message);\r\n}\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function objCreateFn(obj) {\r\n var func = ObjCreate;\r\n // Use build in Object.create\r\n if (func) {\r\n // Use Object create method if it exists\r\n return func(obj);\r\n }\r\n if (obj == null) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== strShimObject && type !== strShimFunction) {\r\n throwTypeError('Object prototype may only be an Object:' + obj);\r\n }\r\n function tmpFunc() { }\r\n tmpFunc[strShimPrototype] = obj;\r\n return new tmpFunc();\r\n}\r\n//# sourceMappingURL=Helpers.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nexports.f = {}.propertyIsEnumerable;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// false -> 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nexports.f = Object.getOwnPropertySymbols;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$
') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*!\nFullCalendar Day Grid Plugin v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport { addWeeks, diffWeeks, DateProfileGenerator, createElement, listenBySelector, removeElement, computeRect, computeClippingRect, applyStyle, computeEventDraggable, computeEventStartResizable, computeEventEndResizable, cssToStr, htmlEscape, FgEventRenderer, appendToElement, prependToElement, htmlToElement, FillRenderer, memoizeRendering, createFormatter, addDays, DateComponent, rangeContainsMarker, getDayClasses, findElements, PositionCache, buildGotoAnchorHtml, findChildren, insertAfterElement, intersectRanges, memoize, ScrollComponent, matchCellWidths, uncompensateScroll, compensateScroll, subtractInnerElHeight, distributeHeight, undistributeHeight, View, Slicer, DayHeader, DaySeries, DayTable, createPlugin } from '@fullcalendar/core';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar DayGridDateProfileGenerator = /** @class */ (function (_super) {\n __extends(DayGridDateProfileGenerator, _super);\n function DayGridDateProfileGenerator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Computes the date range that will be rendered.\n DayGridDateProfileGenerator.prototype.buildRenderRange = function (currentRange, currentRangeUnit, isRangeAllDay) {\n var dateEnv = this.dateEnv;\n var renderRange = _super.prototype.buildRenderRange.call(this, currentRange, currentRangeUnit, isRangeAllDay);\n var start = renderRange.start;\n var end = renderRange.end;\n var endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (/^(year|month)$/.test(currentRangeUnit)) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (this.options.monthMode &&\n this.options.fixedWeekCount) {\n var rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(start, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start: start, end: end };\n };\n return DayGridDateProfileGenerator;\n}(DateProfileGenerator));\n\n/* A rectangular panel that is absolutely positioned over other content\n------------------------------------------------------------------------------------------------------------------------\nOptions:\n - className (string)\n - content (HTML string, element, or element array)\n - parentEl\n - top\n - left\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\n - autoHide (boolean)\n - show (callback)\n - hide (callback)\n*/\nvar Popover = /** @class */ (function () {\n function Popover(options) {\n var _this = this;\n this.isHidden = true;\n this.margin = 10; // the space required between the popover and the edges of the scroll container\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.documentMousedown = function (ev) {\n // only hide the popover if the click happened outside the popover\n if (_this.el && !_this.el.contains(ev.target)) {\n _this.hide();\n }\n };\n this.options = options;\n }\n // Shows the popover on the specified position. Renders it if not already\n Popover.prototype.show = function () {\n if (this.isHidden) {\n if (!this.el) {\n this.render();\n }\n this.el.style.display = '';\n this.position();\n this.isHidden = false;\n this.trigger('show');\n }\n };\n // Hides the popover, through CSS, but does not remove it from the DOM\n Popover.prototype.hide = function () {\n if (!this.isHidden) {\n this.el.style.display = 'none';\n this.isHidden = true;\n this.trigger('hide');\n }\n };\n // Creates `this.el` and renders content inside of it\n Popover.prototype.render = function () {\n var _this = this;\n var options = this.options;\n var el = this.el = createElement('div', {\n className: 'fc-popover ' + (options.className || ''),\n style: {\n top: '0',\n left: '0'\n }\n });\n if (typeof options.content === 'function') {\n options.content(el);\n }\n options.parentEl.appendChild(el);\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\n listenBySelector(el, 'click', '.fc-close', function (ev) {\n _this.hide();\n });\n if (options.autoHide) {\n document.addEventListener('mousedown', this.documentMousedown);\n }\n };\n // Hides and unregisters any handlers\n Popover.prototype.destroy = function () {\n this.hide();\n if (this.el) {\n removeElement(this.el);\n this.el = null;\n }\n document.removeEventListener('mousedown', this.documentMousedown);\n };\n // Positions the popover optimally, using the top/left/right options\n Popover.prototype.position = function () {\n var options = this.options;\n var el = this.el;\n var elDims = el.getBoundingClientRect(); // only used for width,height\n var origin = computeRect(el.offsetParent);\n var clippingRect = computeClippingRect(options.parentEl);\n var top; // the \"position\" (not \"offset\") values for the popover\n var left; //\n // compute top and left\n top = options.top || 0;\n if (options.left !== undefined) {\n left = options.left;\n }\n else if (options.right !== undefined) {\n left = options.right - elDims.width; // derive the left value from the right value\n }\n else {\n left = 0;\n }\n // constrain to the view port. if constrained by two edges, give precedence to top/left\n top = Math.min(top, clippingRect.bottom - elDims.height - this.margin);\n top = Math.max(top, clippingRect.top + this.margin);\n left = Math.min(left, clippingRect.right - elDims.width - this.margin);\n left = Math.max(left, clippingRect.left + this.margin);\n applyStyle(el, {\n top: top - origin.top,\n left: left - origin.left\n });\n };\n // Triggers a callback. Calls a function in the option hash of the same name.\n // Arguments beyond the first `name` are forwarded on.\n // TODO: better code reuse for this. Repeat code\n // can kill this???\n Popover.prototype.trigger = function (name) {\n if (this.options[name]) {\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\n }\n };\n return Popover;\n}());\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\n// \"Simple\" is bad a name. has nothing to do with SimpleDayGrid\nvar SimpleDayGridEventRenderer = /** @class */ (function (_super) {\n __extends(SimpleDayGridEventRenderer, _super);\n function SimpleDayGridEventRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // Builds the HTML to be used for the default element for an individual segment\n SimpleDayGridEventRenderer.prototype.renderSegHtml = function (seg, mirrorInfo) {\n var context = this.context;\n var eventRange = seg.eventRange;\n var eventDef = eventRange.def;\n var eventUi = eventRange.ui;\n var allDay = eventDef.allDay;\n var isDraggable = computeEventDraggable(context, eventDef, eventUi);\n var isResizableFromStart = allDay && seg.isStart && computeEventStartResizable(context, eventDef, eventUi);\n var isResizableFromEnd = allDay && seg.isEnd && computeEventEndResizable(context, eventDef, eventUi);\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd, mirrorInfo);\n var skinCss = cssToStr(this.getSkinCss(eventUi));\n var timeHtml = '';\n var timeText;\n var titleHtml;\n classes.unshift('fc-day-grid-event', 'fc-h-event');\n // Only display a timed events time if it is the starting segment\n if (seg.isStart) {\n timeText = this.getTimeText(eventRange);\n if (timeText) {\n timeHtml = '' + htmlEscape(timeText) + '';\n }\n }\n titleHtml =\n '' +\n (htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\n '';\n return '' +\n '
' +\n (context.options.dir === 'rtl' ?\n titleHtml + ' ' + timeHtml : // put a natural space in between\n timeHtml + ' ' + titleHtml //\n ) +\n '
' +\n (isResizableFromStart ?\n '
' :\n '') +\n (isResizableFromEnd ?\n '
' :\n '') +\n '
';\n };\n // Computes a default event time formatting string if `eventTimeFormat` is not explicitly defined\n SimpleDayGridEventRenderer.prototype.computeEventTimeFormat = function () {\n return {\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow'\n };\n };\n SimpleDayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return false; // TODO: somehow consider the originating DayGrid's column count\n };\n return SimpleDayGridEventRenderer;\n}(FgEventRenderer));\n\n/* Event-rendering methods for the DayGrid class\n----------------------------------------------------------------------------------------------------------------------*/\nvar DayGridEventRenderer = /** @class */ (function (_super) {\n __extends(DayGridEventRenderer, _super);\n function DayGridEventRenderer(dayGrid) {\n var _this = _super.call(this) || this;\n _this.dayGrid = dayGrid;\n return _this;\n }\n // Renders the given foreground event segments onto the grid\n DayGridEventRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // append to each row's content skeleton\n this.dayGrid.rowEls.forEach(function (rowNode, i) {\n rowNode.querySelector('.fc-content-skeleton > table').appendChild(rowStructs[i].tbodyEl);\n });\n // removes the \"more..\" events popover\n if (!mirrorInfo) {\n this.dayGrid.removeSegPopover();\n }\n };\n // Unrenders all currently rendered foreground event segments\n DayGridEventRenderer.prototype.detachSegs = function () {\n var rowStructs = this.rowStructs || [];\n var rowStruct;\n while ((rowStruct = rowStructs.pop())) {\n removeElement(rowStruct.tbodyEl);\n }\n this.rowStructs = null;\n };\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\n var rowStructs = [];\n var segRows;\n var row;\n segRows = this.groupSegRows(segs); // group into nested arrays\n // iterate each row of segment groupings\n for (row = 0; row < segRows.length; row++) {\n rowStructs.push(this.renderSegRow(row, segRows[row]));\n }\n return rowStructs;\n };\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\n // NOTE: modifies rowSegs\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\n var isRtl = this.context.isRtl;\n var dayGrid = this.dayGrid;\n var colCnt = dayGrid.colCnt;\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\n var tbody = document.createElement('tbody');\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\n var cellMatrix = []; // lookup for all elements of the level+col matrix\n var loneCellMatrix = []; // lookup for elements that only take up a single column\n var i;\n var levelSegs;\n var col;\n var tr;\n var j;\n var seg;\n var td;\n // populates empty cells from the current column (`col`) to `endCol`\n function emptyCellsUntil(endCol) {\n while (col < endCol) {\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\n td = (loneCellMatrix[i - 1] || [])[col];\n if (td) {\n td.rowSpan = (td.rowSpan || 1) + 1;\n }\n else {\n td = document.createElement('td');\n tr.appendChild(td);\n }\n cellMatrix[i][col] = td;\n loneCellMatrix[i][col] = td;\n col++;\n }\n }\n for (i = 0; i < levelCnt; i++) { // iterate through all levels\n levelSegs = segLevels[i];\n col = 0;\n tr = document.createElement('tr');\n segMatrix.push([]);\n cellMatrix.push([]);\n loneCellMatrix.push([]);\n // levelCnt might be 1 even though there are no actual levels. protect against this.\n // this single empty row is useful for styling.\n if (levelSegs) {\n for (j = 0; j < levelSegs.length; j++) { // iterate through segments in level\n seg = levelSegs[j];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol);\n // create a container that occupies or more columns. append the event element.\n td = createElement('td', { className: 'fc-event-container' }, seg.el);\n if (leftCol !== rightCol) {\n td.colSpan = rightCol - leftCol + 1;\n }\n else { // a single-column segment\n loneCellMatrix[i][col] = td;\n }\n while (col <= rightCol) {\n cellMatrix[i][col] = td;\n segMatrix[i][col] = seg;\n col++;\n }\n tr.appendChild(td);\n }\n }\n emptyCellsUntil(colCnt); // finish off the row\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (isRtl) {\n appendToElement(tr, introHtml);\n }\n else {\n prependToElement(tr, introHtml);\n }\n }\n tbody.appendChild(tr);\n }\n return {\n row: row,\n tbodyEl: tbody,\n cellMatrix: cellMatrix,\n segMatrix: segMatrix,\n segLevels: segLevels,\n segs: rowSegs\n };\n };\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\n // NOTE: modifies segs\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\n var isRtl = this.context.isRtl;\n var colCnt = this.dayGrid.colCnt;\n var levels = [];\n var i;\n var seg;\n var j;\n // Give preference to elements with certain criteria, so they have\n // a chance to be closer to the top.\n segs = this.sortEventSegs(segs);\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\n for (j = 0; j < levels.length; j++) {\n if (!isDaySegCollision(seg, levels[j])) {\n break;\n }\n }\n // `j` now holds the desired subrow index\n seg.level = j;\n seg.leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol; // for sorting only\n seg.rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol // for sorting only\n ;\n (levels[j] || (levels[j] = [])).push(seg);\n }\n // order segments left-to-right. very important if calendar is RTL\n for (j = 0; j < levels.length; j++) {\n levels[j].sort(compareDaySegCols);\n }\n return levels;\n };\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\n var segRows = [];\n var i;\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\n segRows.push([]);\n }\n for (i = 0; i < segs.length; i++) {\n segRows[segs[i].row].push(segs[i]);\n }\n return segRows;\n };\n // Computes a default `displayEventEnd` value if one is not expliclty defined\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\n };\n return DayGridEventRenderer;\n}(SimpleDayGridEventRenderer));\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\nfunction isDaySegCollision(seg, otherSegs) {\n var i;\n var otherSeg;\n for (i = 0; i < otherSegs.length; i++) {\n otherSeg = otherSegs[i];\n if (otherSeg.firstCol <= seg.lastCol &&\n otherSeg.lastCol >= seg.firstCol) {\n return true;\n }\n }\n return false;\n}\n// A cmp function for determining the leftmost event\nfunction compareDaySegCols(a, b) {\n return a.leftCol - b.leftCol;\n}\n\nvar DayGridMirrorRenderer = /** @class */ (function (_super) {\n __extends(DayGridMirrorRenderer, _super);\n function DayGridMirrorRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridMirrorRenderer.prototype.attachSegs = function (segs, mirrorInfo) {\n var sourceSeg = mirrorInfo.sourceSeg;\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\n // inject each new event skeleton into each associated row\n this.dayGrid.rowEls.forEach(function (rowNode, row) {\n var skeletonEl = htmlToElement('
'); // will be absolutely positioned\n var skeletonTopEl;\n var skeletonTop;\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\n if (sourceSeg && sourceSeg.row === row) {\n skeletonTopEl = sourceSeg.el;\n }\n else {\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton tbody');\n if (!skeletonTopEl) { // when no events\n skeletonTopEl = rowNode.querySelector('.fc-content-skeleton table');\n }\n }\n skeletonTop = skeletonTopEl.getBoundingClientRect().top -\n rowNode.getBoundingClientRect().top; // the offsetParent origin\n skeletonEl.style.top = skeletonTop + 'px';\n skeletonEl.querySelector('table').appendChild(rowStructs[row].tbodyEl);\n rowNode.appendChild(skeletonEl);\n });\n };\n return DayGridMirrorRenderer;\n}(DayGridEventRenderer));\n\nvar EMPTY_CELL_HTML = '';\nvar DayGridFillRenderer = /** @class */ (function (_super) {\n __extends(DayGridFillRenderer, _super);\n function DayGridFillRenderer(dayGrid) {\n var _this = _super.call(this) || this;\n _this.fillSegTag = 'td'; // override the default tag name\n _this.dayGrid = dayGrid;\n return _this;\n }\n DayGridFillRenderer.prototype.renderSegs = function (type, context, segs) {\n // don't render timed background events\n if (type === 'bgEvent') {\n segs = segs.filter(function (seg) {\n return seg.eventRange.def.allDay;\n });\n }\n _super.prototype.renderSegs.call(this, type, context, segs);\n };\n DayGridFillRenderer.prototype.attachSegs = function (type, segs) {\n var els = [];\n var i;\n var seg;\n var skeletonEl;\n for (i = 0; i < segs.length; i++) {\n seg = segs[i];\n skeletonEl = this.renderFillRow(type, seg);\n this.dayGrid.rowEls[seg.row].appendChild(skeletonEl);\n els.push(skeletonEl);\n }\n return els;\n };\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\n var dayGrid = this.dayGrid;\n var isRtl = this.context.isRtl;\n var colCnt = dayGrid.colCnt;\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n var startCol = leftCol;\n var endCol = rightCol + 1;\n var className;\n var skeletonEl;\n var trEl;\n if (type === 'businessHours') {\n className = 'bgevent';\n }\n else {\n className = type.toLowerCase();\n }\n skeletonEl = htmlToElement('
' +\n '
' +\n '
');\n trEl = skeletonEl.getElementsByTagName('tr')[0];\n if (startCol > 0) {\n appendToElement(trEl, \n // will create (startCol + 1) td's\n new Array(startCol + 1).join(EMPTY_CELL_HTML));\n }\n seg.el.colSpan = endCol - startCol;\n trEl.appendChild(seg.el);\n if (endCol < colCnt) {\n appendToElement(trEl, \n // will create (colCnt - endCol) td's\n new Array(colCnt - endCol + 1).join(EMPTY_CELL_HTML));\n }\n var introHtml = dayGrid.renderProps.renderIntroHtml();\n if (introHtml) {\n if (isRtl) {\n appendToElement(trEl, introHtml);\n }\n else {\n prependToElement(trEl, introHtml);\n }\n }\n return skeletonEl;\n };\n return DayGridFillRenderer;\n}(FillRenderer));\n\nvar DayTile = /** @class */ (function (_super) {\n __extends(DayTile, _super);\n function DayTile(el) {\n var _this = _super.call(this, el) || this;\n var eventRenderer = _this.eventRenderer = new DayTileEventRenderer(_this);\n var renderFrame = _this.renderFrame = memoizeRendering(_this._renderFrame);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderFrame]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n _this.renderEventResize = memoizeRendering(eventRenderer.hideByHash.bind(eventRenderer), eventRenderer.showByHash.bind(eventRenderer), [renderFrame]);\n return _this;\n }\n DayTile.prototype.firstContext = function (context) {\n context.calendar.registerInteractiveComponent(this, {\n el: this.el,\n useEventCenter: false\n });\n };\n DayTile.prototype.render = function (props, context) {\n this.renderFrame(props.date);\n this.renderFgEvents(context, props.fgSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDragInstances);\n this.renderEventResize(props.eventResizeInstances);\n };\n DayTile.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderFrame.unrender(); // should unrender everything else\n this.context.calendar.unregisterInteractiveComponent(this);\n };\n DayTile.prototype._renderFrame = function (date) {\n var _a = this.context, theme = _a.theme, dateEnv = _a.dateEnv, options = _a.options;\n var title = dateEnv.format(date, createFormatter(options.dayPopoverFormat) // TODO: cache\n );\n this.el.innerHTML =\n '
' +\n '' +\n htmlEscape(title) +\n '' +\n '' +\n '
' +\n '
' +\n '
' +\n '
';\n this.segContainerEl = this.el.querySelector('.fc-event-container');\n };\n DayTile.prototype.queryHit = function (positionLeft, positionTop, elWidth, elHeight) {\n var date = this.props.date; // HACK\n if (positionLeft < elWidth && positionTop < elHeight) {\n return {\n component: this,\n dateSpan: {\n allDay: true,\n range: { start: date, end: addDays(date, 1) }\n },\n dayEl: this.el,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight\n },\n layer: 1\n };\n }\n };\n return DayTile;\n}(DateComponent));\nvar DayTileEventRenderer = /** @class */ (function (_super) {\n __extends(DayTileEventRenderer, _super);\n function DayTileEventRenderer(dayTile) {\n var _this = _super.call(this) || this;\n _this.dayTile = dayTile;\n return _this;\n }\n DayTileEventRenderer.prototype.attachSegs = function (segs) {\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n this.dayTile.segContainerEl.appendChild(seg.el);\n }\n };\n DayTileEventRenderer.prototype.detachSegs = function (segs) {\n for (var _i = 0, segs_2 = segs; _i < segs_2.length; _i++) {\n var seg = segs_2[_i];\n removeElement(seg.el);\n }\n };\n return DayTileEventRenderer;\n}(SimpleDayGridEventRenderer));\n\nvar DayBgRow = /** @class */ (function () {\n function DayBgRow(context) {\n this.context = context;\n }\n DayBgRow.prototype.renderHtml = function (props) {\n var parts = [];\n if (props.renderIntroHtml) {\n parts.push(props.renderIntroHtml());\n }\n for (var _i = 0, _a = props.cells; _i < _a.length; _i++) {\n var cell = _a[_i];\n parts.push(renderCellHtml(cell.date, props.dateProfile, this.context, cell.htmlAttrs));\n }\n if (!props.cells.length) {\n parts.push('');\n }\n if (this.context.options.dir === 'rtl') {\n parts.reverse();\n }\n return '' + parts.join('') + '';\n };\n return DayBgRow;\n}());\nfunction renderCellHtml(date, dateProfile, context, otherAttrs) {\n var dateEnv = context.dateEnv, theme = context.theme;\n var isDateValid = rangeContainsMarker(dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var classes = getDayClasses(date, dateProfile, context);\n classes.unshift('fc-day', theme.getClass('widgetContent'));\n return '';\n}\n\nvar DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nvar WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' });\nvar DayGrid = /** @class */ (function (_super) {\n __extends(DayGrid, _super);\n function DayGrid(el, renderProps) {\n var _this = _super.call(this, el) || this;\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\n _this.isCellSizesDirty = false;\n _this.renderProps = renderProps;\n var eventRenderer = _this.eventRenderer = new DayGridEventRenderer(_this);\n var fillRenderer = _this.fillRenderer = new DayGridFillRenderer(_this);\n _this.mirrorRenderer = new DayGridMirrorRenderer(_this);\n var renderCells = _this.renderCells = memoizeRendering(_this._renderCells, _this._unrenderCells);\n _this.renderBusinessHours = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'businessHours'), fillRenderer.unrender.bind(fillRenderer, 'businessHours'), [renderCells]);\n _this.renderDateSelection = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'highlight'), fillRenderer.unrender.bind(fillRenderer, 'highlight'), [renderCells]);\n _this.renderBgEvents = memoizeRendering(fillRenderer.renderSegs.bind(fillRenderer, 'bgEvent'), fillRenderer.unrender.bind(fillRenderer, 'bgEvent'), [renderCells]);\n _this.renderFgEvents = memoizeRendering(eventRenderer.renderSegs.bind(eventRenderer), eventRenderer.unrender.bind(eventRenderer), [renderCells]);\n _this.renderEventSelection = memoizeRendering(eventRenderer.selectByInstanceId.bind(eventRenderer), eventRenderer.unselectByInstanceId.bind(eventRenderer), [_this.renderFgEvents]);\n _this.renderEventDrag = memoizeRendering(_this._renderEventDrag, _this._unrenderEventDrag, [renderCells]);\n _this.renderEventResize = memoizeRendering(_this._renderEventResize, _this._unrenderEventResize, [renderCells]);\n return _this;\n }\n DayGrid.prototype.render = function (props, context) {\n var cells = props.cells;\n this.rowCnt = cells.length;\n this.colCnt = cells[0].length;\n this.renderCells(cells, props.isRigid);\n this.renderBusinessHours(context, props.businessHourSegs);\n this.renderDateSelection(context, props.dateSelectionSegs);\n this.renderBgEvents(context, props.bgEventSegs);\n this.renderFgEvents(context, props.fgEventSegs);\n this.renderEventSelection(props.eventSelection);\n this.renderEventDrag(props.eventDrag);\n this.renderEventResize(props.eventResize);\n if (this.segPopoverTile) {\n this.updateSegPopoverTile();\n }\n };\n DayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderCells.unrender(); // will unrender everything else\n };\n DayGrid.prototype.getCellRange = function (row, col) {\n var start = this.props.cells[row][col].date;\n var end = addDays(start, 1);\n return { start: start, end: end };\n };\n DayGrid.prototype.updateSegPopoverTile = function (date, segs) {\n var ownProps = this.props;\n this.segPopoverTile.receiveProps({\n date: date || this.segPopoverTile.props.date,\n fgSegs: segs || this.segPopoverTile.props.fgSegs,\n eventSelection: ownProps.eventSelection,\n eventDragInstances: ownProps.eventDrag ? ownProps.eventDrag.affectedInstances : null,\n eventResizeInstances: ownProps.eventResize ? ownProps.eventResize.affectedInstances : null\n }, this.context);\n };\n /* Date Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderCells = function (cells, isRigid) {\n var _a = this.context, calendar = _a.calendar, view = _a.view, isRtl = _a.isRtl, dateEnv = _a.dateEnv;\n var _b = this, rowCnt = _b.rowCnt, colCnt = _b.colCnt;\n var html = '';\n var row;\n var col;\n for (row = 0; row < rowCnt; row++) {\n html += this.renderDayRowHtml(row, isRigid);\n }\n this.el.innerHTML = html;\n this.rowEls = findElements(this.el, '.fc-row');\n this.cellEls = findElements(this.el, '.fc-day, .fc-disabled-day');\n if (isRtl) {\n this.cellEls.reverse();\n }\n this.rowPositions = new PositionCache(this.el, this.rowEls, false, true // vertical\n );\n this.colPositions = new PositionCache(this.el, this.cellEls.slice(0, colCnt), // only the first row\n true, false // horizontal\n );\n // trigger dayRender with each cell's element\n for (row = 0; row < rowCnt; row++) {\n for (col = 0; col < colCnt; col++) {\n calendar.publiclyTrigger('dayRender', [\n {\n date: dateEnv.toDate(cells[row][col].date),\n el: this.getCellEl(row, col),\n view: view\n }\n ]);\n }\n }\n this.isCellSizesDirty = true;\n };\n DayGrid.prototype._unrenderCells = function () {\n this.removeSegPopover();\n };\n // Generates the HTML for a single row, which is a div that wraps a table.\n // `row` is the row number.\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\n var theme = this.context.theme;\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\n if (isRigid) {\n classes.push('fc-rigid');\n }\n var bgRow = new DayBgRow(this.context);\n return '' +\n '
' +\n '
' +\n '' +\n bgRow.renderHtml({\n cells: this.props.cells[row],\n dateProfile: this.props.dateProfile,\n renderIntroHtml: this.renderProps.renderBgIntroHtml\n }) +\n '
' +\n '
' +\n '
' +\n '' +\n (this.getIsNumbersVisible() ?\n '' +\n this.renderNumberTrHtml(row) +\n '' :\n '') +\n '
' +\n '
' +\n '
';\n };\n DayGrid.prototype.getIsNumbersVisible = function () {\n return this.getIsDayNumbersVisible() ||\n this.renderProps.cellWeekNumbersVisible ||\n this.renderProps.colWeekNumbersVisible;\n };\n DayGrid.prototype.getIsDayNumbersVisible = function () {\n return this.rowCnt > 1;\n };\n /* Grid Number Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.renderNumberTrHtml = function (row) {\n var isRtl = this.context.isRtl;\n var intro = this.renderProps.renderNumberIntroHtml(row, this);\n return '' +\n '' +\n (isRtl ? '' : intro) +\n this.renderNumberCellsHtml(row) +\n (isRtl ? intro : '') +\n '';\n };\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\n var htmls = [];\n var col;\n var date;\n for (col = 0; col < this.colCnt; col++) {\n date = this.props.cells[row][col].date;\n htmls.push(this.renderNumberCellHtml(date));\n }\n if (this.context.isRtl) {\n htmls.reverse();\n }\n return htmls.join('');\n };\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\n // The number row will only exist if either day numbers or week numbers are turned on.\n DayGrid.prototype.renderNumberCellHtml = function (date) {\n var _a = this.context, dateEnv = _a.dateEnv, options = _a.options;\n var html = '';\n var isDateValid = rangeContainsMarker(this.props.dateProfile.activeRange, date); // TODO: called too frequently. cache somehow.\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\n var classes;\n var weekCalcFirstDow;\n if (!isDayNumberVisible && !this.renderProps.cellWeekNumbersVisible) {\n // no numbers in day cell (week number must be along the side)\n return ''; // will create an empty space above events :(\n }\n classes = getDayClasses(date, this.props.dateProfile, this.context);\n classes.unshift('fc-day-top');\n if (this.renderProps.cellWeekNumbersVisible) {\n weekCalcFirstDow = dateEnv.weekDow;\n }\n html += '';\n if (this.renderProps.cellWeekNumbersVisible && (date.getUTCDay() === weekCalcFirstDow)) {\n html += buildGotoAnchorHtml(options, dateEnv, { date: date, type: 'week' }, { 'class': 'fc-week-number' }, dateEnv.format(date, WEEK_NUM_FORMAT) // inner HTML\n );\n }\n if (isDayNumberVisible) {\n html += buildGotoAnchorHtml(options, dateEnv, date, { 'class': 'fc-day-number' }, dateEnv.format(date, DAY_NUM_FORMAT) // inner HTML\n );\n }\n html += '';\n return html;\n };\n /* Sizing\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.updateSize = function (isResize) {\n var calendar = this.context.calendar;\n var _a = this, fillRenderer = _a.fillRenderer, eventRenderer = _a.eventRenderer, mirrorRenderer = _a.mirrorRenderer;\n if (isResize ||\n this.isCellSizesDirty ||\n calendar.isEventsUpdated // hack\n ) {\n this.buildPositionCaches();\n this.isCellSizesDirty = false;\n }\n fillRenderer.computeSizes(isResize);\n eventRenderer.computeSizes(isResize);\n mirrorRenderer.computeSizes(isResize);\n fillRenderer.assignSizes(isResize);\n eventRenderer.assignSizes(isResize);\n mirrorRenderer.assignSizes(isResize);\n };\n DayGrid.prototype.buildPositionCaches = function () {\n this.buildColPositions();\n this.buildRowPositions();\n };\n DayGrid.prototype.buildColPositions = function () {\n this.colPositions.build();\n };\n DayGrid.prototype.buildRowPositions = function () {\n this.rowPositions.build();\n this.rowPositions.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\n };\n /* Hit System\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.positionToHit = function (leftPosition, topPosition) {\n var _a = this, colPositions = _a.colPositions, rowPositions = _a.rowPositions;\n var col = colPositions.leftToIndex(leftPosition);\n var row = rowPositions.topToIndex(topPosition);\n if (row != null && col != null) {\n return {\n row: row,\n col: col,\n dateSpan: {\n range: this.getCellRange(row, col),\n allDay: true\n },\n dayEl: this.getCellEl(row, col),\n relativeRect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row]\n }\n };\n }\n };\n /* Cell System\n ------------------------------------------------------------------------------------------------------------------*/\n // FYI: the first column is the leftmost column, regardless of date\n DayGrid.prototype.getCellEl = function (row, col) {\n return this.cellEls[row * this.colCnt + col];\n };\n /* Event Drag Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', this.context, state.segs);\n }\n };\n DayGrid.prototype._unrenderEventDrag = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight', this.context);\n }\n };\n /* Event Resize Visualization\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype._renderEventResize = function (state) {\n if (state) {\n this.eventRenderer.hideByHash(state.affectedInstances);\n this.fillRenderer.renderSegs('highlight', this.context, state.segs);\n this.mirrorRenderer.renderSegs(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n DayGrid.prototype._unrenderEventResize = function (state) {\n if (state) {\n this.eventRenderer.showByHash(state.affectedInstances);\n this.fillRenderer.unrender('highlight', this.context);\n this.mirrorRenderer.unrender(this.context, state.segs, { isResizing: true, sourceSeg: state.sourceSeg });\n }\n };\n /* More+ Link Popover\n ------------------------------------------------------------------------------------------------------------------*/\n DayGrid.prototype.removeSegPopover = function () {\n if (this.segPopover) {\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\n }\n };\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\n DayGrid.prototype.limitRows = function (levelLimit) {\n var rowStructs = this.eventRenderer.rowStructs || [];\n var row; // row #\n var rowLevelLimit;\n for (row = 0; row < rowStructs.length; row++) {\n this.unlimitRow(row);\n if (!levelLimit) {\n rowLevelLimit = false;\n }\n else if (typeof levelLimit === 'number') {\n rowLevelLimit = levelLimit;\n }\n else {\n rowLevelLimit = this.computeRowLevelLimit(row);\n }\n if (rowLevelLimit !== false) {\n this.limitRow(row, rowLevelLimit);\n }\n }\n };\n // Computes the number of levels a row will accomodate without going outside its bounds.\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\n // `row` is the row number.\n DayGrid.prototype.computeRowLevelLimit = function (row) {\n var rowEl = this.rowEls[row]; // the containing \"fake\" row div\n var rowBottom = rowEl.getBoundingClientRect().bottom; // relative to viewport!\n var trEls = findChildren(this.eventRenderer.rowStructs[row].tbodyEl);\n var i;\n var trEl;\n // Reveal one level at a time and stop when we find one out of bounds\n for (i = 0; i < trEls.length; i++) {\n trEl = trEls[i];\n trEl.classList.remove('fc-limited'); // reset to original state (reveal)\n if (trEl.getBoundingClientRect().bottom > rowBottom) {\n return i;\n }\n }\n return false; // should not limit at all\n };\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\n // `row` is the row number.\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\n DayGrid.prototype.limitRow = function (row, levelLimit) {\n var _this = this;\n var colCnt = this.colCnt;\n var isRtl = this.context.isRtl;\n var rowStruct = this.eventRenderer.rowStructs[row];\n var moreNodes = []; // array of \"more\" links and DOM nodes\n var col = 0; // col #, left-to-right (not chronologically)\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\n var cellMatrix; // a matrix (by level, then column) of all elements in the row\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\n var i;\n var seg;\n var segsBelow; // array of segment objects below `seg` in the current `col`\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\n var td;\n var rowSpan;\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\n var j;\n var moreTd;\n var moreWrap;\n var moreLink;\n // Iterates through empty level cells and places \"more\" links inside if need be\n var emptyCellsUntil = function (endCol) {\n while (col < endCol) {\n segsBelow = _this.getCellSegs(row, col, levelLimit);\n if (segsBelow.length) {\n td = cellMatrix[levelLimit - 1][col];\n moreLink = _this.renderMoreLink(row, col, segsBelow);\n moreWrap = createElement('div', null, moreLink);\n td.appendChild(moreWrap);\n moreNodes.push(moreWrap);\n }\n col++;\n }\n };\n if (levelLimit && levelLimit < rowStruct.segLevels.length) { // is it actually over the limit?\n levelSegs = rowStruct.segLevels[levelLimit - 1];\n cellMatrix = rowStruct.cellMatrix;\n limitedNodes = findChildren(rowStruct.tbodyEl).slice(levelLimit); // get level elements past the limit\n limitedNodes.forEach(function (node) {\n node.classList.add('fc-limited'); // hide elements and get a simple DOM-nodes array\n });\n // iterate though segments in the last allowable level\n for (i = 0; i < levelSegs.length; i++) {\n seg = levelSegs[i];\n var leftCol = isRtl ? (colCnt - 1 - seg.lastCol) : seg.firstCol;\n var rightCol = isRtl ? (colCnt - 1 - seg.firstCol) : seg.lastCol;\n emptyCellsUntil(leftCol); // process empty cells before the segment\n // determine *all* segments below `seg` that occupy the same columns\n colSegsBelow = [];\n totalSegsBelow = 0;\n while (col <= rightCol) {\n segsBelow = this.getCellSegs(row, col, levelLimit);\n colSegsBelow.push(segsBelow);\n totalSegsBelow += segsBelow.length;\n col++;\n }\n if (totalSegsBelow) { // do we need to replace this segment with one or many \"more\" links?\n td = cellMatrix[levelLimit - 1][leftCol]; // the segment's parent cell\n rowSpan = td.rowSpan || 1;\n segMoreNodes = [];\n // make a replacement for each column the segment occupies. will be one for each colspan\n for (j = 0; j < colSegsBelow.length; j++) {\n moreTd = createElement('td', { className: 'fc-more-cell', rowSpan: rowSpan });\n segsBelow = colSegsBelow[j];\n moreLink = this.renderMoreLink(row, leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\n );\n moreWrap = createElement('div', null, moreLink);\n moreTd.appendChild(moreWrap);\n segMoreNodes.push(moreTd);\n moreNodes.push(moreTd);\n }\n td.classList.add('fc-limited');\n insertAfterElement(td, segMoreNodes);\n limitedNodes.push(td);\n }\n }\n emptyCellsUntil(this.colCnt); // finish off the level\n rowStruct.moreEls = moreNodes; // for easy undoing later\n rowStruct.limitedEls = limitedNodes; // for easy undoing later\n }\n };\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\n // `row` is a row number.\n DayGrid.prototype.unlimitRow = function (row) {\n var rowStruct = this.eventRenderer.rowStructs[row];\n if (rowStruct.moreEls) {\n rowStruct.moreEls.forEach(removeElement);\n rowStruct.moreEls = null;\n }\n if (rowStruct.limitedEls) {\n rowStruct.limitedEls.forEach(function (limitedEl) {\n limitedEl.classList.remove('fc-limited');\n });\n rowStruct.limitedEls = null;\n }\n };\n // Renders an element that represents hidden event element for a cell.\n // Responsible for attaching click handler as well.\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\n var _this = this;\n var _a = this.context, calendar = _a.calendar, view = _a.view, dateEnv = _a.dateEnv, options = _a.options, isRtl = _a.isRtl;\n var a = createElement('a', { className: 'fc-more' });\n a.innerText = this.getMoreLinkText(hiddenSegs.length);\n a.addEventListener('click', function (ev) {\n var clickOption = options.eventLimitClick;\n var _col = isRtl ? _this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var date = _this.props.cells[row][_col].date;\n var moreEl = ev.currentTarget;\n var dayEl = _this.getCellEl(row, col);\n var allSegs = _this.getCellSegs(row, col);\n // rescope the segments to be within the cell's date\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\n if (typeof clickOption === 'function') {\n // the returned value can be an atomic option\n clickOption = calendar.publiclyTrigger('eventLimitClick', [\n {\n date: dateEnv.toDate(date),\n allDay: true,\n dayEl: dayEl,\n moreEl: moreEl,\n segs: reslicedAllSegs,\n hiddenSegs: reslicedHiddenSegs,\n jsEvent: ev,\n view: view\n }\n ]);\n }\n if (clickOption === 'popover') {\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\n }\n else if (typeof clickOption === 'string') { // a view name\n calendar.zoomTo(date, clickOption);\n }\n });\n return a;\n };\n // Reveals the popover that displays all events within a cell\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\n var _this = this;\n var _a = this.context, calendar = _a.calendar, view = _a.view, theme = _a.theme, isRtl = _a.isRtl;\n var _col = isRtl ? this.colCnt - col - 1 : col; // HACK: props.cells has different dir system?\n var moreWrap = moreLink.parentNode; // the
wrapper around the \n var topEl; // the element we want to match the top coordinate of\n var options;\n if (this.rowCnt === 1) {\n topEl = view.el; // will cause the popover to cover any sort of header\n }\n else {\n topEl = this.rowEls[row]; // will align with top of row\n }\n options = {\n className: 'fc-more-popover ' + theme.getClass('popover'),\n parentEl: view.el,\n top: computeRect(topEl).top,\n autoHide: true,\n content: function (el) {\n _this.segPopoverTile = new DayTile(el);\n _this.updateSegPopoverTile(_this.props.cells[row][_col].date, segs);\n },\n hide: function () {\n _this.segPopoverTile.destroy();\n _this.segPopoverTile = null;\n _this.segPopover.destroy();\n _this.segPopover = null;\n }\n };\n // Determine horizontal coordinate.\n // We use the moreWrap instead of the to avoid border confusion.\n if (isRtl) {\n options.right = computeRect(moreWrap).right + 1; // +1 to be over cell border\n }\n else {\n options.left = computeRect(moreWrap).left - 1; // -1 to be over cell border\n }\n this.segPopover = new Popover(options);\n this.segPopover.show();\n calendar.releaseAfterSizingTriggers(); // hack for eventPositioned\n };\n // Given the events within an array of segment objects, reslice them to be in a single day\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\n var dayStart = dayDate;\n var dayEnd = addDays(dayStart, 1);\n var dayRange = { start: dayStart, end: dayEnd };\n var newSegs = [];\n for (var _i = 0, segs_1 = segs; _i < segs_1.length; _i++) {\n var seg = segs_1[_i];\n var eventRange = seg.eventRange;\n var origRange = eventRange.range;\n var slicedRange = intersectRanges(origRange, dayRange);\n if (slicedRange) {\n newSegs.push(__assign({}, seg, { eventRange: {\n def: eventRange.def,\n ui: __assign({}, eventRange.ui, { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() }));\n }\n }\n return newSegs;\n };\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\n DayGrid.prototype.getMoreLinkText = function (num) {\n var opt = this.context.options.eventLimitText;\n if (typeof opt === 'function') {\n return opt(num);\n }\n else {\n return '+' + num + ' ' + opt;\n }\n };\n // Returns segments within a given cell.\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\n var level = startLevel || 0;\n var segs = [];\n var seg;\n while (level < segMatrix.length) {\n seg = segMatrix[level][col];\n if (seg) {\n segs.push(seg);\n }\n level++;\n }\n return segs;\n };\n return DayGrid;\n}(DateComponent));\n\nvar WEEK_NUM_FORMAT$1 = createFormatter({ week: 'numeric' });\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nvar AbstractDayGridView = /** @class */ (function (_super) {\n __extends(AbstractDayGridView, _super);\n function AbstractDayGridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.processOptions = memoize(_this._processOptions);\n _this.renderSkeleton = memoizeRendering(_this._renderSkeleton, _this._unrenderSkeleton);\n /* Header Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before the day-of week header cells\n _this.renderHeadIntroHtml = function () {\n var _a = _this.context, theme = _a.theme, options = _a.options;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n '' + // needed for matchCellWidths\n htmlEscape(options.weekLabel) +\n '' +\n '';\n }\n return '';\n };\n /* Day Grid Rendering\n ------------------------------------------------------------------------------------------------------------------*/\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\n _this.renderDayGridNumberIntroHtml = function (row, dayGrid) {\n var _a = _this.context, options = _a.options, dateEnv = _a.dateEnv;\n var weekStart = dayGrid.props.cells[row][0].date;\n if (_this.colWeekNumbersVisible) {\n return '' +\n '' +\n buildGotoAnchorHtml(// aside from link, important for matchCellWidths\n options, dateEnv, { date: weekStart, type: 'week', forceOff: dayGrid.colCnt === 1 }, dateEnv.format(weekStart, WEEK_NUM_FORMAT$1) // inner HTML\n ) +\n '';\n }\n return '';\n };\n // Generates the HTML that goes before the day bg cells for each day-row\n _this.renderDayGridBgIntroHtml = function () {\n var theme = _this.context.theme;\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n // Generates the HTML that goes before every other type of row generated by DayGrid.\n // Affects mirror-skeleton and highlight-skeleton rows.\n _this.renderDayGridIntroHtml = function () {\n if (_this.colWeekNumbersVisible) {\n return '';\n }\n return '';\n };\n return _this;\n }\n AbstractDayGridView.prototype._processOptions = function (options) {\n if (options.weekNumbers) {\n if (options.weekNumbersWithinDays) {\n this.cellWeekNumbersVisible = true;\n this.colWeekNumbersVisible = false;\n }\n else {\n this.cellWeekNumbersVisible = false;\n this.colWeekNumbersVisible = true;\n }\n }\n else {\n this.colWeekNumbersVisible = false;\n this.cellWeekNumbersVisible = false;\n }\n };\n AbstractDayGridView.prototype.render = function (props, context) {\n _super.prototype.render.call(this, props, context);\n this.processOptions(context.options);\n this.renderSkeleton(context);\n };\n AbstractDayGridView.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.renderSkeleton.unrender();\n };\n AbstractDayGridView.prototype._renderSkeleton = function (context) {\n this.el.classList.add('fc-dayGrid-view');\n this.el.innerHTML = this.renderSkeletonHtml();\n this.scroller = new ScrollComponent('hidden', // overflow x\n 'auto' // overflow y\n );\n var dayGridContainerEl = this.scroller.el;\n this.el.querySelector('.fc-body > tr > td').appendChild(dayGridContainerEl);\n dayGridContainerEl.classList.add('fc-day-grid-container');\n var dayGridEl = createElement('div', { className: 'fc-day-grid' });\n dayGridContainerEl.appendChild(dayGridEl);\n this.dayGrid = new DayGrid(dayGridEl, {\n renderNumberIntroHtml: this.renderDayGridNumberIntroHtml,\n renderBgIntroHtml: this.renderDayGridBgIntroHtml,\n renderIntroHtml: this.renderDayGridIntroHtml,\n colWeekNumbersVisible: this.colWeekNumbersVisible,\n cellWeekNumbersVisible: this.cellWeekNumbersVisible\n });\n };\n AbstractDayGridView.prototype._unrenderSkeleton = function () {\n this.el.classList.remove('fc-dayGrid-view');\n this.dayGrid.destroy();\n this.scroller.destroy();\n };\n // Builds the HTML skeleton for the view.\n // The day-grid component will render inside of a container defined by this HTML.\n AbstractDayGridView.prototype.renderSkeletonHtml = function () {\n var _a = this.context, theme = _a.theme, options = _a.options;\n return '' +\n '' +\n (options.columnHeader ?\n '' +\n '' +\n '' +\n '' +\n '' :\n '') +\n '' +\n '' +\n '' +\n '' +\n '' +\n '
 
';\n };\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\n AbstractDayGridView.prototype.weekNumberStyleAttr = function () {\n if (this.weekNumberWidth != null) {\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\n }\n return '';\n };\n // Determines whether each row should have a constant height\n AbstractDayGridView.prototype.hasRigidRows = function () {\n var eventLimit = this.context.options.eventLimit;\n return eventLimit && typeof eventLimit !== 'number';\n };\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n AbstractDayGridView.prototype.updateSize = function (isResize, viewHeight, isAuto) {\n _super.prototype.updateSize.call(this, isResize, viewHeight, isAuto); // will call updateBaseSize. important that executes first\n this.dayGrid.updateSize(isResize);\n };\n // Refreshes the horizontal dimensions of the view\n AbstractDayGridView.prototype.updateBaseSize = function (isResize, viewHeight, isAuto) {\n var dayGrid = this.dayGrid;\n var eventLimit = this.context.options.eventLimit;\n var headRowEl = this.header ? this.header.el : null; // HACK\n var scrollerHeight;\n var scrollbarWidths;\n // hack to give the view some height prior to dayGrid's columns being rendered\n // TODO: separate setting height from scroller VS dayGrid.\n if (!dayGrid.rowEls) {\n if (!isAuto) {\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n return;\n }\n if (this.colWeekNumbersVisible) {\n // Make sure all week number cells running down the side have the same width.\n this.weekNumberWidth = matchCellWidths(findElements(this.el, '.fc-week-number'));\n }\n // reset all heights to be natural\n this.scroller.clear();\n if (headRowEl) {\n uncompensateScroll(headRowEl);\n }\n dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\n // is the event limit a constant level number?\n if (eventLimit && typeof eventLimit === 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\n }\n // distribute the height to the rows\n // (viewHeight is a \"recommended\" value if isAuto)\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.setGridHeight(scrollerHeight, isAuto);\n // is the event limit dynamically calculated?\n if (eventLimit && typeof eventLimit !== 'number') {\n dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\n }\n if (!isAuto) { // should we force dimensions of the scroll container?\n this.scroller.setHeight(scrollerHeight);\n scrollbarWidths = this.scroller.getScrollbarWidths();\n if (scrollbarWidths.left || scrollbarWidths.right) { // using scrollbars?\n if (headRowEl) {\n compensateScroll(headRowEl, scrollbarWidths);\n }\n // doing the scrollbar compensation might have created text overflow which created more height. redo\n scrollerHeight = this.computeScrollerHeight(viewHeight);\n this.scroller.setHeight(scrollerHeight);\n }\n // guarantees the same scrollbar widths\n this.scroller.lockOverflow(scrollbarWidths);\n }\n };\n // given a desired total height of the view, returns what the height of the scroller should be\n AbstractDayGridView.prototype.computeScrollerHeight = function (viewHeight) {\n return viewHeight -\n subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\n };\n // Sets the height of just the DayGrid component in this view\n AbstractDayGridView.prototype.setGridHeight = function (height, isAuto) {\n if (this.context.options.monthMode) {\n // if auto, make the height of each row the height that it would be if there were 6 weeks\n if (isAuto) {\n height *= this.dayGrid.rowCnt / 6;\n }\n distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\n }\n else {\n if (isAuto) {\n undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\n }\n else {\n distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\n }\n }\n };\n /* Scroll\n ------------------------------------------------------------------------------------------------------------------*/\n AbstractDayGridView.prototype.computeDateScroll = function (duration) {\n return { top: 0 };\n };\n AbstractDayGridView.prototype.queryDateScroll = function () {\n return { top: this.scroller.getScrollTop() };\n };\n AbstractDayGridView.prototype.applyDateScroll = function (scroll) {\n if (scroll.top !== undefined) {\n this.scroller.setScrollTop(scroll.top);\n }\n };\n return AbstractDayGridView;\n}(View));\nAbstractDayGridView.prototype.dateProfileGeneratorClass = DayGridDateProfileGenerator;\n\nvar SimpleDayGrid = /** @class */ (function (_super) {\n __extends(SimpleDayGrid, _super);\n function SimpleDayGrid(dayGrid) {\n var _this = _super.call(this, dayGrid.el) || this;\n _this.slicer = new DayGridSlicer();\n _this.dayGrid = dayGrid;\n return _this;\n }\n SimpleDayGrid.prototype.firstContext = function (context) {\n context.calendar.registerInteractiveComponent(this, { el: this.dayGrid.el });\n };\n SimpleDayGrid.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.context.calendar.unregisterInteractiveComponent(this);\n };\n SimpleDayGrid.prototype.render = function (props, context) {\n var dayGrid = this.dayGrid;\n var dateProfile = props.dateProfile, dayTable = props.dayTable;\n dayGrid.receiveContext(context); // hack because context is used in sliceProps\n dayGrid.receiveProps(__assign({}, this.slicer.sliceProps(props, dateProfile, props.nextDayThreshold, context.calendar, dayGrid, dayTable), { dateProfile: dateProfile, cells: dayTable.cells, isRigid: props.isRigid }), context);\n };\n SimpleDayGrid.prototype.buildPositionCaches = function () {\n this.dayGrid.buildPositionCaches();\n };\n SimpleDayGrid.prototype.queryHit = function (positionLeft, positionTop) {\n var rawHit = this.dayGrid.positionToHit(positionLeft, positionTop);\n if (rawHit) {\n return {\n component: this.dayGrid,\n dateSpan: rawHit.dateSpan,\n dayEl: rawHit.dayEl,\n rect: {\n left: rawHit.relativeRect.left,\n right: rawHit.relativeRect.right,\n top: rawHit.relativeRect.top,\n bottom: rawHit.relativeRect.bottom\n },\n layer: 0\n };\n }\n };\n return SimpleDayGrid;\n}(DateComponent));\nvar DayGridSlicer = /** @class */ (function (_super) {\n __extends(DayGridSlicer, _super);\n function DayGridSlicer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DayGridSlicer.prototype.sliceRange = function (dateRange, dayTable) {\n return dayTable.sliceRange(dateRange);\n };\n return DayGridSlicer;\n}(Slicer));\n\nvar DayGridView = /** @class */ (function (_super) {\n __extends(DayGridView, _super);\n function DayGridView() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.buildDayTable = memoize(buildDayTable);\n return _this;\n }\n DayGridView.prototype.render = function (props, context) {\n _super.prototype.render.call(this, props, context); // will call _renderSkeleton/_unrenderSkeleton\n var dateProfile = this.props.dateProfile;\n var dayTable = this.dayTable =\n this.buildDayTable(dateProfile, props.dateProfileGenerator);\n if (this.header) {\n this.header.receiveProps({\n dateProfile: dateProfile,\n dates: dayTable.headerDates,\n datesRepDistinctDays: dayTable.rowCnt === 1,\n renderIntroHtml: this.renderHeadIntroHtml\n }, context);\n }\n this.simpleDayGrid.receiveProps({\n dateProfile: dateProfile,\n dayTable: dayTable,\n businessHours: props.businessHours,\n dateSelection: props.dateSelection,\n eventStore: props.eventStore,\n eventUiBases: props.eventUiBases,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isRigid: this.hasRigidRows(),\n nextDayThreshold: this.context.nextDayThreshold\n }, context);\n };\n DayGridView.prototype._renderSkeleton = function (context) {\n _super.prototype._renderSkeleton.call(this, context);\n if (context.options.columnHeader) {\n this.header = new DayHeader(this.el.querySelector('.fc-head-container'));\n }\n this.simpleDayGrid = new SimpleDayGrid(this.dayGrid);\n };\n DayGridView.prototype._unrenderSkeleton = function () {\n _super.prototype._unrenderSkeleton.call(this);\n if (this.header) {\n this.header.destroy();\n }\n this.simpleDayGrid.destroy();\n };\n return DayGridView;\n}(AbstractDayGridView));\nfunction buildDayTable(dateProfile, dateProfileGenerator) {\n var daySeries = new DaySeries(dateProfile.renderRange, dateProfileGenerator);\n return new DayTable(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nvar main = createPlugin({\n defaultView: 'dayGridMonth',\n views: {\n dayGrid: DayGridView,\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 }\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 }\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n monthMode: true,\n fixedWeekCount: true\n }\n }\n});\n\nexport default main;\nexport { AbstractDayGridView, DayBgRow, DayGrid, DayGridSlicer, DayGridView, SimpleDayGrid, buildDayTable as buildBasicDayTable };\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*!\nFullCalendar Moment Plugin v4.4.2\nDocs & License: https://fullcalendar.io/\n(c) 2019 Adam Shaw\n*/\n\nimport * as momentNs from 'moment';\nimport { createPlugin, Calendar } from '@fullcalendar/core';\n\nvar moment = momentNs; // the directly callable function\nfunction toMoment(date, calendar) {\n if (!(calendar instanceof Calendar)) {\n throw new Error('must supply a Calendar instance');\n }\n return convertToMoment(date, calendar.dateEnv.timeZone, null, calendar.dateEnv.locale.codes[0]);\n}\nfunction toDuration(fcDuration) {\n return moment.duration(fcDuration); // moment accepts all the props that fc.Duration already has!\n}\nfunction formatWithCmdStr(cmdStr, arg) {\n var cmd = parseCmdStr(cmdStr);\n if (arg.end) {\n var startMom = convertToMoment(arg.start.array, arg.timeZone, arg.start.timeZoneOffset, arg.localeCodes[0]);\n var endMom = convertToMoment(arg.end.array, arg.timeZone, arg.end.timeZoneOffset, arg.localeCodes[0]);\n return formatRange(cmd, createMomentFormatFunc(startMom), createMomentFormatFunc(endMom), arg.separator);\n }\n return convertToMoment(arg.date.array, arg.timeZone, arg.date.timeZoneOffset, arg.localeCodes[0]).format(cmd.whole); // TODO: test for this\n}\nvar main = createPlugin({\n cmdFormatter: formatWithCmdStr\n});\nfunction createMomentFormatFunc(mom) {\n return function (cmdStr) {\n return cmdStr ? mom.format(cmdStr) : ''; // because calling with blank string results in ISO8601 :(\n };\n}\nfunction convertToMoment(input, timeZone, timeZoneOffset, locale) {\n var mom;\n if (timeZone === 'local') {\n mom = moment(input);\n }\n else if (timeZone === 'UTC') {\n mom = moment.utc(input);\n }\n else if (moment.tz) {\n mom = moment.tz(input, timeZone);\n }\n else {\n mom = moment.utc(input);\n if (timeZoneOffset != null) {\n mom.utcOffset(timeZoneOffset);\n }\n }\n mom.locale(locale);\n return mom;\n}\nfunction parseCmdStr(cmdStr) {\n var parts = cmdStr.match(/^(.*?)\\{(.*)\\}(.*)$/); // TODO: lookbehinds for escape characters\n if (parts) {\n var middle = parseCmdStr(parts[2]);\n return {\n head: parts[1],\n middle: middle,\n tail: parts[3],\n whole: parts[1] + middle.whole + parts[3]\n };\n }\n else {\n return {\n head: null,\n middle: null,\n tail: null,\n whole: cmdStr\n };\n }\n}\nfunction formatRange(cmd, formatStart, formatEnd, separator) {\n if (cmd.middle) {\n var startHead = formatStart(cmd.head);\n var startMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);\n var startTail = formatStart(cmd.tail);\n var endHead = formatEnd(cmd.head);\n var endMiddle = formatRange(cmd.middle, formatStart, formatEnd, separator);\n var endTail = formatEnd(cmd.tail);\n if (startHead === endHead && startTail === endTail) {\n return startHead +\n (startMiddle === endMiddle ? startMiddle : startMiddle + separator + endMiddle) +\n startTail;\n }\n }\n var startWhole = formatStart(cmd.whole);\n var endWhole = formatEnd(cmd.whole);\n if (startWhole === endWhole) {\n return startWhole;\n }\n else {\n return startWhole + separator + endWhole;\n }\n}\n\nexport default main;\nexport { toDuration, toMoment };\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales['en-gb'] = factory()));\n}(this, function () { 'use strict';\n\n var enGb = {\n code: \"en-gb\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n };\n\n return enGb;\n\n}));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, (global.FullCalendarLocales = global.FullCalendarLocales || {}, global.FullCalendarLocales.nl = factory()));\n}(this, function () { 'use strict';\n\n var nl = {\n code: \"nl\",\n week: {\n dow: 1,\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n },\n buttonText: {\n prev: \"Voorgaand\",\n next: \"Volgende\",\n today: \"Vandaag\",\n year: \"Jaar\",\n month: \"Maand\",\n week: \"Week\",\n day: \"Dag\",\n list: \"Agenda\"\n },\n allDayText: \"Hele dag\",\n eventLimitText: \"extra\",\n noEventsMessage: \"Geen evenementen om te laten zien\"\n };\n\n return nl;\n\n}));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nexports.f = require('./_wks');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\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 = $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 && typeof IteratorPrototype[ITERATOR] != 'function') 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\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) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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 userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\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')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\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, exited;\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); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\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 if (domain && !exited) domain.exit();\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split(\n '_'\n ),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/*\n *\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\n *\n * Copyright (c) 2012, Matias Meno\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *\n */\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nvar Emitter =\n/*#__PURE__*/\nfunction () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n }\n\n _createClass(Emitter, [{\n key: \"on\",\n // Add an event listener for given event\n value: function on(event, fn) {\n this._callbacks = this._callbacks || {}; // Create namespace for this event\n\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n\n this._callbacks[event].push(fn);\n\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n this._callbacks = this._callbacks || {};\n var callbacks = this._callbacks[event];\n\n if (callbacks) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = callbacks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var callback = _step.value;\n callback.apply(this, args);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator[\"return\"] != null) {\n _iterator[\"return\"]();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n\n return this;\n } // Remove event listener for given event. If fn is not provided, all event\n // listeners for that event will be removed. If neither is provided, all\n // event listeners will be removed.\n\n }, {\n key: \"off\",\n value: function off(event, fn) {\n if (!this._callbacks || arguments.length === 0) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks[event];\n\n if (!callbacks) {\n return this;\n } // remove all handlers\n\n\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n } // remove specific handler\n\n\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n }]);\n\n return Emitter;\n}();\n\nvar Dropzone =\n/*#__PURE__*/\nfunction (_Emitter) {\n _inherits(Dropzone, _Emitter);\n\n _createClass(Dropzone, null, [{\n key: \"initClass\",\n value: function initClass() {\n // Exposing the emitter class, mainly for tests\n this.prototype.Emitter = Emitter;\n /*\n This is a list of all available events you can register on a dropzone object.\n You can register an event handler like this:\n dropzone.on(\"dragEnter\", function() { });\n */\n\n this.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n this.prototype.defaultOptions = {\n /**\n * Has to be specified on elements other than form (or when the form\n * doesn't have an `action` attribute). You can also\n * provide a function that will be called with `files` and\n * must return the url (since `v3.12.0`)\n */\n url: null,\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method (since `v3.12.0`).\n */\n method: \"post\",\n\n /**\n * Will be set on the XHRequest.\n */\n withCredentials: false,\n\n /**\n * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n */\n timeout: 30000,\n\n /**\n * How many file uploads to process in parallel (See the\n * Enqueuing file uploads documentation section for more info)\n */\n parallelUploads: 2,\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `processingmultiple`). See the events\n * documentation section for more information.\n */\n uploadMultiple: false,\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n */\n chunking: false,\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n forceChunking: false,\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n chunkSize: 2000000,\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n parallelChunkUploads: false,\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n retryChunks: false,\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n retryChunksLimit: 3,\n\n /**\n * If not `null` defines how many files this Dropzone handles. If it exceeds,\n * the event `maxfilesexceeded` will be called. The dropzone element gets the\n * class `dz-max-files-reached` accordingly so you can provide visual feedback.\n */\n maxFilesize: 256,\n\n /**\n * The name of the file param that gets transferred.\n * **NOTE**: If you have the option `uploadMultiple` set to `true`, then\n * Dropzone will append `[]` to the name.\n */\n paramName: \"file\",\n\n /**\n * Whether thumbnails for images should be generated\n */\n createImageThumbnails: true,\n\n /**\n * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n */\n maxThumbnailFilesize: 10,\n\n /**\n * If `null`, the ratio of the image will be used to calculate it.\n */\n thumbnailWidth: 120,\n\n /**\n * The same as `thumbnailWidth`. If both are null, images will not be resized.\n */\n thumbnailHeight: 120,\n\n /**\n * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n thumbnailMethod: 'crop',\n\n /**\n * If set, images will be resized to these dimensions before being **uploaded**.\n * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n * ratio of the file will be preserved.\n *\n * The `options.transformFile` function uses these options, so if the `transformFile` function\n * is overridden, these options don't do anything.\n */\n resizeWidth: null,\n\n /**\n * See `resizeWidth`.\n */\n resizeHeight: null,\n\n /**\n * The mime type of the resized image (before it gets uploaded to the server).\n * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n * See `resizeWidth` for more information.\n */\n resizeMimeType: null,\n\n /**\n * The quality of the resized images. See `resizeWidth`.\n */\n resizeQuality: 0.8,\n\n /**\n * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n resizeMethod: 'contain',\n\n /**\n * The base that is used to calculate the filesize. You can change this to\n * 1024 if you would rather display kibibytes, mebibytes, etc...\n * 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte` not `1 kilobyte`.\n * You can change this to `1024` if you don't care about validity.\n */\n filesizeBase: 1000,\n\n /**\n * Can be used to limit the maximum number of files that will be handled by this Dropzone\n */\n maxFiles: null,\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n */\n headers: null,\n\n /**\n * If `true`, the dropzone element itself will be clickable, if `false`\n * nothing will be clickable.\n *\n * You can also pass an HTML element, a CSS selector (for multiple elements)\n * or an array of those. In that case, all of those elements will trigger an\n * upload when clicked.\n */\n clickable: true,\n\n /**\n * Whether hidden files in directories should be ignored.\n */\n ignoreHiddenFiles: true,\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * If the Dropzone is `clickable` this option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n acceptedFiles: null,\n\n /**\n * **Deprecated!**\n * Use acceptedFiles instead.\n */\n acceptedMimeTypes: null,\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `myDropzone.processQueue()`.\n *\n * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n * section for more information.\n */\n autoProcessQueue: true,\n\n /**\n * If false, files added to the dropzone will not be queued by default.\n * You'll have to call `enqueueFile(file)` manually.\n */\n autoQueue: true,\n\n /**\n * If `true`, this will add a link to every file preview to remove or cancel (if\n * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n * and `dictRemoveFile` options are used for the wording.\n */\n addRemoveLinks: false,\n\n /**\n * Defines where to display the file previews – if `null` the\n * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n * selector. The element should have the `dropzone-previews` class so\n * the previews are displayed properly.\n */\n previewsContainer: null,\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly.\n */\n hiddenInputContainer: \"body\",\n\n /**\n * If null, no capture type will be specified\n * If camera, mobile devices will skip the file selection and choose camera\n * If microphone, mobile devices will skip the file selection and choose the microphone\n * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n * On apple devices multiple must be set to false. AcceptedFiles may need to\n * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n */\n capture: null,\n\n /**\n * **Deprecated**. Use `renameFile` instead.\n */\n renameFilename: null,\n\n /**\n * A function that is invoked before the file is uploaded to the server and renames the file.\n * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n * file that gets used during the upload can be accessed through `file.upload.filename`.\n */\n renameFile: null,\n\n /**\n * If `true` the fallback will be forced. This is very useful to test your server\n * implementations first and make sure that everything works as\n * expected without dropzone if you experience problems, and to test\n * how your fallbacks will look.\n */\n forceFallback: false,\n\n /**\n * The text used before any files are dropped.\n */\n dictDefaultMessage: \"Drop files here to upload\",\n\n /**\n * The text that replaces the default message text it the browser is not supported.\n */\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n /**\n * The text that will be added before the fallback form.\n * If you provide a fallback element yourself, or if this option is `null` this will\n * be ignored.\n */\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n /**\n * If the filesize is too big.\n * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n */\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n /**\n * If the file doesn't match the file type.\n */\n dictInvalidFileType: \"You can't upload files of this type.\",\n\n /**\n * If the server response was invalid.\n * `{{statusCode}}` will be replaced with the servers status code.\n */\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n */\n dictCancelUpload: \"Cancel upload\",\n\n /**\n * The text that is displayed if an upload was manually canceled\n */\n dictUploadCanceled: \"Upload canceled.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n */\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used to remove a file.\n */\n dictRemoveFile: \"Remove file\",\n\n /**\n * If this is not null, then the user will be prompted before removing a file.\n */\n dictRemoveFileConfirmation: null,\n\n /**\n * Displayed if `maxFiles` is st and exceeded.\n * The string `{{maxFiles}}` will be replaced by the configuration value.\n */\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n /**\n * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n * `b` for bytes.\n */\n dictFileSizeUnits: {\n tb: \"TB\",\n gb: \"GB\",\n mb: \"MB\",\n kb: \"KB\",\n b: \"b\"\n },\n\n /**\n * Called when dropzone initialized\n * You can add event listeners here\n */\n init: function init() {},\n\n /**\n * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n * of a function, this needs to return a map.\n *\n * The default implementation does nothing for normal uploads, but adds relevant information for\n * chunked uploads.\n *\n * This is the same as adding hidden input fields in the form element.\n */\n params: function params(files, xhr, chunk) {\n if (chunk) {\n return {\n dzuuid: chunk.file.upload.uuid,\n dzchunkindex: chunk.index,\n dztotalfilesize: chunk.file.size,\n dzchunksize: this.options.chunkSize,\n dztotalchunkcount: chunk.file.upload.totalChunkCount,\n dzchunkbyteoffset: chunk.index * this.options.chunkSize\n };\n }\n },\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n accept: function accept(file, done) {\n return done();\n },\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n chunksUploaded: function chunksUploaded(file, done) {\n done();\n },\n\n /**\n * Gets called when the browser is not supported.\n * The default implementation shows the fallback input field and adds\n * a text.\n */\n fallback: function fallback() {\n // This code should pass in IE7... :(\n var messageElement;\n this.element.className = \"\".concat(this.element.className, \" dz-browser-not-supported\");\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = this.element.getElementsByTagName(\"div\")[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var child = _step2.value;\n\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\"; // Removes the 'dz-default' class\n\n break;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2[\"return\"] != null) {\n _iterator2[\"return\"]();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n if (!messageElement) {\n messageElement = Dropzone.createElement(\"
\");\n this.element.appendChild(messageElement);\n }\n\n var span = messageElement.getElementsByTagName(\"span\")[0];\n\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n\n return this.element.appendChild(this.getFallbackForm());\n },\n\n /**\n * Gets called to calculate the thumbnail dimensions.\n *\n * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n *\n * - `srcWidth` & `srcHeight` (required)\n * - `trgWidth` & `trgHeight` (required)\n * - `srcX` & `srcY` (optional, default `0`)\n * - `trgX` & `trgY` (optional, default `0`)\n *\n * Those values are going to be used by `ctx.drawImage()`.\n */\n resize: function resize(file, width, height, resizeMethod) {\n var info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified\n\n if (width == null && height == null) {\n width = info.srcWidth;\n height = info.srcHeight;\n } else if (width == null) {\n width = height * srcRatio;\n } else if (height == null) {\n height = width / srcRatio;\n } // Make sure images aren't upscaled\n\n\n width = Math.min(width, info.srcWidth);\n height = Math.min(height, info.srcHeight);\n var trgRatio = width / height;\n\n if (info.srcWidth > width || info.srcHeight > height) {\n // Image is bigger and needs rescaling\n if (resizeMethod === 'crop') {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n } else if (resizeMethod === 'contain') {\n // Method 'contain'\n if (srcRatio > trgRatio) {\n height = width / srcRatio;\n } else {\n width = height * srcRatio;\n }\n } else {\n throw new Error(\"Unknown resizeMethod '\".concat(resizeMethod, \"'\"));\n }\n }\n\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n info.trgWidth = width;\n info.trgHeight = height;\n return info;\n },\n\n /**\n * Can be used to transform the file (for example, resize an image if necessary).\n *\n * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n * images according to those dimensions.\n *\n * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n * to be invoked with the file when the transformation is done.\n */\n transformFile: function transformFile(file, done) {\n if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n } else {\n return done(file);\n }\n },\n\n /**\n * A string that contains the template used for each dropped\n * file. Change it to fulfill your needs but make sure to properly\n * provide all elements.\n *\n * If you want to use an actual HTML element instead of providing a String\n * as a config option, you could create a div with the id `tpl`,\n * put the template inside it and provide the element like this:\n *\n * document\n * .querySelector('#tpl')\n * .innerHTML\n *\n */\n previewTemplate: \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n Check\\n \\n \\n \\n \\n
\\n
\\n \\n Error\\n \\n \\n \\n \\n \\n \\n
\\n
\",\n // END OPTIONS\n // (Required by the dropzone documentation parser)\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n // Those are self explanatory and simply concern the DragnDrop.\n drop: function drop(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart: function dragstart(e) {},\n dragend: function dragend(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter: function dragenter(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover: function dragover(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave: function dragleave(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n paste: function paste(e) {},\n // Called whenever there are no files left in the dropzone anymore, and the\n // dropzone should be displayed as if in the initial state.\n reset: function reset() {\n return this.element.classList.remove(\"dz-started\");\n },\n // Called when a file is added to the queue\n // Receives `file`\n addedfile: function addedfile(file) {\n var _this2 = this;\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n\n this.previewsContainer.appendChild(file.previewElement);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = file.previewElement.querySelectorAll(\"[data-dz-name]\")[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var node = _step3.value;\n node.textContent = file.name;\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3[\"return\"] != null) {\n _iterator3[\"return\"]();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = file.previewElement.querySelectorAll(\"[data-dz-size]\")[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n node = _step4.value;\n node.innerHTML = this.filesize(file.size);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4[\"return\"] != null) {\n _iterator4[\"return\"]();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(\"
\".concat(this.options.dictRemoveFile, \"\"));\n file.previewElement.appendChild(file._removeLink);\n }\n\n var removeFileEvent = function removeFileEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(_this2.options.dictCancelUploadConfirmation, function () {\n return _this2.removeFile(file);\n });\n } else {\n if (_this2.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(_this2.options.dictRemoveFileConfirmation, function () {\n return _this2.removeFile(file);\n });\n } else {\n return _this2.removeFile(file);\n }\n }\n };\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = file.previewElement.querySelectorAll(\"[data-dz-remove]\")[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var removeLink = _step5.value;\n removeLink.addEventListener(\"click\", removeFileEvent);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5[\"return\"] != null) {\n _iterator5[\"return\"]();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n },\n // Called whenever a file is removed.\n removedfile: function removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n return this._updateMaxFilesReachedClass();\n },\n // Called when a thumbnail has been generated\n // Receives `file` and `dataUrl`\n thumbnail: function thumbnail(file, dataUrl) {\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\")[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var thumbnailElement = _step6.value;\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6[\"return\"] != null) {\n _iterator6[\"return\"]();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n\n return setTimeout(function () {\n return file.previewElement.classList.add(\"dz-image-preview\");\n }, 1);\n }\n },\n // Called whenever an error occurs\n // Receives `file` and `message`\n error: function error(file, message) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"String\" && message.error) {\n message = message.error;\n }\n\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var node = _step7.value;\n node.textContent = message;\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7[\"return\"] != null) {\n _iterator7[\"return\"]();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n }\n },\n errormultiple: function errormultiple() {},\n // Called when a file gets processed. Since there is a cue, not all added\n // files are processed immediately.\n // Receives `file`\n processing: function processing(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n\n if (file._removeLink) {\n return file._removeLink.innerHTML = this.options.dictCancelUpload;\n }\n }\n },\n processingmultiple: function processingmultiple() {},\n // Called whenever the upload progress gets updated.\n // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n // To get the total number of bytes of the file, use `file.size`\n uploadprogress: function uploadprogress(file, progress, bytesSent) {\n if (file.previewElement) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\")[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var node = _step8.value;\n node.nodeName === 'PROGRESS' ? node.value = progress : node.style.width = \"\".concat(progress, \"%\");\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8[\"return\"] != null) {\n _iterator8[\"return\"]();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n }\n },\n // Called whenever the total upload progress gets updated.\n // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n totaluploadprogress: function totaluploadprogress() {},\n // Called just before the file is sent. Gets the `xhr` object as second\n // parameter, so you can modify it (for example to add a CSRF token) and a\n // `formData` object to add additional information.\n sending: function sending() {},\n sendingmultiple: function sendingmultiple() {},\n // When the complete upload is finished and successful\n // Receives `file`\n success: function success(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n successmultiple: function successmultiple() {},\n // When the upload is canceled.\n canceled: function canceled(file) {\n return this.emit(\"error\", file, this.options.dictUploadCanceled);\n },\n canceledmultiple: function canceledmultiple() {},\n // When the upload is finished, either with success or an error.\n // Receives `file`\n complete: function complete(file) {\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n completemultiple: function completemultiple() {},\n maxfilesexceeded: function maxfilesexceeded() {},\n maxfilesreached: function maxfilesreached() {},\n queuecomplete: function queuecomplete() {},\n addedfiles: function addedfiles() {}\n };\n this.prototype._thumbnailQueue = [];\n this.prototype._processingThumbnail = false;\n } // global utility\n\n }, {\n key: \"extend\",\n value: function extend(target) {\n for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n objects[_key2 - 1] = arguments[_key2];\n }\n\n for (var _i = 0, _objects = objects; _i < _objects.length; _i++) {\n var object = _objects[_i];\n\n for (var key in object) {\n var val = object[key];\n target[key] = val;\n }\n }\n\n return target;\n }\n }]);\n\n function Dropzone(el, options) {\n var _this;\n\n _classCallCheck(this, Dropzone);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Dropzone).call(this));\n var fallback, left;\n _this.element = el; // For backwards compatibility since the version was in the prototype previously\n\n _this.version = Dropzone.version;\n _this.defaultOptions.previewTemplate = _this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\n _this.clickableElements = [];\n _this.listeners = [];\n _this.files = []; // All files\n\n if (typeof _this.element === \"string\") {\n _this.element = document.querySelector(_this.element);\n } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n\n\n if (!_this.element || _this.element.nodeType == null) {\n throw new Error(\"Invalid dropzone element.\");\n }\n\n if (_this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n } // Now add this dropzone to the instances.\n\n\n Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself.\n\n _this.element.dropzone = _assertThisInitialized(_this);\n var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {};\n _this.options = Dropzone.extend({}, _this.defaultOptions, elementOptions, options != null ? options : {}); // If the browser failed, just call the fallback and leave\n\n if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this)));\n } // @options.url = @element.getAttribute \"action\" unless @options.url?\n\n\n if (_this.options.url == null) {\n _this.options.url = _this.element.getAttribute(\"action\");\n }\n\n if (!_this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n\n if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n\n if (_this.options.uploadMultiple && _this.options.chunking) {\n throw new Error('You cannot set both: uploadMultiple and chunking.');\n } // Backwards compatibility\n\n\n if (_this.options.acceptedMimeTypes) {\n _this.options.acceptedFiles = _this.options.acceptedMimeTypes;\n delete _this.options.acceptedMimeTypes;\n } // Backwards compatibility\n\n\n if (_this.options.renameFilename != null) {\n _this.options.renameFile = function (file) {\n return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file);\n };\n }\n\n _this.options.method = _this.options.method.toUpperCase();\n\n if ((fallback = _this.getExistingFallback()) && fallback.parentNode) {\n // Remove the fallback\n fallback.parentNode.removeChild(fallback);\n } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n\n\n if (_this.options.previewsContainer !== false) {\n if (_this.options.previewsContainer) {\n _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, \"previewsContainer\");\n } else {\n _this.previewsContainer = _this.element;\n }\n }\n\n if (_this.options.clickable) {\n if (_this.options.clickable === true) {\n _this.clickableElements = [_this.element];\n } else {\n _this.clickableElements = Dropzone.getElements(_this.options.clickable, \"clickable\");\n }\n }\n\n _this.init();\n\n return _this;\n } // Returns all files that have been accepted\n\n\n _createClass(Dropzone, [{\n key: \"getAcceptedFiles\",\n value: function getAcceptedFiles() {\n return this.files.filter(function (file) {\n return file.accepted;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that have been rejected\n // Not sure when that's going to be useful, but added for completeness.\n\n }, {\n key: \"getRejectedFiles\",\n value: function getRejectedFiles() {\n return this.files.filter(function (file) {\n return !file.accepted;\n }).map(function (file) {\n return file;\n });\n }\n }, {\n key: \"getFilesWithStatus\",\n value: function getFilesWithStatus(status) {\n return this.files.filter(function (file) {\n return file.status === status;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that are in the queue\n\n }, {\n key: \"getQueuedFiles\",\n value: function getQueuedFiles() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n }\n }, {\n key: \"getUploadingFiles\",\n value: function getUploadingFiles() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n }\n }, {\n key: \"getAddedFiles\",\n value: function getAddedFiles() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n } // Files that are either queued or uploading\n\n }, {\n key: \"getActiveFiles\",\n value: function getActiveFiles() {\n return this.files.filter(function (file) {\n return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED;\n }).map(function (file) {\n return file;\n });\n } // The function that gets called when Dropzone is initialized. You\n // can (and should) setup event listeners inside this function.\n\n }, {\n key: \"init\",\n value: function init() {\n var _this3 = this;\n\n // In case it isn't set already\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(\"
\")));\n }\n\n if (this.clickableElements.length) {\n var setupHiddenFileInput = function setupHiddenFileInput() {\n if (_this3.hiddenFileInput) {\n _this3.hiddenFileInput.parentNode.removeChild(_this3.hiddenFileInput);\n }\n\n _this3.hiddenFileInput = document.createElement(\"input\");\n\n _this3.hiddenFileInput.setAttribute(\"type\", \"file\");\n\n if (_this3.options.maxFiles === null || _this3.options.maxFiles > 1) {\n _this3.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n\n _this3.hiddenFileInput.className = \"dz-hidden-input\";\n\n if (_this3.options.acceptedFiles !== null) {\n _this3.hiddenFileInput.setAttribute(\"accept\", _this3.options.acceptedFiles);\n }\n\n if (_this3.options.capture !== null) {\n _this3.hiddenFileInput.setAttribute(\"capture\", _this3.options.capture);\n } // Not setting `display=\"none\"` because some browsers don't accept clicks\n // on elements that aren't displayed.\n\n\n _this3.hiddenFileInput.style.visibility = \"hidden\";\n _this3.hiddenFileInput.style.position = \"absolute\";\n _this3.hiddenFileInput.style.top = \"0\";\n _this3.hiddenFileInput.style.left = \"0\";\n _this3.hiddenFileInput.style.height = \"0\";\n _this3.hiddenFileInput.style.width = \"0\";\n Dropzone.getElement(_this3.options.hiddenInputContainer, 'hiddenInputContainer').appendChild(_this3.hiddenFileInput);\n return _this3.hiddenFileInput.addEventListener(\"change\", function () {\n var files = _this3.hiddenFileInput.files;\n\n if (files.length) {\n var _iteratorNormalCompletion9 = true;\n var _didIteratorError9 = false;\n var _iteratorError9 = undefined;\n\n try {\n for (var _iterator9 = files[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) {\n var file = _step9.value;\n\n _this3.addFile(file);\n }\n } catch (err) {\n _didIteratorError9 = true;\n _iteratorError9 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion9 && _iterator9[\"return\"] != null) {\n _iterator9[\"return\"]();\n }\n } finally {\n if (_didIteratorError9) {\n throw _iteratorError9;\n }\n }\n }\n }\n\n _this3.emit(\"addedfiles\", files);\n\n return setupHiddenFileInput();\n });\n };\n\n setupHiddenFileInput();\n }\n\n this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself.\n // They're not in @setupEventListeners() because they shouldn't be removed\n // again when the dropzone gets disabled.\n\n var _iteratorNormalCompletion10 = true;\n var _didIteratorError10 = false;\n var _iteratorError10 = undefined;\n\n try {\n for (var _iterator10 = this.events[Symbol.iterator](), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) {\n var eventName = _step10.value;\n this.on(eventName, this.options[eventName]);\n }\n } catch (err) {\n _didIteratorError10 = true;\n _iteratorError10 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion10 && _iterator10[\"return\"] != null) {\n _iterator10[\"return\"]();\n }\n } finally {\n if (_didIteratorError10) {\n throw _iteratorError10;\n }\n }\n }\n\n this.on(\"uploadprogress\", function () {\n return _this3.updateTotalUploadProgress();\n });\n this.on(\"removedfile\", function () {\n return _this3.updateTotalUploadProgress();\n });\n this.on(\"canceled\", function (file) {\n return _this3.emit(\"complete\", file);\n }); // Emit a `queuecomplete` event if all files finished uploading.\n\n this.on(\"complete\", function (file) {\n if (_this3.getAddedFiles().length === 0 && _this3.getUploadingFiles().length === 0 && _this3.getQueuedFiles().length === 0) {\n // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n return setTimeout(function () {\n return _this3.emit(\"queuecomplete\");\n }, 0);\n }\n });\n\n var containsFiles = function containsFiles(e) {\n if (e.dataTransfer.types) {\n // Because e.dataTransfer.types is an Object in\n // IE, we need to iterate like this instead of\n // using e.dataTransfer.types.some()\n for (var i = 0; i < e.dataTransfer.types.length; i++) {\n if (e.dataTransfer.types[i] === \"Files\") return true;\n }\n }\n\n return false;\n };\n\n var noPropagation = function noPropagation(e) {\n // If there are no files, we don't want to stop\n // propagation so we don't interfere with other\n // drag and drop behaviour.\n if (!containsFiles(e)) return;\n e.stopPropagation();\n\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n }; // Create the listeners\n\n\n this.listeners = [{\n element: this.element,\n events: {\n \"dragstart\": function dragstart(e) {\n return _this3.emit(\"dragstart\", e);\n },\n \"dragenter\": function dragenter(e) {\n noPropagation(e);\n return _this3.emit(\"dragenter\", e);\n },\n \"dragover\": function dragover(e) {\n // Makes it possible to drag files from chrome's download bar\n // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n var efct;\n\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (error) {}\n\n e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\n noPropagation(e);\n return _this3.emit(\"dragover\", e);\n },\n \"dragleave\": function dragleave(e) {\n return _this3.emit(\"dragleave\", e);\n },\n \"drop\": function drop(e) {\n noPropagation(e);\n return _this3.drop(e);\n },\n \"dragend\": function dragend(e) {\n return _this3.emit(\"dragend\", e);\n }\n } // This is disabled right now, because the browsers don't implement it properly.\n // \"paste\": (e) =>\n // noPropagation e\n // @paste e\n\n }];\n this.clickableElements.forEach(function (clickableElement) {\n return _this3.listeners.push({\n element: clickableElement,\n events: {\n \"click\": function click(evt) {\n // Only the actual dropzone or the message element should trigger file selection\n if (clickableElement !== _this3.element || evt.target === _this3.element || Dropzone.elementInside(evt.target, _this3.element.querySelector(\".dz-message\"))) {\n _this3.hiddenFileInput.click(); // Forward the click\n\n }\n\n return true;\n }\n }\n });\n });\n this.enable();\n return this.options.init.call(this);\n } // Not fully tested yet\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.disable();\n this.removeAllFiles(true);\n\n if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n }\n }, {\n key: \"updateTotalUploadProgress\",\n value: function updateTotalUploadProgress() {\n var totalUploadProgress;\n var totalBytesSent = 0;\n var totalBytes = 0;\n var activeFiles = this.getActiveFiles();\n\n if (activeFiles.length) {\n var _iteratorNormalCompletion11 = true;\n var _didIteratorError11 = false;\n var _iteratorError11 = undefined;\n\n try {\n for (var _iterator11 = this.getActiveFiles()[Symbol.iterator](), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) {\n var file = _step11.value;\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n } catch (err) {\n _didIteratorError11 = true;\n _iteratorError11 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion11 && _iterator11[\"return\"] != null) {\n _iterator11[\"return\"]();\n }\n } finally {\n if (_didIteratorError11) {\n throw _iteratorError11;\n }\n }\n }\n\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n } // @options.paramName can be a function taking one parameter rather than a string.\n // A parameter name for a file is obtained simply by calling this with an index number.\n\n }, {\n key: \"_getParamName\",\n value: function _getParamName(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return \"\".concat(this.options.paramName).concat(this.options.uploadMultiple ? \"[\".concat(n, \"]\") : \"\");\n }\n } // If @options.renameFile is a function,\n // the function will be used to rename the file.name before appending it to the formData\n\n }, {\n key: \"_renameFile\",\n value: function _renameFile(file) {\n if (typeof this.options.renameFile !== \"function\") {\n return file.name;\n }\n\n return this.options.renameFile(file);\n } // Returns a form that can be used as fallback if the browser does not support DragnDrop\n //\n // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getFallbackForm\",\n value: function getFallbackForm() {\n var existingFallback, form;\n\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n\n var fieldsString = \"
\";\n\n if (this.options.dictFallbackText) {\n fieldsString += \"

\".concat(this.options.dictFallbackText, \"

\");\n }\n\n fieldsString += \"
\");\n var fields = Dropzone.createElement(fieldsString);\n\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(\"
\"));\n form.appendChild(fields);\n } else {\n // Make sure that the enctype and method attributes are set properly\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n\n return form != null ? form : fields;\n } // Returns the fallback elements if they exist already\n //\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getExistingFallback\",\n value: function getExistingFallback() {\n var getFallback = function getFallback(elements) {\n var _iteratorNormalCompletion12 = true;\n var _didIteratorError12 = false;\n var _iteratorError12 = undefined;\n\n try {\n for (var _iterator12 = elements[Symbol.iterator](), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) {\n var el = _step12.value;\n\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n } catch (err) {\n _didIteratorError12 = true;\n _iteratorError12 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion12 && _iterator12[\"return\"] != null) {\n _iterator12[\"return\"]();\n }\n } finally {\n if (_didIteratorError12) {\n throw _iteratorError12;\n }\n }\n }\n };\n\n for (var _i2 = 0, _arr = [\"div\", \"form\"]; _i2 < _arr.length; _i2++) {\n var tagName = _arr[_i2];\n var fallback;\n\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n } // Activates all listeners stored in @listeners\n\n }, {\n key: \"setupEventListeners\",\n value: function setupEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.addEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Deactivates all listeners stored in @listeners\n\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Removes all event listeners and cancels all files in the queue or being processed.\n\n }, {\n key: \"disable\",\n value: function disable() {\n var _this4 = this;\n\n this.clickableElements.forEach(function (element) {\n return element.classList.remove(\"dz-clickable\");\n });\n this.removeEventListeners();\n this.disabled = true;\n return this.files.map(function (file) {\n return _this4.cancelUpload(file);\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n delete this.disabled;\n this.clickableElements.forEach(function (element) {\n return element.classList.add(\"dz-clickable\");\n });\n return this.setupEventListeners();\n } // Returns a nicely formatted filesize\n\n }, {\n key: \"filesize\",\n value: function filesize(size) {\n var selectedSize = 0;\n var selectedUnit = \"b\";\n\n if (size > 0) {\n var units = ['tb', 'gb', 'mb', 'kb', 'b'];\n\n for (var i = 0; i < units.length; i++) {\n var unit = units[i];\n var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n }\n\n return \"\".concat(selectedSize, \" \").concat(this.options.dictFileSizeUnits[selectedUnit]);\n } // Adds or removes the `dz-max-files-reached` class from the form.\n\n }, {\n key: \"_updateMaxFilesReachedClass\",\n value: function _updateMaxFilesReachedClass() {\n if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit('maxfilesreached', this.files);\n }\n\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n }\n }, {\n key: \"drop\",\n value: function drop(e) {\n if (!e.dataTransfer) {\n return;\n }\n\n this.emit(\"drop\", e); // Convert the FileList to an Array\n // This is necessary for IE11\n\n var files = [];\n\n for (var i = 0; i < e.dataTransfer.files.length; i++) {\n files[i] = e.dataTransfer.files[i];\n } // Even if it's a folder, files.length will contain the folders.\n\n\n if (files.length) {\n var items = e.dataTransfer.items;\n\n if (items && items.length && items[0].webkitGetAsEntry != null) {\n // The browser supports dropping of folders, so handle items instead of files\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n\n this.emit(\"addedfiles\", files);\n }\n }, {\n key: \"paste\",\n value: function paste(e) {\n if (__guard__(e != null ? e.clipboardData : undefined, function (x) {\n return x.items;\n }) == null) {\n return;\n }\n\n this.emit(\"paste\", e);\n var items = e.clipboardData.items;\n\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n }\n }, {\n key: \"handleFiles\",\n value: function handleFiles(files) {\n var _iteratorNormalCompletion13 = true;\n var _didIteratorError13 = false;\n var _iteratorError13 = undefined;\n\n try {\n for (var _iterator13 = files[Symbol.iterator](), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) {\n var file = _step13.value;\n this.addFile(file);\n }\n } catch (err) {\n _didIteratorError13 = true;\n _iteratorError13 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion13 && _iterator13[\"return\"] != null) {\n _iterator13[\"return\"]();\n }\n } finally {\n if (_didIteratorError13) {\n throw _iteratorError13;\n }\n }\n }\n } // When a folder is dropped (or files are pasted), items must be handled\n // instead of files.\n\n }, {\n key: \"_addFilesFromItems\",\n value: function _addFilesFromItems(items) {\n var _this5 = this;\n\n return function () {\n var result = [];\n var _iteratorNormalCompletion14 = true;\n var _didIteratorError14 = false;\n var _iteratorError14 = undefined;\n\n try {\n for (var _iterator14 = items[Symbol.iterator](), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) {\n var item = _step14.value;\n var entry;\n\n if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n result.push(_this5.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n // Append all files from that directory to files\n result.push(_this5._addFilesFromDirectory(entry, entry.name));\n } else {\n result.push(undefined);\n }\n } else if (item.getAsFile != null) {\n if (item.kind == null || item.kind === \"file\") {\n result.push(_this5.addFile(item.getAsFile()));\n } else {\n result.push(undefined);\n }\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _didIteratorError14 = true;\n _iteratorError14 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion14 && _iterator14[\"return\"] != null) {\n _iterator14[\"return\"]();\n }\n } finally {\n if (_didIteratorError14) {\n throw _iteratorError14;\n }\n }\n }\n\n return result;\n }();\n } // Goes through the directory, and adds each file it finds recursively\n\n }, {\n key: \"_addFilesFromDirectory\",\n value: function _addFilesFromDirectory(directory, path) {\n var _this6 = this;\n\n var dirReader = directory.createReader();\n\n var errorHandler = function errorHandler(error) {\n return __guardMethod__(console, 'log', function (o) {\n return o.log(error);\n });\n };\n\n var readEntries = function readEntries() {\n return dirReader.readEntries(function (entries) {\n if (entries.length > 0) {\n var _iteratorNormalCompletion15 = true;\n var _didIteratorError15 = false;\n var _iteratorError15 = undefined;\n\n try {\n for (var _iterator15 = entries[Symbol.iterator](), _step15; !(_iteratorNormalCompletion15 = (_step15 = _iterator15.next()).done); _iteratorNormalCompletion15 = true) {\n var entry = _step15.value;\n\n if (entry.isFile) {\n entry.file(function (file) {\n if (_this6.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\n return;\n }\n\n file.fullPath = \"\".concat(path, \"/\").concat(file.name);\n return _this6.addFile(file);\n });\n } else if (entry.isDirectory) {\n _this6._addFilesFromDirectory(entry, \"\".concat(path, \"/\").concat(entry.name));\n }\n } // Recursively call readEntries() again, since browser only handle\n // the first 100 entries.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n\n } catch (err) {\n _didIteratorError15 = true;\n _iteratorError15 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion15 && _iterator15[\"return\"] != null) {\n _iterator15[\"return\"]();\n }\n } finally {\n if (_didIteratorError15) {\n throw _iteratorError15;\n }\n }\n }\n\n readEntries();\n }\n\n return null;\n }, errorHandler);\n };\n\n return readEntries();\n } // If `done()` is called without argument the file is accepted\n // If you call it with an error message, the file is rejected\n // (This allows for asynchronous validation)\n //\n // This function checks the filesize, and if the file.type passes the\n // `acceptedFiles` check.\n\n }, {\n key: \"accept\",\n value: function accept(file, done) {\n if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) {\n done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n done(this.options.dictInvalidFileType);\n } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n this.emit(\"maxfilesexceeded\", file);\n } else {\n this.options.accept.call(this, file, done);\n }\n }\n }, {\n key: \"addFile\",\n value: function addFile(file) {\n var _this7 = this;\n\n file.upload = {\n uuid: Dropzone.uuidv4(),\n progress: 0,\n // Setting the total upload size to file.size for the beginning\n // It's actual different than the size to be transmitted.\n total: file.size,\n bytesSent: 0,\n filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and\n // thus the chunks — might change if `options.transformFile` is set\n // and does something to the data.\n\n };\n this.files.push(file);\n file.status = Dropzone.ADDED;\n this.emit(\"addedfile\", file);\n\n this._enqueueThumbnail(file);\n\n this.accept(file, function (error) {\n if (error) {\n file.accepted = false;\n\n _this7._errorProcessing([file], error); // Will set the file.status\n\n } else {\n file.accepted = true;\n\n if (_this7.options.autoQueue) {\n _this7.enqueueFile(file);\n } // Will set .accepted = true\n\n }\n\n _this7._updateMaxFilesReachedClass();\n });\n } // Wrapper for enqueueFile\n\n }, {\n key: \"enqueueFiles\",\n value: function enqueueFiles(files) {\n var _iteratorNormalCompletion16 = true;\n var _didIteratorError16 = false;\n var _iteratorError16 = undefined;\n\n try {\n for (var _iterator16 = files[Symbol.iterator](), _step16; !(_iteratorNormalCompletion16 = (_step16 = _iterator16.next()).done); _iteratorNormalCompletion16 = true) {\n var file = _step16.value;\n this.enqueueFile(file);\n }\n } catch (err) {\n _didIteratorError16 = true;\n _iteratorError16 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion16 && _iterator16[\"return\"] != null) {\n _iterator16[\"return\"]();\n }\n } finally {\n if (_didIteratorError16) {\n throw _iteratorError16;\n }\n }\n }\n\n return null;\n }\n }, {\n key: \"enqueueFile\",\n value: function enqueueFile(file) {\n var _this8 = this;\n\n if (file.status === Dropzone.ADDED && file.accepted === true) {\n file.status = Dropzone.QUEUED;\n\n if (this.options.autoProcessQueue) {\n return setTimeout(function () {\n return _this8.processQueue();\n }, 0); // Deferring the call\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n }\n }, {\n key: \"_enqueueThumbnail\",\n value: function _enqueueThumbnail(file) {\n var _this9 = this;\n\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n this._thumbnailQueue.push(file);\n\n return setTimeout(function () {\n return _this9._processThumbnailQueue();\n }, 0); // Deferring the call\n }\n }\n }, {\n key: \"_processThumbnailQueue\",\n value: function _processThumbnailQueue() {\n var _this10 = this;\n\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n return;\n }\n\n this._processingThumbnail = true;\n\n var file = this._thumbnailQueue.shift();\n\n return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) {\n _this10.emit(\"thumbnail\", file, dataUrl);\n\n _this10._processingThumbnail = false;\n return _this10._processThumbnailQueue();\n });\n } // Can be called by the user to remove a file\n\n }, {\n key: \"removeFile\",\n value: function removeFile(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n\n this.files = without(this.files, file);\n this.emit(\"removedfile\", file);\n\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n } // Removes all files that aren't currently processed from the list\n\n }, {\n key: \"removeAllFiles\",\n value: function removeAllFiles(cancelIfNecessary) {\n // Create a copy of files since removeFile() changes the @files array.\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n\n var _iteratorNormalCompletion17 = true;\n var _didIteratorError17 = false;\n var _iteratorError17 = undefined;\n\n try {\n for (var _iterator17 = this.files.slice()[Symbol.iterator](), _step17; !(_iteratorNormalCompletion17 = (_step17 = _iterator17.next()).done); _iteratorNormalCompletion17 = true) {\n var file = _step17.value;\n\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n } catch (err) {\n _didIteratorError17 = true;\n _iteratorError17 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion17 && _iterator17[\"return\"] != null) {\n _iterator17[\"return\"]();\n }\n } finally {\n if (_didIteratorError17) {\n throw _iteratorError17;\n }\n }\n }\n\n return null;\n } // Resizes an image before it gets sent to the server. This function is the default behavior of\n // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n // the resized blob.\n\n }, {\n key: \"resizeImage\",\n value: function resizeImage(file, width, height, resizeMethod, callback) {\n var _this11 = this;\n\n return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) {\n if (canvas == null) {\n // The image has not been resized\n return callback(file);\n } else {\n var resizeMimeType = _this11.options.resizeMimeType;\n\n if (resizeMimeType == null) {\n resizeMimeType = file.type;\n }\n\n var resizedDataURL = canvas.toDataURL(resizeMimeType, _this11.options.resizeQuality);\n\n if (resizeMimeType === 'image/jpeg' || resizeMimeType === 'image/jpg') {\n // Now add the original EXIF information\n resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n }\n\n return callback(Dropzone.dataURItoBlob(resizedDataURL));\n }\n });\n }\n }, {\n key: \"createThumbnail\",\n value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n var _this12 = this;\n\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector\n\n if (file.type === \"image/svg+xml\") {\n if (callback != null) {\n callback(fileReader.result);\n }\n\n return;\n }\n\n _this12.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n };\n\n fileReader.readAsDataURL(file);\n } // `mockFile` needs to have these attributes:\n // \n // { name: 'name', size: 12345, imageUrl: '' }\n //\n // `callback` will be invoked when the image has been downloaded and displayed.\n // `crossOrigin` will be added to the `img` tag when accessing the file.\n\n }, {\n key: \"displayExistingFile\",\n value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) {\n var _this13 = this;\n\n var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n this.emit(\"addedfile\", mockFile);\n this.emit(\"complete\", mockFile);\n\n if (!resizeThumbnail) {\n this.emit(\"thumbnail\", mockFile, imageUrl);\n if (callback) callback();\n } else {\n var onDone = function onDone(thumbnail) {\n _this13.emit('thumbnail', mockFile, thumbnail);\n\n if (callback) callback();\n };\n\n mockFile.dataURL = imageUrl;\n this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.resizeMethod, this.options.fixOrientation, onDone, crossOrigin);\n }\n }\n }, {\n key: \"createThumbnailFromUrl\",\n value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n var _this14 = this;\n\n // Not using `new Image` here because of a bug in latest Chrome versions.\n // See https://github.com/enyo/dropzone/pull/226\n var img = document.createElement(\"img\");\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.onload = function () {\n var loadExif = function loadExif(callback) {\n return callback(1);\n };\n\n if (typeof EXIF !== 'undefined' && EXIF !== null && fixOrientation) {\n loadExif = function loadExif(callback) {\n return EXIF.getData(img, function () {\n return callback(EXIF.getTag(this, 'Orientation'));\n });\n };\n }\n\n return loadExif(function (orientation) {\n file.width = img.width;\n file.height = img.height;\n\n var resizeInfo = _this14.options.resize.call(_this14, file, width, height, resizeMethod);\n\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n\n if (orientation > 4) {\n canvas.width = resizeInfo.trgHeight;\n canvas.height = resizeInfo.trgWidth;\n }\n\n switch (orientation) {\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n break;\n\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height);\n ctx.rotate(Math.PI);\n break;\n\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height);\n ctx.scale(1, -1);\n break;\n\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(0, -canvas.width);\n break;\n\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(canvas.height, -canvas.width);\n ctx.scale(-1, 1);\n break;\n\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI);\n ctx.translate(-canvas.height, 0);\n break;\n } // This is a bugfix for iOS' scaling bug.\n\n\n drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n var thumbnail = canvas.toDataURL(\"image/png\");\n\n if (callback != null) {\n return callback(thumbnail, canvas);\n }\n });\n };\n\n if (callback != null) {\n img.onerror = callback;\n }\n\n return img.src = file.dataURL;\n } // Goes through the queue and processes files if there aren't too many already.\n\n }, {\n key: \"processQueue\",\n value: function processQueue() {\n var parallelUploads = this.options.parallelUploads;\n var processingLength = this.getUploadingFiles().length;\n var i = processingLength; // There are already at least as many files uploading than should be\n\n if (processingLength >= parallelUploads) {\n return;\n }\n\n var queuedFiles = this.getQueuedFiles();\n\n if (!(queuedFiles.length > 0)) {\n return;\n }\n\n if (this.options.uploadMultiple) {\n // The files should be uploaded in one request\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n } // Nothing left to process\n\n\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n } // Wrapper for `processFiles`\n\n }, {\n key: \"processFile\",\n value: function processFile(file) {\n return this.processFiles([file]);\n } // Loads the file, then calls finishedLoading()\n\n }, {\n key: \"processFiles\",\n value: function processFiles(files) {\n var _iteratorNormalCompletion18 = true;\n var _didIteratorError18 = false;\n var _iteratorError18 = undefined;\n\n try {\n for (var _iterator18 = files[Symbol.iterator](), _step18; !(_iteratorNormalCompletion18 = (_step18 = _iterator18.next()).done); _iteratorNormalCompletion18 = true) {\n var file = _step18.value;\n file.processing = true; // Backwards compatibility\n\n file.status = Dropzone.UPLOADING;\n this.emit(\"processing\", file);\n }\n } catch (err) {\n _didIteratorError18 = true;\n _iteratorError18 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion18 && _iterator18[\"return\"] != null) {\n _iterator18[\"return\"]();\n }\n } finally {\n if (_didIteratorError18) {\n throw _iteratorError18;\n }\n }\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n\n return this.uploadFiles(files);\n }\n }, {\n key: \"_getFilesWithXhr\",\n value: function _getFilesWithXhr(xhr) {\n var files;\n return files = this.files.filter(function (file) {\n return file.xhr === xhr;\n }).map(function (file) {\n return file;\n });\n } // Cancels the file upload and sets the status to CANCELED\n // **if** the file is actually being uploaded.\n // If it's still in the queue, the file is being removed from it and the status\n // set to CANCELED.\n\n }, {\n key: \"cancelUpload\",\n value: function cancelUpload(file) {\n if (file.status === Dropzone.UPLOADING) {\n var groupedFiles = this._getFilesWithXhr(file.xhr);\n\n var _iteratorNormalCompletion19 = true;\n var _didIteratorError19 = false;\n var _iteratorError19 = undefined;\n\n try {\n for (var _iterator19 = groupedFiles[Symbol.iterator](), _step19; !(_iteratorNormalCompletion19 = (_step19 = _iterator19.next()).done); _iteratorNormalCompletion19 = true) {\n var groupedFile = _step19.value;\n groupedFile.status = Dropzone.CANCELED;\n }\n } catch (err) {\n _didIteratorError19 = true;\n _iteratorError19 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion19 && _iterator19[\"return\"] != null) {\n _iterator19[\"return\"]();\n }\n } finally {\n if (_didIteratorError19) {\n throw _iteratorError19;\n }\n }\n }\n\n if (typeof file.xhr !== 'undefined') {\n file.xhr.abort();\n }\n\n var _iteratorNormalCompletion20 = true;\n var _didIteratorError20 = false;\n var _iteratorError20 = undefined;\n\n try {\n for (var _iterator20 = groupedFiles[Symbol.iterator](), _step20; !(_iteratorNormalCompletion20 = (_step20 = _iterator20.next()).done); _iteratorNormalCompletion20 = true) {\n var _groupedFile = _step20.value;\n this.emit(\"canceled\", _groupedFile);\n }\n } catch (err) {\n _didIteratorError20 = true;\n _iteratorError20 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion20 && _iterator20[\"return\"] != null) {\n _iterator20[\"return\"]();\n }\n } finally {\n if (_didIteratorError20) {\n throw _iteratorError20;\n }\n }\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }, {\n key: \"resolveOption\",\n value: function resolveOption(option) {\n if (typeof option === 'function') {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return option.apply(this, args);\n }\n\n return option;\n }\n }, {\n key: \"uploadFile\",\n value: function uploadFile(file) {\n return this.uploadFiles([file]);\n }\n }, {\n key: \"uploadFiles\",\n value: function uploadFiles(files) {\n var _this15 = this;\n\n this._transformFiles(files, function (transformedFiles) {\n if (_this15.options.chunking) {\n // Chunking is not allowed to be used with `uploadMultiple` so we know\n // that there is only __one__file.\n var transformedFile = transformedFiles[0];\n files[0].upload.chunked = _this15.options.chunking && (_this15.options.forceChunking || transformedFile.size > _this15.options.chunkSize);\n files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this15.options.chunkSize);\n }\n\n if (files[0].upload.chunked) {\n // This file should be sent in chunks!\n // If the chunking option is set, we **know** that there can only be **one** file, since\n // uploadMultiple is not allowed with this option.\n var file = files[0];\n var _transformedFile = transformedFiles[0];\n var startedChunkCount = 0;\n file.upload.chunks = [];\n\n var handleNextChunk = function handleNextChunk() {\n var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet.\n\n while (file.upload.chunks[chunkIndex] !== undefined) {\n chunkIndex++;\n } // This means, that all chunks have already been started.\n\n\n if (chunkIndex >= file.upload.totalChunkCount) return;\n startedChunkCount++;\n var start = chunkIndex * _this15.options.chunkSize;\n var end = Math.min(start + _this15.options.chunkSize, file.size);\n var dataBlock = {\n name: _this15._getParamName(0),\n data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end),\n filename: file.upload.filename,\n chunkIndex: chunkIndex\n };\n file.upload.chunks[chunkIndex] = {\n file: file,\n index: chunkIndex,\n dataBlock: dataBlock,\n // In case we want to retry.\n status: Dropzone.UPLOADING,\n progress: 0,\n retries: 0 // The number of times this block has been retried.\n\n };\n\n _this15._uploadData(files, [dataBlock]);\n };\n\n file.upload.finishedChunkUpload = function (chunk) {\n var allFinished = true;\n chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk\n\n chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n\n chunk.xhr = null;\n\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] === undefined) {\n return handleNextChunk();\n }\n\n if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n allFinished = false;\n }\n }\n\n if (allFinished) {\n _this15.options.chunksUploaded(file, function () {\n _this15._finished(files, '', null);\n });\n }\n };\n\n if (_this15.options.parallelChunkUploads) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n handleNextChunk();\n }\n } else {\n handleNextChunk();\n }\n } else {\n var dataBlocks = [];\n\n for (var _i3 = 0; _i3 < files.length; _i3++) {\n dataBlocks[_i3] = {\n name: _this15._getParamName(_i3),\n data: transformedFiles[_i3],\n filename: files[_i3].upload.filename\n };\n }\n\n _this15._uploadData(files, dataBlocks);\n }\n });\n } /// Returns the right chunk for given file and xhr\n\n }, {\n key: \"_getChunk\",\n value: function _getChunk(file, xhr) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n return file.upload.chunks[i];\n }\n }\n } // This function actually uploads the file(s) to the server.\n // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n // files, or individual chunks for chunked upload).\n\n }, {\n key: \"_uploadData\",\n value: function _uploadData(files, dataBlocks) {\n var _this16 = this;\n\n var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later.\n\n var _iteratorNormalCompletion21 = true;\n var _didIteratorError21 = false;\n var _iteratorError21 = undefined;\n\n try {\n for (var _iterator21 = files[Symbol.iterator](), _step21; !(_iteratorNormalCompletion21 = (_step21 = _iterator21.next()).done); _iteratorNormalCompletion21 = true) {\n var file = _step21.value;\n file.xhr = xhr;\n }\n } catch (err) {\n _didIteratorError21 = true;\n _iteratorError21 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion21 && _iterator21[\"return\"] != null) {\n _iterator21[\"return\"]();\n }\n } finally {\n if (_didIteratorError21) {\n throw _iteratorError21;\n }\n }\n }\n\n if (files[0].upload.chunked) {\n // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n }\n\n var method = this.resolveOption(this.options.method, files);\n var url = this.resolveOption(this.options.url, files);\n xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n\n xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n xhr.withCredentials = !!this.options.withCredentials;\n\n xhr.onload = function (e) {\n _this16._finishedUploading(files, xhr, e);\n };\n\n xhr.ontimeout = function () {\n _this16._handleUploadError(files, xhr, \"Request timedout after \".concat(_this16.options.timeout, \" seconds\"));\n };\n\n xhr.onerror = function () {\n _this16._handleUploadError(files, xhr);\n }; // Some browsers do not have the .upload property\n\n\n var progressObj = xhr.upload != null ? xhr.upload : xhr;\n\n progressObj.onprogress = function (e) {\n return _this16._updateFilesUploadProgress(files, xhr, e);\n };\n\n var headers = {\n \"Accept\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n };\n\n if (this.options.headers) {\n Dropzone.extend(headers, this.options.headers);\n }\n\n for (var headerName in headers) {\n var headerValue = headers[headerName];\n\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n\n var formData = new FormData(); // Adding all @options parameters\n\n if (this.options.params) {\n var additionalParams = this.options.params;\n\n if (typeof additionalParams === 'function') {\n additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n }\n\n for (var key in additionalParams) {\n var value = additionalParams[key];\n formData.append(key, value);\n }\n } // Let the user add additional data if necessary\n\n\n var _iteratorNormalCompletion22 = true;\n var _didIteratorError22 = false;\n var _iteratorError22 = undefined;\n\n try {\n for (var _iterator22 = files[Symbol.iterator](), _step22; !(_iteratorNormalCompletion22 = (_step22 = _iterator22.next()).done); _iteratorNormalCompletion22 = true) {\n var _file = _step22.value;\n this.emit(\"sending\", _file, xhr, formData);\n }\n } catch (err) {\n _didIteratorError22 = true;\n _iteratorError22 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion22 && _iterator22[\"return\"] != null) {\n _iterator22[\"return\"]();\n }\n } finally {\n if (_didIteratorError22) {\n throw _iteratorError22;\n }\n }\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n\n this._addFormElementData(formData); // Finally add the files\n // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n\n\n for (var i = 0; i < dataBlocks.length; i++) {\n var dataBlock = dataBlocks[i];\n formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n }\n\n this.submitRequest(xhr, formData, files);\n } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n\n }, {\n key: \"_transformFiles\",\n value: function _transformFiles(files, done) {\n var _this17 = this;\n\n var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n\n var doneCounter = 0;\n\n var _loop = function _loop(i) {\n _this17.options.transformFile.call(_this17, files[i], function (transformedFile) {\n transformedFiles[i] = transformedFile;\n\n if (++doneCounter === files.length) {\n done(transformedFiles);\n }\n });\n };\n\n for (var i = 0; i < files.length; i++) {\n _loop(i);\n }\n } // Takes care of adding other input elements of the form to the AJAX request\n\n }, {\n key: \"_addFormElementData\",\n value: function _addFormElementData(formData) {\n // Take care of other input elements\n if (this.element.tagName === \"FORM\") {\n var _iteratorNormalCompletion23 = true;\n var _didIteratorError23 = false;\n var _iteratorError23 = undefined;\n\n try {\n for (var _iterator23 = this.element.querySelectorAll(\"input, textarea, select, button\")[Symbol.iterator](), _step23; !(_iteratorNormalCompletion23 = (_step23 = _iterator23.next()).done); _iteratorNormalCompletion23 = true) {\n var input = _step23.value;\n var inputName = input.getAttribute(\"name\");\n var inputType = input.getAttribute(\"type\");\n if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it.\n\n if (typeof inputName === 'undefined' || inputName === null) continue;\n\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n // Possibly multiple values\n var _iteratorNormalCompletion24 = true;\n var _didIteratorError24 = false;\n var _iteratorError24 = undefined;\n\n try {\n for (var _iterator24 = input.options[Symbol.iterator](), _step24; !(_iteratorNormalCompletion24 = (_step24 = _iterator24.next()).done); _iteratorNormalCompletion24 = true) {\n var option = _step24.value;\n\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } catch (err) {\n _didIteratorError24 = true;\n _iteratorError24 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion24 && _iterator24[\"return\"] != null) {\n _iterator24[\"return\"]();\n }\n } finally {\n if (_didIteratorError24) {\n throw _iteratorError24;\n }\n }\n }\n } else if (!inputType || inputType !== \"checkbox\" && inputType !== \"radio\" || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n } catch (err) {\n _didIteratorError23 = true;\n _iteratorError23 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion23 && _iterator23[\"return\"] != null) {\n _iterator23[\"return\"]();\n }\n } finally {\n if (_didIteratorError23) {\n throw _iteratorError23;\n }\n }\n }\n }\n } // Invoked when there is new progress information about given files.\n // If e is not provided, it is assumed that the upload is finished.\n\n }, {\n key: \"_updateFilesUploadProgress\",\n value: function _updateFilesUploadProgress(files, xhr, e) {\n var progress;\n\n if (typeof e !== 'undefined') {\n progress = 100 * e.loaded / e.total;\n\n if (files[0].upload.chunked) {\n var file = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk progress.\n\n var chunk = this._getChunk(file, xhr);\n\n chunk.progress = progress;\n chunk.total = e.total;\n chunk.bytesSent = e.loaded;\n var fileProgress = 0,\n fileTotal,\n fileBytesSent;\n file.upload.progress = 0;\n file.upload.total = 0;\n file.upload.bytesSent = 0;\n\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].progress !== undefined) {\n file.upload.progress += file.upload.chunks[i].progress;\n file.upload.total += file.upload.chunks[i].total;\n file.upload.bytesSent += file.upload.chunks[i].bytesSent;\n }\n }\n\n file.upload.progress = file.upload.progress / file.upload.totalChunkCount;\n } else {\n var _iteratorNormalCompletion25 = true;\n var _didIteratorError25 = false;\n var _iteratorError25 = undefined;\n\n try {\n for (var _iterator25 = files[Symbol.iterator](), _step25; !(_iteratorNormalCompletion25 = (_step25 = _iterator25.next()).done); _iteratorNormalCompletion25 = true) {\n var _file2 = _step25.value;\n _file2.upload.progress = progress;\n _file2.upload.total = e.total;\n _file2.upload.bytesSent = e.loaded;\n }\n } catch (err) {\n _didIteratorError25 = true;\n _iteratorError25 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion25 && _iterator25[\"return\"] != null) {\n _iterator25[\"return\"]();\n }\n } finally {\n if (_didIteratorError25) {\n throw _iteratorError25;\n }\n }\n }\n }\n\n var _iteratorNormalCompletion26 = true;\n var _didIteratorError26 = false;\n var _iteratorError26 = undefined;\n\n try {\n for (var _iterator26 = files[Symbol.iterator](), _step26; !(_iteratorNormalCompletion26 = (_step26 = _iterator26.next()).done); _iteratorNormalCompletion26 = true) {\n var _file3 = _step26.value;\n this.emit(\"uploadprogress\", _file3, _file3.upload.progress, _file3.upload.bytesSent);\n }\n } catch (err) {\n _didIteratorError26 = true;\n _iteratorError26 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion26 && _iterator26[\"return\"] != null) {\n _iterator26[\"return\"]();\n }\n } finally {\n if (_didIteratorError26) {\n throw _iteratorError26;\n }\n }\n }\n } else {\n // Called when the file finished uploading\n var allFilesFinished = true;\n progress = 100;\n var _iteratorNormalCompletion27 = true;\n var _didIteratorError27 = false;\n var _iteratorError27 = undefined;\n\n try {\n for (var _iterator27 = files[Symbol.iterator](), _step27; !(_iteratorNormalCompletion27 = (_step27 = _iterator27.next()).done); _iteratorNormalCompletion27 = true) {\n var _file4 = _step27.value;\n\n if (_file4.upload.progress !== 100 || _file4.upload.bytesSent !== _file4.upload.total) {\n allFilesFinished = false;\n }\n\n _file4.upload.progress = progress;\n _file4.upload.bytesSent = _file4.upload.total;\n } // Nothing to do, all files already at 100%\n\n } catch (err) {\n _didIteratorError27 = true;\n _iteratorError27 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion27 && _iterator27[\"return\"] != null) {\n _iterator27[\"return\"]();\n }\n } finally {\n if (_didIteratorError27) {\n throw _iteratorError27;\n }\n }\n }\n\n if (allFilesFinished) {\n return;\n }\n\n var _iteratorNormalCompletion28 = true;\n var _didIteratorError28 = false;\n var _iteratorError28 = undefined;\n\n try {\n for (var _iterator28 = files[Symbol.iterator](), _step28; !(_iteratorNormalCompletion28 = (_step28 = _iterator28.next()).done); _iteratorNormalCompletion28 = true) {\n var _file5 = _step28.value;\n this.emit(\"uploadprogress\", _file5, progress, _file5.upload.bytesSent);\n }\n } catch (err) {\n _didIteratorError28 = true;\n _iteratorError28 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion28 && _iterator28[\"return\"] != null) {\n _iterator28[\"return\"]();\n }\n } finally {\n if (_didIteratorError28) {\n throw _iteratorError28;\n }\n }\n }\n }\n }\n }, {\n key: \"_finishedUploading\",\n value: function _finishedUploading(files, xhr, e) {\n var response;\n\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (xhr.responseType !== 'arraybuffer' && xhr.responseType !== 'blob') {\n response = xhr.responseText;\n\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (error) {\n e = error;\n response = \"Invalid JSON response from server.\";\n }\n }\n }\n\n this._updateFilesUploadProgress(files);\n\n if (!(200 <= xhr.status && xhr.status < 300)) {\n this._handleUploadError(files, xhr, response);\n } else {\n if (files[0].upload.chunked) {\n files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr));\n } else {\n this._finished(files, response, e);\n }\n }\n }\n }, {\n key: \"_handleUploadError\",\n value: function _handleUploadError(files, xhr, response) {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (files[0].upload.chunked && this.options.retryChunks) {\n var chunk = this._getChunk(files[0], xhr);\n\n if (chunk.retries++ < this.options.retryChunksLimit) {\n this._uploadData(files, [chunk.dataBlock]);\n\n return;\n } else {\n console.warn('Retried this chunk too often. Giving up.');\n }\n }\n\n this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n }\n }, {\n key: \"submitRequest\",\n value: function submitRequest(xhr, formData, files) {\n xhr.send(formData);\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_finished\",\n value: function _finished(files, responseText, e) {\n var _iteratorNormalCompletion29 = true;\n var _didIteratorError29 = false;\n var _iteratorError29 = undefined;\n\n try {\n for (var _iterator29 = files[Symbol.iterator](), _step29; !(_iteratorNormalCompletion29 = (_step29 = _iterator29.next()).done); _iteratorNormalCompletion29 = true) {\n var file = _step29.value;\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _didIteratorError29 = true;\n _iteratorError29 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion29 && _iterator29[\"return\"] != null) {\n _iterator29[\"return\"]();\n }\n } finally {\n if (_didIteratorError29) {\n throw _iteratorError29;\n }\n }\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_errorProcessing\",\n value: function _errorProcessing(files, message, xhr) {\n var _iteratorNormalCompletion30 = true;\n var _didIteratorError30 = false;\n var _iteratorError30 = undefined;\n\n try {\n for (var _iterator30 = files[Symbol.iterator](), _step30; !(_iteratorNormalCompletion30 = (_step30 = _iterator30.next()).done); _iteratorNormalCompletion30 = true) {\n var file = _step30.value;\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _didIteratorError30 = true;\n _iteratorError30 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion30 && _iterator30[\"return\"] != null) {\n _iterator30[\"return\"]();\n }\n } finally {\n if (_didIteratorError30) {\n throw _iteratorError30;\n }\n }\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }], [{\n key: \"uuidv4\",\n value: function uuidv4() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n }]);\n\n return Dropzone;\n}(Emitter);\n\nDropzone.initClass();\nDropzone.version = \"5.7.1\"; // This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n// Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n//
\n\nDropzone.options = {}; // Returns the options for an element or undefined if none available.\n\nDropzone.optionsForElement = function (element) {\n // Get the `Dropzone.options.elementId` for this element if it exists\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return undefined;\n }\n}; // Holds a list of all dropzone instances\n\n\nDropzone.instances = []; // Returns the dropzone for given element if any\n\nDropzone.forElement = function (element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n if ((element != null ? element.dropzone : undefined) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n\n return element.dropzone;\n}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\n\n\nDropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them\n\nDropzone.discover = function () {\n var dropzones;\n\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = []; // IE :(\n\n var checkElements = function checkElements(elements) {\n return function () {\n var result = [];\n var _iteratorNormalCompletion31 = true;\n var _didIteratorError31 = false;\n var _iteratorError31 = undefined;\n\n try {\n for (var _iterator31 = elements[Symbol.iterator](), _step31; !(_iteratorNormalCompletion31 = (_step31 = _iterator31.next()).done); _iteratorNormalCompletion31 = true) {\n var el = _step31.value;\n\n if (/(^| )dropzone($| )/.test(el.className)) {\n result.push(dropzones.push(el));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _didIteratorError31 = true;\n _iteratorError31 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion31 && _iterator31[\"return\"] != null) {\n _iterator31[\"return\"]();\n }\n } finally {\n if (_didIteratorError31) {\n throw _iteratorError31;\n }\n }\n }\n\n return result;\n }();\n };\n\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n\n return function () {\n var result = [];\n var _iteratorNormalCompletion32 = true;\n var _didIteratorError32 = false;\n var _iteratorError32 = undefined;\n\n try {\n for (var _iterator32 = dropzones[Symbol.iterator](), _step32; !(_iteratorNormalCompletion32 = (_step32 = _iterator32.next()).done); _iteratorNormalCompletion32 = true) {\n var dropzone = _step32.value;\n\n // Create a dropzone unless auto discover has been disabled for specific element\n if (Dropzone.optionsForElement(dropzone) !== false) {\n result.push(new Dropzone(dropzone));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _didIteratorError32 = true;\n _iteratorError32 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion32 && _iterator32[\"return\"] != null) {\n _iterator32[\"return\"]();\n }\n } finally {\n if (_didIteratorError32) {\n throw _iteratorError32;\n }\n }\n }\n\n return result;\n }();\n}; // Since the whole Drag'n'Drop API is pretty new, some browsers implement it,\n// but not correctly.\n// So I created a blacklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n//\n\n\nDropzone.blacklistedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n/opera.*(Macintosh|Windows Phone).*version\\/12/i]; // Checks if the browser is supported\n\nDropzone.isBrowserSupported = function () {\n var capableBrowser = true;\n\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n // The browser supports the API, but may be blacklisted.\n var _iteratorNormalCompletion33 = true;\n var _didIteratorError33 = false;\n var _iteratorError33 = undefined;\n\n try {\n for (var _iterator33 = Dropzone.blacklistedBrowsers[Symbol.iterator](), _step33; !(_iteratorNormalCompletion33 = (_step33 = _iterator33.next()).done); _iteratorNormalCompletion33 = true) {\n var regex = _step33.value;\n\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n } catch (err) {\n _didIteratorError33 = true;\n _iteratorError33 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion33 && _iterator33[\"return\"] != null) {\n _iterator33[\"return\"]();\n }\n } finally {\n if (_didIteratorError33) {\n throw _iteratorError33;\n }\n }\n }\n }\n } else {\n capableBrowser = false;\n }\n\n return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n // convert base64 to raw binary data held in a string\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n var byteString = atob(dataURI.split(',')[1]); // separate out the mime component\n\n var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; // write the bytes of the string to an ArrayBuffer\n\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n ia[i] = byteString.charCodeAt(i);\n } // write the ArrayBuffer to a blob\n\n\n return new Blob([ab], {\n type: mimeString\n });\n}; // Returns an array without the rejected item\n\n\nvar without = function without(list, rejectedItem) {\n return list.filter(function (item) {\n return item !== rejectedItem;\n }).map(function (item) {\n return item;\n });\n}; // abc-def_ghi -> abcDefGhi\n\n\nvar camelize = function camelize(str) {\n return str.replace(/[\\-_](\\w)/g, function (match) {\n return match.charAt(1).toUpperCase();\n });\n}; // Creates an element from string\n\n\nDropzone.createElement = function (string) {\n var div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n}; // Tests if given element is inside (or simply is) the container\n\n\nDropzone.elementInside = function (element, container) {\n if (element === container) {\n return true;\n } // Coffeescript doesn't support do/while loops\n\n\n while (element = element.parentNode) {\n if (element === container) {\n return true;\n }\n }\n\n return false;\n};\n\nDropzone.getElement = function (el, name) {\n var element;\n\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n\n if (element == null) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector or a plain HTML element.\"));\n }\n\n return element;\n};\n\nDropzone.getElements = function (els, name) {\n var el, elements;\n\n if (els instanceof Array) {\n elements = [];\n\n try {\n var _iteratorNormalCompletion34 = true;\n var _didIteratorError34 = false;\n var _iteratorError34 = undefined;\n\n try {\n for (var _iterator34 = els[Symbol.iterator](), _step34; !(_iteratorNormalCompletion34 = (_step34 = _iterator34.next()).done); _iteratorNormalCompletion34 = true) {\n el = _step34.value;\n elements.push(this.getElement(el, name));\n }\n } catch (err) {\n _didIteratorError34 = true;\n _iteratorError34 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion34 && _iterator34[\"return\"] != null) {\n _iterator34[\"return\"]();\n }\n } finally {\n if (_didIteratorError34) {\n throw _iteratorError34;\n }\n }\n }\n } catch (e) {\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n var _iteratorNormalCompletion35 = true;\n var _didIteratorError35 = false;\n var _iteratorError35 = undefined;\n\n try {\n for (var _iterator35 = document.querySelectorAll(els)[Symbol.iterator](), _step35; !(_iteratorNormalCompletion35 = (_step35 = _iterator35.next()).done); _iteratorNormalCompletion35 = true) {\n el = _step35.value;\n elements.push(el);\n }\n } catch (err) {\n _didIteratorError35 = true;\n _iteratorError35 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion35 && _iterator35[\"return\"] != null) {\n _iterator35[\"return\"]();\n }\n } finally {\n if (_didIteratorError35) {\n throw _iteratorError35;\n }\n }\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n\n if (elements == null || !elements.length) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\"));\n }\n\n return elements;\n}; // Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\n\n\nDropzone.confirm = function (question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n}; // Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\n\n\nDropzone.isValidFile = function (file, acceptedFiles) {\n if (!acceptedFiles) {\n return true;\n } // If there are no accepted mime types, it's OK\n\n\n acceptedFiles = acceptedFiles.split(\",\");\n var mimeType = file.type;\n var baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n var _iteratorNormalCompletion36 = true;\n var _didIteratorError36 = false;\n var _iteratorError36 = undefined;\n\n try {\n for (var _iterator36 = acceptedFiles[Symbol.iterator](), _step36; !(_iteratorNormalCompletion36 = (_step36 = _iterator36.next()).done); _iteratorNormalCompletion36 = true) {\n var validType = _step36.value;\n validType = validType.trim();\n\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n // This is something like a image/* mime type\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n } catch (err) {\n _didIteratorError36 = true;\n _iteratorError36 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion36 && _iterator36[\"return\"] != null) {\n _iterator36[\"return\"]();\n }\n } finally {\n if (_didIteratorError36) {\n throw _iteratorError36;\n }\n }\n }\n\n return false;\n}; // Augment jQuery\n\n\nif (typeof jQuery !== 'undefined' && jQuery !== null) {\n jQuery.fn.dropzone = function (options) {\n return this.each(function () {\n return new Dropzone(this, options);\n });\n };\n}\n\nif (typeof module !== 'undefined' && module !== null) {\n module.exports = Dropzone;\n} else {\n window.Dropzone = Dropzone;\n} // Dropzone file status codes\n\n\nDropzone.ADDED = \"added\";\nDropzone.QUEUED = \"queued\"; // For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\n\nDropzone.ACCEPTED = Dropzone.QUEUED;\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\n\nvar detectVerticalSquash = function detectVerticalSquash(img) {\n var iw = img.naturalWidth;\n var ih = img.naturalHeight;\n var canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n\n var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih),\n data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically.\n\n\n var sy = 0;\n var ey = ih;\n var py = ih;\n\n while (py > sy) {\n var alpha = data[(py - 1) * 4 + 3];\n\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n\n py = ey + sy >> 1;\n }\n\n var ratio = py / ih;\n\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n}; // A replacement for context.drawImage\n// (args are for source and destination).\n\n\nvar drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n var vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n}; // Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\n\n\nvar ExifRestore =\n/*#__PURE__*/\nfunction () {\n function ExifRestore() {\n _classCallCheck(this, ExifRestore);\n }\n\n _createClass(ExifRestore, null, [{\n key: \"initClass\",\n value: function initClass() {\n this.KEY_STR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n }\n }, {\n key: \"encode64\",\n value: function encode64(input) {\n var output = '';\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = '';\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = '';\n var i = 0;\n\n while (true) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n chr1 = chr2 = chr3 = '';\n enc1 = enc2 = enc3 = enc4 = '';\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return output;\n }\n }, {\n key: \"restore\",\n value: function restore(origFileBase64, resizedFileBase64) {\n if (!origFileBase64.match('data:image/jpeg;base64,')) {\n return resizedFileBase64;\n }\n\n var rawImage = this.decode64(origFileBase64.replace('data:image/jpeg;base64,', ''));\n var segments = this.slice2Segments(rawImage);\n var image = this.exifManipulation(resizedFileBase64, segments);\n return \"data:image/jpeg;base64,\".concat(this.encode64(image));\n }\n }, {\n key: \"exifManipulation\",\n value: function exifManipulation(resizedFileBase64, segments) {\n var exifArray = this.getExifArray(segments);\n var newImageArray = this.insertExif(resizedFileBase64, exifArray);\n var aBuffer = new Uint8Array(newImageArray);\n return aBuffer;\n }\n }, {\n key: \"getExifArray\",\n value: function getExifArray(segments) {\n var seg = undefined;\n var x = 0;\n\n while (x < segments.length) {\n seg = segments[x];\n\n if (seg[0] === 255 & seg[1] === 225) {\n return seg;\n }\n\n x++;\n }\n\n return [];\n }\n }, {\n key: \"insertExif\",\n value: function insertExif(resizedFileBase64, exifArray) {\n var imageData = resizedFileBase64.replace('data:image/jpeg;base64,', '');\n var buf = this.decode64(imageData);\n var separatePoint = buf.indexOf(255, 3);\n var mae = buf.slice(0, separatePoint);\n var ato = buf.slice(separatePoint);\n var array = mae;\n array = array.concat(exifArray);\n array = array.concat(ato);\n return array;\n }\n }, {\n key: \"slice2Segments\",\n value: function slice2Segments(rawImageArray) {\n var head = 0;\n var segments = [];\n\n while (true) {\n var length;\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) {\n break;\n }\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) {\n head += 2;\n } else {\n length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3];\n var endPoint = head + length + 2;\n var seg = rawImageArray.slice(head, endPoint);\n segments.push(seg);\n head = endPoint;\n }\n\n if (head > rawImageArray.length) {\n break;\n }\n }\n\n return segments;\n }\n }, {\n key: \"decode64\",\n value: function decode64(input) {\n var output = '';\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = '';\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = '';\n var i = 0;\n var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n\n if (base64test.exec(input)) {\n console.warn('There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, \\'+\\', \\'/\\',and \\'=\\'\\nExpect errors in decoding.');\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n while (true) {\n enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n buf.push(chr1);\n\n if (enc3 !== 64) {\n buf.push(chr2);\n }\n\n if (enc4 !== 64) {\n buf.push(chr3);\n }\n\n chr1 = chr2 = chr3 = '';\n enc1 = enc2 = enc3 = enc4 = '';\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return buf;\n }\n }]);\n\n return ExifRestore;\n}();\n\nExifRestore.initClass();\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n// @win window reference\n// @fn function reference\n\nvar contentLoaded = function contentLoaded(win, fn) {\n var done = false;\n var top = true;\n var doc = win.document;\n var root = doc.documentElement;\n var add = doc.addEventListener ? \"addEventListener\" : \"attachEvent\";\n var rem = doc.addEventListener ? \"removeEventListener\" : \"detachEvent\";\n var pre = doc.addEventListener ? \"\" : \"on\";\n\n var init = function init(e) {\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n return;\n }\n\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n\n var poll = function poll() {\n try {\n root.doScroll(\"left\");\n } catch (e) {\n setTimeout(poll, 50);\n return;\n }\n\n return init(\"poll\");\n };\n\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (error) {}\n\n if (top) {\n poll();\n }\n }\n\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n}; // As a single function to be able to write tests.\n\n\nDropzone._autoDiscoverFunction = function () {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n};\n\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n return typeof value !== 'undefined' && value !== null ? transform(value) : undefined;\n}\n\nfunction __guardMethod__(obj, methodName, transform) {\n if (typeof obj !== 'undefined' && obj !== null && typeof obj[methodName] === 'function') {\n return transform(obj, methodName);\n } else {\n return undefined;\n }\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n\"use strict\";\n\nrequire(\"./noConflict\");\n\nvar _global = _interopRequireDefault(require(\"core-js/library/fn/global\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nif (_global[\"default\"]._babelPolyfill && typeof console !== \"undefined\" && console.warn) {\n console.warn(\"@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended \" + \"and may have consequences if different versions of the polyfills are applied sequentially. \" + \"If you do need to load the polyfill more than once, use @babel/polyfill/noConflict \" + \"instead to bypass the warning.\");\n}\n\n_global[\"default\"]._babelPolyfill = true;\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n\"use strict\";\n\nrequire(\"core-js/es6\");\n\nrequire(\"core-js/fn/array/includes\");\n\nrequire(\"core-js/fn/array/flat-map\");\n\nrequire(\"core-js/fn/string/pad-start\");\n\nrequire(\"core-js/fn/string/pad-end\");\n\nrequire(\"core-js/fn/string/trim-start\");\n\nrequire(\"core-js/fn/string/trim-end\");\n\nrequire(\"core-js/fn/symbol/async-iterator\");\n\nrequire(\"core-js/fn/object/get-own-property-descriptors\");\n\nrequire(\"core-js/fn/object/values\");\n\nrequire(\"core-js/fn/object/entries\");\n\nrequire(\"core-js/fn/promise/finally\");\n\nrequire(\"core-js/web\");\n\nrequire(\"regenerator-runtime/runtime\");\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../modules/es6.symbol');\nrequire('../modules/es6.object.create');\nrequire('../modules/es6.object.define-property');\nrequire('../modules/es6.object.define-properties');\nrequire('../modules/es6.object.get-own-property-descriptor');\nrequire('../modules/es6.object.get-prototype-of');\nrequire('../modules/es6.object.keys');\nrequire('../modules/es6.object.get-own-property-names');\nrequire('../modules/es6.object.freeze');\nrequire('../modules/es6.object.seal');\nrequire('../modules/es6.object.prevent-extensions');\nrequire('../modules/es6.object.is-frozen');\nrequire('../modules/es6.object.is-sealed');\nrequire('../modules/es6.object.is-extensible');\nrequire('../modules/es6.object.assign');\nrequire('../modules/es6.object.is');\nrequire('../modules/es6.object.set-prototype-of');\nrequire('../modules/es6.object.to-string');\nrequire('../modules/es6.function.bind');\nrequire('../modules/es6.function.name');\nrequire('../modules/es6.function.has-instance');\nrequire('../modules/es6.parse-int');\nrequire('../modules/es6.parse-float');\nrequire('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nrequire('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nrequire('../modules/es6.string.from-code-point');\nrequire('../modules/es6.string.raw');\nrequire('../modules/es6.string.trim');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/es6.string.code-point-at');\nrequire('../modules/es6.string.ends-with');\nrequire('../modules/es6.string.includes');\nrequire('../modules/es6.string.repeat');\nrequire('../modules/es6.string.starts-with');\nrequire('../modules/es6.string.anchor');\nrequire('../modules/es6.string.big');\nrequire('../modules/es6.string.blink');\nrequire('../modules/es6.string.bold');\nrequire('../modules/es6.string.fixed');\nrequire('../modules/es6.string.fontcolor');\nrequire('../modules/es6.string.fontsize');\nrequire('../modules/es6.string.italics');\nrequire('../modules/es6.string.link');\nrequire('../modules/es6.string.small');\nrequire('../modules/es6.string.strike');\nrequire('../modules/es6.string.sub');\nrequire('../modules/es6.string.sup');\nrequire('../modules/es6.date.now');\nrequire('../modules/es6.date.to-json');\nrequire('../modules/es6.date.to-iso-string');\nrequire('../modules/es6.date.to-string');\nrequire('../modules/es6.date.to-primitive');\nrequire('../modules/es6.array.is-array');\nrequire('../modules/es6.array.from');\nrequire('../modules/es6.array.of');\nrequire('../modules/es6.array.join');\nrequire('../modules/es6.array.slice');\nrequire('../modules/es6.array.sort');\nrequire('../modules/es6.array.for-each');\nrequire('../modules/es6.array.map');\nrequire('../modules/es6.array.filter');\nrequire('../modules/es6.array.some');\nrequire('../modules/es6.array.every');\nrequire('../modules/es6.array.reduce');\nrequire('../modules/es6.array.reduce-right');\nrequire('../modules/es6.array.index-of');\nrequire('../modules/es6.array.last-index-of');\nrequire('../modules/es6.array.copy-within');\nrequire('../modules/es6.array.fill');\nrequire('../modules/es6.array.find');\nrequire('../modules/es6.array.find-index');\nrequire('../modules/es6.array.species');\nrequire('../modules/es6.array.iterator');\nrequire('../modules/es6.regexp.constructor');\nrequire('../modules/es6.regexp.exec');\nrequire('../modules/es6.regexp.to-string');\nrequire('../modules/es6.regexp.flags');\nrequire('../modules/es6.regexp.match');\nrequire('../modules/es6.regexp.replace');\nrequire('../modules/es6.regexp.search');\nrequire('../modules/es6.regexp.split');\nrequire('../modules/es6.promise');\nrequire('../modules/es6.map');\nrequire('../modules/es6.set');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es6.typed.array-buffer');\nrequire('../modules/es6.typed.data-view');\nrequire('../modules/es6.typed.int8-array');\nrequire('../modules/es6.typed.uint8-array');\nrequire('../modules/es6.typed.uint8-clamped-array');\nrequire('../modules/es6.typed.int16-array');\nrequire('../modules/es6.typed.uint16-array');\nrequire('../modules/es6.typed.int32-array');\nrequire('../modules/es6.typed.uint32-array');\nrequire('../modules/es6.typed.float32-array');\nrequire('../modules/es6.typed.float64-array');\nrequire('../modules/es6.reflect.apply');\nrequire('../modules/es6.reflect.construct');\nrequire('../modules/es6.reflect.define-property');\nrequire('../modules/es6.reflect.delete-property');\nrequire('../modules/es6.reflect.enumerate');\nrequire('../modules/es6.reflect.get');\nrequire('../modules/es6.reflect.get-own-property-descriptor');\nrequire('../modules/es6.reflect.get-prototype-of');\nrequire('../modules/es6.reflect.has');\nrequire('../modules/es6.reflect.is-extensible');\nrequire('../modules/es6.reflect.own-keys');\nrequire('../modules/es6.reflect.prevent-extensions');\nrequire('../modules/es6.reflect.set');\nrequire('../modules/es6.reflect.set-prototype-of');\nmodule.exports = require('../modules/_core');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = require('./_shared')('native-function-to-string', Function.toString);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_set-species')('Array');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar fails = require('./_fails');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\nvar MAX_UINT32 = 0xffffffff;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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 // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.array.flat-map');\nmodule.exports = require('../../modules/_core').Array.flatMap;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.string.trim-left');\nmodule.exports = require('../../modules/_core').String.trimLeft;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.string.trim-right');\nmodule.exports = require('../../modules/_core').String.trimRight;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.symbol.async-iterator');\nmodule.exports = require('../../modules/_wks-ext').f('asyncIterator');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./_wks-define')('asyncIterator');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.object.get-own-property-descriptors');\nmodule.exports = require('../../modules/_core').Object.getOwnPropertyDescriptors;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../../modules/es7.object.entries');\nmodule.exports = require('../../modules/_core').Object.entries;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\nrequire('../../modules/es6.promise');\nrequire('../../modules/es7.promise.finally');\nmodule.exports = require('../../modules/_core').Promise['finally'];\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../modules/web.timers');\nrequire('../modules/web.immediate');\nrequire('../modules/web.dom.iterable');\nmodule.exports = require('../modules/_core');\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\nvar runtime = (function (exports) {\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 function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\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 exports.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 define(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 = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\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 define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.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 exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\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 exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\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 PromiseImpl.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 PromiseImpl.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.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(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 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.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 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.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 // Note: [\"return\"] must be used for ES3 parsing compatibility.\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 define(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 define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(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 exports.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 exports.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 // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('../modules/es7.global');\nmodule.exports = require('../modules/_core').global;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\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 && has(exports, key)) 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar 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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\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\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire(\"./toaster.js\");\nmodule.exports = \"toaster\";\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/* global angular */\n/*\n * @license\n * AngularJS Toaster\n * Version: 3.0.0\n *\n * Copyright 2013-2019 Jiri Kavulak, Stabzs.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * Authors: Jiri Kavulak, Stabzs\n * Related to project of John Papa, Hans Fjällemark and Nguyễn Thiện Hùng (thienhung1989)\n*/\n(function(window, document) {\n 'use strict';\n\n angular.module('toaster', []).constant(\n 'toasterConfig', {\n 'limit': 0, // limits max number of toasts\n 'tap-to-dismiss': true,\n 'close-button': false,\n 'close-html': '',\n 'newest-on-top': true,\n 'time-out': 5000,\n 'icon-classes': {\n error: 'toast-error',\n info: 'toast-info',\n wait: 'toast-wait',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n 'body-output-type': '', // Options: '', 'html', 'trustedHtml', 'template', 'templateWithData', 'directive'\n 'body-template': 'toasterBodyTmpl.html',\n 'icon-class': 'toast-info',\n 'position-class': 'toast-top-right', // Options (see CSS):\n // 'toast-top-full-width', 'toast-bottom-full-width', 'toast-center',\n // 'toast-top-left', 'toast-top-center', 'toast-top-right',\n // 'toast-bottom-left', 'toast-bottom-center', 'toast-bottom-right',\n 'title-class': 'toast-title',\n 'message-class': 'toast-message',\n 'prevent-duplicates': false,\n 'mouseover-timer-stop': true // stop timeout on mouseover and restart timer on mouseout\n }\n ).run(['$templateCache', function($templateCache) {\n $templateCache.put('angularjs-toaster/toast.html',\n '
' +\n '
' +\n '
' +\n '
{{toaster.title}}
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
' +\n '
{{toaster.body}}
' +\n '
' +\n '
' +\n '
');\n }\n ]).service(\n 'toaster', [\n '$rootScope', 'toasterConfig', function($rootScope, toasterConfig) {\n // http://stackoverflow.com/questions/26501688/a-typescript-guid-class\n var Guid = (function() {\n var Guid = {};\n Guid.newGuid = function() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n };\n return Guid;\n }());\n\n this.pop = function(type, title, body, timeout, bodyOutputType, clickHandler, toasterId, showCloseButton, toastId, onHideCallback) {\n if (angular.isObject(type)) {\n var params = type; // Enable named parameters as pop argument\n this.toast = {\n type: params.type,\n title: params.title,\n body: params.body,\n timeout: params.timeout,\n bodyOutputType: params.bodyOutputType,\n clickHandler: params.clickHandler,\n showCloseButton: params.showCloseButton,\n closeHtml: params.closeHtml,\n toastId: params.toastId,\n onShowCallback: params.onShowCallback,\n onHideCallback: params.onHideCallback,\n directiveData: params.directiveData,\n tapToDismiss: params.tapToDismiss\n };\n toasterId = params.toasterId;\n } else {\n this.toast = {\n type: type,\n title: title,\n body: body,\n timeout: timeout,\n bodyOutputType: bodyOutputType,\n clickHandler: clickHandler,\n showCloseButton: showCloseButton,\n toastId: toastId,\n onHideCallback: onHideCallback\n };\n }\n\n if (!this.toast.toastId || !this.toast.toastId.length) {\n this.toast.toastId = Guid.newGuid();\n }\n\n $rootScope.$emit('toaster-newToast', toasterId, this.toast.toastId);\n \n return {\n toasterId: toasterId,\n toastId: this.toast.toastId\n };\n };\n\n this.clear = function(toasterId, toastId) {\n if (angular.isObject(toasterId)) {\n $rootScope.$emit('toaster-clearToasts', toasterId.toasterId, toasterId.toastId);\n } else {\n $rootScope.$emit('toaster-clearToasts', toasterId, toastId);\n }\n };\n\n // Create one method per icon class, to allow to call toaster.info() and similar\n for (var type in toasterConfig['icon-classes']) {\n this[type] = createTypeMethod(type);\n }\n\n function createTypeMethod(toasterType) {\n return function(title, body, timeout, bodyOutputType, clickHandler, toasterId, showCloseButton, toastId, onHideCallback) {\n if (angular.isString(title)) {\n return this.pop(\n toasterType,\n title,\n body,\n timeout,\n bodyOutputType,\n clickHandler,\n toasterId,\n showCloseButton,\n toastId,\n onHideCallback);\n } else { // 'title' is actually an object with options\n return this.pop(angular.extend(title, { type: toasterType }));\n }\n };\n }\n }]\n ).factory(\n 'toasterEventRegistry', [\n '$rootScope', function($rootScope) {\n var deregisterNewToast = null, deregisterClearToasts = null, newToastEventSubscribers = [], clearToastsEventSubscribers = [], toasterFactory;\n\n toasterFactory = {\n setup: function() {\n if (!deregisterNewToast) {\n deregisterNewToast = $rootScope.$on(\n 'toaster-newToast', function(event, toasterId, toastId) {\n for (var i = 0, len = newToastEventSubscribers.length; i < len; i++) {\n newToastEventSubscribers[i](event, toasterId, toastId);\n }\n });\n }\n\n if (!deregisterClearToasts) {\n deregisterClearToasts = $rootScope.$on(\n 'toaster-clearToasts', function(event, toasterId, toastId) {\n for (var i = 0, len = clearToastsEventSubscribers.length; i < len; i++) {\n clearToastsEventSubscribers[i](event, toasterId, toastId);\n }\n });\n }\n },\n\n subscribeToNewToastEvent: function(onNewToast) {\n newToastEventSubscribers.push(onNewToast);\n },\n subscribeToClearToastsEvent: function(onClearToasts) {\n clearToastsEventSubscribers.push(onClearToasts);\n },\n unsubscribeToNewToastEvent: function(onNewToast) {\n var index = newToastEventSubscribers.indexOf(onNewToast);\n if (index >= 0) {\n newToastEventSubscribers.splice(index, 1);\n }\n\n if (newToastEventSubscribers.length === 0) {\n deregisterNewToast();\n deregisterNewToast = null;\n }\n },\n unsubscribeToClearToastsEvent: function(onClearToasts) {\n var index = clearToastsEventSubscribers.indexOf(onClearToasts);\n if (index >= 0) {\n clearToastsEventSubscribers.splice(index, 1);\n }\n\n if (clearToastsEventSubscribers.length === 0) {\n deregisterClearToasts();\n deregisterClearToasts = null;\n }\n }\n };\n return {\n setup: toasterFactory.setup,\n subscribeToNewToastEvent: toasterFactory.subscribeToNewToastEvent,\n subscribeToClearToastsEvent: toasterFactory.subscribeToClearToastsEvent,\n unsubscribeToNewToastEvent: toasterFactory.unsubscribeToNewToastEvent,\n unsubscribeToClearToastsEvent: toasterFactory.unsubscribeToClearToastsEvent\n };\n }]\n )\n .directive('directiveTemplate', ['$compile', '$injector', function($compile, $injector) {\n return {\n restrict: 'A',\n scope: {\n directiveName: '@directiveName',\n directiveData: '=directiveData'\n },\n replace: true,\n link: function(scope, elm, attrs) {\n scope.$watch('directiveName', function(directiveName) {\n if (angular.isUndefined(directiveName) || directiveName.length <= 0)\n throw new Error('A valid directive name must be provided via the toast body argument when using bodyOutputType: directive');\n\n var directive;\n\n try {\n directive = $injector.get(attrs.$normalize(directiveName) + 'Directive');\n } catch (e) {\n throw new Error(directiveName + ' could not be found. ' +\n 'The name should appear as it exists in the markup, not camelCased as it would appear in the directive declaration,' +\n ' e.g. directive-name not directiveName.');\n }\n\n\n var directiveDetails = directive[0];\n\n if (directiveDetails.scope !== true && directiveDetails.scope) {\n throw new Error('Cannot use a directive with an isolated scope. ' +\n 'The scope must be either true or falsy (e.g. false/null/undefined). ' +\n 'Occurred for directive ' + directiveName + '.');\n }\n\n if (directiveDetails.restrict.indexOf('A') < 0) {\n throw new Error('Directives must be usable as attributes. ' +\n 'Add \"A\" to the restrict option (or remove the option entirely). Occurred for directive ' +\n directiveName + '.');\n }\n\n if (scope.directiveData)\n scope.directiveData = angular.fromJson(scope.directiveData);\n\n var template = $compile('
')(scope);\n\n elm.append(template);\n });\n }\n };\n }])\n .directive(\n 'toasterContainer', [\n '$parse', '$rootScope', '$interval', '$sce', 'toasterConfig', 'toaster', 'toasterEventRegistry',\n function($parse, $rootScope, $interval, $sce, toasterConfig, toaster, toasterEventRegistry) {\n return {\n replace: true,\n restrict: 'EA',\n scope: true, // creates an internal scope for this directive (one per directive instance)\n link: function(scope, elm, attrs) {\n var mergedConfig;\n\n // Merges configuration set in directive with default one\n mergedConfig = angular.extend({}, toasterConfig, scope.$eval(attrs.toasterOptions));\n\n scope.config = {\n toasterId: mergedConfig['toaster-id'],\n position: mergedConfig['position-class'],\n title: mergedConfig['title-class'],\n message: mergedConfig['message-class'],\n tap: mergedConfig['tap-to-dismiss'],\n closeButton: mergedConfig['close-button'],\n closeHtml: mergedConfig['close-html'],\n animation: mergedConfig['animation-class'],\n mouseoverTimer: mergedConfig['mouseover-timer-stop']\n };\n\n scope.$on(\n \"$destroy\", function() {\n toasterEventRegistry.unsubscribeToNewToastEvent(scope._onNewToast);\n toasterEventRegistry.unsubscribeToClearToastsEvent(scope._onClearToasts);\n }\n );\n\n function setTimeout(toast, time) {\n toast.timeoutPromise = $interval(\n function() {\n scope.removeToast(toast.toastId);\n }, time, 1\n );\n }\n\n scope.configureTimer = function(toast) {\n var timeout = angular.isNumber(toast.timeout) ? toast.timeout : mergedConfig['time-out'];\n if (typeof timeout === \"object\") timeout = timeout[toast.type];\n if (timeout > 0) {\n setTimeout(toast, timeout);\n }\n };\n\n function addToast(toast, toastId) {\n toast.type = mergedConfig['icon-classes'][toast.type];\n if (!toast.type) {\n toast.type = mergedConfig['icon-class'];\n }\n\n if (mergedConfig['prevent-duplicates'] === true && scope.toasters.length) {\n if (scope.toasters[scope.toasters.length - 1].body === toast.body) {\n return;\n } else {\n var i, len, dupFound = false;\n for (i = 0, len = scope.toasters.length; i < len; i++) {\n if (scope.toasters[i].toastId === toastId) {\n dupFound = true;\n break;\n }\n }\n \n if (dupFound) return;\n }\n }\n\n\n // set the showCloseButton property on the toast so that\n // each template can bind directly to the property to show/hide\n // the close button\n var closeButton = mergedConfig['close-button'];\n\n // if toast.showCloseButton is a boolean value,\n // it was specifically overriden in the pop arguments\n if (typeof toast.showCloseButton === \"boolean\") {\n\n } else if (typeof closeButton === \"boolean\") {\n toast.showCloseButton = closeButton;\n } else if (typeof closeButton === \"object\") {\n var closeButtonForType = closeButton[toast.type];\n\n if (typeof closeButtonForType !== \"undefined\" && closeButtonForType !== null) {\n toast.showCloseButton = closeButtonForType;\n }\n } else {\n // if an option was not set, default to false.\n toast.showCloseButton = false;\n }\n\n if (toast.showCloseButton) {\n toast.closeHtml = $sce.trustAsHtml(toast.closeHtml || scope.config.closeHtml);\n }\n\n // Set the toast.bodyOutputType to the default if it isn't set\n toast.bodyOutputType = toast.bodyOutputType || mergedConfig['body-output-type'];\n switch (toast.bodyOutputType) {\n case 'trustedHtml':\n toast.html = $sce.trustAsHtml(toast.body);\n break;\n case 'template':\n toast.bodyTemplate = toast.body || mergedConfig['body-template'];\n break;\n case 'templateWithData':\n var fcGet = $parse(toast.body || mergedConfig['body-template']);\n var templateWithData = fcGet(scope);\n toast.bodyTemplate = templateWithData.template;\n toast.data = templateWithData.data;\n break;\n case 'directive':\n toast.html = toast.body;\n break;\n }\n\n scope.configureTimer(toast);\n\n if (mergedConfig['newest-on-top'] === true) {\n scope.toasters.unshift(toast);\n if (mergedConfig['limit'] > 0 && scope.toasters.length > mergedConfig['limit']) {\n removeToast(scope.toasters.length - 1);\n }\n } else {\n scope.toasters.push(toast);\n if (mergedConfig['limit'] > 0 && scope.toasters.length > mergedConfig['limit']) {\n removeToast(0);\n }\n }\n\n if (angular.isFunction(toast.onShowCallback)) {\n toast.onShowCallback(toast);\n }\n }\n\n scope.removeToast = function(toastId) {\n var i, len;\n for (i = 0, len = scope.toasters.length; i < len; i++) {\n if (scope.toasters[i].toastId === toastId) {\n removeToast(i);\n break;\n }\n }\n };\n\n function removeToast(toastIndex) {\n var toast = scope.toasters[toastIndex];\n\n // toast is always defined since the index always has a match\n if (toast.timeoutPromise) {\n $interval.cancel(toast.timeoutPromise);\n }\n scope.toasters.splice(toastIndex, 1);\n\n if (angular.isFunction(toast.onHideCallback)) {\n toast.onHideCallback(toast);\n }\n }\n\n function removeAllToasts(toastId) {\n for (var i = scope.toasters.length - 1; i >= 0; i--) {\n if (isUndefinedOrNull(toastId)) {\n removeToast(i);\n } else {\n if (scope.toasters[i].toastId == toastId) {\n removeToast(i);\n }\n }\n }\n }\n\n scope.toasters = [];\n\n function isUndefinedOrNull(val) {\n return angular.isUndefined(val) || val === null;\n }\n\n scope._onNewToast = function(event, toasterId, toastId) {\n // Compatibility: if toaster has no toasterId defined, and if call to display\n // hasn't either, then the request is for us\n if ((isUndefinedOrNull(scope.config.toasterId) && isUndefinedOrNull(toasterId)) || (!isUndefinedOrNull(scope.config.toasterId) && !isUndefinedOrNull(toasterId) && scope.config.toasterId == toasterId)) {\n addToast(toaster.toast, toastId);\n }\n };\n scope._onClearToasts = function(event, toasterId, toastId) {\n // Compatibility: if toaster has no toasterId defined, and if call to display\n // hasn't either, then the request is for us\n if (toasterId == '*' || (isUndefinedOrNull(scope.config.toasterId) && isUndefinedOrNull(toasterId)) || (!isUndefinedOrNull(scope.config.toasterId) && !isUndefinedOrNull(toasterId) && scope.config.toasterId == toasterId)) {\n removeAllToasts(toastId);\n }\n };\n\n toasterEventRegistry.setup();\n\n toasterEventRegistry.subscribeToNewToastEvent(scope._onNewToast);\n toasterEventRegistry.subscribeToClearToastsEvent(scope._onClearToasts);\n },\n controller: [\n '$scope', '$element', '$attrs', function($scope, $element, $attrs) {\n // Called on mouseover\n $scope.stopTimer = function(toast) {\n if ($scope.config.mouseoverTimer === true) {\n if (toast.timeoutPromise) {\n $interval.cancel(toast.timeoutPromise);\n toast.timeoutPromise = null;\n }\n }\n };\n\n // Called on mouseout\n $scope.restartTimer = function(toast) {\n if ($scope.config.mouseoverTimer === true) {\n if (!toast.timeoutPromise) {\n $scope.configureTimer(toast);\n }\n } else if (toast.timeoutPromise === null) {\n $scope.removeToast(toast.toastId);\n }\n };\n\n $scope.click = function(event, toast, isCloseButton) {\n event.stopPropagation();\n\n var tapToDismiss = typeof toast.tapToDismiss === \"boolean\" \n ? toast.tapToDismiss \n : $scope.config.tap;\n if (tapToDismiss === true || (toast.showCloseButton === true && isCloseButton === true)) {\n var removeToast = true;\n if (toast.clickHandler) {\n if (angular.isFunction(toast.clickHandler)) {\n removeToast = toast.clickHandler(toast, isCloseButton);\n } else if (angular.isFunction($scope.$parent.$eval(toast.clickHandler))) {\n removeToast = $scope.$parent.$eval(toast.clickHandler)(toast, isCloseButton);\n } else {\n console.log(\"TOAST-NOTE: Your click handler is not inside a parent scope of toaster-container.\");\n }\n }\n if (removeToast) {\n $scope.removeToast(toast.toastId);\n }\n }\n };\n }],\n templateUrl: 'angularjs-toaster/toast.html'\n };\n }]\n );\n})(window, document);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nrequire('./angular-animate');\nmodule.exports = 'ngAnimate';\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/**\n * @license AngularJS v1.8.2\n * (c) 2010-2020 Google LLC. http://angularjs.org\n * License: MIT\n */\n(function(window, angular) {'use strict';\n\nvar ELEMENT_NODE = 1;\nvar COMMENT_NODE = 8;\n\nvar ADD_CLASS_SUFFIX = '-add';\nvar REMOVE_CLASS_SUFFIX = '-remove';\nvar EVENT_CLASS_PREFIX = 'ng-';\nvar ACTIVE_CLASS_SUFFIX = '-active';\nvar PREPARE_CLASS_SUFFIX = '-prepare';\n\nvar NG_ANIMATE_CLASSNAME = 'ng-animate';\nvar NG_ANIMATE_CHILDREN_DATA = '$$ngAnimateChildren';\n\n// Detect proper transitionend/animationend event names.\nvar CSS_PREFIX = '', TRANSITION_PROP, TRANSITIONEND_EVENT, ANIMATION_PROP, ANIMATIONEND_EVENT;\n\n// If unprefixed events are not supported but webkit-prefixed are, use the latter.\n// Otherwise, just use W3C names, browsers not supporting them at all will just ignore them.\n// Note: Chrome implements `window.onwebkitanimationend` and doesn't implement `window.onanimationend`\n// but at the same time dispatches the `animationend` event and not `webkitAnimationEnd`.\n// Register both events in case `window.onanimationend` is not supported because of that,\n// do the same for `transitionend` as Safari is likely to exhibit similar behavior.\n// Also, the only modern browser that uses vendor prefixes for transitions/keyframes is webkit\n// therefore there is no reason to test anymore for other vendor prefixes:\n// http://caniuse.com/#search=transition\nif ((window.ontransitionend === undefined) && (window.onwebkittransitionend !== undefined)) {\n CSS_PREFIX = '-webkit-';\n TRANSITION_PROP = 'WebkitTransition';\n TRANSITIONEND_EVENT = 'webkitTransitionEnd transitionend';\n} else {\n TRANSITION_PROP = 'transition';\n TRANSITIONEND_EVENT = 'transitionend';\n}\n\nif ((window.onanimationend === undefined) && (window.onwebkitanimationend !== undefined)) {\n CSS_PREFIX = '-webkit-';\n ANIMATION_PROP = 'WebkitAnimation';\n ANIMATIONEND_EVENT = 'webkitAnimationEnd animationend';\n} else {\n ANIMATION_PROP = 'animation';\n ANIMATIONEND_EVENT = 'animationend';\n}\n\nvar DURATION_KEY = 'Duration';\nvar PROPERTY_KEY = 'Property';\nvar DELAY_KEY = 'Delay';\nvar TIMING_KEY = 'TimingFunction';\nvar ANIMATION_ITERATION_COUNT_KEY = 'IterationCount';\nvar ANIMATION_PLAYSTATE_KEY = 'PlayState';\nvar SAFE_FAST_FORWARD_DURATION_VALUE = 9999;\n\nvar ANIMATION_DELAY_PROP = ANIMATION_PROP + DELAY_KEY;\nvar ANIMATION_DURATION_PROP = ANIMATION_PROP + DURATION_KEY;\nvar TRANSITION_DELAY_PROP = TRANSITION_PROP + DELAY_KEY;\nvar TRANSITION_DURATION_PROP = TRANSITION_PROP + DURATION_KEY;\n\nvar ngMinErr = angular.$$minErr('ng');\nfunction assertArg(arg, name, reason) {\n if (!arg) {\n throw ngMinErr('areq', 'Argument \\'{0}\\' is {1}', (name || '?'), (reason || 'required'));\n }\n return arg;\n}\n\nfunction mergeClasses(a,b) {\n if (!a && !b) return '';\n if (!a) return b;\n if (!b) return a;\n if (isArray(a)) a = a.join(' ');\n if (isArray(b)) b = b.join(' ');\n return a + ' ' + b;\n}\n\nfunction packageStyles(options) {\n var styles = {};\n if (options && (options.to || options.from)) {\n styles.to = options.to;\n styles.from = options.from;\n }\n return styles;\n}\n\nfunction pendClasses(classes, fix, isPrefix) {\n var className = '';\n classes = isArray(classes)\n ? classes\n : classes && isString(classes) && classes.length\n ? classes.split(/\\s+/)\n : [];\n forEach(classes, function(klass, i) {\n if (klass && klass.length > 0) {\n className += (i > 0) ? ' ' : '';\n className += isPrefix ? fix + klass\n : klass + fix;\n }\n });\n return className;\n}\n\nfunction removeFromArray(arr, val) {\n var index = arr.indexOf(val);\n if (val >= 0) {\n arr.splice(index, 1);\n }\n}\n\nfunction stripCommentsFromElement(element) {\n if (element instanceof jqLite) {\n switch (element.length) {\n case 0:\n return element;\n\n case 1:\n // there is no point of stripping anything if the element\n // is the only element within the jqLite wrapper.\n // (it's important that we retain the element instance.)\n if (element[0].nodeType === ELEMENT_NODE) {\n return element;\n }\n break;\n\n default:\n return jqLite(extractElementNode(element));\n }\n }\n\n if (element.nodeType === ELEMENT_NODE) {\n return jqLite(element);\n }\n}\n\nfunction extractElementNode(element) {\n if (!element[0]) return element;\n for (var i = 0; i < element.length; i++) {\n var elm = element[i];\n if (elm.nodeType === ELEMENT_NODE) {\n return elm;\n }\n }\n}\n\nfunction $$addClass($$jqLite, element, className) {\n forEach(element, function(elm) {\n $$jqLite.addClass(elm, className);\n });\n}\n\nfunction $$removeClass($$jqLite, element, className) {\n forEach(element, function(elm) {\n $$jqLite.removeClass(elm, className);\n });\n}\n\nfunction applyAnimationClassesFactory($$jqLite) {\n return function(element, options) {\n if (options.addClass) {\n $$addClass($$jqLite, element, options.addClass);\n options.addClass = null;\n }\n if (options.removeClass) {\n $$removeClass($$jqLite, element, options.removeClass);\n options.removeClass = null;\n }\n };\n}\n\nfunction prepareAnimationOptions(options) {\n options = options || {};\n if (!options.$$prepared) {\n var domOperation = options.domOperation || noop;\n options.domOperation = function() {\n options.$$domOperationFired = true;\n domOperation();\n domOperation = noop;\n };\n options.$$prepared = true;\n }\n return options;\n}\n\nfunction applyAnimationStyles(element, options) {\n applyAnimationFromStyles(element, options);\n applyAnimationToStyles(element, options);\n}\n\nfunction applyAnimationFromStyles(element, options) {\n if (options.from) {\n element.css(options.from);\n options.from = null;\n }\n}\n\nfunction applyAnimationToStyles(element, options) {\n if (options.to) {\n element.css(options.to);\n options.to = null;\n }\n}\n\nfunction mergeAnimationDetails(element, oldAnimation, newAnimation) {\n var target = oldAnimation.options || {};\n var newOptions = newAnimation.options || {};\n\n var toAdd = (target.addClass || '') + ' ' + (newOptions.addClass || '');\n var toRemove = (target.removeClass || '') + ' ' + (newOptions.removeClass || '');\n var classes = resolveElementClasses(element.attr('class'), toAdd, toRemove);\n\n if (newOptions.preparationClasses) {\n target.preparationClasses = concatWithSpace(newOptions.preparationClasses, target.preparationClasses);\n delete newOptions.preparationClasses;\n }\n\n // noop is basically when there is no callback; otherwise something has been set\n var realDomOperation = target.domOperation !== noop ? target.domOperation : null;\n\n extend(target, newOptions);\n\n // TODO(matsko or sreeramu): proper fix is to maintain all animation callback in array and call at last,but now only leave has the callback so no issue with this.\n if (realDomOperation) {\n target.domOperation = realDomOperation;\n }\n\n if (classes.addClass) {\n target.addClass = classes.addClass;\n } else {\n target.addClass = null;\n }\n\n if (classes.removeClass) {\n target.removeClass = classes.removeClass;\n } else {\n target.removeClass = null;\n }\n\n oldAnimation.addClass = target.addClass;\n oldAnimation.removeClass = target.removeClass;\n\n return target;\n}\n\nfunction resolveElementClasses(existing, toAdd, toRemove) {\n var ADD_CLASS = 1;\n var REMOVE_CLASS = -1;\n\n var flags = {};\n existing = splitClassesToLookup(existing);\n\n toAdd = splitClassesToLookup(toAdd);\n forEach(toAdd, function(value, key) {\n flags[key] = ADD_CLASS;\n });\n\n toRemove = splitClassesToLookup(toRemove);\n forEach(toRemove, function(value, key) {\n flags[key] = flags[key] === ADD_CLASS ? null : REMOVE_CLASS;\n });\n\n var classes = {\n addClass: '',\n removeClass: ''\n };\n\n forEach(flags, function(val, klass) {\n var prop, allow;\n if (val === ADD_CLASS) {\n prop = 'addClass';\n allow = !existing[klass] || existing[klass + REMOVE_CLASS_SUFFIX];\n } else if (val === REMOVE_CLASS) {\n prop = 'removeClass';\n allow = existing[klass] || existing[klass + ADD_CLASS_SUFFIX];\n }\n if (allow) {\n if (classes[prop].length) {\n classes[prop] += ' ';\n }\n classes[prop] += klass;\n }\n });\n\n function splitClassesToLookup(classes) {\n if (isString(classes)) {\n classes = classes.split(' ');\n }\n\n var obj = {};\n forEach(classes, function(klass) {\n // sometimes the split leaves empty string values\n // incase extra spaces were applied to the options\n if (klass.length) {\n obj[klass] = true;\n }\n });\n return obj;\n }\n\n return classes;\n}\n\nfunction getDomNode(element) {\n return (element instanceof jqLite) ? element[0] : element;\n}\n\nfunction applyGeneratedPreparationClasses($$jqLite, element, event, options) {\n var classes = '';\n if (event) {\n classes = pendClasses(event, EVENT_CLASS_PREFIX, true);\n }\n if (options.addClass) {\n classes = concatWithSpace(classes, pendClasses(options.addClass, ADD_CLASS_SUFFIX));\n }\n if (options.removeClass) {\n classes = concatWithSpace(classes, pendClasses(options.removeClass, REMOVE_CLASS_SUFFIX));\n }\n if (classes.length) {\n options.preparationClasses = classes;\n element.addClass(classes);\n }\n}\n\nfunction clearGeneratedClasses(element, options) {\n if (options.preparationClasses) {\n element.removeClass(options.preparationClasses);\n options.preparationClasses = null;\n }\n if (options.activeClasses) {\n element.removeClass(options.activeClasses);\n options.activeClasses = null;\n }\n}\n\nfunction blockKeyframeAnimations(node, applyBlock) {\n var value = applyBlock ? 'paused' : '';\n var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY;\n applyInlineStyle(node, [key, value]);\n return [key, value];\n}\n\nfunction applyInlineStyle(node, styleTuple) {\n var prop = styleTuple[0];\n var value = styleTuple[1];\n node.style[prop] = value;\n}\n\nfunction concatWithSpace(a,b) {\n if (!a) return b;\n if (!b) return a;\n return a + ' ' + b;\n}\n\nvar helpers = {\n blockTransitions: function(node, duration) {\n // we use a negative delay value since it performs blocking\n // yet it doesn't kill any existing transitions running on the\n // same element which makes this safe for class-based animations\n var value = duration ? '-' + duration + 's' : '';\n applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);\n return [TRANSITION_DELAY_PROP, value];\n }\n};\n\nvar $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {\n var queue, cancelFn;\n\n function scheduler(tasks) {\n // we make a copy since RAFScheduler mutates the state\n // of the passed in array variable and this would be difficult\n // to track down on the outside code\n queue = queue.concat(tasks);\n nextTick();\n }\n\n queue = scheduler.queue = [];\n\n /* waitUntilQuiet does two things:\n * 1. It will run the FINAL `fn` value only when an uncanceled RAF has passed through\n * 2. It will delay the next wave of tasks from running until the quiet `fn` has run.\n *\n * The motivation here is that animation code can request more time from the scheduler\n * before the next wave runs. This allows for certain DOM properties such as classes to\n * be resolved in time for the next animation to run.\n */\n scheduler.waitUntilQuiet = function(fn) {\n if (cancelFn) cancelFn();\n\n cancelFn = $$rAF(function() {\n cancelFn = null;\n fn();\n nextTick();\n });\n };\n\n return scheduler;\n\n function nextTick() {\n if (!queue.length) return;\n\n var items = queue.shift();\n for (var i = 0; i < items.length; i++) {\n items[i]();\n }\n\n if (!cancelFn) {\n $$rAF(function() {\n if (!cancelFn) nextTick();\n });\n }\n }\n}];\n\n/**\n * @ngdoc directive\n * @name ngAnimateChildren\n * @restrict AE\n * @element ANY\n *\n * @description\n *\n * ngAnimateChildren allows you to specify that children of this element should animate even if any\n * of the children's parents are currently animating. By default, when an element has an active `enter`, `leave`, or `move`\n * (structural) animation, child elements that also have an active structural animation are not animated.\n *\n * Note that even if `ngAnimateChildren` is set, no child animations will run when the parent element is removed from the DOM (`leave` animation).\n *\n *\n * @param {string} ngAnimateChildren If the value is empty, `true` or `on`,\n * then child animations are allowed. If the value is `false`, child animations are not allowed.\n *\n * @example\n * \n \n
\n \n \n
\n
\n
\n List of items:\n
Item {{item}}
\n
\n
\n
\n
\n \n\n .container.ng-enter,\n .container.ng-leave {\n transition: all ease 1.5s;\n }\n\n .container.ng-enter,\n .container.ng-leave-active {\n opacity: 0;\n }\n\n .container.ng-leave,\n .container.ng-enter-active {\n opacity: 1;\n }\n\n .item {\n background: firebrick;\n color: #FFF;\n margin-bottom: 10px;\n }\n\n .item.ng-enter,\n .item.ng-leave {\n transition: transform 1.5s ease;\n }\n\n .item.ng-enter {\n transform: translateX(50px);\n }\n\n .item.ng-enter-active {\n transform: translateX(0);\n }\n \n \n angular.module('ngAnimateChildren', ['ngAnimate'])\n .controller('MainController', function MainController() {\n this.animateChildren = false;\n this.enterElement = false;\n });\n \n
\n */\nvar $$AnimateChildrenDirective = ['$interpolate', function($interpolate) {\n return {\n link: function(scope, element, attrs) {\n var val = attrs.ngAnimateChildren;\n if (isString(val) && val.length === 0) { //empty attribute\n element.data(NG_ANIMATE_CHILDREN_DATA, true);\n } else {\n // Interpolate and set the value, so that it is available to\n // animations that run right after compilation\n setData($interpolate(val)(scope));\n attrs.$observe('ngAnimateChildren', setData);\n }\n\n function setData(value) {\n value = value === 'on' || value === 'true';\n element.data(NG_ANIMATE_CHILDREN_DATA, value);\n }\n }\n };\n}];\n\n/* exported $AnimateCssProvider */\n\nvar ANIMATE_TIMER_KEY = '$$animateCss';\n\n/**\n * @ngdoc service\n * @name $animateCss\n * @kind object\n *\n * @description\n * The `$animateCss` service is a useful utility to trigger customized CSS-based transitions/keyframes\n * from a JavaScript-based animation or directly from a directive. The purpose of `$animateCss` is NOT\n * to side-step how `$animate` and ngAnimate work, but the goal is to allow pre-existing animations or\n * directives to create more complex animations that can be purely driven using CSS code.\n *\n * Note that only browsers that support CSS transitions and/or keyframe animations are capable of\n * rendering animations triggered via `$animateCss` (bad news for IE9 and lower).\n *\n * ## General Use\n * Once again, `$animateCss` is designed to be used inside of a registered JavaScript animation that\n * is powered by ngAnimate. It is possible to use `$animateCss` directly inside of a directive, however,\n * any automatic control over cancelling animations and/or preventing animations from being run on\n * child elements will not be handled by AngularJS. For this to work as expected, please use `$animate` to\n * trigger the animation and then setup a JavaScript animation that injects `$animateCss` to trigger\n * the CSS animation.\n *\n * The example below shows how we can create a folding animation on an element using `ng-if`:\n *\n * ```html\n * \n *
\n * This element will go BOOM\n *
\n * \n * ```\n *\n * Now we create the **JavaScript animation** that will trigger the CSS transition:\n *\n * ```js\n * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) {\n * return {\n * enter: function(element, doneFn) {\n * var height = element[0].offsetHeight;\n * return $animateCss(element, {\n * from: { height:'0px' },\n * to: { height:height + 'px' },\n * duration: 1 // one second\n * });\n * }\n * }\n * }]);\n * ```\n *\n * ## More Advanced Uses\n *\n * `$animateCss` is the underlying code that ngAnimate uses to power **CSS-based animations** behind the scenes. Therefore CSS hooks\n * like `.ng-EVENT`, `.ng-EVENT-active`, `.ng-EVENT-stagger` are all features that can be triggered using `$animateCss` via JavaScript code.\n *\n * This also means that just about any combination of adding classes, removing classes, setting styles, dynamically setting a keyframe animation,\n * applying a hardcoded duration or delay value, changing the animation easing or applying a stagger animation are all options that work with\n * `$animateCss`. The service itself is smart enough to figure out the combination of options and examine the element styling properties in order\n * to provide a working animation that will run in CSS.\n *\n * The example below showcases a more advanced version of the `.fold-animation` from the example above:\n *\n * ```js\n * ngModule.animation('.fold-animation', ['$animateCss', function($animateCss) {\n * return {\n * enter: function(element, doneFn) {\n * var height = element[0].offsetHeight;\n * return $animateCss(element, {\n * addClass: 'red large-text pulse-twice',\n * easing: 'ease-out',\n * from: { height:'0px' },\n * to: { height:height + 'px' },\n * duration: 1 // one second\n * });\n * }\n * }\n * }]);\n * ```\n *\n * Since we're adding/removing CSS classes then the CSS transition will also pick those up:\n *\n * ```css\n * /* since a hardcoded duration value of 1 was provided in the JavaScript animation code,\n * the CSS classes below will be transitioned despite them being defined as regular CSS classes */\n * .red { background:red; }\n * .large-text { font-size:20px; }\n *\n * /* we can also use a keyframe animation and $animateCss will make it work alongside the transition */\n * .pulse-twice {\n * animation: 0.5s pulse linear 2;\n * -webkit-animation: 0.5s pulse linear 2;\n * }\n *\n * @keyframes pulse {\n * from { transform: scale(0.5); }\n * to { transform: scale(1.5); }\n * }\n *\n * @-webkit-keyframes pulse {\n * from { -webkit-transform: scale(0.5); }\n * to { -webkit-transform: scale(1.5); }\n * }\n * ```\n *\n * Given this complex combination of CSS classes, styles and options, `$animateCss` will figure everything out and make the animation happen.\n *\n * ## How the Options are handled\n *\n * `$animateCss` is very versatile and intelligent when it comes to figuring out what configurations to apply to the element to ensure the animation\n * works with the options provided. Say for example we were adding a class that contained a keyframe value and we wanted to also animate some inline\n * styles using the `from` and `to` properties.\n *\n * ```js\n * var animator = $animateCss(element, {\n * from: { background:'red' },\n * to: { background:'blue' }\n * });\n * animator.start();\n * ```\n *\n * ```css\n * .rotating-animation {\n * animation:0.5s rotate linear;\n * -webkit-animation:0.5s rotate linear;\n * }\n *\n * @keyframes rotate {\n * from { transform: rotate(0deg); }\n * to { transform: rotate(360deg); }\n * }\n *\n * @-webkit-keyframes rotate {\n * from { -webkit-transform: rotate(0deg); }\n * to { -webkit-transform: rotate(360deg); }\n * }\n * ```\n *\n * The missing pieces here are that we do not have a transition set (within the CSS code nor within the `$animateCss` options) and the duration of the animation is\n * going to be detected from what the keyframe styles on the CSS class are. In this event, `$animateCss` will automatically create an inline transition\n * style matching the duration detected from the keyframe style (which is present in the CSS class that is being added) and then prepare both the transition\n * and keyframe animations to run in parallel on the element. Then when the animation is underway the provided `from` and `to` CSS styles will be applied\n * and spread across the transition and keyframe animation.\n *\n * ## What is returned\n *\n * `$animateCss` works in two stages: a preparation phase and an animation phase. Therefore when `$animateCss` is first called it will NOT actually\n * start the animation. All that is going on here is that the element is being prepared for the animation (which means that the generated CSS classes are\n * added and removed on the element). Once `$animateCss` is called it will return an object with the following properties:\n *\n * ```js\n * var animator = $animateCss(element, { ... });\n * ```\n *\n * Now what do the contents of our `animator` variable look like:\n *\n * ```js\n * {\n * // starts the animation\n * start: Function,\n *\n * // ends (aborts) the animation\n * end: Function\n * }\n * ```\n *\n * To actually start the animation we need to run `animation.start()` which will then return a promise that we can hook into to detect when the animation ends.\n * If we choose not to run the animation then we MUST run `animation.end()` to perform a cleanup on the element (since some CSS classes and styles may have been\n * applied to the element during the preparation phase). Note that all other properties such as duration, delay, transitions and keyframes are just properties\n * and that changing them will not reconfigure the parameters of the animation.\n *\n * ### runner.done() vs runner.then()\n * It is documented that `animation.start()` will return a promise object and this is true, however, there is also an additional method available on the\n * runner called `.done(callbackFn)`. The done method works the same as `.finally(callbackFn)`, however, it does **not trigger a digest to occur**.\n * Therefore, for performance reasons, it's always best to use `runner.done(callback)` instead of `runner.then()`, `runner.catch()` or `runner.finally()`\n * unless you really need a digest to kick off afterwards.\n *\n * Keep in mind that, to make this easier, ngAnimate has tweaked the JS animations API to recognize when a runner instance is returned from $animateCss\n * (so there is no need to call `runner.done(doneFn)` inside of your JavaScript animation code).\n * Check the {@link ngAnimate.$animateCss#usage animation code above} to see how this works.\n *\n * @param {DOMElement} element the element that will be animated\n * @param {object} options the animation-related options that will be applied during the animation\n *\n * * `event` - The DOM event (e.g. enter, leave, move). When used, a generated CSS class of `ng-EVENT` and `ng-EVENT-active` will be applied\n * to the element during the animation. Multiple events can be provided when spaces are used as a separator. (Note that this will not perform any DOM operation.)\n * * `structural` - Indicates that the `ng-` prefix will be added to the event class. Setting to `false` or omitting will turn `ng-EVENT` and\n * `ng-EVENT-active` in `EVENT` and `EVENT-active`. Unused if `event` is omitted.\n * * `easing` - The CSS easing value that will be applied to the transition or keyframe animation (or both).\n * * `transitionStyle` - The raw CSS transition style that will be used (e.g. `1s linear all`).\n * * `keyframeStyle` - The raw CSS keyframe animation style that will be used (e.g. `1s my_animation linear`).\n * * `from` - The starting CSS styles (a key/value object) that will be applied at the start of the animation.\n * * `to` - The ending CSS styles (a key/value object) that will be applied across the animation via a CSS transition.\n * * `addClass` - A space separated list of CSS classes that will be added to the element and spread across the animation.\n * * `removeClass` - A space separated list of CSS classes that will be removed from the element and spread across the animation.\n * * `duration` - A number value representing the total duration of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `0`\n * is provided then the animation will be skipped entirely.\n * * `delay` - A number value representing the total delay of the transition and/or keyframe (note that a value of 1 is 1000ms). If a value of `true` is\n * used then whatever delay value is detected from the CSS classes will be mirrored on the elements styles (e.g. by setting delay true then the style value\n * of the element will be `transition-delay: DETECTED_VALUE`). Using `true` is useful when you want the CSS classes and inline styles to all share the same\n * CSS delay value.\n * * `stagger` - A numeric time value representing the delay between successively animated elements\n * ({@link ngAnimate#css-staggering-animations Click here to learn how CSS-based staggering works in ngAnimate.})\n * * `staggerIndex` - The numeric index representing the stagger item (e.g. a value of 5 is equal to the sixth item in the stagger; therefore when a\n * `stagger` option value of `0.1` is used then there will be a stagger delay of `600ms`)\n * * `applyClassesEarly` - Whether or not the classes being added or removed will be used when detecting the animation. This is set by `$animate` when enter/leave/move animations are fired to ensure that the CSS classes are resolved in time. (Note that this will prevent any transitions from occurring on the classes being added and removed.)\n * * `cleanupStyles` - Whether or not the provided `from` and `to` styles will be removed once\n * the animation is closed. This is useful for when the styles are used purely for the sake of\n * the animation and do not have a lasting visual effect on the element (e.g. a collapse and open animation).\n * By default this value is set to `false`.\n *\n * @return {object} an object with start and end methods and details about the animation.\n *\n * * `start` - The method to start the animation. This will return a `Promise` when called.\n * * `end` - This method will cancel the animation and remove all applied CSS classes and styles.\n */\nvar ONE_SECOND = 1000;\n\nvar ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;\nvar CLOSING_TIME_BUFFER = 1.5;\n\nvar DETECT_CSS_PROPERTIES = {\n transitionDuration: TRANSITION_DURATION_PROP,\n transitionDelay: TRANSITION_DELAY_PROP,\n transitionProperty: TRANSITION_PROP + PROPERTY_KEY,\n animationDuration: ANIMATION_DURATION_PROP,\n animationDelay: ANIMATION_DELAY_PROP,\n animationIterationCount: ANIMATION_PROP + ANIMATION_ITERATION_COUNT_KEY\n};\n\nvar DETECT_STAGGER_CSS_PROPERTIES = {\n transitionDuration: TRANSITION_DURATION_PROP,\n transitionDelay: TRANSITION_DELAY_PROP,\n animationDuration: ANIMATION_DURATION_PROP,\n animationDelay: ANIMATION_DELAY_PROP\n};\n\nfunction getCssKeyframeDurationStyle(duration) {\n return [ANIMATION_DURATION_PROP, duration + 's'];\n}\n\nfunction getCssDelayStyle(delay, isKeyframeAnimation) {\n var prop = isKeyframeAnimation ? ANIMATION_DELAY_PROP : TRANSITION_DELAY_PROP;\n return [prop, delay + 's'];\n}\n\nfunction computeCssStyles($window, element, properties) {\n var styles = Object.create(null);\n var detectedStyles = $window.getComputedStyle(element) || {};\n forEach(properties, function(formalStyleName, actualStyleName) {\n var val = detectedStyles[formalStyleName];\n if (val) {\n var c = val.charAt(0);\n\n // only numerical-based values have a negative sign or digit as the first value\n if (c === '-' || c === '+' || c >= 0) {\n val = parseMaxTime(val);\n }\n\n // by setting this to null in the event that the delay is not set or is set directly as 0\n // then we can still allow for negative values to be used later on and not mistake this\n // value for being greater than any other negative value.\n if (val === 0) {\n val = null;\n }\n styles[actualStyleName] = val;\n }\n });\n\n return styles;\n}\n\nfunction parseMaxTime(str) {\n var maxValue = 0;\n var values = str.split(/\\s*,\\s*/);\n forEach(values, function(value) {\n // it's always safe to consider only second values and omit `ms` values since\n // getComputedStyle will always handle the conversion for us\n if (value.charAt(value.length - 1) === 's') {\n value = value.substring(0, value.length - 1);\n }\n value = parseFloat(value) || 0;\n maxValue = maxValue ? Math.max(value, maxValue) : value;\n });\n return maxValue;\n}\n\nfunction truthyTimingValue(val) {\n return val === 0 || val != null;\n}\n\nfunction getCssTransitionDurationStyle(duration, applyOnlyDuration) {\n var style = TRANSITION_PROP;\n var value = duration + 's';\n if (applyOnlyDuration) {\n style += DURATION_KEY;\n } else {\n value += ' linear all';\n }\n return [style, value];\n}\n\n// we do not reassign an already present style value since\n// if we detect the style property value again we may be\n// detecting styles that were added via the `from` styles.\n// We make use of `isDefined` here since an empty string\n// or null value (which is what getPropertyValue will return\n// for a non-existing style) will still be marked as a valid\n// value for the style (a falsy value implies that the style\n// is to be removed at the end of the animation). If we had a simple\n// \"OR\" statement then it would not be enough to catch that.\nfunction registerRestorableStyles(backup, node, properties) {\n forEach(properties, function(prop) {\n backup[prop] = isDefined(backup[prop])\n ? backup[prop]\n : node.style.getPropertyValue(prop);\n });\n}\n\nvar $AnimateCssProvider = ['$animateProvider', /** @this */ function($animateProvider) {\n\n this.$get = ['$window', '$$jqLite', '$$AnimateRunner', '$timeout', '$$animateCache',\n '$$forceReflow', '$sniffer', '$$rAFScheduler', '$$animateQueue',\n function($window, $$jqLite, $$AnimateRunner, $timeout, $$animateCache,\n $$forceReflow, $sniffer, $$rAFScheduler, $$animateQueue) {\n\n var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);\n\n function computeCachedCssStyles(node, className, cacheKey, allowNoDuration, properties) {\n var timings = $$animateCache.get(cacheKey);\n\n if (!timings) {\n timings = computeCssStyles($window, node, properties);\n if (timings.animationIterationCount === 'infinite') {\n timings.animationIterationCount = 1;\n }\n }\n\n // if a css animation has no duration we\n // should mark that so that repeated addClass/removeClass calls are skipped\n var hasDuration = allowNoDuration || (timings.transitionDuration > 0 || timings.animationDuration > 0);\n\n // we keep putting this in multiple times even though the value and the cacheKey are the same\n // because we're keeping an internal tally of how many duplicate animations are detected.\n $$animateCache.put(cacheKey, timings, hasDuration);\n\n return timings;\n }\n\n function computeCachedCssStaggerStyles(node, className, cacheKey, properties) {\n var stagger;\n var staggerCacheKey = 'stagger-' + cacheKey;\n\n // if we have one or more existing matches of matching elements\n // containing the same parent + CSS styles (which is how cacheKey works)\n // then staggering is possible\n if ($$animateCache.count(cacheKey) > 0) {\n stagger = $$animateCache.get(staggerCacheKey);\n\n if (!stagger) {\n var staggerClassName = pendClasses(className, '-stagger');\n\n $$jqLite.addClass(node, staggerClassName);\n\n stagger = computeCssStyles($window, node, properties);\n\n // force the conversion of a null value to zero incase not set\n stagger.animationDuration = Math.max(stagger.animationDuration, 0);\n stagger.transitionDuration = Math.max(stagger.transitionDuration, 0);\n\n $$jqLite.removeClass(node, staggerClassName);\n\n $$animateCache.put(staggerCacheKey, stagger, true);\n }\n }\n\n return stagger || {};\n }\n\n var rafWaitQueue = [];\n function waitUntilQuiet(callback) {\n rafWaitQueue.push(callback);\n $$rAFScheduler.waitUntilQuiet(function() {\n $$animateCache.flush();\n\n // DO NOT REMOVE THIS LINE OR REFACTOR OUT THE `pageWidth` variable.\n // PLEASE EXAMINE THE `$$forceReflow` service to understand why.\n var pageWidth = $$forceReflow();\n\n // we use a for loop to ensure that if the queue is changed\n // during this looping then it will consider new requests\n for (var i = 0; i < rafWaitQueue.length; i++) {\n rafWaitQueue[i](pageWidth);\n }\n rafWaitQueue.length = 0;\n });\n }\n\n function computeTimings(node, className, cacheKey, allowNoDuration) {\n var timings = computeCachedCssStyles(node, className, cacheKey, allowNoDuration, DETECT_CSS_PROPERTIES);\n var aD = timings.animationDelay;\n var tD = timings.transitionDelay;\n timings.maxDelay = aD && tD\n ? Math.max(aD, tD)\n : (aD || tD);\n timings.maxDuration = Math.max(\n timings.animationDuration * timings.animationIterationCount,\n timings.transitionDuration);\n\n return timings;\n }\n\n return function init(element, initialOptions) {\n // all of the animation functions should create\n // a copy of the options data, however, if a\n // parent service has already created a copy then\n // we should stick to using that\n var options = initialOptions || {};\n if (!options.$$prepared) {\n options = prepareAnimationOptions(copy(options));\n }\n\n var restoreStyles = {};\n var node = getDomNode(element);\n if (!node\n || !node.parentNode\n || !$$animateQueue.enabled()) {\n return closeAndReturnNoopAnimator();\n }\n\n var temporaryStyles = [];\n var classes = element.attr('class');\n var styles = packageStyles(options);\n var animationClosed;\n var animationPaused;\n var animationCompleted;\n var runner;\n var runnerHost;\n var maxDelay;\n var maxDelayTime;\n var maxDuration;\n var maxDurationTime;\n var startTime;\n var events = [];\n\n if (options.duration === 0 || (!$sniffer.animations && !$sniffer.transitions)) {\n return closeAndReturnNoopAnimator();\n }\n\n var method = options.event && isArray(options.event)\n ? options.event.join(' ')\n : options.event;\n\n var isStructural = method && options.structural;\n var structuralClassName = '';\n var addRemoveClassName = '';\n\n if (isStructural) {\n structuralClassName = pendClasses(method, EVENT_CLASS_PREFIX, true);\n } else if (method) {\n structuralClassName = method;\n }\n\n if (options.addClass) {\n addRemoveClassName += pendClasses(options.addClass, ADD_CLASS_SUFFIX);\n }\n\n if (options.removeClass) {\n if (addRemoveClassName.length) {\n addRemoveClassName += ' ';\n }\n addRemoveClassName += pendClasses(options.removeClass, REMOVE_CLASS_SUFFIX);\n }\n\n // there may be a situation where a structural animation is combined together\n // with CSS classes that need to resolve before the animation is computed.\n // However this means that there is no explicit CSS code to block the animation\n // from happening (by setting 0s none in the class name). If this is the case\n // we need to apply the classes before the first rAF so we know to continue if\n // there actually is a detected transition or keyframe animation\n if (options.applyClassesEarly && addRemoveClassName.length) {\n applyAnimationClasses(element, options);\n }\n\n var preparationClasses = [structuralClassName, addRemoveClassName].join(' ').trim();\n var fullClassName = classes + ' ' + preparationClasses;\n var hasToStyles = styles.to && Object.keys(styles.to).length > 0;\n var containsKeyframeAnimation = (options.keyframeStyle || '').length > 0;\n\n // there is no way we can trigger an animation if no styles and\n // no classes are being applied which would then trigger a transition,\n // unless there a is raw keyframe value that is applied to the element.\n if (!containsKeyframeAnimation\n && !hasToStyles\n && !preparationClasses) {\n return closeAndReturnNoopAnimator();\n }\n\n var stagger, cacheKey = $$animateCache.cacheKey(node, method, options.addClass, options.removeClass);\n if ($$animateCache.containsCachedAnimationWithoutDuration(cacheKey)) {\n preparationClasses = null;\n return closeAndReturnNoopAnimator();\n }\n\n if (options.stagger > 0) {\n var staggerVal = parseFloat(options.stagger);\n stagger = {\n transitionDelay: staggerVal,\n animationDelay: staggerVal,\n transitionDuration: 0,\n animationDuration: 0\n };\n } else {\n stagger = computeCachedCssStaggerStyles(node, preparationClasses, cacheKey, DETECT_STAGGER_CSS_PROPERTIES);\n }\n\n if (!options.$$skipPreparationClasses) {\n $$jqLite.addClass(element, preparationClasses);\n }\n\n var applyOnlyDuration;\n\n if (options.transitionStyle) {\n var transitionStyle = [TRANSITION_PROP, options.transitionStyle];\n applyInlineStyle(node, transitionStyle);\n temporaryStyles.push(transitionStyle);\n }\n\n if (options.duration >= 0) {\n applyOnlyDuration = node.style[TRANSITION_PROP].length > 0;\n var durationStyle = getCssTransitionDurationStyle(options.duration, applyOnlyDuration);\n\n // we set the duration so that it will be picked up by getComputedStyle later\n applyInlineStyle(node, durationStyle);\n temporaryStyles.push(durationStyle);\n }\n\n if (options.keyframeStyle) {\n var keyframeStyle = [ANIMATION_PROP, options.keyframeStyle];\n applyInlineStyle(node, keyframeStyle);\n temporaryStyles.push(keyframeStyle);\n }\n\n var itemIndex = stagger\n ? options.staggerIndex >= 0\n ? options.staggerIndex\n : $$animateCache.count(cacheKey)\n : 0;\n\n var isFirst = itemIndex === 0;\n\n // this is a pre-emptive way of forcing the setup classes to be added and applied INSTANTLY\n // without causing any combination of transitions to kick in. By adding a negative delay value\n // it forces the setup class' transition to end immediately. We later then remove the negative\n // transition delay to allow for the transition to naturally do it's thing. The beauty here is\n // that if there is no transition defined then nothing will happen and this will also allow\n // other transitions to be stacked on top of each other without any chopping them out.\n if (isFirst && !options.skipBlocking) {\n helpers.blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);\n }\n\n var timings = computeTimings(node, fullClassName, cacheKey, !isStructural);\n var relativeDelay = timings.maxDelay;\n maxDelay = Math.max(relativeDelay, 0);\n maxDuration = timings.maxDuration;\n\n var flags = {};\n flags.hasTransitions = timings.transitionDuration > 0;\n flags.hasAnimations = timings.animationDuration > 0;\n flags.hasTransitionAll = flags.hasTransitions && timings.transitionProperty === 'all';\n flags.applyTransitionDuration = hasToStyles && (\n (flags.hasTransitions && !flags.hasTransitionAll)\n || (flags.hasAnimations && !flags.hasTransitions));\n flags.applyAnimationDuration = options.duration && flags.hasAnimations;\n flags.applyTransitionDelay = truthyTimingValue(options.delay) && (flags.applyTransitionDuration || flags.hasTransitions);\n flags.applyAnimationDelay = truthyTimingValue(options.delay) && flags.hasAnimations;\n flags.recalculateTimingStyles = addRemoveClassName.length > 0;\n\n if (flags.applyTransitionDuration || flags.applyAnimationDuration) {\n maxDuration = options.duration ? parseFloat(options.duration) : maxDuration;\n\n if (flags.applyTransitionDuration) {\n flags.hasTransitions = true;\n timings.transitionDuration = maxDuration;\n applyOnlyDuration = node.style[TRANSITION_PROP + PROPERTY_KEY].length > 0;\n temporaryStyles.push(getCssTransitionDurationStyle(maxDuration, applyOnlyDuration));\n }\n\n if (flags.applyAnimationDuration) {\n flags.hasAnimations = true;\n timings.animationDuration = maxDuration;\n temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration));\n }\n }\n\n if (maxDuration === 0 && !flags.recalculateTimingStyles) {\n return closeAndReturnNoopAnimator();\n }\n\n var activeClasses = pendClasses(preparationClasses, ACTIVE_CLASS_SUFFIX);\n\n if (options.delay != null) {\n var delayStyle;\n if (typeof options.delay !== 'boolean') {\n delayStyle = parseFloat(options.delay);\n // number in options.delay means we have to recalculate the delay for the closing timeout\n maxDelay = Math.max(delayStyle, 0);\n }\n\n if (flags.applyTransitionDelay) {\n temporaryStyles.push(getCssDelayStyle(delayStyle));\n }\n\n if (flags.applyAnimationDelay) {\n temporaryStyles.push(getCssDelayStyle(delayStyle, true));\n }\n }\n\n // we need to recalculate the delay value since we used a pre-emptive negative\n // delay value and the delay value is required for the final event checking. This\n // property will ensure that this will happen after the RAF phase has passed.\n if (options.duration == null && timings.transitionDuration > 0) {\n flags.recalculateTimingStyles = flags.recalculateTimingStyles || isFirst;\n }\n\n maxDelayTime = maxDelay * ONE_SECOND;\n maxDurationTime = maxDuration * ONE_SECOND;\n if (!options.skipBlocking) {\n flags.blockTransition = timings.transitionDuration > 0;\n flags.blockKeyframeAnimation = timings.animationDuration > 0 &&\n stagger.animationDelay > 0 &&\n stagger.animationDuration === 0;\n }\n\n if (options.from) {\n if (options.cleanupStyles) {\n registerRestorableStyles(restoreStyles, node, Object.keys(options.from));\n }\n applyAnimationFromStyles(element, options);\n }\n\n if (flags.blockTransition || flags.blockKeyframeAnimation) {\n applyBlocking(maxDuration);\n } else if (!options.skipBlocking) {\n helpers.blockTransitions(node, false);\n }\n\n // TODO(matsko): for 1.5 change this code to have an animator object for better debugging\n return {\n $$willAnimate: true,\n end: endFn,\n start: function() {\n if (animationClosed) return;\n\n runnerHost = {\n end: endFn,\n cancel: cancelFn,\n resume: null, //this will be set during the start() phase\n pause: null\n };\n\n runner = new $$AnimateRunner(runnerHost);\n\n waitUntilQuiet(start);\n\n // we don't have access to pause/resume the animation\n // since it hasn't run yet. AnimateRunner will therefore\n // set noop functions for resume and pause and they will\n // later be overridden once the animation is triggered\n return runner;\n }\n };\n\n function endFn() {\n close();\n }\n\n function cancelFn() {\n close(true);\n }\n\n function close(rejected) {\n // if the promise has been called already then we shouldn't close\n // the animation again\n if (animationClosed || (animationCompleted && animationPaused)) return;\n animationClosed = true;\n animationPaused = false;\n\n if (preparationClasses && !options.$$skipPreparationClasses) {\n $$jqLite.removeClass(element, preparationClasses);\n }\n\n if (activeClasses) {\n $$jqLite.removeClass(element, activeClasses);\n }\n\n blockKeyframeAnimations(node, false);\n helpers.blockTransitions(node, false);\n\n forEach(temporaryStyles, function(entry) {\n // There is only one way to remove inline style properties entirely from elements.\n // By using `removeProperty` this works, but we need to convert camel-cased CSS\n // styles down to hyphenated values.\n node.style[entry[0]] = '';\n });\n\n applyAnimationClasses(element, options);\n applyAnimationStyles(element, options);\n\n if (Object.keys(restoreStyles).length) {\n forEach(restoreStyles, function(value, prop) {\n if (value) {\n node.style.setProperty(prop, value);\n } else {\n node.style.removeProperty(prop);\n }\n });\n }\n\n // the reason why we have this option is to allow a synchronous closing callback\n // that is fired as SOON as the animation ends (when the CSS is removed) or if\n // the animation never takes off at all. A good example is a leave animation since\n // the element must be removed just after the animation is over or else the element\n // will appear on screen for one animation frame causing an overbearing flicker.\n if (options.onDone) {\n options.onDone();\n }\n\n if (events && events.length) {\n // Remove the transitionend / animationend listener(s)\n element.off(events.join(' '), onAnimationProgress);\n }\n\n //Cancel the fallback closing timeout and remove the timer data\n var animationTimerData = element.data(ANIMATE_TIMER_KEY);\n if (animationTimerData) {\n $timeout.cancel(animationTimerData[0].timer);\n element.removeData(ANIMATE_TIMER_KEY);\n }\n\n // if the preparation function fails then the promise is not setup\n if (runner) {\n runner.complete(!rejected);\n }\n }\n\n function applyBlocking(duration) {\n if (flags.blockTransition) {\n helpers.blockTransitions(node, duration);\n }\n\n if (flags.blockKeyframeAnimation) {\n blockKeyframeAnimations(node, !!duration);\n }\n }\n\n function closeAndReturnNoopAnimator() {\n runner = new $$AnimateRunner({\n end: endFn,\n cancel: cancelFn\n });\n\n // should flush the cache animation\n waitUntilQuiet(noop);\n close();\n\n return {\n $$willAnimate: false,\n start: function() {\n return runner;\n },\n end: endFn\n };\n }\n\n function onAnimationProgress(event) {\n event.stopPropagation();\n var ev = event.originalEvent || event;\n\n if (ev.target !== node) {\n // Since TransitionEvent / AnimationEvent bubble up,\n // we have to ignore events by finished child animations\n return;\n }\n\n // we now always use `Date.now()` due to the recent changes with\n // event.timeStamp in Firefox, Webkit and Chrome (see #13494 for more info)\n var timeStamp = ev.$manualTimeStamp || Date.now();\n\n /* Firefox (or possibly just Gecko) likes to not round values up\n * when a ms measurement is used for the animation */\n var elapsedTime = parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));\n\n /* $manualTimeStamp is a mocked timeStamp value which is set\n * within browserTrigger(). This is only here so that tests can\n * mock animations properly. Real events fallback to event.timeStamp,\n * or, if they don't, then a timeStamp is automatically created for them.\n * We're checking to see if the timeStamp surpasses the expected delay,\n * but we're using elapsedTime instead of the timeStamp on the 2nd\n * pre-condition since animationPauseds sometimes close off early */\n if (Math.max(timeStamp - startTime, 0) >= maxDelayTime && elapsedTime >= maxDuration) {\n // we set this flag to ensure that if the transition is paused then, when resumed,\n // the animation will automatically close itself since transitions cannot be paused.\n animationCompleted = true;\n close();\n }\n }\n\n function start() {\n if (animationClosed) return;\n if (!node.parentNode) {\n close();\n return;\n }\n\n // even though we only pause keyframe animations here the pause flag\n // will still happen when transitions are used. Only the transition will\n // not be paused since that is not possible. If the animation ends when\n // paused then it will not complete until unpaused or cancelled.\n var playPause = function(playAnimation) {\n if (!animationCompleted) {\n animationPaused = !playAnimation;\n if (timings.animationDuration) {\n var value = blockKeyframeAnimations(node, animationPaused);\n if (animationPaused) {\n temporaryStyles.push(value);\n } else {\n removeFromArray(temporaryStyles, value);\n }\n }\n } else if (animationPaused && playAnimation) {\n animationPaused = false;\n close();\n }\n };\n\n // checking the stagger duration prevents an accidentally cascade of the CSS delay style\n // being inherited from the parent. If the transition duration is zero then we can safely\n // rely that the delay value is an intentional stagger delay style.\n var maxStagger = itemIndex > 0\n && ((timings.transitionDuration && stagger.transitionDuration === 0) ||\n (timings.animationDuration && stagger.animationDuration === 0))\n && Math.max(stagger.animationDelay, stagger.transitionDelay);\n if (maxStagger) {\n $timeout(triggerAnimationStart,\n Math.floor(maxStagger * itemIndex * ONE_SECOND),\n false);\n } else {\n triggerAnimationStart();\n }\n\n // this will decorate the existing promise runner with pause/resume methods\n runnerHost.resume = function() {\n playPause(true);\n };\n\n runnerHost.pause = function() {\n playPause(false);\n };\n\n function triggerAnimationStart() {\n // just incase a stagger animation kicks in when the animation\n // itself was cancelled entirely\n if (animationClosed) return;\n\n applyBlocking(false);\n\n forEach(temporaryStyles, function(entry) {\n var key = entry[0];\n var value = entry[1];\n node.style[key] = value;\n });\n\n applyAnimationClasses(element, options);\n $$jqLite.addClass(element, activeClasses);\n\n if (flags.recalculateTimingStyles) {\n fullClassName = node.getAttribute('class') + ' ' + preparationClasses;\n cacheKey = $$animateCache.cacheKey(node, method, options.addClass, options.removeClass);\n\n timings = computeTimings(node, fullClassName, cacheKey, false);\n relativeDelay = timings.maxDelay;\n maxDelay = Math.max(relativeDelay, 0);\n maxDuration = timings.maxDuration;\n\n if (maxDuration === 0) {\n close();\n return;\n }\n\n flags.hasTransitions = timings.transitionDuration > 0;\n flags.hasAnimations = timings.animationDuration > 0;\n }\n\n if (flags.applyAnimationDelay) {\n relativeDelay = typeof options.delay !== 'boolean' && truthyTimingValue(options.delay)\n ? parseFloat(options.delay)\n : relativeDelay;\n\n maxDelay = Math.max(relativeDelay, 0);\n timings.animationDelay = relativeDelay;\n delayStyle = getCssDelayStyle(relativeDelay, true);\n temporaryStyles.push(delayStyle);\n node.style[delayStyle[0]] = delayStyle[1];\n }\n\n maxDelayTime = maxDelay * ONE_SECOND;\n maxDurationTime = maxDuration * ONE_SECOND;\n\n if (options.easing) {\n var easeProp, easeVal = options.easing;\n if (flags.hasTransitions) {\n easeProp = TRANSITION_PROP + TIMING_KEY;\n temporaryStyles.push([easeProp, easeVal]);\n node.style[easeProp] = easeVal;\n }\n if (flags.hasAnimations) {\n easeProp = ANIMATION_PROP + TIMING_KEY;\n temporaryStyles.push([easeProp, easeVal]);\n node.style[easeProp] = easeVal;\n }\n }\n\n if (timings.transitionDuration) {\n events.push(TRANSITIONEND_EVENT);\n }\n\n if (timings.animationDuration) {\n events.push(ANIMATIONEND_EVENT);\n }\n\n startTime = Date.now();\n var timerTime = maxDelayTime + CLOSING_TIME_BUFFER * maxDurationTime;\n var endTime = startTime + timerTime;\n\n var animationsData = element.data(ANIMATE_TIMER_KEY) || [];\n var setupFallbackTimer = true;\n if (animationsData.length) {\n var currentTimerData = animationsData[0];\n setupFallbackTimer = endTime > currentTimerData.expectedEndTime;\n if (setupFallbackTimer) {\n $timeout.cancel(currentTimerData.timer);\n } else {\n animationsData.push(close);\n }\n }\n\n if (setupFallbackTimer) {\n var timer = $timeout(onAnimationExpired, timerTime, false);\n animationsData[0] = {\n timer: timer,\n expectedEndTime: endTime\n };\n animationsData.push(close);\n element.data(ANIMATE_TIMER_KEY, animationsData);\n }\n\n if (events.length) {\n element.on(events.join(' '), onAnimationProgress);\n }\n\n if (options.to) {\n if (options.cleanupStyles) {\n registerRestorableStyles(restoreStyles, node, Object.keys(options.to));\n }\n applyAnimationToStyles(element, options);\n }\n }\n\n function onAnimationExpired() {\n var animationsData = element.data(ANIMATE_TIMER_KEY);\n\n // this will be false in the event that the element was\n // removed from the DOM (via a leave animation or something\n // similar)\n if (animationsData) {\n for (var i = 1; i < animationsData.length; i++) {\n animationsData[i]();\n }\n element.removeData(ANIMATE_TIMER_KEY);\n }\n }\n }\n };\n }];\n}];\n\nvar $$AnimateCssDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {\n $$animationProvider.drivers.push('$$animateCssDriver');\n\n var NG_ANIMATE_SHIM_CLASS_NAME = 'ng-animate-shim';\n var NG_ANIMATE_ANCHOR_CLASS_NAME = 'ng-anchor';\n\n var NG_OUT_ANCHOR_CLASS_NAME = 'ng-anchor-out';\n var NG_IN_ANCHOR_CLASS_NAME = 'ng-anchor-in';\n\n function isDocumentFragment(node) {\n return node.parentNode && node.parentNode.nodeType === 11;\n }\n\n this.$get = ['$animateCss', '$rootScope', '$$AnimateRunner', '$rootElement', '$sniffer', '$$jqLite', '$document',\n function($animateCss, $rootScope, $$AnimateRunner, $rootElement, $sniffer, $$jqLite, $document) {\n\n // only browsers that support these properties can render animations\n if (!$sniffer.animations && !$sniffer.transitions) return noop;\n\n var bodyNode = $document[0].body;\n var rootNode = getDomNode($rootElement);\n\n var rootBodyElement = jqLite(\n // this is to avoid using something that exists outside of the body\n // we also special case the doc fragment case because our unit test code\n // appends the $rootElement to the body after the app has been bootstrapped\n isDocumentFragment(rootNode) || bodyNode.contains(rootNode) ? rootNode : bodyNode\n );\n\n return function initDriverFn(animationDetails) {\n return animationDetails.from && animationDetails.to\n ? prepareFromToAnchorAnimation(animationDetails.from,\n animationDetails.to,\n animationDetails.classes,\n animationDetails.anchors)\n : prepareRegularAnimation(animationDetails);\n };\n\n function filterCssClasses(classes) {\n //remove all the `ng-` stuff\n return classes.replace(/\\bng-\\S+\\b/g, '');\n }\n\n function getUniqueValues(a, b) {\n if (isString(a)) a = a.split(' ');\n if (isString(b)) b = b.split(' ');\n return a.filter(function(val) {\n return b.indexOf(val) === -1;\n }).join(' ');\n }\n\n function prepareAnchoredAnimation(classes, outAnchor, inAnchor) {\n var clone = jqLite(getDomNode(outAnchor).cloneNode(true));\n var startingClasses = filterCssClasses(getClassVal(clone));\n\n outAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME);\n inAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME);\n\n clone.addClass(NG_ANIMATE_ANCHOR_CLASS_NAME);\n\n rootBodyElement.append(clone);\n\n var animatorIn, animatorOut = prepareOutAnimation();\n\n // the user may not end up using the `out` animation and\n // only making use of the `in` animation or vice-versa.\n // In either case we should allow this and not assume the\n // animation is over unless both animations are not used.\n if (!animatorOut) {\n animatorIn = prepareInAnimation();\n if (!animatorIn) {\n return end();\n }\n }\n\n var startingAnimator = animatorOut || animatorIn;\n\n return {\n start: function() {\n var runner;\n\n var currentAnimation = startingAnimator.start();\n currentAnimation.done(function() {\n currentAnimation = null;\n if (!animatorIn) {\n animatorIn = prepareInAnimation();\n if (animatorIn) {\n currentAnimation = animatorIn.start();\n currentAnimation.done(function() {\n currentAnimation = null;\n end();\n runner.complete();\n });\n return currentAnimation;\n }\n }\n // in the event that there is no `in` animation\n end();\n runner.complete();\n });\n\n runner = new $$AnimateRunner({\n end: endFn,\n cancel: endFn\n });\n\n return runner;\n\n function endFn() {\n if (currentAnimation) {\n currentAnimation.end();\n }\n }\n }\n };\n\n function calculateAnchorStyles(anchor) {\n var styles = {};\n\n var coords = getDomNode(anchor).getBoundingClientRect();\n\n // we iterate directly since safari messes up and doesn't return\n // all the keys for the coords object when iterated\n forEach(['width','height','top','left'], function(key) {\n var value = coords[key];\n switch (key) {\n case 'top':\n value += bodyNode.scrollTop;\n break;\n case 'left':\n value += bodyNode.scrollLeft;\n break;\n }\n styles[key] = Math.floor(value) + 'px';\n });\n return styles;\n }\n\n function prepareOutAnimation() {\n var animator = $animateCss(clone, {\n addClass: NG_OUT_ANCHOR_CLASS_NAME,\n delay: true,\n from: calculateAnchorStyles(outAnchor)\n });\n\n // read the comment within `prepareRegularAnimation` to understand\n // why this check is necessary\n return animator.$$willAnimate ? animator : null;\n }\n\n function getClassVal(element) {\n return element.attr('class') || '';\n }\n\n function prepareInAnimation() {\n var endingClasses = filterCssClasses(getClassVal(inAnchor));\n var toAdd = getUniqueValues(endingClasses, startingClasses);\n var toRemove = getUniqueValues(startingClasses, endingClasses);\n\n var animator = $animateCss(clone, {\n to: calculateAnchorStyles(inAnchor),\n addClass: NG_IN_ANCHOR_CLASS_NAME + ' ' + toAdd,\n removeClass: NG_OUT_ANCHOR_CLASS_NAME + ' ' + toRemove,\n delay: true\n });\n\n // read the comment within `prepareRegularAnimation` to understand\n // why this check is necessary\n return animator.$$willAnimate ? animator : null;\n }\n\n function end() {\n clone.remove();\n outAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME);\n inAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME);\n }\n }\n\n function prepareFromToAnchorAnimation(from, to, classes, anchors) {\n var fromAnimation = prepareRegularAnimation(from, noop);\n var toAnimation = prepareRegularAnimation(to, noop);\n\n var anchorAnimations = [];\n forEach(anchors, function(anchor) {\n var outElement = anchor['out'];\n var inElement = anchor['in'];\n var animator = prepareAnchoredAnimation(classes, outElement, inElement);\n if (animator) {\n anchorAnimations.push(animator);\n }\n });\n\n // no point in doing anything when there are no elements to animate\n if (!fromAnimation && !toAnimation && anchorAnimations.length === 0) return;\n\n return {\n start: function() {\n var animationRunners = [];\n\n if (fromAnimation) {\n animationRunners.push(fromAnimation.start());\n }\n\n if (toAnimation) {\n animationRunners.push(toAnimation.start());\n }\n\n forEach(anchorAnimations, function(animation) {\n animationRunners.push(animation.start());\n });\n\n var runner = new $$AnimateRunner({\n end: endFn,\n cancel: endFn // CSS-driven animations cannot be cancelled, only ended\n });\n\n $$AnimateRunner.all(animationRunners, function(status) {\n runner.complete(status);\n });\n\n return runner;\n\n function endFn() {\n forEach(animationRunners, function(runner) {\n runner.end();\n });\n }\n }\n };\n }\n\n function prepareRegularAnimation(animationDetails) {\n var element = animationDetails.element;\n var options = animationDetails.options || {};\n\n if (animationDetails.structural) {\n options.event = animationDetails.event;\n options.structural = true;\n options.applyClassesEarly = true;\n\n // we special case the leave animation since we want to ensure that\n // the element is removed as soon as the animation is over. Otherwise\n // a flicker might appear or the element may not be removed at all\n if (animationDetails.event === 'leave') {\n options.onDone = options.domOperation;\n }\n }\n\n // We assign the preparationClasses as the actual animation event since\n // the internals of $animateCss will just suffix the event token values\n // with `-active` to trigger the animation.\n if (options.preparationClasses) {\n options.event = concatWithSpace(options.event, options.preparationClasses);\n }\n\n var animator = $animateCss(element, options);\n\n // the driver lookup code inside of $$animation attempts to spawn a\n // driver one by one until a driver returns a.$$willAnimate animator object.\n // $animateCss will always return an object, however, it will pass in\n // a flag as a hint as to whether an animation was detected or not\n return animator.$$willAnimate ? animator : null;\n }\n }];\n}];\n\n// TODO(matsko): use caching here to speed things up for detection\n// TODO(matsko): add documentation\n// by the time...\n\nvar $$AnimateJsProvider = ['$animateProvider', /** @this */ function($animateProvider) {\n this.$get = ['$injector', '$$AnimateRunner', '$$jqLite',\n function($injector, $$AnimateRunner, $$jqLite) {\n\n var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);\n // $animateJs(element, 'enter');\n return function(element, event, classes, options) {\n var animationClosed = false;\n\n // the `classes` argument is optional and if it is not used\n // then the classes will be resolved from the element's className\n // property as well as options.addClass/options.removeClass.\n if (arguments.length === 3 && isObject(classes)) {\n options = classes;\n classes = null;\n }\n\n options = prepareAnimationOptions(options);\n if (!classes) {\n classes = element.attr('class') || '';\n if (options.addClass) {\n classes += ' ' + options.addClass;\n }\n if (options.removeClass) {\n classes += ' ' + options.removeClass;\n }\n }\n\n var classesToAdd = options.addClass;\n var classesToRemove = options.removeClass;\n\n // the lookupAnimations function returns a series of animation objects that are\n // matched up with one or more of the CSS classes. These animation objects are\n // defined via the module.animation factory function. If nothing is detected then\n // we don't return anything which then makes $animation query the next driver.\n var animations = lookupAnimations(classes);\n var before, after;\n if (animations.length) {\n var afterFn, beforeFn;\n if (event === 'leave') {\n beforeFn = 'leave';\n afterFn = 'afterLeave'; // TODO(matsko): get rid of this\n } else {\n beforeFn = 'before' + event.charAt(0).toUpperCase() + event.substr(1);\n afterFn = event;\n }\n\n if (event !== 'enter' && event !== 'move') {\n before = packageAnimations(element, event, options, animations, beforeFn);\n }\n after = packageAnimations(element, event, options, animations, afterFn);\n }\n\n // no matching animations\n if (!before && !after) return;\n\n function applyOptions() {\n options.domOperation();\n applyAnimationClasses(element, options);\n }\n\n function close() {\n animationClosed = true;\n applyOptions();\n applyAnimationStyles(element, options);\n }\n\n var runner;\n\n return {\n $$willAnimate: true,\n end: function() {\n if (runner) {\n runner.end();\n } else {\n close();\n runner = new $$AnimateRunner();\n runner.complete(true);\n }\n return runner;\n },\n start: function() {\n if (runner) {\n return runner;\n }\n\n runner = new $$AnimateRunner();\n var closeActiveAnimations;\n var chain = [];\n\n if (before) {\n chain.push(function(fn) {\n closeActiveAnimations = before(fn);\n });\n }\n\n if (chain.length) {\n chain.push(function(fn) {\n applyOptions();\n fn(true);\n });\n } else {\n applyOptions();\n }\n\n if (after) {\n chain.push(function(fn) {\n closeActiveAnimations = after(fn);\n });\n }\n\n runner.setHost({\n end: function() {\n endAnimations();\n },\n cancel: function() {\n endAnimations(true);\n }\n });\n\n $$AnimateRunner.chain(chain, onComplete);\n return runner;\n\n function onComplete(success) {\n close(success);\n runner.complete(success);\n }\n\n function endAnimations(cancelled) {\n if (!animationClosed) {\n (closeActiveAnimations || noop)(cancelled);\n onComplete(cancelled);\n }\n }\n }\n };\n\n function executeAnimationFn(fn, element, event, options, onDone) {\n var args;\n switch (event) {\n case 'animate':\n args = [element, options.from, options.to, onDone];\n break;\n\n case 'setClass':\n args = [element, classesToAdd, classesToRemove, onDone];\n break;\n\n case 'addClass':\n args = [element, classesToAdd, onDone];\n break;\n\n case 'removeClass':\n args = [element, classesToRemove, onDone];\n break;\n\n default:\n args = [element, onDone];\n break;\n }\n\n args.push(options);\n\n var value = fn.apply(fn, args);\n if (value) {\n if (isFunction(value.start)) {\n value = value.start();\n }\n\n if (value instanceof $$AnimateRunner) {\n value.done(onDone);\n } else if (isFunction(value)) {\n // optional onEnd / onCancel callback\n return value;\n }\n }\n\n return noop;\n }\n\n function groupEventedAnimations(element, event, options, animations, fnName) {\n var operations = [];\n forEach(animations, function(ani) {\n var animation = ani[fnName];\n if (!animation) return;\n\n // note that all of these animations will run in parallel\n operations.push(function() {\n var runner;\n var endProgressCb;\n\n var resolved = false;\n var onAnimationComplete = function(rejected) {\n if (!resolved) {\n resolved = true;\n (endProgressCb || noop)(rejected);\n runner.complete(!rejected);\n }\n };\n\n runner = new $$AnimateRunner({\n end: function() {\n onAnimationComplete();\n },\n cancel: function() {\n onAnimationComplete(true);\n }\n });\n\n endProgressCb = executeAnimationFn(animation, element, event, options, function(result) {\n var cancelled = result === false;\n onAnimationComplete(cancelled);\n });\n\n return runner;\n });\n });\n\n return operations;\n }\n\n function packageAnimations(element, event, options, animations, fnName) {\n var operations = groupEventedAnimations(element, event, options, animations, fnName);\n if (operations.length === 0) {\n var a, b;\n if (fnName === 'beforeSetClass') {\n a = groupEventedAnimations(element, 'removeClass', options, animations, 'beforeRemoveClass');\n b = groupEventedAnimations(element, 'addClass', options, animations, 'beforeAddClass');\n } else if (fnName === 'setClass') {\n a = groupEventedAnimations(element, 'removeClass', options, animations, 'removeClass');\n b = groupEventedAnimations(element, 'addClass', options, animations, 'addClass');\n }\n\n if (a) {\n operations = operations.concat(a);\n }\n if (b) {\n operations = operations.concat(b);\n }\n }\n\n if (operations.length === 0) return;\n\n // TODO(matsko): add documentation\n return function startAnimation(callback) {\n var runners = [];\n if (operations.length) {\n forEach(operations, function(animateFn) {\n runners.push(animateFn());\n });\n }\n\n if (runners.length) {\n $$AnimateRunner.all(runners, callback);\n } else {\n callback();\n }\n\n return function endFn(reject) {\n forEach(runners, function(runner) {\n if (reject) {\n runner.cancel();\n } else {\n runner.end();\n }\n });\n };\n };\n }\n };\n\n function lookupAnimations(classes) {\n classes = isArray(classes) ? classes : classes.split(' ');\n var matches = [], flagMap = {};\n for (var i = 0; i < classes.length; i++) {\n var klass = classes[i],\n animationFactory = $animateProvider.$$registeredAnimations[klass];\n if (animationFactory && !flagMap[klass]) {\n matches.push($injector.get(animationFactory));\n flagMap[klass] = true;\n }\n }\n return matches;\n }\n }];\n}];\n\nvar $$AnimateJsDriverProvider = ['$$animationProvider', /** @this */ function($$animationProvider) {\n $$animationProvider.drivers.push('$$animateJsDriver');\n this.$get = ['$$animateJs', '$$AnimateRunner', function($$animateJs, $$AnimateRunner) {\n return function initDriverFn(animationDetails) {\n if (animationDetails.from && animationDetails.to) {\n var fromAnimation = prepareAnimation(animationDetails.from);\n var toAnimation = prepareAnimation(animationDetails.to);\n if (!fromAnimation && !toAnimation) return;\n\n return {\n start: function() {\n var animationRunners = [];\n\n if (fromAnimation) {\n animationRunners.push(fromAnimation.start());\n }\n\n if (toAnimation) {\n animationRunners.push(toAnimation.start());\n }\n\n $$AnimateRunner.all(animationRunners, done);\n\n var runner = new $$AnimateRunner({\n end: endFnFactory(),\n cancel: endFnFactory()\n });\n\n return runner;\n\n function endFnFactory() {\n return function() {\n forEach(animationRunners, function(runner) {\n // at this point we cannot cancel animations for groups just yet. 1.5+\n runner.end();\n });\n };\n }\n\n function done(status) {\n runner.complete(status);\n }\n }\n };\n } else {\n return prepareAnimation(animationDetails);\n }\n };\n\n function prepareAnimation(animationDetails) {\n // TODO(matsko): make sure to check for grouped animations and delegate down to normal animations\n var element = animationDetails.element;\n var event = animationDetails.event;\n var options = animationDetails.options;\n var classes = animationDetails.classes;\n return $$animateJs(element, event, classes, options);\n }\n }];\n}];\n\nvar NG_ANIMATE_ATTR_NAME = 'data-ng-animate';\nvar NG_ANIMATE_PIN_DATA = '$ngAnimatePin';\nvar $$AnimateQueueProvider = ['$animateProvider', /** @this */ function($animateProvider) {\n var PRE_DIGEST_STATE = 1;\n var RUNNING_STATE = 2;\n var ONE_SPACE = ' ';\n\n var rules = this.rules = {\n skip: [],\n cancel: [],\n join: []\n };\n\n function getEventData(options) {\n return {\n addClass: options.addClass,\n removeClass: options.removeClass,\n from: options.from,\n to: options.to\n };\n }\n\n function makeTruthyCssClassMap(classString) {\n if (!classString) {\n return null;\n }\n\n var keys = classString.split(ONE_SPACE);\n var map = Object.create(null);\n\n forEach(keys, function(key) {\n map[key] = true;\n });\n return map;\n }\n\n function hasMatchingClasses(newClassString, currentClassString) {\n if (newClassString && currentClassString) {\n var currentClassMap = makeTruthyCssClassMap(currentClassString);\n return newClassString.split(ONE_SPACE).some(function(className) {\n return currentClassMap[className];\n });\n }\n }\n\n function isAllowed(ruleType, currentAnimation, previousAnimation) {\n return rules[ruleType].some(function(fn) {\n return fn(currentAnimation, previousAnimation);\n });\n }\n\n function hasAnimationClasses(animation, and) {\n var a = (animation.addClass || '').length > 0;\n var b = (animation.removeClass || '').length > 0;\n return and ? a && b : a || b;\n }\n\n rules.join.push(function(newAnimation, currentAnimation) {\n // if the new animation is class-based then we can just tack that on\n return !newAnimation.structural && hasAnimationClasses(newAnimation);\n });\n\n rules.skip.push(function(newAnimation, currentAnimation) {\n // there is no need to animate anything if no classes are being added and\n // there is no structural animation that will be triggered\n return !newAnimation.structural && !hasAnimationClasses(newAnimation);\n });\n\n rules.skip.push(function(newAnimation, currentAnimation) {\n // why should we trigger a new structural animation if the element will\n // be removed from the DOM anyway?\n return currentAnimation.event === 'leave' && newAnimation.structural;\n });\n\n rules.skip.push(function(newAnimation, currentAnimation) {\n // if there is an ongoing current animation then don't even bother running the class-based animation\n return currentAnimation.structural && currentAnimation.state === RUNNING_STATE && !newAnimation.structural;\n });\n\n rules.cancel.push(function(newAnimation, currentAnimation) {\n // there can never be two structural animations running at the same time\n return currentAnimation.structural && newAnimation.structural;\n });\n\n rules.cancel.push(function(newAnimation, currentAnimation) {\n // if the previous animation is already running, but the new animation will\n // be triggered, but the new animation is structural\n return currentAnimation.state === RUNNING_STATE && newAnimation.structural;\n });\n\n rules.cancel.push(function(newAnimation, currentAnimation) {\n // cancel the animation if classes added / removed in both animation cancel each other out,\n // but only if the current animation isn't structural\n\n if (currentAnimation.structural) return false;\n\n var nA = newAnimation.addClass;\n var nR = newAnimation.removeClass;\n var cA = currentAnimation.addClass;\n var cR = currentAnimation.removeClass;\n\n // early detection to save the global CPU shortage :)\n if ((isUndefined(nA) && isUndefined(nR)) || (isUndefined(cA) && isUndefined(cR))) {\n return false;\n }\n\n return hasMatchingClasses(nA, cR) || hasMatchingClasses(nR, cA);\n });\n\n this.$get = ['$$rAF', '$rootScope', '$rootElement', '$document', '$$Map',\n '$$animation', '$$AnimateRunner', '$templateRequest', '$$jqLite', '$$forceReflow',\n '$$isDocumentHidden',\n function($$rAF, $rootScope, $rootElement, $document, $$Map,\n $$animation, $$AnimateRunner, $templateRequest, $$jqLite, $$forceReflow,\n $$isDocumentHidden) {\n\n var activeAnimationsLookup = new $$Map();\n var disabledElementsLookup = new $$Map();\n var animationsEnabled = null;\n\n function removeFromDisabledElementsLookup(evt) {\n disabledElementsLookup.delete(evt.target);\n }\n\n function postDigestTaskFactory() {\n var postDigestCalled = false;\n return function(fn) {\n // we only issue a call to postDigest before\n // it has first passed. This prevents any callbacks\n // from not firing once the animation has completed\n // since it will be out of the digest cycle.\n if (postDigestCalled) {\n fn();\n } else {\n $rootScope.$$postDigest(function() {\n postDigestCalled = true;\n fn();\n });\n }\n };\n }\n\n // Wait until all directive and route-related templates are downloaded and\n // compiled. The $templateRequest.totalPendingRequests variable keeps track of\n // all of the remote templates being currently downloaded. If there are no\n // templates currently downloading then the watcher will still fire anyway.\n var deregisterWatch = $rootScope.$watch(\n function() { return $templateRequest.totalPendingRequests === 0; },\n function(isEmpty) {\n if (!isEmpty) return;\n deregisterWatch();\n\n // Now that all templates have been downloaded, $animate will wait until\n // the post digest queue is empty before enabling animations. By having two\n // calls to $postDigest calls we can ensure that the flag is enabled at the\n // very end of the post digest queue. Since all of the animations in $animate\n // use $postDigest, it's important that the code below executes at the end.\n // This basically means that the page is fully downloaded and compiled before\n // any animations are triggered.\n $rootScope.$$postDigest(function() {\n $rootScope.$$postDigest(function() {\n // we check for null directly in the event that the application already called\n // .enabled() with whatever arguments that it provided it with\n if (animationsEnabled === null) {\n animationsEnabled = true;\n }\n });\n });\n }\n );\n\n var callbackRegistry = Object.create(null);\n\n // remember that the `customFilter`/`classNameFilter` are set during the\n // provider/config stage therefore we can optimize here and setup helper functions\n var customFilter = $animateProvider.customFilter();\n var classNameFilter = $animateProvider.classNameFilter();\n var returnTrue = function() { return true; };\n\n var isAnimatableByFilter = customFilter || returnTrue;\n var isAnimatableClassName = !classNameFilter ? returnTrue : function(node, options) {\n var className = [node.getAttribute('class'), options.addClass, options.removeClass].join(' ');\n return classNameFilter.test(className);\n };\n\n var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);\n\n function normalizeAnimationDetails(element, animation) {\n return mergeAnimationDetails(element, animation, {});\n }\n\n // IE9-11 has no method \"contains\" in SVG element and in Node.prototype. Bug #10259.\n var contains = window.Node.prototype.contains || /** @this */ function(arg) {\n // eslint-disable-next-line no-bitwise\n return this === arg || !!(this.compareDocumentPosition(arg) & 16);\n };\n\n function findCallbacks(targetParentNode, targetNode, event) {\n var matches = [];\n var entries = callbackRegistry[event];\n if (entries) {\n forEach(entries, function(entry) {\n if (contains.call(entry.node, targetNode)) {\n matches.push(entry.callback);\n } else if (event === 'leave' && contains.call(entry.node, targetParentNode)) {\n matches.push(entry.callback);\n }\n });\n }\n\n return matches;\n }\n\n function filterFromRegistry(list, matchContainer, matchCallback) {\n var containerNode = extractElementNode(matchContainer);\n return list.filter(function(entry) {\n var isMatch = entry.node === containerNode &&\n (!matchCallback || entry.callback === matchCallback);\n return !isMatch;\n });\n }\n\n function cleanupEventListeners(phase, node) {\n if (phase === 'close' && !node.parentNode) {\n // If the element is not attached to a parentNode, it has been removed by\n // the domOperation, and we can safely remove the event callbacks\n $animate.off(node);\n }\n }\n\n var $animate = {\n on: function(event, container, callback) {\n var node = extractElementNode(container);\n callbackRegistry[event] = callbackRegistry[event] || [];\n callbackRegistry[event].push({\n node: node,\n callback: callback\n });\n\n // Remove the callback when the element is removed from the DOM\n jqLite(container).on('$destroy', function() {\n var animationDetails = activeAnimationsLookup.get(node);\n\n if (!animationDetails) {\n // If there's an animation ongoing, the callback calling code will remove\n // the event listeners. If we'd remove here, the callbacks would be removed\n // before the animation ends\n $animate.off(event, container, callback);\n }\n });\n },\n\n off: function(event, container, callback) {\n if (arguments.length === 1 && !isString(arguments[0])) {\n container = arguments[0];\n for (var eventType in callbackRegistry) {\n callbackRegistry[eventType] = filterFromRegistry(callbackRegistry[eventType], container);\n }\n\n return;\n }\n\n var entries = callbackRegistry[event];\n if (!entries) return;\n\n callbackRegistry[event] = arguments.length === 1\n ? null\n : filterFromRegistry(entries, container, callback);\n },\n\n pin: function(element, parentElement) {\n assertArg(isElement(element), 'element', 'not an element');\n assertArg(isElement(parentElement), 'parentElement', 'not an element');\n element.data(NG_ANIMATE_PIN_DATA, parentElement);\n },\n\n push: function(element, event, options, domOperation) {\n options = options || {};\n options.domOperation = domOperation;\n return queueAnimation(element, event, options);\n },\n\n // this method has four signatures:\n // () - global getter\n // (bool) - global setter\n // (element) - element getter\n // (element, bool) - element setter\n enabled: function(element, bool) {\n var argCount = arguments.length;\n\n if (argCount === 0) {\n // () - Global getter\n bool = !!animationsEnabled;\n } else {\n var hasElement = isElement(element);\n\n if (!hasElement) {\n // (bool) - Global setter\n bool = animationsEnabled = !!element;\n } else {\n var node = getDomNode(element);\n\n if (argCount === 1) {\n // (element) - Element getter\n bool = !disabledElementsLookup.get(node);\n } else {\n // (element, bool) - Element setter\n if (!disabledElementsLookup.has(node)) {\n // The element is added to the map for the first time.\n // Create a listener to remove it on `$destroy` (to avoid memory leak).\n jqLite(element).on('$destroy', removeFromDisabledElementsLookup);\n }\n disabledElementsLookup.set(node, !bool);\n }\n }\n }\n\n return bool;\n }\n };\n\n return $animate;\n\n function queueAnimation(originalElement, event, initialOptions) {\n // we always make a copy of the options since\n // there should never be any side effects on\n // the input data when running `$animateCss`.\n var options = copy(initialOptions);\n\n var element = stripCommentsFromElement(originalElement);\n var node = getDomNode(element);\n var parentNode = node && node.parentNode;\n\n options = prepareAnimationOptions(options);\n\n // we create a fake runner with a working promise.\n // These methods will become available after the digest has passed\n var runner = new $$AnimateRunner();\n\n // this is used to trigger callbacks in postDigest mode\n var runInNextPostDigestOrNow = postDigestTaskFactory();\n\n if (isArray(options.addClass)) {\n options.addClass = options.addClass.join(' ');\n }\n\n if (options.addClass && !isString(options.addClass)) {\n options.addClass = null;\n }\n\n if (isArray(options.removeClass)) {\n options.removeClass = options.removeClass.join(' ');\n }\n\n if (options.removeClass && !isString(options.removeClass)) {\n options.removeClass = null;\n }\n\n if (options.from && !isObject(options.from)) {\n options.from = null;\n }\n\n if (options.to && !isObject(options.to)) {\n options.to = null;\n }\n\n // If animations are hard-disabled for the whole application there is no need to continue.\n // There are also situations where a directive issues an animation for a jqLite wrapper that\n // contains only comment nodes. In this case, there is no way we can perform an animation.\n if (!animationsEnabled ||\n !node ||\n !isAnimatableByFilter(node, event, initialOptions) ||\n !isAnimatableClassName(node, options)) {\n close();\n return runner;\n }\n\n var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0;\n\n var documentHidden = $$isDocumentHidden();\n\n // This is a hard disable of all animations the element itself, therefore there is no need to\n // continue further past this point if not enabled\n // Animations are also disabled if the document is currently hidden (page is not visible\n // to the user), because browsers slow down or do not flush calls to requestAnimationFrame\n var skipAnimations = documentHidden || disabledElementsLookup.get(node);\n var existingAnimation = (!skipAnimations && activeAnimationsLookup.get(node)) || {};\n var hasExistingAnimation = !!existingAnimation.state;\n\n // there is no point in traversing the same collection of parent ancestors if a followup\n // animation will be run on the same element that already did all that checking work\n if (!skipAnimations && (!hasExistingAnimation || existingAnimation.state !== PRE_DIGEST_STATE)) {\n skipAnimations = !areAnimationsAllowed(node, parentNode, event);\n }\n\n if (skipAnimations) {\n // Callbacks should fire even if the document is hidden (regression fix for issue #14120)\n if (documentHidden) notifyProgress(runner, event, 'start', getEventData(options));\n close();\n if (documentHidden) notifyProgress(runner, event, 'close', getEventData(options));\n return runner;\n }\n\n if (isStructural) {\n closeChildAnimations(node);\n }\n\n var newAnimation = {\n structural: isStructural,\n element: element,\n event: event,\n addClass: options.addClass,\n removeClass: options.removeClass,\n close: close,\n options: options,\n runner: runner\n };\n\n if (hasExistingAnimation) {\n var skipAnimationFlag = isAllowed('skip', newAnimation, existingAnimation);\n if (skipAnimationFlag) {\n if (existingAnimation.state === RUNNING_STATE) {\n close();\n return runner;\n } else {\n mergeAnimationDetails(element, existingAnimation, newAnimation);\n return existingAnimation.runner;\n }\n }\n var cancelAnimationFlag = isAllowed('cancel', newAnimation, existingAnimation);\n if (cancelAnimationFlag) {\n if (existingAnimation.state === RUNNING_STATE) {\n // this will end the animation right away and it is safe\n // to do so since the animation is already running and the\n // runner callback code will run in async\n existingAnimation.runner.end();\n } else if (existingAnimation.structural) {\n // this means that the animation is queued into a digest, but\n // hasn't started yet. Therefore it is safe to run the close\n // method which will call the runner methods in async.\n existingAnimation.close();\n } else {\n // this will merge the new animation options into existing animation options\n mergeAnimationDetails(element, existingAnimation, newAnimation);\n\n return existingAnimation.runner;\n }\n } else {\n // a joined animation means that this animation will take over the existing one\n // so an example would involve a leave animation taking over an enter. Then when\n // the postDigest kicks in the enter will be ignored.\n var joinAnimationFlag = isAllowed('join', newAnimation, existingAnimation);\n if (joinAnimationFlag) {\n if (existingAnimation.state === RUNNING_STATE) {\n normalizeAnimationDetails(element, newAnimation);\n } else {\n applyGeneratedPreparationClasses($$jqLite, element, isStructural ? event : null, options);\n\n event = newAnimation.event = existingAnimation.event;\n options = mergeAnimationDetails(element, existingAnimation, newAnimation);\n\n //we return the same runner since only the option values of this animation will\n //be fed into the `existingAnimation`.\n return existingAnimation.runner;\n }\n }\n }\n } else {\n // normalization in this case means that it removes redundant CSS classes that\n // already exist (addClass) or do not exist (removeClass) on the element\n normalizeAnimationDetails(element, newAnimation);\n }\n\n // when the options are merged and cleaned up we may end up not having to do\n // an animation at all, therefore we should check this before issuing a post\n // digest callback. Structural animations will always run no matter what.\n var isValidAnimation = newAnimation.structural;\n if (!isValidAnimation) {\n // animate (from/to) can be quickly checked first, otherwise we check if any classes are present\n isValidAnimation = (newAnimation.event === 'animate' && Object.keys(newAnimation.options.to || {}).length > 0)\n || hasAnimationClasses(newAnimation);\n }\n\n if (!isValidAnimation) {\n close();\n clearElementAnimationState(node);\n return runner;\n }\n\n // the counter keeps track of cancelled animations\n var counter = (existingAnimation.counter || 0) + 1;\n newAnimation.counter = counter;\n\n markElementAnimationState(node, PRE_DIGEST_STATE, newAnimation);\n\n $rootScope.$$postDigest(function() {\n // It is possible that the DOM nodes inside `originalElement` have been replaced. This can\n // happen if the animated element is a transcluded clone and also has a `templateUrl`\n // directive on it. Therefore, we must recreate `element` in order to interact with the\n // actual DOM nodes.\n // Note: We still need to use the old `node` for certain things, such as looking up in\n // HashMaps where it was used as the key.\n\n element = stripCommentsFromElement(originalElement);\n\n var animationDetails = activeAnimationsLookup.get(node);\n var animationCancelled = !animationDetails;\n animationDetails = animationDetails || {};\n\n // if addClass/removeClass is called before something like enter then the\n // registered parent element may not be present. The code below will ensure\n // that a final value for parent element is obtained\n var parentElement = element.parent() || [];\n\n // animate/structural/class-based animations all have requirements. Otherwise there\n // is no point in performing an animation. The parent node must also be set.\n var isValidAnimation = parentElement.length > 0\n && (animationDetails.event === 'animate'\n || animationDetails.structural\n || hasAnimationClasses(animationDetails));\n\n // this means that the previous animation was cancelled\n // even if the follow-up animation is the same event\n if (animationCancelled || animationDetails.counter !== counter || !isValidAnimation) {\n // if another animation did not take over then we need\n // to make sure that the domOperation and options are\n // handled accordingly\n if (animationCancelled) {\n applyAnimationClasses(element, options);\n applyAnimationStyles(element, options);\n }\n\n // if the event changed from something like enter to leave then we do\n // it, otherwise if it's the same then the end result will be the same too\n if (animationCancelled || (isStructural && animationDetails.event !== event)) {\n options.domOperation();\n runner.end();\n }\n\n // in the event that the element animation was not cancelled or a follow-up animation\n // isn't allowed to animate from here then we need to clear the state of the element\n // so that any future animations won't read the expired animation data.\n if (!isValidAnimation) {\n clearElementAnimationState(node);\n }\n\n return;\n }\n\n // this combined multiple class to addClass / removeClass into a setClass event\n // so long as a structural event did not take over the animation\n event = !animationDetails.structural && hasAnimationClasses(animationDetails, true)\n ? 'setClass'\n : animationDetails.event;\n\n markElementAnimationState(node, RUNNING_STATE);\n var realRunner = $$animation(element, event, animationDetails.options);\n\n // this will update the runner's flow-control events based on\n // the `realRunner` object.\n runner.setHost(realRunner);\n notifyProgress(runner, event, 'start', getEventData(options));\n\n realRunner.done(function(status) {\n close(!status);\n var animationDetails = activeAnimationsLookup.get(node);\n if (animationDetails && animationDetails.counter === counter) {\n clearElementAnimationState(node);\n }\n notifyProgress(runner, event, 'close', getEventData(options));\n });\n });\n\n return runner;\n\n function notifyProgress(runner, event, phase, data) {\n runInNextPostDigestOrNow(function() {\n var callbacks = findCallbacks(parentNode, node, event);\n if (callbacks.length) {\n // do not optimize this call here to RAF because\n // we don't know how heavy the callback code here will\n // be and if this code is buffered then this can\n // lead to a performance regression.\n $$rAF(function() {\n forEach(callbacks, function(callback) {\n callback(element, phase, data);\n });\n cleanupEventListeners(phase, node);\n });\n } else {\n cleanupEventListeners(phase, node);\n }\n });\n runner.progress(event, phase, data);\n }\n\n function close(reject) {\n clearGeneratedClasses(element, options);\n applyAnimationClasses(element, options);\n applyAnimationStyles(element, options);\n options.domOperation();\n runner.complete(!reject);\n }\n }\n\n function closeChildAnimations(node) {\n var children = node.querySelectorAll('[' + NG_ANIMATE_ATTR_NAME + ']');\n forEach(children, function(child) {\n var state = parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME), 10);\n var animationDetails = activeAnimationsLookup.get(child);\n if (animationDetails) {\n switch (state) {\n case RUNNING_STATE:\n animationDetails.runner.end();\n /* falls through */\n case PRE_DIGEST_STATE:\n activeAnimationsLookup.delete(child);\n break;\n }\n }\n });\n }\n\n function clearElementAnimationState(node) {\n node.removeAttribute(NG_ANIMATE_ATTR_NAME);\n activeAnimationsLookup.delete(node);\n }\n\n /**\n * This fn returns false if any of the following is true:\n * a) animations on any parent element are disabled, and animations on the element aren't explicitly allowed\n * b) a parent element has an ongoing structural animation, and animateChildren is false\n * c) the element is not a child of the body\n * d) the element is not a child of the $rootElement\n */\n function areAnimationsAllowed(node, parentNode, event) {\n var bodyNode = $document[0].body;\n var rootNode = getDomNode($rootElement);\n\n var bodyNodeDetected = (node === bodyNode) || node.nodeName === 'HTML';\n var rootNodeDetected = (node === rootNode);\n var parentAnimationDetected = false;\n var elementDisabled = disabledElementsLookup.get(node);\n var animateChildren;\n\n var parentHost = jqLite.data(node, NG_ANIMATE_PIN_DATA);\n if (parentHost) {\n parentNode = getDomNode(parentHost);\n }\n\n while (parentNode) {\n if (!rootNodeDetected) {\n // AngularJS doesn't want to attempt to animate elements outside of the application\n // therefore we need to ensure that the rootElement is an ancestor of the current element\n rootNodeDetected = (parentNode === rootNode);\n }\n\n if (parentNode.nodeType !== ELEMENT_NODE) {\n // no point in inspecting the #document element\n break;\n }\n\n var details = activeAnimationsLookup.get(parentNode) || {};\n // either an enter, leave or move animation will commence\n // therefore we can't allow any animations to take place\n // but if a parent animation is class-based then that's ok\n if (!parentAnimationDetected) {\n var parentNodeDisabled = disabledElementsLookup.get(parentNode);\n\n if (parentNodeDisabled === true && elementDisabled !== false) {\n // disable animations if the user hasn't explicitly enabled animations on the\n // current element\n elementDisabled = true;\n // element is disabled via parent element, no need to check anything else\n break;\n } else if (parentNodeDisabled === false) {\n elementDisabled = false;\n }\n parentAnimationDetected = details.structural;\n }\n\n if (isUndefined(animateChildren) || animateChildren === true) {\n var value = jqLite.data(parentNode, NG_ANIMATE_CHILDREN_DATA);\n if (isDefined(value)) {\n animateChildren = value;\n }\n }\n\n // there is no need to continue traversing at this point\n if (parentAnimationDetected && animateChildren === false) break;\n\n if (!bodyNodeDetected) {\n // we also need to ensure that the element is or will be a part of the body element\n // otherwise it is pointless to even issue an animation to be rendered\n bodyNodeDetected = (parentNode === bodyNode);\n }\n\n if (bodyNodeDetected && rootNodeDetected) {\n // If both body and root have been found, any other checks are pointless,\n // as no animation data should live outside the application\n break;\n }\n\n if (!rootNodeDetected) {\n // If `rootNode` is not detected, check if `parentNode` is pinned to another element\n parentHost = jqLite.data(parentNode, NG_ANIMATE_PIN_DATA);\n if (parentHost) {\n // The pin target element becomes the next parent element\n parentNode = getDomNode(parentHost);\n continue;\n }\n }\n\n parentNode = parentNode.parentNode;\n }\n\n var allowAnimation = (!parentAnimationDetected || animateChildren) && elementDisabled !== true;\n return allowAnimation && rootNodeDetected && bodyNodeDetected;\n }\n\n function markElementAnimationState(node, state, details) {\n details = details || {};\n details.state = state;\n\n node.setAttribute(NG_ANIMATE_ATTR_NAME, state);\n\n var oldValue = activeAnimationsLookup.get(node);\n var newValue = oldValue\n ? extend(oldValue, details)\n : details;\n activeAnimationsLookup.set(node, newValue);\n }\n }];\n}];\n\n/** @this */\nvar $$AnimateCacheProvider = function() {\n\n var KEY = '$$ngAnimateParentKey';\n var parentCounter = 0;\n var cache = Object.create(null);\n\n this.$get = [function() {\n return {\n cacheKey: function(node, method, addClass, removeClass) {\n var parentNode = node.parentNode;\n var parentID = parentNode[KEY] || (parentNode[KEY] = ++parentCounter);\n var parts = [parentID, method, node.getAttribute('class')];\n if (addClass) {\n parts.push(addClass);\n }\n if (removeClass) {\n parts.push(removeClass);\n }\n return parts.join(' ');\n },\n\n containsCachedAnimationWithoutDuration: function(key) {\n var entry = cache[key];\n\n // nothing cached, so go ahead and animate\n // otherwise it should be a valid animation\n return (entry && !entry.isValid) || false;\n },\n\n flush: function() {\n cache = Object.create(null);\n },\n\n count: function(key) {\n var entry = cache[key];\n return entry ? entry.total : 0;\n },\n\n get: function(key) {\n var entry = cache[key];\n return entry && entry.value;\n },\n\n put: function(key, value, isValid) {\n if (!cache[key]) {\n cache[key] = { total: 1, value: value, isValid: isValid };\n } else {\n cache[key].total++;\n cache[key].value = value;\n }\n }\n };\n }];\n};\n\n/* exported $$AnimationProvider */\n\nvar $$AnimationProvider = ['$animateProvider', /** @this */ function($animateProvider) {\n var NG_ANIMATE_REF_ATTR = 'ng-animate-ref';\n\n var drivers = this.drivers = [];\n\n var RUNNER_STORAGE_KEY = '$$animationRunner';\n var PREPARE_CLASSES_KEY = '$$animatePrepareClasses';\n\n function setRunner(element, runner) {\n element.data(RUNNER_STORAGE_KEY, runner);\n }\n\n function removeRunner(element) {\n element.removeData(RUNNER_STORAGE_KEY);\n }\n\n function getRunner(element) {\n return element.data(RUNNER_STORAGE_KEY);\n }\n\n this.$get = ['$$jqLite', '$rootScope', '$injector', '$$AnimateRunner', '$$Map', '$$rAFScheduler', '$$animateCache',\n function($$jqLite, $rootScope, $injector, $$AnimateRunner, $$Map, $$rAFScheduler, $$animateCache) {\n\n var animationQueue = [];\n var applyAnimationClasses = applyAnimationClassesFactory($$jqLite);\n\n function sortAnimations(animations) {\n var tree = { children: [] };\n var i, lookup = new $$Map();\n\n // this is done first beforehand so that the map\n // is filled with a list of the elements that will be animated\n for (i = 0; i < animations.length; i++) {\n var animation = animations[i];\n lookup.set(animation.domNode, animations[i] = {\n domNode: animation.domNode,\n element: animation.element,\n fn: animation.fn,\n children: []\n });\n }\n\n for (i = 0; i < animations.length; i++) {\n processNode(animations[i]);\n }\n\n return flatten(tree);\n\n function processNode(entry) {\n if (entry.processed) return entry;\n entry.processed = true;\n\n var elementNode = entry.domNode;\n var parentNode = elementNode.parentNode;\n lookup.set(elementNode, entry);\n\n var parentEntry;\n while (parentNode) {\n parentEntry = lookup.get(parentNode);\n if (parentEntry) {\n if (!parentEntry.processed) {\n parentEntry = processNode(parentEntry);\n }\n break;\n }\n parentNode = parentNode.parentNode;\n }\n\n (parentEntry || tree).children.push(entry);\n return entry;\n }\n\n function flatten(tree) {\n var result = [];\n var queue = [];\n var i;\n\n for (i = 0; i < tree.children.length; i++) {\n queue.push(tree.children[i]);\n }\n\n var remainingLevelEntries = queue.length;\n var nextLevelEntries = 0;\n var row = [];\n\n for (i = 0; i < queue.length; i++) {\n var entry = queue[i];\n if (remainingLevelEntries <= 0) {\n remainingLevelEntries = nextLevelEntries;\n nextLevelEntries = 0;\n result.push(row);\n row = [];\n }\n row.push(entry);\n entry.children.forEach(function(childEntry) {\n nextLevelEntries++;\n queue.push(childEntry);\n });\n remainingLevelEntries--;\n }\n\n if (row.length) {\n result.push(row);\n }\n\n return result;\n }\n }\n\n // TODO(matsko): document the signature in a better way\n return function(element, event, options) {\n options = prepareAnimationOptions(options);\n var isStructural = ['enter', 'move', 'leave'].indexOf(event) >= 0;\n\n // there is no animation at the current moment, however\n // these runner methods will get later updated with the\n // methods leading into the driver's end/cancel methods\n // for now they just stop the animation from starting\n var runner = new $$AnimateRunner({\n end: function() { close(); },\n cancel: function() { close(true); }\n });\n\n if (!drivers.length) {\n close();\n return runner;\n }\n\n var classes = mergeClasses(element.attr('class'), mergeClasses(options.addClass, options.removeClass));\n var tempClasses = options.tempClasses;\n if (tempClasses) {\n classes += ' ' + tempClasses;\n options.tempClasses = null;\n }\n\n if (isStructural) {\n element.data(PREPARE_CLASSES_KEY, 'ng-' + event + PREPARE_CLASS_SUFFIX);\n }\n\n setRunner(element, runner);\n\n animationQueue.push({\n // this data is used by the postDigest code and passed into\n // the driver step function\n element: element,\n classes: classes,\n event: event,\n structural: isStructural,\n options: options,\n beforeStart: beforeStart,\n close: close\n });\n\n element.on('$destroy', handleDestroyedElement);\n\n // we only want there to be one function called within the post digest\n // block. This way we can group animations for all the animations that\n // were apart of the same postDigest flush call.\n if (animationQueue.length > 1) return runner;\n\n $rootScope.$$postDigest(function() {\n var animations = [];\n forEach(animationQueue, function(entry) {\n // the element was destroyed early on which removed the runner\n // form its storage. This means we can't animate this element\n // at all and it already has been closed due to destruction.\n if (getRunner(entry.element)) {\n animations.push(entry);\n } else {\n entry.close();\n }\n });\n\n // now any future animations will be in another postDigest\n animationQueue.length = 0;\n\n var groupedAnimations = groupAnimations(animations);\n var toBeSortedAnimations = [];\n\n forEach(groupedAnimations, function(animationEntry) {\n var element = animationEntry.from ? animationEntry.from.element : animationEntry.element;\n var extraClasses = options.addClass;\n\n extraClasses = (extraClasses ? (extraClasses + ' ') : '') + NG_ANIMATE_CLASSNAME;\n var cacheKey = $$animateCache.cacheKey(element[0], animationEntry.event, extraClasses, options.removeClass);\n\n toBeSortedAnimations.push({\n element: element,\n domNode: getDomNode(element),\n fn: function triggerAnimationStart() {\n var startAnimationFn, closeFn = animationEntry.close;\n\n // in the event that we've cached the animation status for this element\n // and it's in fact an invalid animation (something that has duration = 0)\n // then we should skip all the heavy work from here on\n if ($$animateCache.containsCachedAnimationWithoutDuration(cacheKey)) {\n closeFn();\n return;\n }\n\n // it's important that we apply the `ng-animate` CSS class and the\n // temporary classes before we do any driver invoking since these\n // CSS classes may be required for proper CSS detection.\n animationEntry.beforeStart();\n\n // in the event that the element was removed before the digest runs or\n // during the RAF sequencing then we should not trigger the animation.\n var targetElement = animationEntry.anchors\n ? (animationEntry.from.element || animationEntry.to.element)\n : animationEntry.element;\n\n if (getRunner(targetElement)) {\n var operation = invokeFirstDriver(animationEntry);\n if (operation) {\n startAnimationFn = operation.start;\n }\n }\n\n if (!startAnimationFn) {\n closeFn();\n } else {\n var animationRunner = startAnimationFn();\n animationRunner.done(function(status) {\n closeFn(!status);\n });\n updateAnimationRunners(animationEntry, animationRunner);\n }\n }\n });\n });\n\n // we need to sort each of the animations in order of parent to child\n // relationships. This ensures that the child classes are applied at the\n // right time.\n var finalAnimations = sortAnimations(toBeSortedAnimations);\n for (var i = 0; i < finalAnimations.length; i++) {\n var innerArray = finalAnimations[i];\n for (var j = 0; j < innerArray.length; j++) {\n var entry = innerArray[j];\n var element = entry.element;\n\n // the RAFScheduler code only uses functions\n finalAnimations[i][j] = entry.fn;\n\n // the first row of elements shouldn't have a prepare-class added to them\n // since the elements are at the top of the animation hierarchy and they\n // will be applied without a RAF having to pass...\n if (i === 0) {\n element.removeData(PREPARE_CLASSES_KEY);\n continue;\n }\n\n var prepareClassName = element.data(PREPARE_CLASSES_KEY);\n if (prepareClassName) {\n $$jqLite.addClass(element, prepareClassName);\n }\n }\n }\n\n $$rAFScheduler(finalAnimations);\n });\n\n return runner;\n\n // TODO(matsko): change to reference nodes\n function getAnchorNodes(node) {\n var SELECTOR = '[' + NG_ANIMATE_REF_ATTR + ']';\n var items = node.hasAttribute(NG_ANIMATE_REF_ATTR)\n ? [node]\n : node.querySelectorAll(SELECTOR);\n var anchors = [];\n forEach(items, function(node) {\n var attr = node.getAttribute(NG_ANIMATE_REF_ATTR);\n if (attr && attr.length) {\n anchors.push(node);\n }\n });\n return anchors;\n }\n\n function groupAnimations(animations) {\n var preparedAnimations = [];\n var refLookup = {};\n forEach(animations, function(animation, index) {\n var element = animation.element;\n var node = getDomNode(element);\n var event = animation.event;\n var enterOrMove = ['enter', 'move'].indexOf(event) >= 0;\n var anchorNodes = animation.structural ? getAnchorNodes(node) : [];\n\n if (anchorNodes.length) {\n var direction = enterOrMove ? 'to' : 'from';\n\n forEach(anchorNodes, function(anchor) {\n var key = anchor.getAttribute(NG_ANIMATE_REF_ATTR);\n refLookup[key] = refLookup[key] || {};\n refLookup[key][direction] = {\n animationID: index,\n element: jqLite(anchor)\n };\n });\n } else {\n preparedAnimations.push(animation);\n }\n });\n\n var usedIndicesLookup = {};\n var anchorGroups = {};\n forEach(refLookup, function(operations, key) {\n var from = operations.from;\n var to = operations.to;\n\n if (!from || !to) {\n // only one of these is set therefore we can't have an\n // anchor animation since all three pieces are required\n var index = from ? from.animationID : to.animationID;\n var indexKey = index.toString();\n if (!usedIndicesLookup[indexKey]) {\n usedIndicesLookup[indexKey] = true;\n preparedAnimations.push(animations[index]);\n }\n return;\n }\n\n var fromAnimation = animations[from.animationID];\n var toAnimation = animations[to.animationID];\n var lookupKey = from.animationID.toString();\n if (!anchorGroups[lookupKey]) {\n var group = anchorGroups[lookupKey] = {\n structural: true,\n beforeStart: function() {\n fromAnimation.beforeStart();\n toAnimation.beforeStart();\n },\n close: function() {\n fromAnimation.close();\n toAnimation.close();\n },\n classes: cssClassesIntersection(fromAnimation.classes, toAnimation.classes),\n from: fromAnimation,\n to: toAnimation,\n anchors: [] // TODO(matsko): change to reference nodes\n };\n\n // the anchor animations require that the from and to elements both have at least\n // one shared CSS class which effectively marries the two elements together to use\n // the same animation driver and to properly sequence the anchor animation.\n if (group.classes.length) {\n preparedAnimations.push(group);\n } else {\n preparedAnimations.push(fromAnimation);\n preparedAnimations.push(toAnimation);\n }\n }\n\n anchorGroups[lookupKey].anchors.push({\n 'out': from.element, 'in': to.element\n });\n });\n\n return preparedAnimations;\n }\n\n function cssClassesIntersection(a,b) {\n a = a.split(' ');\n b = b.split(' ');\n var matches = [];\n\n for (var i = 0; i < a.length; i++) {\n var aa = a[i];\n if (aa.substring(0,3) === 'ng-') continue;\n\n for (var j = 0; j < b.length; j++) {\n if (aa === b[j]) {\n matches.push(aa);\n break;\n }\n }\n }\n\n return matches.join(' ');\n }\n\n function invokeFirstDriver(animationDetails) {\n // we loop in reverse order since the more general drivers (like CSS and JS)\n // may attempt more elements, but custom drivers are more particular\n for (var i = drivers.length - 1; i >= 0; i--) {\n var driverName = drivers[i];\n var factory = $injector.get(driverName);\n var driver = factory(animationDetails);\n if (driver) {\n return driver;\n }\n }\n }\n\n function beforeStart() {\n tempClasses = (tempClasses ? (tempClasses + ' ') : '') + NG_ANIMATE_CLASSNAME;\n $$jqLite.addClass(element, tempClasses);\n\n var prepareClassName = element.data(PREPARE_CLASSES_KEY);\n if (prepareClassName) {\n $$jqLite.removeClass(element, prepareClassName);\n prepareClassName = null;\n }\n }\n\n function updateAnimationRunners(animation, newRunner) {\n if (animation.from && animation.to) {\n update(animation.from.element);\n update(animation.to.element);\n } else {\n update(animation.element);\n }\n\n function update(element) {\n var runner = getRunner(element);\n if (runner) runner.setHost(newRunner);\n }\n }\n\n function handleDestroyedElement() {\n var runner = getRunner(element);\n if (runner && (event !== 'leave' || !options.$$domOperationFired)) {\n runner.end();\n }\n }\n\n function close(rejected) {\n element.off('$destroy', handleDestroyedElement);\n removeRunner(element);\n\n applyAnimationClasses(element, options);\n applyAnimationStyles(element, options);\n options.domOperation();\n\n if (tempClasses) {\n $$jqLite.removeClass(element, tempClasses);\n }\n\n runner.complete(!rejected);\n }\n };\n }];\n}];\n\n/**\n * @ngdoc directive\n * @name ngAnimateSwap\n * @restrict A\n * @scope\n *\n * @description\n *\n * ngAnimateSwap is a animation-oriented directive that allows for the container to\n * be removed and entered in whenever the associated expression changes. A\n * common usecase for this directive is a rotating banner or slider component which\n * contains one image being present at a time. When the active image changes\n * then the old image will perform a `leave` animation and the new element\n * will be inserted via an `enter` animation.\n *\n * @animations\n * | Animation | Occurs |\n * |----------------------------------|--------------------------------------|\n * | {@link ng.$animate#enter enter} | when the new element is inserted to the DOM |\n * | {@link ng.$animate#leave leave} | when the old element is removed from the DOM |\n *\n * @example\n * \n * \n *
\n *
\n * {{ number }}\n *
\n *
\n *
\n * \n * angular.module('ngAnimateSwapExample', ['ngAnimate'])\n * .controller('AppCtrl', ['$scope', '$interval', function($scope, $interval) {\n * $scope.number = 0;\n * $interval(function() {\n * $scope.number++;\n * }, 1000);\n *\n * var colors = ['red','blue','green','yellow','orange'];\n * $scope.colorClass = function(number) {\n * return colors[number % colors.length];\n * };\n * }]);\n * \n * \n * .container {\n * height:250px;\n * width:250px;\n * position:relative;\n * overflow:hidden;\n * border:2px solid black;\n * }\n * .container .cell {\n * font-size:150px;\n * text-align:center;\n * line-height:250px;\n * position:absolute;\n * top:0;\n * left:0;\n * right:0;\n * border-bottom:2px solid black;\n * }\n * .swap-animation.ng-enter, .swap-animation.ng-leave {\n * transition:0.5s linear all;\n * }\n * .swap-animation.ng-enter {\n * top:-250px;\n * }\n * .swap-animation.ng-enter-active {\n * top:0px;\n * }\n * .swap-animation.ng-leave {\n * top:0px;\n * }\n * .swap-animation.ng-leave-active {\n * top:250px;\n * }\n * .red { background:red; }\n * .green { background:green; }\n * .blue { background:blue; }\n * .yellow { background:yellow; }\n * .orange { background:orange; }\n * \n *
\n */\nvar ngAnimateSwapDirective = ['$animate', function($animate) {\n return {\n restrict: 'A',\n transclude: 'element',\n terminal: true,\n priority: 550, // We use 550 here to ensure that the directive is caught before others,\n // but after `ngIf` (at priority 600).\n link: function(scope, $element, attrs, ctrl, $transclude) {\n var previousElement, previousScope;\n scope.$watchCollection(attrs.ngAnimateSwap || attrs['for'], function(value) {\n if (previousElement) {\n $animate.leave(previousElement);\n }\n if (previousScope) {\n previousScope.$destroy();\n previousScope = null;\n }\n if (value || value === 0) {\n $transclude(function(clone, childScope) {\n previousElement = clone;\n previousScope = childScope;\n $animate.enter(clone, null, $element);\n });\n }\n });\n }\n };\n}];\n\n/**\n * @ngdoc module\n * @name ngAnimate\n * @description\n *\n * The `ngAnimate` module provides support for CSS-based animations (keyframes and transitions) as well as JavaScript-based animations via\n * callback hooks. Animations are not enabled by default, however, by including `ngAnimate` the animation hooks are enabled for an AngularJS app.\n *\n * ## Usage\n * Simply put, there are two ways to make use of animations when ngAnimate is used: by using **CSS** and **JavaScript**. The former works purely based\n * using CSS (by using matching CSS selectors/styles) and the latter triggers animations that are registered via `module.animation()`. For\n * both CSS and JS animations the sole requirement is to have a matching `CSS class` that exists both in the registered animation and within\n * the HTML element that the animation will be triggered on.\n *\n * ## Directive Support\n * The following directives are \"animation aware\":\n *\n * | Directive | Supported Animations |\n * |-------------------------------------------------------------------------------|---------------------------------------------------------------------------|\n * | {@link ng.directive:form#animations form / ngForm} | add and remove ({@link ng.directive:form#css-classes various classes}) |\n * | {@link ngAnimate.directive:ngAnimateSwap#animations ngAnimateSwap} | enter and leave |\n * | {@link ng.directive:ngClass#animations ngClass / {{class}​}} | add and remove |\n * | {@link ng.directive:ngClassEven#animations ngClassEven} | add and remove |\n * | {@link ng.directive:ngClassOdd#animations ngClassOdd} | add and remove |\n * | {@link ng.directive:ngHide#animations ngHide} | add and remove (the `ng-hide` class) |\n * | {@link ng.directive:ngIf#animations ngIf} | enter and leave |\n * | {@link ng.directive:ngInclude#animations ngInclude} | enter and leave |\n * | {@link module:ngMessages#animations ngMessage / ngMessageExp} | enter and leave |\n * | {@link module:ngMessages#animations ngMessages} | add and remove (the `ng-active`/`ng-inactive` classes) |\n * | {@link ng.directive:ngModel#animations ngModel} | add and remove ({@link ng.directive:ngModel#css-classes various classes}) |\n * | {@link ng.directive:ngRepeat#animations ngRepeat} | enter, leave, and move |\n * | {@link ng.directive:ngShow#animations ngShow} | add and remove (the `ng-hide` class) |\n * | {@link ng.directive:ngSwitch#animations ngSwitch} | enter and leave |\n * | {@link ngRoute.directive:ngView#animations ngView} | enter and leave |\n *\n * (More information can be found by visiting the documentation associated with each directive.)\n *\n * For a full breakdown of the steps involved during each animation event, refer to the\n * {@link ng.$animate `$animate` API docs}.\n *\n * ## CSS-based Animations\n *\n * CSS-based animations with ngAnimate are unique since they require no JavaScript code at all. By using a CSS class that we reference between our HTML\n * and CSS code we can create an animation that will be picked up by AngularJS when an underlying directive performs an operation.\n *\n * The example below shows how an `enter` animation can be made possible on an element using `ng-if`:\n *\n * ```html\n *
\n * Fade me in out\n *
\n * \n * \n * ```\n *\n * Notice the CSS class **fade**? We can now create the CSS transition code that references this class:\n *\n * ```css\n * /* The starting CSS styles for the enter animation */\n * .fade.ng-enter {\n * transition:0.5s linear all;\n * opacity:0;\n * }\n *\n * /* The finishing CSS styles for the enter animation */\n * .fade.ng-enter.ng-enter-active {\n * opacity:1;\n * }\n * ```\n *\n * The key thing to remember here is that, depending on the animation event (which each of the directives above trigger depending on what's going on) two\n * generated CSS classes will be applied to the element; in the example above we have `.ng-enter` and `.ng-enter-active`. For CSS transitions, the transition\n * code **must** be defined within the starting CSS class (in this case `.ng-enter`). The destination class is what the transition will animate towards.\n *\n * If for example we wanted to create animations for `leave` and `move` (ngRepeat triggers move) then we can do so using the same CSS naming conventions:\n *\n * ```css\n * /* now the element will fade out before it is removed from the DOM */\n * .fade.ng-leave {\n * transition:0.5s linear all;\n * opacity:1;\n * }\n * .fade.ng-leave.ng-leave-active {\n * opacity:0;\n * }\n * ```\n *\n * We can also make use of **CSS Keyframes** by referencing the keyframe animation within the starting CSS class:\n *\n * ```css\n * /* there is no need to define anything inside of the destination\n * CSS class since the keyframe will take charge of the animation */\n * .fade.ng-leave {\n * animation: my_fade_animation 0.5s linear;\n * -webkit-animation: my_fade_animation 0.5s linear;\n * }\n *\n * @keyframes my_fade_animation {\n * from { opacity:1; }\n * to { opacity:0; }\n * }\n *\n * @-webkit-keyframes my_fade_animation {\n * from { opacity:1; }\n * to { opacity:0; }\n * }\n * ```\n *\n * Feel free also mix transitions and keyframes together as well as any other CSS classes on the same element.\n *\n * ### CSS Class-based Animations\n *\n * Class-based animations (animations that are triggered via `ngClass`, `ngShow`, `ngHide` and some other directives) have a slightly different\n * naming convention. Class-based animations are basic enough that a standard transition or keyframe can be referenced on the class being added\n * and removed.\n *\n * For example if we wanted to do a CSS animation for `ngHide` then we place an animation on the `.ng-hide` CSS class:\n *\n * ```html\n *
\n * Show and hide me\n *
\n * \n *\n * \n * ```\n *\n * All that is going on here with ngShow/ngHide behind the scenes is the `.ng-hide` class is added/removed (when the hidden state is valid). Since\n * ngShow and ngHide are animation aware then we can match up a transition and ngAnimate handles the rest.\n *\n * In addition the addition and removal of the CSS class, ngAnimate also provides two helper methods that we can use to further decorate the animation\n * with CSS styles.\n *\n * ```html\n *
\n * Highlight this box\n *
\n * \n *\n * \n * ```\n *\n * We can also make use of CSS keyframes by placing them within the CSS classes.\n *\n *\n * ### CSS Staggering Animations\n * A Staggering animation is a collection of animations that are issued with a slight delay in between each successive operation resulting in a\n * curtain-like effect. The ngAnimate module (versions >=1.2) supports staggering animations and the stagger effect can be\n * performed by creating a **ng-EVENT-stagger** CSS class and attaching that class to the base CSS class used for\n * the animation. The style property expected within the stagger class can either be a **transition-delay** or an\n * **animation-delay** property (or both if your animation contains both transitions and keyframe animations).\n *\n * ```css\n * .my-animation.ng-enter {\n * /* standard transition code */\n * transition: 1s linear all;\n * opacity:0;\n * }\n * .my-animation.ng-enter-stagger {\n * /* this will have a 100ms delay between each successive leave animation */\n * transition-delay: 0.1s;\n *\n * /* As of 1.4.4, this must always be set: it signals ngAnimate\n * to not accidentally inherit a delay property from another CSS class */\n * transition-duration: 0s;\n *\n * /* if you are using animations instead of transitions you should configure as follows:\n * animation-delay: 0.1s;\n * animation-duration: 0s; */\n * }\n * .my-animation.ng-enter.ng-enter-active {\n * /* standard transition styles */\n * opacity:1;\n * }\n * ```\n *\n * Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations\n * on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this\n * are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation\n * will also be reset if one or more animation frames have passed since the multiple calls to `$animate` were fired.\n *\n * The following code will issue the **ng-leave-stagger** event on the element provided:\n *\n * ```js\n * var kids = parent.children();\n *\n * $animate.leave(kids[0]); //stagger index=0\n * $animate.leave(kids[1]); //stagger index=1\n * $animate.leave(kids[2]); //stagger index=2\n * $animate.leave(kids[3]); //stagger index=3\n * $animate.leave(kids[4]); //stagger index=4\n *\n * window.requestAnimationFrame(function() {\n * //stagger has reset itself\n * $animate.leave(kids[5]); //stagger index=0\n * $animate.leave(kids[6]); //stagger index=1\n *\n * $scope.$digest();\n * });\n * ```\n *\n * Stagger animations are currently only supported within CSS-defined animations.\n *\n * ### The `ng-animate` CSS class\n *\n * When ngAnimate is animating an element it will apply the `ng-animate` CSS class to the element for the duration of the animation.\n * This is a temporary CSS class and it will be removed once the animation is over (for both JavaScript and CSS-based animations).\n *\n * Therefore, animations can be applied to an element using this temporary class directly via CSS.\n *\n * ```css\n * .zipper.ng-animate {\n * transition:0.5s linear all;\n * }\n * .zipper.ng-enter {\n * opacity:0;\n * }\n * .zipper.ng-enter.ng-enter-active {\n * opacity:1;\n * }\n * .zipper.ng-leave {\n * opacity:1;\n * }\n * .zipper.ng-leave.ng-leave-active {\n * opacity:0;\n * }\n * ```\n *\n * (Note that the `ng-animate` CSS class is reserved and it cannot be applied on an element directly since ngAnimate will always remove\n * the CSS class once an animation has completed.)\n *\n *\n * ### The `ng-[event]-prepare` class\n *\n * This is a special class that can be used to prevent unwanted flickering / flash of content before\n * the actual animation starts. The class is added as soon as an animation is initialized, but removed\n * before the actual animation starts (after waiting for a $digest).\n * It is also only added for *structural* animations (`enter`, `move`, and `leave`).\n *\n * In practice, flickering can appear when nesting elements with structural animations such as `ngIf`\n * into elements that have class-based animations such as `ngClass`.\n *\n * ```html\n *
\n *
\n *
\n *
\n *
\n * ```\n *\n * It is possible that during the `enter` animation, the `.message` div will be briefly visible before it starts animating.\n * In that case, you can add styles to the CSS that make sure the element stays hidden before the animation starts:\n *\n * ```css\n * .message.ng-enter-prepare {\n * opacity: 0;\n * }\n * ```\n *\n * ### Animating between value changes\n *\n * Sometimes you need to animate between different expression states, whose values\n * don't necessary need to be known or referenced in CSS styles.\n * Unless possible with another {@link ngAnimate#directive-support \"animation aware\" directive},\n * that specific use case can always be covered with {@link ngAnimate.directive:ngAnimateSwap} as\n * can be seen in {@link ngAnimate.directive:ngAnimateSwap#examples this example}.\n *\n * Note that {@link ngAnimate.directive:ngAnimateSwap} is a *structural directive*, which means it\n * creates a new instance of the element (including any other/child directives it may have) and\n * links it to a new scope every time *swap* happens. In some cases this might not be desirable\n * (e.g. for performance reasons, or when you wish to retain internal state on the original\n * element instance).\n *\n * ## JavaScript-based Animations\n *\n * ngAnimate also allows for animations to be consumed by JavaScript code. The approach is similar to CSS-based animations (where there is a shared\n * CSS class that is referenced in our HTML code) but in addition we need to register the JavaScript animation on the module. By making use of the\n * `module.animation()` module function we can register the animation.\n *\n * Let's see an example of a enter/leave animation using `ngRepeat`:\n *\n * ```html\n *
\n * {{ item }}\n *
\n * ```\n *\n * See the **slide** CSS class? Let's use that class to define an animation that we'll structure in our module code by using `module.animation`:\n *\n * ```js\n * myModule.animation('.slide', [function() {\n * return {\n * // make note that other events (like addClass/removeClass)\n * // have different function input parameters\n * enter: function(element, doneFn) {\n * jQuery(element).fadeIn(1000, doneFn);\n *\n * // remember to call doneFn so that AngularJS\n * // knows that the animation has concluded\n * },\n *\n * move: function(element, doneFn) {\n * jQuery(element).fadeIn(1000, doneFn);\n * },\n *\n * leave: function(element, doneFn) {\n * jQuery(element).fadeOut(1000, doneFn);\n * }\n * }\n * }]);\n * ```\n *\n * The nice thing about JS-based animations is that we can inject other services and make use of advanced animation libraries such as\n * greensock.js and velocity.js.\n *\n * If our animation code class-based (meaning that something like `ngClass`, `ngHide` and `ngShow` triggers it) then we can still define\n * our animations inside of the same registered animation, however, the function input arguments are a bit different:\n *\n * ```html\n *
\n * this box is moody\n *
\n * \n * \n * \n * ```\n *\n * ```js\n * myModule.animation('.colorful', [function() {\n * return {\n * addClass: function(element, className, doneFn) {\n * // do some cool animation and call the doneFn\n * },\n * removeClass: function(element, className, doneFn) {\n * // do some cool animation and call the doneFn\n * },\n * setClass: function(element, addedClass, removedClass, doneFn) {\n * // do some cool animation and call the doneFn\n * }\n * }\n * }]);\n * ```\n *\n * ## CSS + JS Animations Together\n *\n * AngularJS 1.4 and higher has taken steps to make the amalgamation of CSS and JS animations more flexible. However, unlike earlier versions of AngularJS,\n * defining CSS and JS animations to work off of the same CSS class will not work anymore. Therefore the example below will only result in **JS animations taking\n * charge of the animation**:\n *\n * ```html\n *
\n * Slide in and out\n *
\n * ```\n *\n * ```js\n * myModule.animation('.slide', [function() {\n * return {\n * enter: function(element, doneFn) {\n * jQuery(element).slideIn(1000, doneFn);\n * }\n * }\n * }]);\n * ```\n *\n * ```css\n * .slide.ng-enter {\n * transition:0.5s linear all;\n * transform:translateY(-100px);\n * }\n * .slide.ng-enter.ng-enter-active {\n * transform:translateY(0);\n * }\n * ```\n *\n * Does this mean that CSS and JS animations cannot be used together? Do JS-based animations always have higher priority? We can make up for the\n * lack of CSS animations by using the `$animateCss` service to trigger our own tweaked-out, CSS-based animations directly from\n * our own JS-based animation code:\n *\n * ```js\n * myModule.animation('.slide', ['$animateCss', function($animateCss) {\n * return {\n * enter: function(element) {\n* // this will trigger `.slide.ng-enter` and `.slide.ng-enter-active`.\n * return $animateCss(element, {\n * event: 'enter',\n * structural: true\n * });\n * }\n * }\n * }]);\n * ```\n *\n * The nice thing here is that we can save bandwidth by sticking to our CSS-based animation code and we don't need to rely on a 3rd-party animation framework.\n *\n * The `$animateCss` service is very powerful since we can feed in all kinds of extra properties that will be evaluated and fed into a CSS transition or\n * keyframe animation. For example if we wanted to animate the height of an element while adding and removing classes then we can do so by providing that\n * data into `$animateCss` directly:\n *\n * ```js\n * myModule.animation('.slide', ['$animateCss', function($animateCss) {\n * return {\n * enter: function(element) {\n * return $animateCss(element, {\n * event: 'enter',\n * structural: true,\n * addClass: 'maroon-setting',\n * from: { height:0 },\n * to: { height: 200 }\n * });\n * }\n * }\n * }]);\n * ```\n *\n * Now we can fill in the rest via our transition CSS code:\n *\n * ```css\n * /* the transition tells ngAnimate to make the animation happen */\n * .slide.ng-enter { transition:0.5s linear all; }\n *\n * /* this extra CSS class will be absorbed into the transition\n * since the $animateCss code is adding the class */\n * .maroon-setting { background:red; }\n * ```\n *\n * And `$animateCss` will figure out the rest. Just make sure to have the `done()` callback fire the `doneFn` function to signal when the animation is over.\n *\n * To learn more about what's possible be sure to visit the {@link ngAnimate.$animateCss $animateCss service}.\n *\n * ## Animation Anchoring (via `ng-animate-ref`)\n *\n * ngAnimate in AngularJS 1.4 comes packed with the ability to cross-animate elements between\n * structural areas of an application (like views) by pairing up elements using an attribute\n * called `ng-animate-ref`.\n *\n * Let's say for example we have two views that are managed by `ng-view` and we want to show\n * that there is a relationship between two components situated in within these views. By using the\n * `ng-animate-ref` attribute we can identify that the two components are paired together and we\n * can then attach an animation, which is triggered when the view changes.\n *\n * Say for example we have the following template code:\n *\n * ```html\n * \n *
\n *
\n *\n * \n * \n * \n * \n *\n * \n * \n * ```\n *\n * Now, when the view changes (once the link is clicked), ngAnimate will examine the\n * HTML contents to see if there is a match reference between any components in the view\n * that is leaving and the view that is entering. It will scan both the view which is being\n * removed (leave) and inserted (enter) to see if there are any paired DOM elements that\n * contain a matching ref value.\n *\n * The two images match since they share the same ref value. ngAnimate will now create a\n * transport element (which is a clone of the first image element) and it will then attempt\n * to animate to the position of the second image element in the next view. For the animation to\n * work a special CSS class called `ng-anchor` will be added to the transported element.\n *\n * We can now attach a transition onto the `.banner.ng-anchor` CSS class and then\n * ngAnimate will handle the entire transition for us as well as the addition and removal of\n * any changes of CSS classes between the elements:\n *\n * ```css\n * .banner.ng-anchor {\n * /* this animation will last for 1 second since there are\n * two phases to the animation (an `in` and an `out` phase) */\n * transition:0.5s linear all;\n * }\n * ```\n *\n * We also **must** include animations for the views that are being entered and removed\n * (otherwise anchoring wouldn't be possible since the new view would be inserted right away).\n *\n * ```css\n * .view-animation.ng-enter, .view-animation.ng-leave {\n * transition:0.5s linear all;\n * position:fixed;\n * left:0;\n * top:0;\n * width:100%;\n * }\n * .view-animation.ng-enter {\n * transform:translateX(100%);\n * }\n * .view-animation.ng-leave,\n * .view-animation.ng-enter.ng-enter-active {\n * transform:translateX(0%);\n * }\n * .view-animation.ng-leave.ng-leave-active {\n * transform:translateX(-100%);\n * }\n * ```\n *\n * Now we can jump back to the anchor animation. When the animation happens, there are two stages that occur:\n * an `out` and an `in` stage. The `out` stage happens first and that is when the element is animated away\n * from its origin. Once that animation is over then the `in` stage occurs which animates the\n * element to its destination. The reason why there are two animations is to give enough time\n * for the enter animation on the new element to be ready.\n *\n * The example above sets up a transition for both the in and out phases, but we can also target the out or\n * in phases directly via `ng-anchor-out` and `ng-anchor-in`.\n *\n * ```css\n * .banner.ng-anchor-out {\n * transition: 0.5s linear all;\n *\n * /* the scale will be applied during the out animation,\n * but will be animated away when the in animation runs */\n * transform: scale(1.2);\n * }\n *\n * .banner.ng-anchor-in {\n * transition: 1s linear all;\n * }\n * ```\n *\n *\n *\n *\n * ### Anchoring Demo\n *\n \n \n Home\n
\n
\n
\n
\n
\n \n angular.module('anchoringExample', ['ngAnimate', 'ngRoute'])\n .config(['$routeProvider', function($routeProvider) {\n $routeProvider.when('/', {\n templateUrl: 'home.html',\n controller: 'HomeController as home'\n });\n $routeProvider.when('/profile/:id', {\n templateUrl: 'profile.html',\n controller: 'ProfileController as profile'\n });\n }])\n .run(['$rootScope', function($rootScope) {\n $rootScope.records = [\n { id: 1, title: 'Miss Beulah Roob' },\n { id: 2, title: 'Trent Morissette' },\n { id: 3, title: 'Miss Ava Pouros' },\n { id: 4, title: 'Rod Pouros' },\n { id: 5, title: 'Abdul Rice' },\n { id: 6, title: 'Laurie Rutherford Sr.' },\n { id: 7, title: 'Nakia McLaughlin' },\n { id: 8, title: 'Jordon Blanda DVM' },\n { id: 9, title: 'Rhoda Hand' },\n { id: 10, title: 'Alexandrea Sauer' }\n ];\n }])\n .controller('HomeController', [function() {\n //empty\n }])\n .controller('ProfileController', ['$rootScope', '$routeParams',\n function ProfileController($rootScope, $routeParams) {\n var index = parseInt($routeParams.id, 10);\n var record = $rootScope.records[index - 1];\n\n this.title = record.title;\n this.id = record.id;\n }]);\n \n \n

Welcome to the home page

\n

Please click on an element

\n \n {{ record.title }}\n \n
\n \n
\n {{ profile.title }}\n
\n
\n \n .record {\n display:block;\n font-size:20px;\n }\n .profile {\n background:black;\n color:white;\n font-size:100px;\n }\n .view-container {\n position:relative;\n }\n .view-container > .view.ng-animate {\n position:absolute;\n top:0;\n left:0;\n width:100%;\n min-height:500px;\n }\n .view.ng-enter, .view.ng-leave,\n .record.ng-anchor {\n transition:0.5s linear all;\n }\n .view.ng-enter {\n transform:translateX(100%);\n }\n .view.ng-enter.ng-enter-active, .view.ng-leave {\n transform:translateX(0%);\n }\n .view.ng-leave.ng-leave-active {\n transform:translateX(-100%);\n }\n .record.ng-anchor-out {\n background:red;\n }\n \n
\n *\n * ### How is the element transported?\n *\n * When an anchor animation occurs, ngAnimate will clone the starting element and position it exactly where the starting\n * element is located on screen via absolute positioning. The cloned element will be placed inside of the root element\n * of the application (where ng-app was defined) and all of the CSS classes of the starting element will be applied. The\n * element will then animate into the `out` and `in` animations and will eventually reach the coordinates and match\n * the dimensions of the destination element. During the entire animation a CSS class of `.ng-animate-shim` will be applied\n * to both the starting and destination elements in order to hide them from being visible (the CSS styling for the class\n * is: `visibility:hidden`). Once the anchor reaches its destination then it will be removed and the destination element\n * will become visible since the shim class will be removed.\n *\n * ### How is the morphing handled?\n *\n * CSS Anchoring relies on transitions and keyframes and the internal code is intelligent enough to figure out\n * what CSS classes differ between the starting element and the destination element. These different CSS classes\n * will be added/removed on the anchor element and a transition will be applied (the transition that is provided\n * in the anchor class). Long story short, ngAnimate will figure out what classes to add and remove which will\n * make the transition of the element as smooth and automatic as possible. Be sure to use simple CSS classes that\n * do not rely on DOM nesting structure so that the anchor element appears the same as the starting element (since\n * the cloned element is placed inside of root element which is likely close to the body element).\n *\n * Note that if the root element is on the `` element then the cloned node will be placed inside of body.\n *\n *\n * ## Using $animate in your directive code\n *\n * So far we've explored how to feed in animations into an AngularJS application, but how do we trigger animations within our own directives in our application?\n * By injecting the `$animate` service into our directive code, we can trigger structural and class-based hooks which can then be consumed by animations. Let's\n * imagine we have a greeting box that shows and hides itself when the data changes\n *\n * ```html\n * Hi there\n * ```\n *\n * ```js\n * ngModule.directive('greetingBox', ['$animate', function($animate) {\n * return function(scope, element, attrs) {\n * attrs.$observe('active', function(value) {\n * value ? $animate.addClass(element, 'on') : $animate.removeClass(element, 'on');\n * });\n * });\n * }]);\n * ```\n *\n * Now the `on` CSS class is added and removed on the greeting box component. Now if we add a CSS class on top of the greeting box element\n * in our HTML code then we can trigger a CSS or JS animation to happen.\n *\n * ```css\n * /* normally we would create a CSS class to reference on the element */\n * greeting-box.on { transition:0.5s linear all; background:green; color:white; }\n * ```\n *\n * The `$animate` service contains a variety of other methods like `enter`, `leave`, `animate` and `setClass`. To learn more about what's\n * possible be sure to visit the {@link ng.$animate $animate service API page}.\n *\n *\n * ## Callbacks and Promises\n *\n * When `$animate` is called it returns a promise that can be used to capture when the animation has ended. Therefore if we were to trigger\n * an animation (within our directive code) then we can continue performing directive and scope related activities after the animation has\n * ended by chaining onto the returned promise that animation method returns.\n *\n * ```js\n * // somewhere within the depths of the directive\n * $animate.enter(element, parent).then(function() {\n * //the animation has completed\n * });\n * ```\n *\n * (Note that earlier versions of AngularJS prior to v1.4 required the promise code to be wrapped using `$scope.$apply(...)`. This is not the case\n * anymore.)\n *\n * In addition to the animation promise, we can also make use of animation-related callbacks within our directives and controller code by registering\n * an event listener using the `$animate` service. Let's say for example that an animation was triggered on our view\n * routing controller to hook into that:\n *\n * ```js\n * ngModule.controller('HomePageController', ['$animate', function($animate) {\n * $animate.on('enter', ngViewElement, function(element) {\n * // the animation for this route has completed\n * }]);\n * }])\n * ```\n *\n * (Note that you will need to trigger a digest within the callback to get AngularJS to notice any scope-related changes.)\n */\n\nvar copy;\nvar extend;\nvar forEach;\nvar isArray;\nvar isDefined;\nvar isElement;\nvar isFunction;\nvar isObject;\nvar isString;\nvar isUndefined;\nvar jqLite;\nvar noop;\n\n/**\n * @ngdoc service\n * @name $animate\n * @kind object\n *\n * @description\n * The ngAnimate `$animate` service documentation is the same for the core `$animate` service.\n *\n * Click here {@link ng.$animate to learn more about animations with `$animate`}.\n */\nangular.module('ngAnimate', [], function initAngularHelpers() {\n // Access helpers from AngularJS core.\n // Do it inside a `config` block to ensure `window.angular` is available.\n noop = angular.noop;\n copy = angular.copy;\n extend = angular.extend;\n jqLite = angular.element;\n forEach = angular.forEach;\n isArray = angular.isArray;\n isString = angular.isString;\n isObject = angular.isObject;\n isUndefined = angular.isUndefined;\n isDefined = angular.isDefined;\n isFunction = angular.isFunction;\n isElement = angular.isElement;\n})\n .info({ angularVersion: '1.8.2' })\n .directive('ngAnimateSwap', ngAnimateSwapDirective)\n\n .directive('ngAnimateChildren', $$AnimateChildrenDirective)\n .factory('$$rAFScheduler', $$rAFSchedulerFactory)\n\n .provider('$$animateQueue', $$AnimateQueueProvider)\n .provider('$$animateCache', $$AnimateCacheProvider)\n .provider('$$animation', $$AnimationProvider)\n\n .provider('$animateCss', $AnimateCssProvider)\n .provider('$$animateCssDriver', $$AnimateCssDriverProvider)\n\n .provider('$$animateJs', $$AnimateJsProvider)\n .provider('$$animateJsDriver', $$AnimateJsDriverProvider);\n\n\n})(window, window.angular);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar match = String.prototype.match;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nvar inspectCustom = require('./util.inspect').custom;\nvar inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('options \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n return String(obj);\n }\n if (typeof obj === 'bigint') {\n return String(obj) + 'n';\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = seen.slice();\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function') {\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + String(obj.nodeName).toLowerCase();\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + xs.join(', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function') {\n return obj[inspectSymbol]();\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + ys.join(', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return String(s).replace(/\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = str.replace(/(['\\\\])/g, '\\\\$1').replace(/[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase();\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = Array(opts.indent + 1).join(' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: Array(depth + 1).join(baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + xs.join(',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ((/[^\\w$]/).test(key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { ObjAssign, ObjClass, ObjCreate, ObjDefineProperty, ObjHasOwnProperty, ObjProto, strDefault, strShimFunction, strShimHasOwnProperty, strShimPrototype } from \"./Constants\";\r\nimport { getGlobal, objCreateFn, throwTypeError } from \"./Helpers\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES3 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasSymbol = !!SymbolObj;\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strShimHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = ObjAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strShimHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() { this.constructor = d; }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreateFn(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (ObjHasOwnProperty.call(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && ObjDefineProperty(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !ObjHasOwnProperty.call(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (ObjCreate) {\r\n ObjDefineProperty(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // tslint:disable-next-line:no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (ObjDefineProperty) {\r\n ObjDefineProperty(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\n;\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (ObjCreate) {\r\n ObjDefineProperty(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\n;\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*!\n * Microsoft Dynamic Proto Utility, 1.1.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Internal Global used to generate a unique dynamic class name, every new class will increase this value\r\n * @ignore\r\n */\r\nvar _dynamicNames = 0;\r\n/**\r\n * Helper to check if the object contains a property of the name\r\n * @ignore\r\n */\r\nfunction _hasOwnProperty(obj, prop) {\r\n return obj && Obj[Prototype].hasOwnProperty.call(obj, prop);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n var getOwnProps = Obj[\"getOwnPropertyNames\"];\r\n if (getOwnProps) {\r\n props = getOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && _hasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || _hasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throw new TypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && _hasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !_hasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!_hasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (_hasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nfunction dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!_hasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] is not in class hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (_hasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _dynamicNames;\r\n _dynamicNames++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\nvar perfDefaults = {\r\n setInstFuncs: true,\r\n useBaseInst: true\r\n};\r\n// And expose for testing\r\ndynamicProto[DynProtoDefaultOptions] = perfDefaults;\n\nexport default dynamicProto;\n//# sourceMappingURL=dynamicproto-js.js.map\n\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var LoggingSeverity;\r\n(function (LoggingSeverity) {\r\n /**\r\n * Error will be sent as internal telemetry\r\n */\r\n LoggingSeverity[LoggingSeverity[\"CRITICAL\"] = 1] = \"CRITICAL\";\r\n /**\r\n * Error will NOT be sent as internal telemetry, and will only be shown in browser console\r\n */\r\n LoggingSeverity[LoggingSeverity[\"WARNING\"] = 2] = \"WARNING\";\r\n})(LoggingSeverity || (LoggingSeverity = {}));\r\n/**\r\n * Internal message ID. Please create a new one for every conceptually different message. Please keep alphabetically ordered\r\n */\r\nexport var _InternalMessageId = {\r\n // Non user actionable\r\n BrowserDoesNotSupportLocalStorage: 0,\r\n BrowserCannotReadLocalStorage: 1,\r\n BrowserCannotReadSessionStorage: 2,\r\n BrowserCannotWriteLocalStorage: 3,\r\n BrowserCannotWriteSessionStorage: 4,\r\n BrowserFailedRemovalFromLocalStorage: 5,\r\n BrowserFailedRemovalFromSessionStorage: 6,\r\n CannotSendEmptyTelemetry: 7,\r\n ClientPerformanceMathError: 8,\r\n ErrorParsingAISessionCookie: 9,\r\n ErrorPVCalc: 10,\r\n ExceptionWhileLoggingError: 11,\r\n FailedAddingTelemetryToBuffer: 12,\r\n FailedMonitorAjaxAbort: 13,\r\n FailedMonitorAjaxDur: 14,\r\n FailedMonitorAjaxOpen: 15,\r\n FailedMonitorAjaxRSC: 16,\r\n FailedMonitorAjaxSend: 17,\r\n FailedMonitorAjaxGetCorrelationHeader: 18,\r\n FailedToAddHandlerForOnBeforeUnload: 19,\r\n FailedToSendQueuedTelemetry: 20,\r\n FailedToReportDataLoss: 21,\r\n FlushFailed: 22,\r\n MessageLimitPerPVExceeded: 23,\r\n MissingRequiredFieldSpecification: 24,\r\n NavigationTimingNotSupported: 25,\r\n OnError: 26,\r\n SessionRenewalDateIsZero: 27,\r\n SenderNotInitialized: 28,\r\n StartTrackEventFailed: 29,\r\n StopTrackEventFailed: 30,\r\n StartTrackFailed: 31,\r\n StopTrackFailed: 32,\r\n TelemetrySampledAndNotSent: 33,\r\n TrackEventFailed: 34,\r\n TrackExceptionFailed: 35,\r\n TrackMetricFailed: 36,\r\n TrackPVFailed: 37,\r\n TrackPVFailedCalc: 38,\r\n TrackTraceFailed: 39,\r\n TransmissionFailed: 40,\r\n FailedToSetStorageBuffer: 41,\r\n FailedToRestoreStorageBuffer: 42,\r\n InvalidBackendResponse: 43,\r\n FailedToFixDepricatedValues: 44,\r\n InvalidDurationValue: 45,\r\n TelemetryEnvelopeInvalid: 46,\r\n CreateEnvelopeError: 47,\r\n // User actionable\r\n CannotSerializeObject: 48,\r\n CannotSerializeObjectNonSerializable: 49,\r\n CircularReferenceDetected: 50,\r\n ClearAuthContextFailed: 51,\r\n ExceptionTruncated: 52,\r\n IllegalCharsInName: 53,\r\n ItemNotInArray: 54,\r\n MaxAjaxPerPVExceeded: 55,\r\n MessageTruncated: 56,\r\n NameTooLong: 57,\r\n SampleRateOutOfRange: 58,\r\n SetAuthContextFailed: 59,\r\n SetAuthContextFailedAccountName: 60,\r\n StringValueTooLong: 61,\r\n StartCalledMoreThanOnce: 62,\r\n StopCalledWithoutStart: 63,\r\n TelemetryInitializerFailed: 64,\r\n TrackArgumentsNotSpecified: 65,\r\n UrlTooLong: 66,\r\n SessionStorageBufferFull: 67,\r\n CannotAccessCookie: 68,\r\n IdTooLong: 69,\r\n InvalidEvent: 70,\r\n FailedMonitorAjaxSetRequestHeader: 71,\r\n SendBrowserInfoOnUserInit: 72,\r\n PluginException: 73,\r\n NotificationException: 74,\r\n SnippetScriptLoadFailure: 99,\r\n InvalidInstrumentationKey: 100,\r\n CannotParseAiBlobValue: 101,\r\n InvalidContentBlob: 102,\r\n TrackPageActionEventFailed: 103,\r\n FailedAddingCustomDefinedRequestContext: 104,\r\n InMemoryStorageBufferFull: 105\r\n};\r\n//# sourceMappingURL=LoggingEnums.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimUndefined, strShimObject, strShimFunction, throwTypeError, ObjClass, ObjProto, ObjAssign, ObjHasOwnProperty, ObjDefineProperty } from \"@microsoft/applicationinsights-shims\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar _objDefineProperty = ObjDefineProperty;\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _objSeal = ObjClass[\"seal\"];\r\nexport function objToString(obj) {\r\n return ObjProto.toString.call(obj);\r\n}\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\nexport function isUndefined(value) {\r\n return value === undefined || typeof value === strShimUndefined;\r\n}\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNullOrUndefined(value) {\r\n return (value === null || isUndefined(value));\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\nexport function hasOwnProperty(obj, prop) {\r\n return obj && ObjHasOwnProperty.call(obj, prop);\r\n}\r\nexport function isObject(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimObject;\r\n}\r\nexport function isFunction(value) {\r\n // Changing to inline for performance\r\n return typeof value === strShimFunction;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj Object to add the event too.\r\n * @param eventNameWithoutOn String that specifies any of the standard DHTML Events without \"on\" prefix\r\n * @param handlerRef Pointer that specifies the function to call when event fires\r\n * @param useCapture [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strAddEventHelper])) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](eventNameWithoutOn, handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (!isNullOrUndefined(obj[strAttachEvent])) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n result = true;\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object to remove the event from\r\n * @param eventNameWithoutOn {string} - The name of the event\r\n * @param handlerRef {any} - The callback function that needs to be executed for the given event\r\n * @param useCapture [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (!isNullOrUndefined(obj)) {\r\n try {\r\n if (!isNullOrUndefined(obj[strRemoveEventListener])) {\r\n obj[strRemoveEventListener](eventNameWithoutOn, handlerRef, useCapture);\r\n }\r\n else if (!isNullOrUndefined(obj[strDetachEvent])) {\r\n obj[strDetachEvent](strOnPrefix + eventNameWithoutOn, handlerRef);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n var match = /([^\\w\\d_$])/g;\r\n if (match.test(name)) {\r\n value = name.replace(match, \"_\");\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is a helper function for the equivalent of arForEach(objKeys(target), callbackFn), this is a\r\n * performance optimization to avoid the creation of a new array for large objects\r\n * @param target The target object to find and process the keys\r\n * @param callbackfn The function to call with the details\r\n */\r\nexport function objForEachKey(target, callbackfn) {\r\n if (target) {\r\n for (var prop in target) {\r\n if (ObjHasOwnProperty.call(target, prop)) {\r\n callbackfn.call(target, prop, target[prop]);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var searchLen = search.length;\r\n var valLen = value.length;\r\n if (value === search) {\r\n return true;\r\n }\r\n else if (valLen >= searchLen) {\r\n var pos = valLen - 1;\r\n for (var lp = searchLen - 1; lp >= 0; lp--) {\r\n if (value[pos] != search[lp]) {\r\n return false;\r\n }\r\n pos--;\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * The strStartsWith() method determines whether a string starts with the characters of the specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param checkValue - The characters to be searched for at the start of the value.\r\n * @returns true if the given search value is found at the start of the string, otherwise false.\r\n */\r\nexport function strStartsWith(value, checkValue) {\r\n // Using helper for performance and because string startsWith() is not available on IE\r\n var result = false;\r\n if (value && checkValue) {\r\n var chkLen = checkValue.length;\r\n if (value === checkValue) {\r\n return true;\r\n }\r\n else if (value.length >= chkLen) {\r\n for (var lp = 0; lp < chkLen; lp++) {\r\n if (value[lp] !== checkValue[lp]) {\r\n return false;\r\n }\r\n }\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return value.indexOf(search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Check if an object is of type Date\r\n */\r\nexport function isDate(obj) {\r\n return objToString(obj) === \"[object Date]\";\r\n}\r\n/**\r\n * Check if an object is of type Array\r\n */\r\nexport function isArray(obj) {\r\n return objToString(obj) === \"[object Array]\";\r\n}\r\n/**\r\n * Check if an object is of type Error\r\n */\r\nexport function isError(obj) {\r\n return objToString(obj) === \"[object Error]\";\r\n}\r\n/**\r\n * Checks if the type of value is a string.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a string, false otherwise.\r\n */\r\nexport function isString(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"string\";\r\n}\r\n/**\r\n * Checks if the type of value is a number.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport function isNumber(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"number\";\r\n}\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport function isBoolean(value) {\r\n // Changing to inline for performance\r\n return typeof value === \"boolean\";\r\n}\r\n/**\r\n * Checks if the type of value is a Symbol.\r\n * This only returns a boolean as returning value is Symbol will cause issues for older TypeScript consumers\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Symbol, false otherwise.\r\n */\r\nexport function isSymbol(value) {\r\n return typeof value === \"symbol\";\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n if (isDate(date)) {\r\n var pad = function (num) {\r\n var r = String(num);\r\n if (r.length === 1) {\r\n r = \"0\" + r;\r\n }\r\n return r;\r\n };\r\n return date.getUTCFullYear()\r\n + \"-\" + pad(date.getUTCMonth() + 1)\r\n + \"-\" + pad(date.getUTCDate())\r\n + \"T\" + pad(date.getUTCHours())\r\n + \":\" + pad(date.getUTCMinutes())\r\n + \":\" + pad(date.getUTCSeconds())\r\n + \".\" + String((date.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5)\r\n + \"Z\";\r\n }\r\n}\r\n/**\r\n * Performs the specified action for each element in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array. It can return -1 to break out of the loop\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrForEach(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n try {\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in arr) {\r\n if (callbackfn.call(thisArg || arr, arr[idx], idx, arr) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n}\r\n/**\r\n * Returns the index of the first occurrence of a value in an array. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype\r\n * implementation. Note: For consistency this will not use the Array.prototype.xxxx implementation if it exists as this would\r\n * cause a testing requirement to test with and without the implementations\r\n * @param searchElement The value to locate in the array.\r\n * @param fromIndex The array index at which to begin the search. If fromIndex is omitted, the search starts at index 0.\r\n */\r\nexport function arrIndexOf(arr, searchElement, fromIndex) {\r\n var len = arr.length;\r\n var from = fromIndex || 0;\r\n try {\r\n for (var lp = Math.max(from >= 0 ? from : len - Math.abs(from), 0); lp < len; lp++) {\r\n if (lp in arr && arr[lp] === searchElement) {\r\n return lp;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Calls a defined callback function on each element of an array, and returns an array that contains the results. This helper exists\r\n * to avoid adding a polyfil for older browsers that do not define Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page\r\n * checks for presence/absence of the prototype implementation. Note: For consistency this will not use the Array.prototype.xxxx\r\n * implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to three arguments. The map method calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, undefined is used as the this value.\r\n */\r\nexport function arrMap(arr, callbackfn, thisArg) {\r\n var len = arr.length;\r\n var _this = thisArg || arr;\r\n var results = new Array(len);\r\n try {\r\n for (var lp = 0; lp < len; lp++) {\r\n if (lp in arr) {\r\n results[lp] = callbackfn.call(_this, arr[lp], arr);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return results;\r\n}\r\n/**\r\n * Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is\r\n * provided as an argument in the next call to the callback function. This helper exists to avoid adding a polyfil for older browsers that do not define\r\n * Array.prototype.xxxx (eg. ES3 only, IE8) just in case any page checks for presence/absence of the prototype implementation. Note: For consistency\r\n * this will not use the Array.prototype.xxxx implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n */\r\nexport function arrReduce(arr, callbackfn, initialValue) {\r\n var len = arr.length;\r\n var lp = 0;\r\n var value;\r\n // Specifically checking the number of passed arguments as the value could be anything\r\n if (arguments.length >= 3) {\r\n value = arguments[2];\r\n }\r\n else {\r\n while (lp < len && !(lp in arr)) {\r\n lp++;\r\n }\r\n value = arr[lp++];\r\n }\r\n while (lp < len) {\r\n if (lp in arr) {\r\n value = callbackfn(value, arr[lp], lp, arr);\r\n }\r\n lp++;\r\n }\r\n return value;\r\n}\r\n/**\r\n * helper method to trim strings (IE8 does not implement String.prototype.trim)\r\n */\r\nexport function strTrim(str) {\r\n if (typeof str !== \"string\") {\r\n return str;\r\n }\r\n return str.replace(/^\\s+|\\s+$/g, \"\");\r\n}\r\nvar _objKeysHasDontEnumBug = !({ toString: null }).propertyIsEnumerable(\"toString\");\r\nvar _objKeysDontEnums = [\r\n \"toString\",\r\n \"toLocaleString\",\r\n \"valueOf\",\r\n \"hasOwnProperty\",\r\n \"isPrototypeOf\",\r\n \"propertyIsEnumerable\",\r\n \"constructor\"\r\n];\r\n/**\r\n * Returns the names of the enumerable string properties and methods of an object. This helper exists to avoid adding a polyfil for older browsers\r\n * that do not define Object.keys eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.keys implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @param obj Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.\r\n */\r\nexport function objKeys(obj) {\r\n var objType = typeof obj;\r\n if (objType !== strShimFunction && (objType !== strShimObject || obj === null)) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n var result = [];\r\n for (var prop in obj) {\r\n if (obj && ObjHasOwnProperty.call(obj, prop)) {\r\n result.push(prop);\r\n }\r\n }\r\n if (_objKeysHasDontEnumBug) {\r\n var dontEnumsLength = _objKeysDontEnums.length;\r\n for (var lp = 0; lp < dontEnumsLength; lp++) {\r\n if (obj && ObjHasOwnProperty.call(obj, _objKeysDontEnums[lp])) {\r\n result.push(_objKeysDontEnums[lp]);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @param target The object on which to define the property.\r\n * @param prop The name of the property to be defined or modified.\r\n * @param getProp The getter function to wire against the getter.\r\n * @param setProp The setter function to wire against the setter.\r\n * @returns True if it was able to create the accessors otherwise false\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp) {\r\n if (_objDefineProperty) {\r\n try {\r\n var descriptor = {\r\n enumerable: true,\r\n configurable: true\r\n };\r\n if (getProp) {\r\n descriptor.get = getProp;\r\n }\r\n if (setProp) {\r\n descriptor.set = setProp;\r\n }\r\n _objDefineProperty(target, prop, descriptor);\r\n return true;\r\n }\r\n catch (e) {\r\n // IE8 Defines a defineProperty on Object but it's only supported for DOM elements so it will throw\r\n // We will just ignore this here.\r\n }\r\n }\r\n return false;\r\n}\r\nexport function objFreeze(value) {\r\n if (_objFreeze) {\r\n value = _objFreeze(value);\r\n }\r\n return value;\r\n}\r\nexport function objSeal(value) {\r\n if (_objSeal) {\r\n value = _objSeal(value);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Return the current time via the Date now() function (if available) and falls back to (new Date()).getTime() if now() is unavailable (IE8 or less)\r\n * https://caniuse.com/#search=Date.now\r\n */\r\nexport function dateNow() {\r\n var dt = Date;\r\n if (dt.now) {\r\n return dt.now();\r\n }\r\n return new dt().getTime();\r\n}\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object.name;\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nexport function isNotTruthy(value) {\r\n return !value;\r\n}\r\nexport function isTruthy(value) {\r\n return !!value;\r\n}\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n * @memberof Initialization\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && target !== source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = (function (funcName) {\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n return source[funcName].apply(source, originalArguments);\r\n };\r\n })(field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (hasOwnProperty(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n if (!objDefineAccessors(target, field, function () {\r\n return source[field];\r\n }, function (theValue) {\r\n source[field] = theValue;\r\n })) {\r\n // Unable to create an accessor, so just assign the values as a fallback\r\n // -- this will (mostly) work for objects\r\n // -- but will fail for accessing primitives (if the source changes it) and all types of \"setters\" as the source won't be modified\r\n target[field] = value;\r\n }\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this_1 = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this_1[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject) {\r\n theObject = ObjClass(ObjAssign ? ObjAssign({}, theObject) : theObject);\r\n }\r\n return theObject;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimUndefined, strShimObject, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { isString, isUndefined, strContains } from \"./HelperFuncs\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strWindow = \"window\";\r\nvar strDocument = \"document\";\r\nvar strNavigator = \"navigator\";\r\nvar strHistory = \"history\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strPerformance = \"performance\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @param name The globally named object\r\n */\r\nexport function getGlobalInst(name) {\r\n var gbl = getGlobal();\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === strWindow && hasWindow()) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return window;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Checks if window object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a window\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: window is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasWindow() {\r\n return Boolean(typeof window === strShimObject && window);\r\n}\r\n/**\r\n * Returns the global window object if it is present otherwise null.\r\n * This helper is used to access the window object without causing an exception\r\n * \"Uncaught ReferenceError: window is not defined\"\r\n */\r\nexport function getWindow() {\r\n if (hasWindow()) {\r\n return window;\r\n }\r\n // Return the global instance or null\r\n return getGlobalInst(strWindow);\r\n}\r\n/**\r\n * Checks if document object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a document\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: document is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasDocument() {\r\n return Boolean(typeof document === strShimObject && document);\r\n}\r\n/**\r\n * Returns the global document object if it is present otherwise null.\r\n * This helper is used to access the document object without causing an exception\r\n * \"Uncaught ReferenceError: document is not defined\"\r\n */\r\nexport function getDocument() {\r\n if (hasDocument()) {\r\n return document;\r\n }\r\n return getGlobalInst(strDocument);\r\n}\r\n/**\r\n * Checks if navigator object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a navigator\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: navigator is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasNavigator() {\r\n return Boolean(typeof navigator === strShimObject && navigator);\r\n}\r\n/**\r\n * Returns the global navigator object if it is present otherwise null.\r\n * This helper is used to access the navigator object without causing an exception\r\n * \"Uncaught ReferenceError: navigator is not defined\"\r\n */\r\nexport function getNavigator() {\r\n if (hasNavigator()) {\r\n return navigator;\r\n }\r\n return getGlobalInst(strNavigator);\r\n}\r\n/**\r\n * Checks if history object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: history is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasHistory() {\r\n return Boolean(typeof history === strShimObject && history);\r\n}\r\n/**\r\n * Returns the global history object if it is present otherwise null.\r\n * This helper is used to access the history object without causing an exception\r\n * \"Uncaught ReferenceError: history is not defined\"\r\n */\r\nexport function getHistory() {\r\n if (hasHistory()) {\r\n return history;\r\n }\r\n return getGlobalInst(strHistory);\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getGlobalInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getGlobalInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getGlobalInst(strConsole);\r\n}\r\n/**\r\n * Returns the performance object if it is present otherwise null.\r\n * This helper is used to access the performance object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getPerformance() {\r\n return getGlobalInst(strPerformance);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getGlobalInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getGlobalInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getGlobalInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getGlobalInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav.userAgent !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav.userAgent;\r\n var userAgent = (_navUserAgentCheck || \"\").toLowerCase();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n if (strContains(ua, strMsie)) {\r\n return parseInt(ua.split(strMsie)[1]);\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua.split(strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n */\r\nexport function dumpObj(object) {\r\n var objectTypeDump = Object[strShimPrototype].toString.call(object);\r\n var propertyValueDump = \"\";\r\n if (objectTypeDump === \"[object Error]\") {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else if (hasJSON()) {\r\n propertyValueDump = getJSON().stringify(object);\r\n }\r\n return objectTypeDump + propertyValueDump;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || \"\").toLowerCase() : \"\";\r\n }\r\n var ua = (userAgentStr || \"\").toLowerCase();\r\n return (ua.indexOf(\"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported() {\r\n if (_beaconsSupported === null) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n var fetchApi = getGlobalInst(\"fetch\");\r\n isSupported = !!fetchApi;\r\n var request = getGlobalInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== undefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getGlobalInst(\"XMLHttpRequest\"), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getGlobalInst(\"XMLHttpRequest\");\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getGlobalInst } from \"./EnvUtils\";\r\nvar listenerFuncs = [\"eventsSent\", \"eventsDiscarded\", \"eventsSendRequest\", \"perfEvent\"];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name].apply(listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getGlobalInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs.length; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { hasJSON, getJSON, getConsole } from \"./EnvUtils\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar strErrorToConsole = \"errorToConsole\";\r\nvar strWarnToConsole = \"warnToConsole\";\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text.replace(/\\\"/g, \"\") + \"\\\"\";\r\n }\r\n return \"\";\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self.messageId = msgId;\r\n _self.message =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = \"\";\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : \"\") +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : \"\");\r\n _self.message += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {}).logger || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n if (isNullOrUndefined(config)) {\r\n config = {};\r\n }\r\n _self.consoleLoggingLevel = function () { return _getConfigValue(\"loggingLevelConsole\", 0); };\r\n _self.telemetryLoggingLevel = function () { return _getConfigValue(\"loggingLevelTelemetry\", 1); };\r\n _self.maxInternalMessageLimit = function () { return _getConfigValue(\"maxMessageLimit\", 25); };\r\n _self.enableDebugExceptions = function () { return _getConfigValue(\"enableDebugExceptions\", false); };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The log message.\r\n */\r\n _self.throwInternal = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_self.enableDebugExceptions()) {\r\n throw message;\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = severity === LoggingSeverity.CRITICAL ? strErrorToConsole : strWarnToConsole;\r\n if (!isUndefined(message.message)) {\r\n var logLevel = _self.consoleLoggingLevel();\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message.messageId;\r\n if (!_messageLogged[messageKey] && logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (logLevel >= severity) {\r\n _self[logFunc](message.message);\r\n }\r\n }\r\n _self.logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === LoggingSeverity.CRITICAL ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n /**\r\n * This will write a warning to the console if possible\r\n * @param message {string} - The warning message\r\n */\r\n _self.warnToConsole = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n /**\r\n * This will write an error to the console if possible\r\n * @param message {string} - The error message\r\n */\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n /**\r\n * Resets the internal message count\r\n */\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n /**\r\n * Logs a message to the internal queue.\r\n * @param severity {LoggingSeverity} - The severity of the log message\r\n * @param message {_InternalLogMessage} - The message to log.\r\n */\r\n _self.logInternalMessage = function (severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message.messageId;\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _self.telemetryLoggingLevel()) {\r\n _self.queue.push(message);\r\n _messageCount++;\r\n _debugExtMsg((severity === LoggingSeverity.CRITICAL ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _self.maxInternalMessageLimit()) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(_InternalMessageId.MessageLimitPerPVExceeded, throttleLimitMessage, false);\r\n _self.queue.push(throttleMessage);\r\n if (severity === LoggingSeverity.CRITICAL) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self.warnToConsole(throttleLimitMessage);\r\n }\r\n }\r\n }\r\n };\r\n function _getConfigValue(name, defValue) {\r\n var value = config[name];\r\n if (!isNullOrUndefined(value)) {\r\n return value;\r\n }\r\n return defValue;\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _self.maxInternalMessageLimit();\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt && dbgExt.diagLog) {\r\n dbgExt.diagLog(name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.enableDebugExceptions.\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.telemetryLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.maxInternalMessageLimit.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\n//# sourceMappingURL=DiagnosticLogger.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateNow, isArray, isFunction, objDefineAccessors } from \"./HelperFuncs\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n var accessorDefined = false;\r\n _self.start = dateNow();\r\n _self.name = name;\r\n _self.isAsync = isAsync;\r\n _self.isChildEvt = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n accessorDefined = objDefineAccessors(_self, \"payload\", function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n });\r\n }\r\n _self.getCtx = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey || key === PerfEvent.ChildrenContextKey) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent.ParentContextKey) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self.isChildEvt = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent.ChildrenContextKey) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self.complete = function () {\r\n var childTime = 0;\r\n var childEvts = _self.getCtx(PerfEvent.ChildrenContextKey);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts.length; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt.time;\r\n }\r\n }\r\n }\r\n _self.time = dateNow() - _self.start;\r\n _self.exTime = _self.time - childTime;\r\n _self.complete = function () { };\r\n if (!accessorDefined && isFunction(payloadDetails)) {\r\n // If we couldn't define the property set during complete -- to minimize the perf impact until after the time\r\n _self.payload = payloadDetails();\r\n }\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent.complete();\r\n if (manager && isFunction(manager.perfEvent)) {\r\n manager.perfEvent(perfEvent);\r\n }\r\n }\r\n };\r\n _self.setCtx = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self.getCtx = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (isFunction(perfMgr[\"getPerfMgr\"])) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[\"getPerfMgr\"]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr.getCtx(doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt.setCtx) {\r\n perfEvt.setCtx(PerfEvent.ParentContextKey, currentActive);\r\n if (currentActive.getCtx && currentActive.setCtx) {\r\n var children = currentActive.getCtx(PerfEvent.ChildrenContextKey);\r\n if (!children) {\r\n children = [];\r\n currentActive.setCtx(PerfEvent.ChildrenContextKey, children);\r\n }\r\n children.push(perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr.setCtx(doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt.setCtx) {\r\n perfEvt.setCtx(\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr.setCtx(doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { LoggingSeverity, _InternalMessageId } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { isFunction } from \"./HelperFuncs\";\r\nimport { dumpObj } from \"./EnvUtils\";\r\nvar TelemetryPluginChain = /** @class */ (function () {\r\n function TelemetryPluginChain(plugin, defItemCtx) {\r\n var _self = this;\r\n var _nextProxy = null;\r\n var _hasProcessTelemetry = isFunction(plugin.processTelemetry);\r\n var _hasSetNext = isFunction(plugin.setNextPlugin);\r\n _self._hasRun = false;\r\n _self.getPlugin = function () {\r\n return plugin;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n if (!itemCtx) {\r\n // Looks like a plugin didn't pass the (optional) context, so restore to the default\r\n itemCtx = defItemCtx;\r\n }\r\n var identifier = plugin ? plugin.identifier : \"TelemetryPluginChain\";\r\n doPerf(itemCtx ? itemCtx.core() : null, function () { return identifier + \":processTelemetry\"; }, function () {\r\n if (plugin && _hasProcessTelemetry) {\r\n _self._hasRun = true;\r\n try {\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n itemCtx.setNext(_nextProxy);\r\n if (_hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin.setNextPlugin(_nextProxy);\r\n }\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n _nextProxy && (_nextProxy._hasRun = false);\r\n plugin.processTelemetry(env, itemCtx);\r\n }\r\n catch (error) {\r\n var hasRun = _nextProxy && _nextProxy._hasRun;\r\n if (!_nextProxy || !hasRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.PluginException, \"Plugin [\" + plugin.identifier + \"] failed during processTelemetry - \" + dumpObj(error));\r\n }\r\n if (_nextProxy && !hasRun) {\r\n // As part of the failure the current plugin did not attempt to call the next plugin in the cahin\r\n // So rather than leave the pipeline dead in the water we call the next plugin\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }\r\n }\r\n else if (_nextProxy) {\r\n _self._hasRun = true;\r\n // The underlying plugin is either not defined or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n _nextProxy.processTelemetry(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n }\r\n return TelemetryPluginChain;\r\n}());\r\nexport { TelemetryPluginChain };\r\n//# sourceMappingURL=TelemetryPluginChain.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { TelemetryPluginChain } from \"./TelemetryPluginChain\";\r\nimport { arrForEach, isFunction, isNullOrUndefined, isUndefined } from \"./HelperFuncs\";\r\n/**\r\n * Creates the instance execution chain for the plugins\r\n */\r\nfunction _createProxyChain(plugins, itemCtx) {\r\n var proxies = [];\r\n if (plugins && plugins.length > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy = null;\r\n for (var idx = 0; idx < plugins.length; idx++) {\r\n var thePlugin = plugins[idx];\r\n if (thePlugin && isFunction(thePlugin.processTelemetry)) {\r\n // Only add plugins that are processors\r\n var newProxy = new TelemetryPluginChain(thePlugin, itemCtx);\r\n proxies.push(newProxy);\r\n if (lastProxy) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy.setNext(newProxy);\r\n }\r\n lastProxy = newProxy;\r\n }\r\n }\r\n }\r\n return proxies.length > 0 ? proxies[0] : null;\r\n}\r\nfunction _copyProxyChain(proxy, itemCtx, startAt) {\r\n var plugins = [];\r\n var add = startAt ? false : true;\r\n if (proxy) {\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n if (!add) {\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nfunction _copyPluginChain(srcPlugins, itemCtx, startAt) {\r\n var plugins = srcPlugins;\r\n var add = false;\r\n if (startAt && srcPlugins) {\r\n plugins = [];\r\n arrForEach(srcPlugins, function (thePlugin) {\r\n if (add || thePlugin === startAt) {\r\n add = true;\r\n plugins.push(thePlugin);\r\n }\r\n });\r\n }\r\n if (startAt && !add) {\r\n if (!plugins) {\r\n plugins = [];\r\n }\r\n plugins.push(startAt);\r\n }\r\n return _createProxyChain(plugins, itemCtx);\r\n}\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(plugins, config, core, startAt) {\r\n var _self = this;\r\n var _nextProxy = null; // Null == No next plugin\r\n // There is no next element (null) vs not defined (undefined)\r\n if (startAt !== null) {\r\n if (plugins && isFunction(plugins.getPlugin)) {\r\n // We have a proxy chain object\r\n _nextProxy = _copyProxyChain(plugins, _self, startAt || plugins.getPlugin());\r\n }\r\n else {\r\n // We just have an array\r\n if (startAt) {\r\n _nextProxy = _copyPluginChain(plugins, _self, startAt);\r\n }\r\n else if (isUndefined(startAt)) {\r\n // Undefined means copy the existing chain\r\n _nextProxy = _createProxyChain(plugins, _self);\r\n }\r\n }\r\n }\r\n _self.core = function () {\r\n return core;\r\n };\r\n _self.diagLog = function () {\r\n return safeGetLogger(core, config);\r\n };\r\n _self.getCfg = function () {\r\n return config;\r\n };\r\n _self.getExtCfg = function (identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = {}; }\r\n var theConfig;\r\n if (config) {\r\n var extConfig = config.extensionConfig;\r\n if (extConfig && identifier) {\r\n theConfig = extConfig[identifier];\r\n }\r\n }\r\n return (theConfig ? theConfig : defaultValue);\r\n };\r\n _self.getConfig = function (identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _self.getExtCfg(identifier, null);\r\n if (extConfig && !isNullOrUndefined(extConfig[field])) {\r\n theValue = extConfig[field];\r\n }\r\n else if (config && !isNullOrUndefined(config[field])) {\r\n theValue = config[field];\r\n }\r\n return !isNullOrUndefined(theValue) ? theValue : defaultValue;\r\n };\r\n _self.hasNext = function () {\r\n return _nextProxy != null;\r\n };\r\n _self.getNext = function () {\r\n return _nextProxy;\r\n };\r\n _self.setNext = function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n };\r\n _self.processNext = function (env) {\r\n var nextPlugin = _nextProxy;\r\n if (nextPlugin) {\r\n // Automatically move to the next plugin\r\n _nextProxy = nextPlugin.getNext();\r\n nextPlugin.processTelemetry(env, _self);\r\n }\r\n };\r\n _self.createNew = function (plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n return new ProcessTelemetryContext(plugins || _nextProxy, config, core, startAt);\r\n };\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { isFunction, isNullOrUndefined, setValue } from \"./HelperFuncs\";\r\nimport { strExtensionConfig } from \"./Constants\";\r\nvar strGetPlugin = \"getPlugin\";\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this;\r\n var _isinitialized = false;\r\n var _rootCtx = null; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin = null; // Used for backward compatibility where plugins don't call the main pipeline\r\n _self.core = null;\r\n _self.diagLog = function (itemCtx) {\r\n return _self._getTelCtx(itemCtx).diagLog();\r\n };\r\n _self.isInitialized = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self.setNextPlugin = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self.processNext = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx.processNext(env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin.processTelemetry)) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin.processTelemetry(env, null);\r\n }\r\n };\r\n _self._getTelCtx = function (currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || new ProcessTelemetryContext(null, {}, _self.core);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx.createNew(null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx.createNew(null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n };\r\n _self._baseTelInit = function (config, core, extensions, pluginChain) {\r\n if (config) {\r\n // Make sure the extensionConfig exists\r\n setValue(config, strExtensionConfig, [], null, isNullOrUndefined);\r\n }\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core.getProcessTelContext().getNext();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self.core = core;\r\n _rootCtx = new ProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n _isinitialized = true;\r\n };\r\n }\r\n BaseTelemetryPlugin.prototype.initialize = function (config, core, extensions, pluginChain) {\r\n this._baseTelInit(config, core, extensions, pluginChain);\r\n };\r\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var strIKey = \"iKey\";\r\nexport var strExtensionConfig = \"extensionConfig\";\r\n//# sourceMappingURL=Constants.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"./HelperFuncs\";\r\nvar processTelemetry = \"processTelemetry\";\r\nvar priority = \"priority\";\r\nvar setNextPlugin = \"setNextPlugin\";\r\nvar isInitialized = \"isInitialized\";\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config The current config for the instance\r\n * @param core THe current core instance\r\n * @param extensions The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext.getNext();\r\n while (proxy) {\r\n var thePlugin = proxy.getPlugin();\r\n if (thePlugin) {\r\n if (lastPlugin &&\r\n isFunction(lastPlugin[setNextPlugin]) &&\r\n isFunction(thePlugin[processTelemetry])) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[setNextPlugin](thePlugin);\r\n }\r\n if (!isFunction(thePlugin[isInitialized]) || !thePlugin[isInitialized]()) {\r\n initPlugins.push(thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy.getNext();\r\n }\r\n }\r\n // Now initiatilize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n thePlugin.initialize(processContext.getCfg(), processContext.core(), extensions, processContext.getNext());\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n var bHasProcess = isFunction(extB[processTelemetry]);\r\n if (isFunction(extA[processTelemetry])) {\r\n result = bHasProcess ? extA[priority] - extB[priority] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins } from \"./TelemetryHelpers\";\r\nimport { arrForEach, objDefineAccessors, throwError } from \"./HelperFuncs\";\r\nvar ChannelControllerPriority = 500;\r\nvar ChannelValidationMessage = \"Channel has invalid priority\";\r\nvar ChannelController = /** @class */ (function (_super) {\r\n __extends(ChannelController, _super);\r\n function ChannelController() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"ChannelControllerPlugin\";\r\n _this.priority = ChannelControllerPriority; // in reserved range 100 to 200\r\n var _channelQueue;\r\n dynamicProto(ChannelController, _this, function (_self, _base) {\r\n _self.setNextPlugin = function (next) {\r\n // The Channel controller is last in pipeline\r\n };\r\n _self.processTelemetry = function (item, itemCtx) {\r\n if (_channelQueue) {\r\n arrForEach(_channelQueue, function (queues) {\r\n // pass on to first item in queue\r\n if (queues.length > 0) {\r\n // Copying the item context as we could have mutiple chains that are executing asynchronously\r\n // and calling _getDefTelCtx as it's possible that the caller doesn't pass any context\r\n var chainCtx = _this._getTelCtx(itemCtx).createNew(queues);\r\n chainCtx.processNext(item);\r\n }\r\n });\r\n }\r\n };\r\n _self.getChannelControls = function () {\r\n return _channelQueue;\r\n };\r\n _self.initialize = function (config, core, extensions) {\r\n if (_self.isInitialized()) {\r\n // already initialized\r\n return;\r\n }\r\n _base.initialize(config, core, extensions);\r\n _createChannelQueues((config || {}).channels, extensions);\r\n // Initialize the Queues\r\n arrForEach(_channelQueue, function (queue) { return initializePlugins(new ProcessTelemetryContext(queue, config, core), extensions); });\r\n };\r\n });\r\n function _checkQueuePriority(queue) {\r\n arrForEach(queue, function (queueItem) {\r\n if (queueItem.priority < ChannelControllerPriority) {\r\n throwError(ChannelValidationMessage + queueItem.identifier);\r\n }\r\n });\r\n }\r\n function _addChannelQueue(queue) {\r\n if (queue && queue.length > 0) {\r\n queue = queue.sort(function (a, b) {\r\n return a.priority - b.priority;\r\n });\r\n _checkQueuePriority(queue);\r\n _channelQueue.push(queue);\r\n }\r\n }\r\n function _createChannelQueues(channels, extensions) {\r\n _channelQueue = [];\r\n if (channels) {\r\n // Add and sort the configuration channel queues\r\n arrForEach(channels, function (queue) { return _addChannelQueue(queue); });\r\n }\r\n if (extensions) {\r\n // Create a new channel queue for any extensions with a priority > the ChannelControllerPriority\r\n var extensionQueue_1 = [];\r\n arrForEach(extensions, function (plugin) {\r\n if (plugin.priority > ChannelControllerPriority) {\r\n extensionQueue_1.push(plugin);\r\n }\r\n });\r\n _addChannelQueue(extensionQueue_1);\r\n }\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for ChannelController.prototype.processTelemetry.\r\n// Removed Stub for ChannelController.prototype.getChannelControls.\r\n// Removed Stub for ChannelController.prototype.initialize.\r\n /**\r\n * Static constructor, attempt to create accessors\r\n */\r\n // tslint:disable-next-line\r\n ChannelController._staticInit = (function () {\r\n var proto = ChannelController.prototype;\r\n // Dynamically create get/set property accessors\r\n objDefineAccessors(proto, \"ChannelControls\", proto.getChannelControls);\r\n objDefineAccessors(proto, \"channelQueue\", proto.getChannelControls);\r\n })();\r\n return ChannelController;\r\n}(BaseTelemetryPlugin));\r\nexport { ChannelController };\r\n//# sourceMappingURL=ChannelController.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _InternalMessageId, LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { dumpObj, getDocument, getLocation, getNavigator, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, dateNow, getExceptionName, isFunction, isNotNullOrUndefined, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, setValue, strContains, strEndsWith, strTrim } from \"./HelperFuncs\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strEnabled = \"enabled\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar strEmpty = \"\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc = getDocument();\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nexport function _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _createCookieMgrConfig(rootConfig) {\r\n var cookieMgrCfg = rootConfig.cookieCfg = rootConfig.cookieCfg || {};\r\n // Sets the values from the root config if not already present on the cookieMgrCfg\r\n setValue(cookieMgrCfg, \"domain\", rootConfig.cookieDomain, isNotNullOrUndefined, isNullOrUndefined);\r\n setValue(cookieMgrCfg, \"path\", rootConfig.cookiePath || \"/\", null, isNullOrUndefined);\r\n if (isNullOrUndefined(cookieMgrCfg[strEnabled])) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n cookieMgrCfg[strEnabled] = cookieEnabled;\r\n }\r\n return cookieMgrCfg;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {}).logger);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var cookieMgrConfig = _createCookieMgrConfig(rootConfig || _globalCookieConfig);\r\n var _path = cookieMgrConfig.path || \"/\";\r\n var _domain = cookieMgrConfig.domain;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled = cookieMgrConfig[strEnabled] !== false;\r\n var cookieMgr = {\r\n isEnabled: function () {\r\n var enabled = _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n var values = {};\r\n var theValue = strTrim(value || strEmpty);\r\n var idx = theValue.indexOf(\";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(value.substring(0, idx));\r\n values = _extractParts(value.substring(idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, \"domain\", domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = dateNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || strEmpty, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", strEmpty + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {}).userAgent);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, \"path\", path || _path, null, isUndefined);\r\n var setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = strEmpty;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n value = (cookieMgrConfig.getCookie || _getCookieValue)(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[\"path\"] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n var delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n delCookie(name, _formatCookieValue(strEmpty, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n };\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n try {\r\n var doc = _doc || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotAccessCookie, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue.length) {\r\n var parts = strTrim(theValue).split(\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || strEmpty);\r\n if (thePart) {\r\n var idx = thePart.indexOf(\"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(thePart.substring(0, idx))] = strTrim(thePart.substring(idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || strEmpty;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : strEmpty);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = strEmpty;\r\n if (_doc) {\r\n var theCookie = _doc[strCookie] || strEmpty;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || strEmpty);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n if (_doc) {\r\n _doc[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport { objCreateFn } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { ChannelController } from \"./ChannelController\";\r\nimport { ProcessTelemetryContext } from \"./ProcessTelemetryContext\";\r\nimport { initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { LoggingSeverity } from \"../JavaScriptSDK.Enums/LoggingEnums\";\r\nimport { getGblPerfMgr, PerfManager } from \"./PerfManager\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, getSetValue, setValue, throwError, isNotTruthy, isFunction } from \"./HelperFuncs\";\r\nimport { strExtensionConfig, strIKey } from \"./Constants\";\r\nimport { DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nvar validationError = \"Extensions must provide callback to initialize\";\r\nvar strNotificationManager = \"_notificationManager\";\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nvar BaseCore = /** @class */ (function () {\r\n function BaseCore() {\r\n var _isInitialized = false;\r\n var _eventQueue;\r\n var _channelController;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cookieManager;\r\n dynamicProto(BaseCore, this, function (_self) {\r\n _self._extensions = new Array();\r\n _channelController = new ChannelController();\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _self.logger = new DiagnosticLogger({ loggingLevelConsole: LoggingSeverity.CRITICAL });\r\n _eventQueue = [];\r\n _self.isInitialized = function () { return _isInitialized; };\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n // Make sure core is only initialized once\r\n if (_self.isInitialized()) {\r\n throwError(\"Core should not be initialized more than once\");\r\n }\r\n if (!config || isNullOrUndefined(config.instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n _notificationManager = notificationManager;\r\n // For backward compatibility only\r\n _self[strNotificationManager] = notificationManager;\r\n _self.config = config || {};\r\n if (notificationManager && _self.config.disableDbgExt !== true) {\r\n notificationManager.addNotificationListener(getDebugListener(config));\r\n }\r\n if (_self.config.enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n setValue(_self.config, \"createPerfMgr\", _createPerfManager);\r\n }\r\n config.extensions = isNullOrUndefined(config.extensions) ? [] : config.extensions;\r\n // add notification to the extensions in the config so other plugins can access it\r\n var extConfig = getSetValue(config, strExtensionConfig);\r\n extConfig.NotificationManager = notificationManager;\r\n if (logger) {\r\n _self.logger = logger;\r\n }\r\n // Concat all available extensions\r\n var allExtensions = [];\r\n allExtensions.push.apply(allExtensions, __spreadArray(__spreadArray([], extensions, false), config.extensions, false));\r\n allExtensions = sortPlugins(allExtensions);\r\n var coreExtensions = [];\r\n var channelExtensions = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext.initialize)) {\r\n throwError(validationError);\r\n }\r\n var extPriority = ext.priority;\r\n var identifier = ext.identifier;\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n logger.warnToConsole(\"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channelController\r\n if (!extPriority || extPriority < _channelController.priority) {\r\n // Add to core extension that will be managed by BaseCore\r\n coreExtensions.push(ext);\r\n }\r\n else {\r\n // Add all other extensions to be managed by the channel controller\r\n channelExtensions.push(ext);\r\n }\r\n });\r\n // Validation complete\r\n // Add the channelController to the complete extension collection and\r\n // to the end of the core extensions\r\n allExtensions.push(_channelController);\r\n coreExtensions.push(_channelController);\r\n // Sort the complete set of extensions by priority\r\n allExtensions = sortPlugins(allExtensions);\r\n _self._extensions = allExtensions;\r\n // initialize channel controller first, this will initialize all channel plugins\r\n initializePlugins(new ProcessTelemetryContext([_channelController], config, _self), allExtensions);\r\n initializePlugins(new ProcessTelemetryContext(coreExtensions, config, _self), allExtensions);\r\n // Now reset the extensions to just those being managed by Basecore\r\n _self._extensions = coreExtensions;\r\n if (_self.getTransmissionControls().length === 0) {\r\n throwError(\"No channels available\");\r\n }\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n };\r\n _self.getTransmissionControls = function () {\r\n return _channelController.getChannelControls();\r\n };\r\n _self.track = function (telemetryItem) {\r\n // setup default iKey if not passed in\r\n setValue(telemetryItem, strIKey, _self.config.instrumentationKey, null, isNotTruthy);\r\n // add default timestamp if not passed in\r\n setValue(telemetryItem, \"time\", toISOString(new Date()), null, isNotTruthy);\r\n // Common Schema 4.0\r\n setValue(telemetryItem, \"ver\", \"4.0\", null, isNullOrUndefined);\r\n if (_self.isInitialized()) {\r\n // Process the telemetry plugin chain\r\n _self.getProcessTelContext().processNext(telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue.push(telemetryItem);\r\n }\r\n };\r\n _self.getProcessTelContext = function () {\r\n var extensions = _self._extensions;\r\n var thePlugins = extensions;\r\n // invoke any common telemetry processors before sending through pipeline\r\n if (!extensions || extensions.length === 0) {\r\n // Pass to Channel controller so data is sent to correct channel queues\r\n thePlugins = [_channelController];\r\n }\r\n return new ProcessTelemetryContext(thePlugins, _self.config, _self);\r\n };\r\n _self.getNotifyMgr = function () {\r\n if (!_notificationManager) {\r\n // Create Dummy notification manager\r\n _notificationManager = objCreateFn({\r\n addNotificationListener: function (listener) { },\r\n removeNotificationListener: function (listener) { },\r\n eventsSent: function (events) { },\r\n eventsDiscarded: function (events, reason) { },\r\n eventsSendRequest: function (sendReason, isAsync) { }\r\n });\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_self.config, _self.logger);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n _cookieManager = cookieMgr;\r\n };\r\n _self.getPerfMgr = function () {\r\n if (!_perfManager) {\r\n if (_self.config && _self.config.enablePerfMgr && isFunction(_self.config.createPerfMgr)) {\r\n _perfManager = _self.config.createPerfMgr(_self, _self.getNotifyMgr());\r\n }\r\n }\r\n return _perfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue.length;\r\n };\r\n _self.releaseQueue = function () {\r\n if (_eventQueue.length > 0) {\r\n arrForEach(_eventQueue, function (event) {\r\n _self.getProcessTelContext().processNext(event);\r\n });\r\n _eventQueue = [];\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseCore.prototype.initialize.\r\n// Removed Stub for BaseCore.prototype.getTransmissionControls.\r\n// Removed Stub for BaseCore.prototype.track.\r\n// Removed Stub for BaseCore.prototype.getProcessTelContext.\r\n// Removed Stub for BaseCore.prototype.getNotifyMgr.\r\n// Removed Stub for BaseCore.prototype.getCookieMgr.\r\n// Removed Stub for BaseCore.prototype.setCookieMgr.\r\n// Removed Stub for BaseCore.prototype.getPerfMgr.\r\n// Removed Stub for BaseCore.prototype.setPerfMgr.\r\n// Removed Stub for BaseCore.prototype.eventCnt.\r\n// Removed Stub for BaseCore.prototype.releaseQueue.\r\n return BaseCore;\r\n}());\r\nexport { BaseCore };\r\n//# sourceMappingURL=BaseCore.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * The EventsDiscardedReason enumeration contains a set of values that specify the reason for discarding an event.\r\n */\r\nexport var EventsDiscardedReason = {\r\n /**\r\n * Unknown.\r\n */\r\n Unknown: 0,\r\n /**\r\n * Status set to non-retryable.\r\n */\r\n NonRetryableStatus: 1,\r\n /**\r\n * The event is invalid.\r\n */\r\n InvalidEvent: 2,\r\n /**\r\n * The size of the event is too large.\r\n */\r\n SizeLimitExceeded: 3,\r\n /**\r\n * The server is not accepting events from this instrumentation key.\r\n */\r\n KillSwitch: 4,\r\n /**\r\n * The event queue is full.\r\n */\r\n QueueFull: 5\r\n};\r\n//# sourceMappingURL=EventsDiscardedReason.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, arrIndexOf } from \"./HelperFuncs\";\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll = !!(config || {}).perfEvtsSendAll;\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n _self.addNotificationListener = function (listener) {\r\n _self.listeners.push(listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - AWTNotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var index = arrIndexOf(_self.listeners, listener);\r\n while (index > -1) {\r\n _self.listeners.splice(index, 1);\r\n index = arrIndexOf(_self.listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param {ITelemetryItem[]} events - The array of events that have been sent.\r\n */\r\n _self.eventsSent = function (events) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSent) {\r\n setTimeout(function () { return listener.eventsSent(events); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param {ITelemetryItem[]} events - The array of events that have been discarded by the SDK.\r\n * @param {number} reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self.eventsDiscarded = function (events, reason) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsDiscarded) {\r\n setTimeout(function () { return listener.eventsDiscarded(events, reason); }, 0);\r\n }\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param {number} sendReason - The reason why the event batch is being sent.\r\n * @param {boolean} isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self.eventsSendRequest = function (sendReason, isAsync) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.eventsSendRequest) {\r\n if (isAsync) {\r\n setTimeout(function () { return listener.eventsSendRequest(sendReason, isAsync); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.eventsSendRequest(sendReason, isAsync);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n };\r\n _self.perfEvent = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent.isChildEvt()) {\r\n arrForEach(_self.listeners, function (listener) {\r\n if (listener && listener.perfEvent) {\r\n if (perfEvent.isAsync) {\r\n setTimeout(function () { return listener.perfEvent(perfEvent); }, 0);\r\n }\r\n else {\r\n try {\r\n listener.perfEvent(perfEvent);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { BaseCore } from \"./BaseCore\";\r\nimport { EventsDiscardedReason } from \"../JavaScriptSDK.Enums/EventsDiscardedReason\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _InternalLogMessage, DiagnosticLogger } from \"./DiagnosticLogger\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrForEach, isNullOrUndefined, toISOString, throwError } from \"./HelperFuncs\";\r\n\"use strict\";\r\nvar AppInsightsCore = /** @class */ (function (_super) {\r\n __extends(AppInsightsCore, _super);\r\n function AppInsightsCore() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller = 0;\r\n dynamicProto(AppInsightsCore, _this, function (_self, _base) {\r\n _self.initialize = function (config, extensions, logger, notificationManager) {\r\n _base.initialize(config, extensions, logger || new DiagnosticLogger(config), notificationManager || new NotificationManager(config));\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self.getPerfMgr(), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n _validateTelemetryItem(telemetryItem);\r\n _base.track(telemetryItem);\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param {INotificationListener} listener - An INotificationListener object.\r\n */\r\n _self.addNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.addNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param {INotificationListener} listener - INotificationListener to remove.\r\n */\r\n _self.removeNotificationListener = function (listener) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.removeNotificationListener(listener);\r\n }\r\n };\r\n /**\r\n * Periodically check logger.queue for log messages to be flushed\r\n */\r\n _self.pollInternalLogs = function (eventName) {\r\n var interval = _self.config.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n if (_internalLogPoller) {\r\n _self.stopPollingInternalLogs();\r\n }\r\n _internalLogPoller = setInterval(function () {\r\n var queue = _self.logger ? _self.logger.queue : [];\r\n arrForEach(queue, function (logMessage) {\r\n var item = {\r\n name: eventName ? eventName : \"InternalMessageId: \" + logMessage.messageId,\r\n iKey: _self.config.instrumentationKey,\r\n time: toISOString(new Date()),\r\n baseType: _InternalLogMessage.dataType,\r\n baseData: { message: logMessage.message }\r\n };\r\n _self.track(item);\r\n });\r\n queue.length = 0;\r\n }, interval);\r\n return _internalLogPoller;\r\n };\r\n /**\r\n * Stop polling log messages from logger.queue\r\n */\r\n _self.stopPollingInternalLogs = function () {\r\n if (!_internalLogPoller)\r\n return;\r\n clearInterval(_internalLogPoller);\r\n _internalLogPoller = 0;\r\n };\r\n function _validateTelemetryItem(telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem.name)) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throw Error(\"telemetry name required\");\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self.getNotifyMgr();\r\n if (manager) {\r\n manager.eventsDiscarded([telemetryItem], EventsDiscardedReason.InvalidEvent);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n return AppInsightsCore;\r\n}(BaseCore));\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { dateNow } from \"./HelperFuncs\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = 123456789;\r\nvar _mwcZ = 987654321;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (123456789 + seedValue) & MaxUInt32;\r\n _mwcZ = (987654321 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = dateNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n else if (isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n else {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { objCreateFn, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { _gblCookieMgr } from \"./CookieMgr\";\r\nimport { getWindow, getDocument, getPerformance, isIE } from \"./EnvUtils\";\r\nimport { arrForEach, arrIndexOf, arrMap, arrReduce, attachEvent, dateNow, detachEvent, hasOwnProperty, isArray, isBoolean, isDate, isError, isFunction, isNullOrUndefined, isNumber, isObject, isString, isTypeof, isUndefined, objDefineAccessors, objKeys, strTrim, toISOString } from \"./HelperFuncs\";\r\nimport { randomValue, random32, mwcRandomSeed, mwcRandom32 } from \"./RandomHelper\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar _cookieMgrs = null;\r\nvar _canUseCookies; // legacy supported config\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName {string} - The name of the event\r\n * @param callback {any} - The callback function that needs to be executed for the given event\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = attachEvent(w, eventName, callback);\r\n result = attachEvent(w[\"body\"], eventName, callback) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = attachEvent(doc, eventName, callback) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events An string array of event names to bind the listener to\r\n * @param listener The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n var excluded_1 = [];\r\n arrForEach(events, function (name) {\r\n if (isString(name)) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener) || added;\r\n }\r\n else {\r\n excluded_1.push(name);\r\n }\r\n }\r\n });\r\n if (!added && excluded_1.length > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = addEventListeners(excluded_1, listener);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([\"beforeunload\", \"unload\", \"pagehide\"], listener, excludeEvents);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageUnloadAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageHide) === -1) {\r\n pageUnloadAdded = addEventHandler(strPageHide, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n var pageShowAdded = false;\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strPageShow) === -1) {\r\n pageShowAdded = addEventHandler(strPageShow, listener);\r\n }\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageShowAdded = addEventHandler(strVisibilityChangeEvt, _handlePageVisibility) || pageShowAdded;\r\n }\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener);\r\n }\r\n return pageShowAdded;\r\n}\r\nexport function newGuid() {\r\n function randomHexDigit() {\r\n return randomValue(15); // Get a random value from 0..15\r\n }\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(GuidRegex, function (c) {\r\n var r = (randomHexDigit() | 0), v = (c === \"x\" ? r : r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n/**\r\n * Return the current value of the Performance Api now() function (if available) and fallback to dateNow() if it is unavailable (IE9 or less)\r\n * https://caniuse.com/#search=performance.now\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return dateNow();\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = \"\";\r\n while (result.length < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value.length;\r\n var start = len - search.length;\r\n return value.substring(start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = \"\", tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return oct.substr(0, 8) + oct.substr(9, 4) + \"4\" + oct.substr(13, 3) + clockSequenceHi + oct.substr(16, 3) + oct.substr(19, 12);\r\n}\r\n/**\r\n * Provides a collection of utility functions, included for backward compatibility with previous releases.\r\n * @deprecated Marking this instance as deprecated in favor of direct usage of the helper functions\r\n * as direct usage provides better tree-shaking and minification by avoiding the inclusion of the unused items\r\n * in your resulting code.\r\n */\r\nexport var CoreUtils = {\r\n _canUseCookies: undefined,\r\n isTypeof: isTypeof,\r\n isUndefined: isUndefined,\r\n isNullOrUndefined: isNullOrUndefined,\r\n hasOwnProperty: hasOwnProperty,\r\n isFunction: isFunction,\r\n isObject: isObject,\r\n isDate: isDate,\r\n isArray: isArray,\r\n isError: isError,\r\n isString: isString,\r\n isNumber: isNumber,\r\n isBoolean: isBoolean,\r\n toISOString: toISOString,\r\n arrForEach: arrForEach,\r\n arrIndexOf: arrIndexOf,\r\n arrMap: arrMap,\r\n arrReduce: arrReduce,\r\n strTrim: strTrim,\r\n objCreate: objCreateFn,\r\n objKeys: objKeys,\r\n objDefineAccessors: objDefineAccessors,\r\n addEventHandler: addEventHandler,\r\n dateNow: dateNow,\r\n isIE: isIE,\r\n disableCookies: disableCookies,\r\n newGuid: newGuid,\r\n perfNow: perfNow,\r\n newId: newId,\r\n randomValue: randomValue,\r\n random32: random32,\r\n mwcRandomSeed: mwcRandomSeed,\r\n mwcRandom32: mwcRandom32,\r\n generateW3CId: generateW3CId\r\n};\r\nvar GuidRegex = /[xy]/g;\r\nexport var EventHelper = {\r\n Attach: attachEvent,\r\n AttachEvent: attachEvent,\r\n Detach: detachEvent,\r\n DetachEvent: detachEvent\r\n};\r\n/**\r\n * Helper to support backward compatibility for users that use the legacy cookie handling functions and the use the internal\r\n * CoreUtils._canUseCookies global flag to enable/disable cookies usage.\r\n * Note: This has the following deliberate side-effects\r\n * - Creates the global (legacy) cookie manager if it does not already exist\r\n * - Attempts to add \"listeners\" to the CoreUtils._canUseCookies property to support the legacy usage\r\n * @param config\r\n * @param logger\r\n * @returns\r\n */\r\nexport function _legacyCookieMgr(config, logger) {\r\n var cookieMgr = _gblCookieMgr(config, logger);\r\n var legacyCanUseCookies = CoreUtils._canUseCookies;\r\n if (_cookieMgrs === null) {\r\n _cookieMgrs = [];\r\n _canUseCookies = legacyCanUseCookies;\r\n // Dynamically create get/set property accessors for backward compatibility for enabling / disabling cookies\r\n // this WILL NOT work for ES3 browsers (< IE8)\r\n objDefineAccessors(CoreUtils, \"_canUseCookies\", function () {\r\n return _canUseCookies;\r\n }, function (value) {\r\n _canUseCookies = value;\r\n arrForEach(_cookieMgrs, function (mgr) {\r\n mgr.setEnabled(value);\r\n });\r\n });\r\n }\r\n if (arrIndexOf(_cookieMgrs, cookieMgr) === -1) {\r\n _cookieMgrs.push(cookieMgr);\r\n }\r\n if (isBoolean(legacyCanUseCookies)) {\r\n cookieMgr.setEnabled(legacyCanUseCookies);\r\n }\r\n if (isBoolean(_canUseCookies)) {\r\n cookieMgr.setEnabled(_canUseCookies);\r\n }\r\n return cookieMgr;\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().disable()\r\n * Force the SDK not to store and read any data from cookies.\r\n */\r\nexport function disableCookies() {\r\n _legacyCookieMgr().setEnabled(false);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().isEnabled()\r\n * Helper method to tell if document.cookie object is available and whether it can be used.\r\n */\r\nexport function canUseCookies(logger) {\r\n return _legacyCookieMgr(null, logger).isEnabled();\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().get()\r\n * helper method to access userId and sessionId cookie\r\n */\r\nexport function getCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).get(name);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().set()\r\n * helper method to set userId and sessionId cookie\r\n */\r\nexport function setCookie(logger, name, value, domain) {\r\n _legacyCookieMgr(null, logger).set(name, value, null, domain);\r\n}\r\n/**\r\n * @deprecated - Use the core.getCookieMgr().del()\r\n * Deletes a cookie by setting it's expiration time in the past.\r\n * @param name - The name of the cookie to delete.\r\n */\r\nexport function deleteCookie(logger, name) {\r\n return _legacyCookieMgr(null, logger).del(name);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isObject, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key.length;\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field.length !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = field.substring(0, 150 /* MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(name.toString());\r\n // truncate the string to 150 chars\r\n if (name.length > 150 /* MAX_NAME_LENGTH */) {\r\n nameTrunc = name.substring(0, 150 /* MAX_NAME_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NameTooLong, \"name is too long. It has been truncated to \" + 150 /* MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(value);\r\n if (value.toString().length > maxLength) {\r\n valueTrunc = value.toString().substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StringValueTooLong, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* MAX_URL_LENGTH */, _InternalMessageId.UrlTooLong);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message.length > 32768 /* MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = message.substring(0, 32768 /* MAX_MESSAGE_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.MessageTruncated, \"message is too long, it has been truncated to \" + 32768 /* MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value.length > 32768 /* MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = value.substring(0, 32768 /* MAX_EXCEPTION_LENGTH */);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ExceptionTruncated, \"exception is too long, it has been truncated to \" + 32768 /* MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON().stringify(value);\r\n }\r\n catch (e) {\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* MAX_ID_LENGTH */, _InternalMessageId.IdTooLong).toString() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(input);\r\n if (input.length > maxLength) {\r\n inputTrunc = input.substring(0, maxLength);\r\n logger && logger.throwInternal(LoggingSeverity.WARNING, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return s.substr(s.length - 3);\r\n}\r\n/**\r\n * Provides the DataSanitizer functions within the previous namespace.\r\n */\r\nexport var DataSanitizer = {\r\n MAX_NAME_LENGTH: 150 /* MAX_NAME_LENGTH */,\r\n MAX_ID_LENGTH: 128 /* MAX_ID_LENGTH */,\r\n MAX_PROPERTY_LENGTH: 8192 /* MAX_PROPERTY_LENGTH */,\r\n MAX_STRING_LENGTH: 1024 /* MAX_STRING_LENGTH */,\r\n MAX_URL_LENGTH: 2048 /* MAX_URL_LENGTH */,\r\n MAX_MESSAGE_LENGTH: 32768 /* MAX_MESSAGE_LENGTH */,\r\n MAX_EXCEPTION_LENGTH: 32768 /* MAX_EXCEPTION_LENGTH */,\r\n sanitizeKeyAndAddUniqueness: dataSanitizeKeyAndAddUniqueness,\r\n sanitizeKey: dataSanitizeKey,\r\n sanitizeString: dataSanitizeString,\r\n sanitizeUrl: dataSanitizeUrl,\r\n sanitizeMessage: dataSanitizeMessage,\r\n sanitizeException: dataSanitizeException,\r\n sanitizeProperties: dataSanitizeProperties,\r\n sanitizeMeasurements: dataSanitizeMeasurements,\r\n sanitizeId: dataSanitizeId,\r\n sanitizeInput: dataSanitizeInput,\r\n padNumber: dsPadNumber,\r\n trim: strTrim\r\n};\r\n//# sourceMappingURL=DataSanitizer.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Type of the metric data measurement.\r\n */\r\nexport var DataPointType;\r\n(function (DataPointType) {\r\n DataPointType[DataPointType[\"Measurement\"] = 0] = \"Measurement\";\r\n DataPointType[DataPointType[\"Aggregation\"] = 1] = \"Aggregation\";\r\n})(DataPointType || (DataPointType = {}));\r\n//# sourceMappingURL=DataPointType.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { objForEachKey, isNullOrUndefined, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified, strIkey } from \"./Constants\";\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item domain specific properties; part B\r\n * @param baseType telemetry item type. ie PageViewData\r\n * @param envelopeName name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties user defined custom properties; part C\r\n * @param systemProperties system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = function (item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throw Error(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = {\r\n name: envelopeName,\r\n time: toISOString(new Date()),\r\n iKey: iKey,\r\n ext: systemProperties ? systemProperties : {},\r\n tags: [],\r\n data: {},\r\n baseType: baseType,\r\n baseData: item // Part B\r\n };\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n };\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * Instances of Event represent structured event records that can be grouped and searched by their properties. Event data item also creates a metric of event count by name.\r\n */\r\nvar EventData = /** @class */ (function () {\r\n function EventData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return EventData;\r\n}());\r\nexport { EventData };\r\n//# sourceMappingURL=EventData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { EventData } from \"../Interfaces/Contracts/Generated/EventData\";\r\nimport { dataSanitizeString, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Event = /** @class */ (function (_super) {\r\n __extends(Event, _super);\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 1 /* Required */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}(EventData));\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { MessageData } from \"../Interfaces/Contracts/Generated/MessageData\";\r\nimport { dataSanitizeMessage, dataSanitizeProperties, dataSanitizeMeasurements } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Trace = /** @class */ (function (_super) {\r\n __extends(Trace, _super);\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n message: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */\r\n };\r\n message = message || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, message);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n return _this;\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}(MessageData));\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * Instances of Message represent printf-like trace statements that are text-searched. Log4Net, NLog and other text-based log file entries are translated into intances of this type. The message does not have measurements.\r\n */\r\nvar MessageData = /** @class */ (function () {\r\n function MessageData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MessageData;\r\n}());\r\nexport { MessageData };\r\n//# sourceMappingURL=MessageData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * An instance of the Metric item is a list of measurements (single data points) and/or aggregations.\r\n */\r\nvar MetricData = /** @class */ (function () {\r\n function MetricData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * List of metrics. Only one metric in the list is currently supported by Application Insights storage. If multiple data points were sent only the first one will be used.\r\n */\r\n this.metrics = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return MetricData;\r\n}());\r\nexport { MetricData };\r\n//# sourceMappingURL=MetricData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DataPointType } from \"./DataPointType\";\r\n/**\r\n * Metric data single measurement.\r\n */\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = DataPointType.Measurement;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { DataPoint as AIDataPoint } from \"../../Interfaces/Contracts/Generated/DataPoint\";\r\nvar DataPoint = /** @class */ (function (_super) {\r\n __extends(DataPoint, _super);\r\n function DataPoint() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n name: 1 /* Required */,\r\n kind: 0 /* Default */,\r\n value: 1 /* Required */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */\r\n };\r\n return _this;\r\n }\r\n return DataPoint;\r\n}(AIDataPoint));\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { MetricData } from \"../Interfaces/Contracts/Generated/MetricData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar Metric = /** @class */ (function (_super) {\r\n __extends(Metric, _super);\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n metrics: 1 /* Required */,\r\n properties: 0 /* Default */\r\n };\r\n var dataPoint = new DataPoint();\r\n dataPoint.count = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _this.metrics = [dataPoint];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}(MetricData));\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { EventData } from \"./EventData\";\r\n/**\r\n * An instance of PageView represents a generic action on a page like a button click. It is also the base type for PageView.\r\n */\r\nvar PageViewData = /** @class */ (function (_super) {\r\n __extends(PageViewData, _super);\r\n function PageViewData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewData;\r\n}(EventData));\r\nexport { PageViewData };\r\n//# sourceMappingURL=PageViewData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString().toLowerCase() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = \"\" + totalms % 1000;\r\n var sec = \"\" + Math.floor(totalms / 1000) % 60;\r\n var min = \"\" + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = \"\" + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms.length === 1 ? \"00\" + ms : ms.length === 2 ? \"0\" + ms : ms;\r\n sec = sec.length < 2 ? \"0\" + sec : sec;\r\n min = min.length < 2 ? \"0\" + min : min;\r\n hour = hour.length < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : \"\") + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { PageViewData } from \"../Interfaces/Contracts/Generated/PageViewData\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageView = /** @class */ (function (_super) {\r\n __extends(PageView, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n id: 0 /* Default */\r\n };\r\n _this.id = dataSanitizeId(logger, id);\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _this.duration = msToTimeSpan(durationMs);\r\n }\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}(PageViewData));\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { PageViewPerfData } from \"../Interfaces/Contracts/Generated/PageViewPerfData\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar PageViewPerformance = /** @class */ (function (_super) {\r\n __extends(PageViewPerformance, _super);\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n url: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n perfTotal: 0 /* Default */,\r\n networkConnect: 0 /* Default */,\r\n sentRequest: 0 /* Default */,\r\n receivedResponse: 0 /* Default */,\r\n domProcessing: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n _this.url = dataSanitizeUrl(logger, url);\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _this.domProcessing = cs4BaseData.domProcessing;\r\n _this.duration = cs4BaseData.duration;\r\n _this.networkConnect = cs4BaseData.networkConnect;\r\n _this.perfTotal = cs4BaseData.perfTotal;\r\n _this.receivedResponse = cs4BaseData.receivedResponse;\r\n _this.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n return _this;\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}(PageViewPerfData));\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { PageViewData } from \"./PageViewData\";\r\n/**\r\n * An instance of PageViewPerf represents: a page view with no performance data, a page view with performance data, or just the performance data of an earlier page request.\r\n */\r\nvar PageViewPerfData = /** @class */ (function (_super) {\r\n __extends(PageViewPerfData, _super);\r\n function PageViewPerfData() {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * Schema version\r\n */\r\n _this.ver = 2;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n _this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n _this.measurements = {};\r\n return _this;\r\n }\r\n return PageViewPerfData;\r\n}(PageViewData));\r\nexport { PageViewPerfData };\r\n//# sourceMappingURL=PageViewPerfData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Stack frame information.\r\n */\r\nvar StackFrame = /** @class */ (function () {\r\n function StackFrame() {\r\n }\r\n return StackFrame;\r\n}());\r\nexport { StackFrame };\r\n//# sourceMappingURL=StackFrame.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * Exception details of the exception in a chain.\r\n */\r\nvar ExceptionDetails = /** @class */ (function () {\r\n function ExceptionDetails() {\r\n /**\r\n * Indicates if full exception stack is provided in the exception. The stack may be trimmed, such as in the case of a StackOverflow exception.\r\n */\r\n this.hasFullStack = true;\r\n /**\r\n * List of stack frames. Either stack or parsedStack should have a value.\r\n */\r\n this.parsedStack = [];\r\n }\r\n return ExceptionDetails;\r\n}());\r\nexport { ExceptionDetails };\r\n//# sourceMappingURL=ExceptionDetails.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { StackFrame } from \"../Interfaces/Contracts/Generated/StackFrame\";\r\nimport { ExceptionData } from \"../Interfaces/Contracts/Generated/ExceptionData\";\r\nimport { ExceptionDetails } from \"../Interfaces/Contracts/Generated/ExceptionDetails\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nimport { isNullOrUndefined, arrMap, isString, strTrim, isArray, isError, arrForEach, isObject, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON.stringify) {\r\n result = JSON.stringify(value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value.toString)) {\r\n result = value.toString();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && (evtMessage || \"\").indexOf(errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src.split(\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage.split(\"\\n\");\r\n for (var lp = 0; lp < lines.length; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj.message);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames.length > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame.toString();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame.sizeInBytes;\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack.length - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left].sizeInBytes;\r\n var rSize = parsedStack[right].sizeInBytes;\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType.name || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor.toString());\r\n typeName = (results && results.length > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (result.indexOf(errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function (_super) {\r\n __extends(Exception, _super);\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n ver: 1 /* Required */,\r\n exceptions: 1 /* Required */,\r\n severityLevel: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */\r\n };\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _this.exceptions = [new _ExceptionDetails(logger, exception, properties)];\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _this.severityLevel = severityLevel;\r\n }\r\n if (id) {\r\n _this.id = id;\r\n }\r\n }\r\n else {\r\n _this.exceptions = exception.exceptions;\r\n _this.properties = exception.properties;\r\n _this.measurements = exception.measurements;\r\n if (exception.severityLevel) {\r\n _this.severityLevel = exception.severityLevel;\r\n }\r\n if (exception.id) {\r\n _this.id = exception.id;\r\n }\r\n if (exception.problemGroup) {\r\n _this.problemGroup = exception.problemGroup;\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n _this.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!isNullOrUndefined(exception.isManual)) {\r\n _this.isManual = exception.isManual;\r\n }\r\n }\r\n return _this;\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var errorType = _getErrorType(error || evt || message);\r\n return {\r\n message: _formatMessage(message, errorType),\r\n url: url,\r\n lineNumber: lineNumber,\r\n columnNumber: columnNumber,\r\n error: _formatErrorCode(error || evt || message),\r\n evt: _formatErrorCode(evt || message),\r\n typeName: errorType,\r\n stackDetails: _getStackFromErrorObj(stack || error || evt),\r\n errorSrc: errorSrc\r\n };\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception.exceptions\r\n && arrMap(exception.exceptions, function (ex) { return _ExceptionDetails.CreateFromInterface(logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a = this, exceptions = _a.exceptions, properties = _a.properties, measurements = _a.measurements, severityLevel = _a.severityLevel, ver = _a.ver, problemGroup = _a.problemGroup, id = _a.id, isManual = _a.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return {\r\n ver: \"4.0\",\r\n exceptions: exceptionDetailsInterface,\r\n severityLevel: severityLevel,\r\n properties: properties,\r\n measurements: measurements,\r\n problemGroup: problemGroup,\r\n id: id,\r\n isManual: isManual\r\n };\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n return {\r\n exceptions: [\r\n {\r\n hasFullStack: true,\r\n message: message,\r\n stack: details,\r\n typeName: typeName\r\n }\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}(ExceptionData));\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function (_super) {\r\n __extends(_ExceptionDetails, _super);\r\n function _ExceptionDetails(logger, exception, properties) {\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 0 /* Default */,\r\n outerId: 0 /* Default */,\r\n typeName: 1 /* Required */,\r\n message: 1 /* Required */,\r\n hasFullStack: 0 /* Default */,\r\n stack: 0 /* Default */,\r\n parsedStack: 2 /* Array */\r\n };\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _this.typeName = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _this.message = dataSanitizeMessage(logger, _formatMessage(exception || error, _this.typeName)) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _this.parsedStack = _parseStack(stack);\r\n _this[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _this.hasFullStack = isArray(_this.parsedStack) && _this.parsedStack.length > 0;\r\n if (properties) {\r\n properties.typeName = properties.typeName || _this.typeName;\r\n }\r\n }\r\n else {\r\n _this.typeName = exception.typeName;\r\n _this.message = exception.message;\r\n _this[strStack] = exception[strStack];\r\n _this.parsedStack = exception.parsedStack;\r\n _this.hasFullStack = exception.hasFullStack;\r\n }\r\n return _this;\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var parsedStack = this.parsedStack instanceof Array\r\n && arrMap(this.parsedStack, function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = {\r\n id: this.id,\r\n outerId: this.outerId,\r\n typeName: this.typeName,\r\n message: this.message,\r\n hasFullStack: this.hasFullStack,\r\n stack: this[strStack],\r\n parsedStack: parsedStack || undefined\r\n };\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception.parsedStack instanceof Array\r\n && arrMap(exception.parsedStack, function (frame) { return _StackFrame.CreateFromInterface(frame); }))\r\n || exception.parsedStack;\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}(ExceptionDetails));\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function (_super) {\r\n __extends(_StackFrame, _super);\r\n function _StackFrame(sourceFrame, level) {\r\n var _this = _super.call(this) || this;\r\n _this.sizeInBytes = 0;\r\n _this.aiDataContract = {\r\n level: 1 /* Required */,\r\n method: 1 /* Required */,\r\n assembly: 0 /* Default */,\r\n fileName: 0 /* Default */,\r\n line: 0 /* Default */\r\n };\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _this.level = level;\r\n _this.method = NoMethod;\r\n _this.assembly = strTrim(frame);\r\n _this.fileName = \"\";\r\n _this.line = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches.length >= 5) {\r\n _this.method = strTrim(matches[2]) || _this.method;\r\n _this.fileName = strTrim(matches[4]);\r\n _this.line = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _this.level = sourceFrame.level;\r\n _this.method = sourceFrame.method;\r\n _this.assembly = sourceFrame.assembly;\r\n _this.fileName = sourceFrame.fileName;\r\n _this.line = sourceFrame.line;\r\n _this.sizeInBytes = 0;\r\n }\r\n _this.sizeInBytes += _this.method.length;\r\n _this.sizeInBytes += _this.fileName.length;\r\n _this.sizeInBytes += _this.assembly.length;\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _this.sizeInBytes += _StackFrame.baseSize;\r\n _this.sizeInBytes += _this.level.toString().length;\r\n _this.sizeInBytes += _this.line.toString().length;\r\n return _this;\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n return {\r\n level: this.level,\r\n method: this.method,\r\n assembly: this.assembly,\r\n fileName: this.fileName,\r\n line: this.line\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}(StackFrame));\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel;\r\n(function (SeverityLevel) {\r\n SeverityLevel[SeverityLevel[\"Verbose\"] = 0] = \"Verbose\";\r\n SeverityLevel[SeverityLevel[\"Information\"] = 1] = \"Information\";\r\n SeverityLevel[SeverityLevel[\"Warning\"] = 2] = \"Warning\";\r\n SeverityLevel[SeverityLevel[\"Error\"] = 3] = \"Error\";\r\n SeverityLevel[SeverityLevel[\"Critical\"] = 4] = \"Critical\";\r\n})(SeverityLevel || (SeverityLevel = {}));\r\n//# sourceMappingURL=SeverityLevel.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * An instance of Exception represents a handled or unhandled exception that occurred during execution of the monitored application.\r\n */\r\nvar ExceptionData = /** @class */ (function () {\r\n function ExceptionData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Exception chain - list of inner exceptions.\r\n */\r\n this.exceptions = [];\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return ExceptionData;\r\n}());\r\nexport { ExceptionData };\r\n//# sourceMappingURL=ExceptionData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * Type of storage to differentiate between local storage and session storage\r\n */\r\nexport var StorageType;\r\n(function (StorageType) {\r\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType || (StorageType = {}));\r\nexport var DistributedTracingModes;\r\n(function (DistributedTracingModes) {\r\n /**\r\n * (Default) Send Application Insights correlation headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI\"] = 0] = \"AI\";\r\n /**\r\n * Send both W3C Trace Context headers and back-compatibility Application Insights headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"AI_AND_W3C\"] = 1] = \"AI_AND_W3C\";\r\n /**\r\n * Send W3C Trace Context headers\r\n */\r\n DistributedTracingModes[DistributedTracingModes[\"W3C\"] = 2] = \"W3C\";\r\n})(DistributedTracingModes || (DistributedTracingModes = {}));\r\n//# sourceMappingURL=Enums.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, LoggingSeverity, objForEachKey, _InternalMessageId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = new Date;\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n storage.setItem(uid.toString(), uid.toString());\r\n var fail = storage.getItem(uid.toString()) !== uid.toString();\r\n storage.removeItem(uid.toString());\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlCanUseLocalStorage() {\r\n if (_canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadLocalStorage, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteLocalStorage, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromLocalStorage, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage() {\r\n if (_canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotReadSessionStorage, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserCannotWriteSessionStorage, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.removeItem(name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserFailedRemovalFromSessionStorage, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isFunction, getDocument } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var RequestHeaders = {\r\n requestContextHeader: \"Request-Context\",\r\n requestContextTargetKey: \"appId\",\r\n requestContextAppIdFormat: \"appId=cid-v1:\",\r\n requestIdHeader: \"Request-Id\",\r\n traceParentHeader: \"traceparent\",\r\n traceStateHeader: \"tracestate\",\r\n sdkContextHeader: \"Sdk-Context\",\r\n sdkContextHeaderAppIdRequest: \"appId\",\r\n requestContextHeaderLowerCase: \"request-context\"\r\n};\r\n//# sourceMappingURL=RequestResponseHeaders.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache.length) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.pathname;\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www[0-9]?\\.)?(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 3 && isString(match[2]) && match[2].length > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w*):\\/\\/(.[^/:]+)(\\:[\\d]+)?/i);\r\n if (match != null && match.length > 2 && isString(match[2]) && match[2].length > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match.length > 2) {\r\n var protocol = (match[1] || \"\").toLowerCase();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getPerformance, getExceptionName as coreGetExceptionName, dumpObj, isNullOrUndefined, strTrim, random32, isArray, isError, isDate, newId, generateW3CId, toISOString, arrForEach, getIEVersion, attachEvent, dateNow, uaDisallowsSameSiteNone, disableCookies as coreDisableCookies, canUseCookies as coreCanUseCookies, getCookie as coreGetCookie, setCookie as coreSetCookie, deleteCookie as coreDeleteCookie, isBeaconsSupported } from \"@microsoft/applicationinsights-core-js\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { createDomEvent } from \"./DomHelperFuncs\";\r\nimport { stringToBoolOrDefault, msToTimeSpan, isCrossOriginError, getExtensionByName } from \"./HelperFuncs\";\r\nimport { strNotSpecified } from \"./Constants\";\r\nimport { utlCanUseLocalStorage, utlCanUseSessionStorage, utlDisableStorage, utlGetSessionStorage, utlGetSessionStorageKeys, utlGetLocalStorage, utlRemoveSessionStorage, utlRemoveStorage, utlSetSessionStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { urlGetAbsoluteUrl, urlGetCompleteUrl, urlGetPathName, urlParseFullHost, urlParseHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n \"https://dc.services.visualstudio.com/v2/track\",\r\n \"https://breeze.aimon.applicationinsights.io/v2/track\",\r\n \"https://dc-int.services.visualstudio.com/v2/track\"\r\n];\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return _internalEndpoints.indexOf(endpointUrl.toLowerCase()) !== -1;\r\n}\r\nexport var Util = {\r\n NotSpecified: strNotSpecified,\r\n createDomEvent: createDomEvent,\r\n disableStorage: utlDisableStorage,\r\n isInternalApplicationInsightsEndpoint: isInternalApplicationInsightsEndpoint,\r\n canUseLocalStorage: utlCanUseLocalStorage,\r\n getStorage: utlGetLocalStorage,\r\n setStorage: utlSetLocalStorage,\r\n removeStorage: utlRemoveStorage,\r\n canUseSessionStorage: utlCanUseSessionStorage,\r\n getSessionStorageKeys: utlGetSessionStorageKeys,\r\n getSessionStorage: utlGetSessionStorage,\r\n setSessionStorage: utlSetSessionStorage,\r\n removeSessionStorage: utlRemoveSessionStorage,\r\n disableCookies: coreDisableCookies,\r\n canUseCookies: coreCanUseCookies,\r\n disallowsSameSiteNone: uaDisallowsSameSiteNone,\r\n setCookie: coreSetCookie,\r\n stringToBoolOrDefault: stringToBoolOrDefault,\r\n getCookie: coreGetCookie,\r\n deleteCookie: coreDeleteCookie,\r\n trim: strTrim,\r\n newId: newId,\r\n random32: function () {\r\n return random32(true);\r\n },\r\n generateW3CId: generateW3CId,\r\n isArray: isArray,\r\n isError: isError,\r\n isDate: isDate,\r\n toISOStringForIE8: toISOString,\r\n getIEVersion: getIEVersion,\r\n msToTimeSpan: msToTimeSpan,\r\n isCrossOriginError: isCrossOriginError,\r\n dump: dumpObj,\r\n getExceptionName: coreGetExceptionName,\r\n addEventHandler: attachEvent,\r\n IsBeaconApiSupported: isBeaconsSupported,\r\n getExtension: getExtensionByName\r\n};\r\nexport var UrlHelper = {\r\n parseUrl: urlParseUrl,\r\n getAbsoluteUrl: urlGetAbsoluteUrl,\r\n getPathName: urlGetPathName,\r\n getCompleteUrl: urlGetCompleteUrl,\r\n parseHost: urlParseHost,\r\n parseFullHost: urlParseFullHost\r\n};\r\nexport var CorrelationIdHelper = {\r\n correlationIdPrefix: \"cid-v1:\",\r\n /**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\n canIncludeCorrelationHeader: function (config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config.correlationHeaderExcludePatterns) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns.length; i++) {\r\n if (config.correlationHeaderExcludePatterns[i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host.toLowerCase();\r\n if (requestHost && (requestHost.indexOf(\":443\") !== -1 || requestHost.indexOf(\":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\").toLowerCase();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains.length === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains.length; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost.length > 0;\r\n },\r\n /**\r\n * Combines target appId and target role name from response header.\r\n */\r\n getCorrelationContext: function (responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = CorrelationIdHelper.getCorrelationContextValue(responseHeader, RequestHeaders.requestContextTargetKey);\r\n if (correlationId && correlationId !== CorrelationIdHelper.correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n },\r\n /**\r\n * Gets key from correlation response header\r\n */\r\n getCorrelationContextValue: function (responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader.split(\",\");\r\n for (var i = 0; i < keyValues.length; ++i) {\r\n var keyValue = keyValues[i].split(\"=\");\r\n if (keyValue.length === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n }\r\n};\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl.length > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl.pathname != null) {\r\n var pathName = (parsedUrl.pathname.length === 0) ? \"/\" : parsedUrl.pathname;\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl.pathname;\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * A utility class that helps getting time related parameters\r\n */\r\nexport var DateTimeUtils = {\r\n Now: dateTimeUtilsNow,\r\n GetDuration: dateTimeUtilsDuration\r\n};\r\n//# sourceMappingURL=Util.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { RemoteDependencyData as GeneratedRemoteDependencyData } from \"../Interfaces/Contracts/Generated/RemoteDependencyData\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nvar RemoteDependencyData = /** @class */ (function (_super) {\r\n __extends(RemoteDependencyData, _super);\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n var _this = _super.call(this) || this;\r\n _this.aiDataContract = {\r\n id: 1 /* Required */,\r\n ver: 1 /* Required */,\r\n name: 0 /* Default */,\r\n resultCode: 0 /* Default */,\r\n duration: 0 /* Default */,\r\n success: 0 /* Default */,\r\n data: 0 /* Default */,\r\n target: 0 /* Default */,\r\n type: 0 /* Default */,\r\n properties: 0 /* Default */,\r\n measurements: 0 /* Default */,\r\n kind: 0 /* Default */,\r\n value: 0 /* Default */,\r\n count: 0 /* Default */,\r\n min: 0 /* Default */,\r\n max: 0 /* Default */,\r\n stdDev: 0 /* Default */,\r\n dependencyKind: 0 /* Default */,\r\n dependencySource: 0 /* Default */,\r\n commandName: 0 /* Default */,\r\n dependencyTypeName: 0 /* Default */\r\n };\r\n _this.id = id;\r\n _this.duration = msToTimeSpan(value);\r\n _this.success = success;\r\n _this.resultCode = resultCode + \"\";\r\n _this.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _this.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _this.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _this.target = \"\".concat(_this.target, \" | \").concat(correlationContext);\r\n }\r\n _this.name = dataSanitizeString(logger, dependencyFields.name);\r\n _this.properties = dataSanitizeProperties(logger, properties);\r\n _this.measurements = dataSanitizeMeasurements(logger, measurements);\r\n return _this;\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}(GeneratedRemoteDependencyData));\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * An instance of Remote Dependency represents an interaction of the monitored component with a remote component/service like SQL or an HTTP endpoint.\r\n */\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n function RemoteDependencyData() {\r\n /**\r\n * Schema version\r\n */\r\n this.ver = 2;\r\n /**\r\n * Indication of successful or unsuccessful call.\r\n */\r\n this.success = true;\r\n /**\r\n * Collection of custom properties.\r\n */\r\n this.properties = {};\r\n /**\r\n * Collection of custom measurements.\r\n */\r\n this.measurements = {};\r\n }\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getDocument, getLocation, arrForEach, isNullOrUndefined, getExceptionName, dumpObj } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var intervalHandle = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels() {\r\n if (core) {\r\n arrForEach(core.getTransmissionControls(), function (queues) {\r\n arrForEach(queues, function (q) { return q.flush(true); });\r\n });\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n if (!intervalHandle) {\r\n intervalHandle = setInterval((function () {\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue.length === 0) {\r\n clearInterval(intervalHandle);\r\n intervalHandle = null;\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels();\r\n }\r\n }), 100);\r\n }\r\n }\r\n _self.trackPageView = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1.href || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager.isPerformanceTimingSupported()) {\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.NavigationTimingNotSupported, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager.getPerformanceTiming().navigationStart;\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager.shouldCollectDuration(customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties.duration)) {\r\n duration = customProperties.duration;\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[\"duration\"] = customDuration;\r\n }\r\n // case 2\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n _flushChannels();\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager.isPerformanceTimingDataReady()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[\"duration\"] = customDuration;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = pageViewPerformance.durationMs;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[\"duration\"] = maxDurationLimit;\r\n appInsights.sendPageViewInternal(pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailedCalc, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { hasJSON, getJSON, dateNow, dumpObj, throwError } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n this.prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n this.pageVisitTimeTrackingHandler = pageVisitTimeTrackingHandler;\r\n this._logger = logger;\r\n }\r\n /**\r\n * Tracks the previous page visit time telemetry (if exists) and starts timing of new page visit time\r\n * @param currentPageName Name of page to begin timing for visit duration\r\n * @param currentPageUrl Url of page to begin timing for visit duration\r\n */\r\n PageVisitTimeManager.prototype.trackPreviousPageVisit = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = this.restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n this.pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.restartPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n var prevPageVisitData = this.stopPageVisitTimer();\r\n this.startPageVisitTimer(pageName, pageUrl);\r\n return prevPageVisitData;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Call to restart failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n /**\r\n * Starts timing visit duration of pageName\r\n * @param pageName\r\n * @returns {}\r\n */\r\n PageVisitTimeManager.prototype.startPageVisitTimer = function (pageName, pageUrl) {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitData = new PageVisitData(pageName, pageUrl);\r\n var currPageVisitDataStr = getJSON().stringify(currPageVisitData);\r\n utlSetSessionStorage(this._logger, this.prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n // TODO: Remove this catch in next phase, since if start is called twice in a row the exception needs to be propagated out\r\n this._logger.warnToConsole(\"Call to start failed: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n PageVisitTimeManager.prototype.stopPageVisitTimer = function () {\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n var prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData.pageVisitStartTime;\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(this._logger, this.prevPageVisitDataKeyName);\r\n // Return page visit data\r\n return prevPageVisitData;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n return null;\r\n }\r\n catch (e) {\r\n this._logger.warnToConsole(\"Stop page visit timer failed: \" + dumpObj(e));\r\n return null;\r\n }\r\n };\r\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this.pageVisitStartTime = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getNavigator, getPerformance } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n this.MAX_DURATION_ALLOWED = 3600000; // 1h\r\n if (core) {\r\n this._logger = core.logger;\r\n }\r\n }\r\n PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = this.getPerformanceNavigationTiming();\r\n var timing = this.getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming.duration;\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming.startTime === 0 ? navigationTiming.connectEnd : dateTimeUtilsDuration(navigationTiming.startTime, navigationTiming.connectEnd);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming.responseStart);\r\n response = dateTimeUtilsDuration(navigationTiming.responseStart, navigationTiming.responseEnd);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming.loadEventEnd);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing.navigationStart, timing.loadEventEnd);\r\n network = dateTimeUtilsDuration(timing.navigationStart, timing.connectEnd);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing.responseStart);\r\n response = dateTimeUtilsDuration(timing.responseStart, timing.responseEnd);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing.loadEventEnd);\r\n }\r\n if (total === 0) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ErrorPVCalc, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!this.shouldCollectDuration(total, network, request, response, dom)) {\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InvalidDurationValue, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n this._logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.ClientPerformanceMathError, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance.duration = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceTiming = function () {\r\n if (this.isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n };\r\n PageViewPerformanceManager.prototype.getPerformanceNavigationTiming = function () {\r\n if (this.isPerformanceNavigationTimingSupported()) {\r\n return getPerformance().getEntriesByType(\"navigation\")[0];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns true is window PerformanceNavigationTiming API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceNavigationTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\").length > 0;\r\n };\r\n /**\r\n * Returns true is window performance timing API is supported, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingSupported = function () {\r\n var perf = getPerformance();\r\n return perf && perf.timing;\r\n };\r\n /**\r\n * As page loads different parts of performance timing numbers get set. When all of them are set we can report it.\r\n * Returns true if ready, false otherwise.\r\n */\r\n PageViewPerformanceManager.prototype.isPerformanceTimingDataReady = function () {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing.navigationStart > 0\r\n && timing.responseStart > 0\r\n && timing.requestStart > 0\r\n && timing.loadEventEnd > 0\r\n && timing.responseEnd > 0\r\n && timing.connectEnd > 0\r\n && timing.domLoading > 0;\r\n };\r\n /**\r\n * This method tells if given durations should be excluded from collection.\r\n */\r\n PageViewPerformanceManager.prototype.shouldCollectDuration = function () {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames.length; i++) {\r\n isGoogleBot = isGoogleBot || userAgent.toLowerCase().indexOf(botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations.length; i++) {\r\n if (durations[i] < 0 || durations[i] >= this.MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Web Analytics, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * ApplicationInsights.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { PageViewPerformance, PageView, RemoteDependencyData, Event as EventTelemetry, TelemetryItemCreator, Metric, Exception, SeverityLevel, Trace, dateTimeUtilsDuration, PropertiesPluginIdentifier, AnalyticsPluginIdentifier, stringToBoolOrDefault, createDomEvent, strNotSpecified, isCrossOriginError, utlDisableStorage, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, LoggingSeverity, _InternalMessageId, getWindow, getDocument, getHistory, getLocation, doPerf, objForEachKey, isString, isFunction, isNullOrUndefined, arrForEach, generateW3CId, dumpObj, getExceptionName, safeGetCookieMgr } from \"@microsoft/applicationinsights-core-js\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n\"use strict\";\r\nvar durationProperty = \"duration\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason.toString)) {\r\n return reason.toString();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar ApplicationInsights = /** @class */ (function (_super) {\r\n __extends(ApplicationInsights, _super);\r\n function ApplicationInsights() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _properties;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n dynamicProto(ApplicationInsights, _this, function (_self, _base) {\r\n var location = getLocation(true);\r\n _prevUri = location && location.href || \"\";\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self.core);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n doPerf(_self.core, function () { return _self.identifier + \":processTelemetry\"; }, function () {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _self._telemetryInitializers.length;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _self._telemetryInitializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.apply(null, [env]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n if (!doNotSendItem) {\r\n _self.processNext(env, itemCtx);\r\n }\r\n }, function () { return ({ item: env }); }, !(env.sync));\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(event, EventTelemetry.dataType, EventTelemetry.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackEventFailed, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties); // Todo: Fix to pass measurements once type is updated\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackEventFailed, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param {ITraceTelemetry} trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(trace, Trace.dataType, Trace.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TrackTraceFailed, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param {IMetricTelemetry} metric input object argument. Only name and average are mandatory.\r\n * @param {{[key: string]: any}} customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = TelemetryItemCreator.create(metric, Metric.dataType, Metric.envelopeType, _self.diagLog(), customProperties);\r\n _self.core.track(telemetryItem);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackMetricFailed, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self.trackPageView = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _self._pageViewManager.trackPageView(inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView Page view item to be sent\r\n * @param properties Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self.sendPageViewInternal = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var telemetryItem = TelemetryItemCreator.create(pageView, PageView.dataType, PageView.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self.sendPageViewPerformanceInternal = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = TelemetryItemCreator.create(pageViewPerformance, PageViewPerformance.dataType, PageViewPerformance.envelopeType, _self.diagLog(), properties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n try {\r\n _self._pageViewPerformanceManager.populatePageViewPerformanceEvent(pageViewPerformance);\r\n _self.sendPageViewPerformanceInternal(pageViewPerformance, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackPVFailed, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StartTrackFailed, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc.href || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_self.config.autoTrackPageVisitTime) {\r\n _self._pageVisitTimeManager.trackPreviousPageVisit(name, url);\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.StopTrackFailed, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self.sendExceptionInternal = function (exception, customProperties, systemProperties) {\r\n var theError = exception.exception || exception.error || new Error(strNotSpecified);\r\n var exceptionPartB = new Exception(_self.diagLog(), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = TelemetryItemCreator.create(exceptionPartB, Exception.dataType, Exception.envelopeType, _self.diagLog(), customProperties, systemProperties);\r\n _self.core.track(telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param {IExceptionTelemetry} exception Object which contains exception to be sent\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n try {\r\n _self.sendExceptionInternal(exception, customProperties);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TrackExceptionFailed, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self._onerror = function (exception) {\r\n var error = exception && exception.error;\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception.errorSrc || \"window.onerror@\" + url + \":\" + (exception.lineNumber || 0) + \":\" + (exception.columnNumber || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception.lineNumber || 0,\r\n columnNumber: exception.columnNumber || 0,\r\n message: exception.message\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception.error)) {\r\n _sendCORSException(Exception.CreateAutoException(\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception.lineNumber || 0, exception.columnNumber || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception.errorSrc) {\r\n exception.errorSrc = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: SeverityLevel.Error }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error.message) : \"null\";\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ExceptionWhileLoggingError, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throw Error(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _self.setInitialized(false); // resetting the initialized state, just in case the following fails\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _self.config = ctx.getExtCfg(identifier);\r\n // load default values if specified\r\n var defaults = ApplicationInsights.getDefaultConfig(config);\r\n if (defaults !== undefined) {\r\n objForEachKey(defaults, function (field, value) {\r\n // for each unspecified field, set the default value\r\n _self.config[field] = ctx.getConfig(identifier, field, value);\r\n if (_self.config[field] === undefined) {\r\n _self.config[field] = value;\r\n }\r\n });\r\n }\r\n // Todo: move this out of static state\r\n if (_self.config.isStorageUseDisabled) {\r\n utlDisableStorage();\r\n }\r\n var configGetters = {\r\n instrumentationKey: function () { return config.instrumentationKey; },\r\n accountId: function () { return _self.config.accountId || config.accountId; },\r\n sessionRenewalMs: function () { return _self.config.sessionRenewalMs || config.sessionRenewalMs; },\r\n sessionExpirationMs: function () { return _self.config.sessionExpirationMs || config.sessionExpirationMs; },\r\n sampleRate: function () { return _self.config.samplingPercentage || config.samplingPercentage; },\r\n sdkExtension: function () { return _self.config.sdkExtension || config.sdkExtension; },\r\n isBrowserLinkTrackingEnabled: function () { return _self.config.isBrowserLinkTrackingEnabled || config.isBrowserLinkTrackingEnabled; },\r\n appId: function () { return _self.config.appId || config.appId; }\r\n };\r\n _self._pageViewPerformanceManager = new PageViewPerformanceManager(_self.core);\r\n _self._pageViewManager = new PageViewManager(_this, _self.config.overridePageViewDuration, _self.core, _self._pageViewPerformanceManager);\r\n _self._pageVisitTimeManager = new PageVisitTimeManager(_self.diagLog(), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _self._telemetryInitializers = _self._telemetryInitializers || [];\r\n _addDefaultTelemetryInitializers(configGetters);\r\n _eventTracking = new Timing(_self.diagLog(), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n _self.trackEvent({ name: name, properties: properties });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self.diagLog(), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties[durationProperty] = duration.toString();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self.sendPageViewInternal(pageViewItem, properties);\r\n };\r\n var _window = getWindow();\r\n var _history = getHistory();\r\n var _location = getLocation(true);\r\n var instance = _this;\r\n if (_self.config.disableExceptionTracking === false &&\r\n !_self.config.autoExceptionInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onerror_1 = \"onerror\";\r\n var originalOnError_1 = _window[onerror_1];\r\n _window.onerror = function (message, url, lineNumber, columnNumber, error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnError_1 && originalOnError_1(message, url, lineNumber, columnNumber, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(message, url, lineNumber, columnNumber, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoExceptionInstrumented = true;\r\n }\r\n if (_self.config.disableExceptionTracking === false &&\r\n _self.config.enableUnhandledPromiseRejectionTracking === true &&\r\n !_self.config.autoUnhandledPromiseInstrumented && _window) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n var onunhandledrejection_1 = \"onunhandledrejection\";\r\n var originalOnUnhandledRejection_1 = _window[onunhandledrejection_1];\r\n _window[onunhandledrejection_1] = function (error) {\r\n var evt = _window[strEvent];\r\n var handled = originalOnUnhandledRejection_1 && originalOnUnhandledRejection_1.call(_window, error);\r\n if (handled !== true) { // handled could be typeof function\r\n instance._onerror(Exception.CreateAutoException(_getReason(error), _location ? _location.href : \"\", 0, 0, error, evt));\r\n }\r\n return handled;\r\n };\r\n _self.config.autoUnhandledPromiseInstrumented = true;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (_self.config.enableAutoRouteTracking === true\r\n && _history && isFunction(_history.pushState) && isFunction(_history.replaceState)\r\n && _window\r\n && typeof Event !== \"undefined\") {\r\n var _self_1 = _this;\r\n // Find the properties plugin\r\n arrForEach(extensions, function (extension) {\r\n if (extension.identifier === PropertiesPluginIdentifier) {\r\n _properties = extension;\r\n }\r\n });\r\n _history.pushState = (function (f) { return function pushState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"pushState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.pushState);\r\n _history.replaceState = (function (f) { return function replaceState() {\r\n var ret = f.apply(this, arguments);\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"replaceState\"));\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n return ret;\r\n }; })(_history.replaceState);\r\n if (_window.addEventListener) {\r\n _window.addEventListener(_self_1.config.namePrefix + \"popstate\", function () {\r\n _dispatchEvent(_window, createDomEvent(_self_1.config.namePrefix + \"locationchange\"));\r\n });\r\n _window.addEventListener(_self_1.config.namePrefix + \"locationchange\", function () {\r\n if (_properties && _properties.context && _properties.context.telemetryTrace) {\r\n _properties.context.telemetryTrace.traceID = generateW3CId();\r\n var traceLocationName = \"_unknown_\";\r\n if (_location && _location.pathname) {\r\n traceLocationName = _location.pathname + (_location.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n _properties.context.telemetryTrace.name = dataSanitizeString(_self_1.diagLog(), traceLocationName);\r\n }\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n else {\r\n _currUri = _location && _location.href || \"\";\r\n }\r\n setTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self_1.trackPageView({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_this, _prevUri), _self_1.autoRoutePVDelay);\r\n });\r\n }\r\n }\r\n _self.setInitialized(true);\r\n };\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milleseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers(configGetters) {\r\n if (!configGetters.isBrowserLinkTrackingEnabled()) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (envelope.baseType === RemoteDependencyData.dataType) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1.length; i++) {\r\n if (remoteData.target && remoteData.target.indexOf(browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _addTelemetryInitializer(dropBrowserLinkRequests);\r\n }\r\n }\r\n function _addTelemetryInitializer(telemetryInitializer) {\r\n _self._telemetryInitializers.push(telemetryInitializer);\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = TelemetryItemCreator.create(exception, Exception.dataType, Exception.envelopeType, _self.diagLog(), properties);\r\n _self.core.track(telemetryItem);\r\n }\r\n });\r\n return _this;\r\n }\r\n ApplicationInsights.getDefaultConfig = function (config) {\r\n if (!config) {\r\n config = {};\r\n }\r\n // set default values\r\n config.sessionRenewalMs = 30 * 60 * 1000;\r\n config.sessionExpirationMs = 24 * 60 * 60 * 1000;\r\n config.disableExceptionTracking = stringToBoolOrDefault(config.disableExceptionTracking);\r\n config.autoTrackPageVisitTime = stringToBoolOrDefault(config.autoTrackPageVisitTime);\r\n config.overridePageViewDuration = stringToBoolOrDefault(config.overridePageViewDuration);\r\n config.enableUnhandledPromiseRejectionTracking = stringToBoolOrDefault(config.enableUnhandledPromiseRejectionTracking);\r\n if (isNaN(config.samplingPercentage) || config.samplingPercentage <= 0 || config.samplingPercentage >= 100) {\r\n config.samplingPercentage = 100;\r\n }\r\n config.isStorageUseDisabled = stringToBoolOrDefault(config.isStorageUseDisabled);\r\n config.isBrowserLinkTrackingEnabled = stringToBoolOrDefault(config.isBrowserLinkTrackingEnabled);\r\n config.enableAutoRouteTracking = stringToBoolOrDefault(config.enableAutoRouteTracking);\r\n config.namePrefix = config.namePrefix || \"\";\r\n config.enableDebug = stringToBoolOrDefault(config.enableDebug);\r\n config.disableFlushOnBeforeUnload = stringToBoolOrDefault(config.disableFlushOnBeforeUnload);\r\n config.disableFlushOnUnload = stringToBoolOrDefault(config.disableFlushOnUnload, config.disableFlushOnBeforeUnload);\r\n return config;\r\n };\r\n// Removed Stub for ApplicationInsights.prototype.getCookieMgr.\r\n// Removed Stub for ApplicationInsights.prototype.processTelemetry.\r\n// Removed Stub for ApplicationInsights.prototype.trackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.startTrackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.stopTrackEvent.\r\n// Removed Stub for ApplicationInsights.prototype.trackTrace.\r\n// Removed Stub for ApplicationInsights.prototype.trackMetric.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageView.\r\n// Removed Stub for ApplicationInsights.prototype.sendPageViewInternal.\r\n// Removed Stub for ApplicationInsights.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for ApplicationInsights.prototype.trackPageViewPerformance.\r\n// Removed Stub for ApplicationInsights.prototype.startTrackPage.\r\n// Removed Stub for ApplicationInsights.prototype.stopTrackPage.\r\n// Removed Stub for ApplicationInsights.prototype.sendExceptionInternal.\r\n// Removed Stub for ApplicationInsights.prototype.trackException.\r\n// Removed Stub for ApplicationInsights.prototype._onerror.\r\n// Removed Stub for ApplicationInsights.prototype.addTelemetryInitializer.\r\n// Removed Stub for ApplicationInsights.prototype.initialize.\r\n ApplicationInsights.Version = \"2.7.2\"; // Not currently used anywhere\r\n return ApplicationInsights;\r\n}(BaseTelemetryPlugin));\r\nexport { ApplicationInsights };\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StartCalledMoreThanOnce, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.StopCalledWithoutStart, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\n//# sourceMappingURL=ApplicationInsights.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { Util, CorrelationIdHelper, DateTimeUtils, dateTimeUtilsNow, dateTimeUtilsDuration, UrlHelper, isInternalApplicationInsightsEndpoint } from \"./Util\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, strNotSpecified } from \"./Constants\";\r\nexport { Data as AIData } from \"./Interfaces/Contracts/Generated/Data\";\r\nexport { Base as AIBase } from \"./Interfaces/Contracts/Generated/Base\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { PageViewData } from \"./Interfaces/Contracts/Generated/PageViewData\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/Generated/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/Generated/ContextTagKeys\";\r\nexport { DataSanitizer, dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, getJSON, arrForEach, isFunction, arrIndexOf, isString, dumpObj, isArray, getExceptionName } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this._get = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= config.eventsLimitInMem()) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.InMemoryStorageBufferFull, \"Maximum in-memory buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer.push(payload);\r\n };\r\n _self.count = function () {\r\n return _buffer.length;\r\n };\r\n _self.size = function () {\r\n var size = _buffer.length;\r\n for (var lp = 0; lp < _buffer.length; lp++) {\r\n size += _buffer[lp].length;\r\n }\r\n if (!config.emitLineDelimitedJson()) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self.clear = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payload) {\r\n if (payload && payload.length > 0) {\r\n var batch = config.emitLineDelimitedJson() ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self.markAsSent = function (payload) {\r\n _base.clear();\r\n };\r\n _self.clearSent = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer.BUFFER_KEY);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n buffer.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, buffer);\r\n _self.enqueue = function (payload) {\r\n if (_self.count() >= SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionStorageBufferFull, \"Maximum buffer size reached: \" + _self.count(), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base.enqueue(payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n };\r\n _self.clear = function () {\r\n _base.clear();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._get());\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.markAsSent = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self._set(_removePayloadsFromBuffer(payload, _self._get())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements.length > SessionStorageSendBuffer.MAX_BUFFER_SIZE) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SessionStorageBufferFull, \"Sent buffer reached its maximum size: \" + sentElements.length, true);\r\n sentElements.length = SessionStorageSendBuffer.MAX_BUFFER_SIZE;\r\n }\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n }\r\n };\r\n _self.clearSent = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer.SENT_BUFFER_KEY, sentElements);\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining.push(value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = utlGetSessionStorage(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToRestoreStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON.stringify(buffer);\r\n utlSetSessionStorage(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n utlSetSessionStorage(logger, prefixedKey, JSON.stringify([]));\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedToSetStorageBuffer, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/Generated/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { Envelope as AIEnvelope } from \"../../Interfaces/Contracts/Generated/Envelope\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nvar Envelope = /** @class */ (function (_super) {\r\n __extends(Envelope, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = _super.call(this) || this;\r\n _this.name = dataSanitizeString(logger, name) || strNotSpecified;\r\n _this.data = data;\r\n _this.time = toISOString(new Date());\r\n _this.aiDataContract = {\r\n time: 1 /* Required */,\r\n iKey: 1 /* Required */,\r\n name: 1 /* Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* Hidden */ : 1 /* Required */;\r\n },\r\n tags: 1 /* Required */,\r\n data: 1 /* Required */\r\n };\r\n return _this;\r\n }\r\n return Envelope;\r\n}(AIEnvelope));\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * System variables for a telemetry item.\r\n */\r\nvar Envelope = /** @class */ (function () {\r\n function Envelope() {\r\n /**\r\n * Envelope version. For internal use only. By assigning this the default, it will not be serialized within the payload unless changed to a value other than #1.\r\n */\r\n this.ver = 1;\r\n /**\r\n * Sampling rate used in application. This telemetry item represents 1 / sampleRate actual telemetry items.\r\n */\r\n this.sampleRate = 100.0;\r\n /**\r\n * Key/value collection of context properties. See ContextTagKeys for information on available properties.\r\n */\r\n this.tags = {};\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// THIS FILE WAS AUTOGENERATED\r\n/**\r\n * Data struct to contain only C section with custom fields.\r\n */\r\nvar Base = /** @class */ (function () {\r\n function Base() {\r\n }\r\n return Base;\r\n}());\r\nexport { Base };\r\n//# sourceMappingURL=Base.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\n// THIS FILE WAS AUTOGENERATED\r\nimport { Base } from \"./Base\";\r\n/**\r\n * Data struct to contain both B and C sections.\r\n */\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n function Data() {\r\n return _super.call(this) || this;\r\n }\r\n return Data;\r\n}(Base));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { Data as AIData } from \"../../Interfaces/Contracts/Generated/Data\";\r\nvar Data = /** @class */ (function (_super) {\r\n __extends(Data, _super);\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n var _this = _super.call(this) || this;\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n _this.aiDataContract = {\r\n baseType: 1 /* Required */,\r\n baseData: 1 /* Required */\r\n };\r\n _this.baseType = baseType;\r\n _this.baseData = data;\r\n return _this;\r\n }\r\n return Data;\r\n}(AIData));\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { Data, Envelope, RemoteDependencyData, Event, Exception, Metric, PageView, Trace, PageViewPerformance, CtxTagKeys, HttpMethod, SampleRate, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { LoggingSeverity, _InternalMessageId, hasJSON, getJSON, objForEachKey, isNullOrUndefined, isNumber, isString, toISOString, setValue, isTruthy, optimizeObject } from \"@microsoft/applicationinsights-core-js\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env.tags = env.tags || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item.tags = item.tags || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys.deviceType, extDevice.deviceType);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env.data = env.data || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs.name);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace.name));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace.traceID);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags.length - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = \"javascript:\".concat(EnvelopeCreator.Version);\r\n }\r\n env.tags = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON().stringify(value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope.name = envelope.name.replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem.tags = telemetryItem.tags || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryEnvelopeInvalid, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: \"2.7.2\"\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n logger.warnToConsole(\"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd.name, bd.duration, bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData.dataType, remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData.envelopeType, telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event.dataType) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event.dataType) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData].name;\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event.dataType, eventData);\r\n return _createEnvelope(logger, Event.envelopeType, telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData].measurements || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception.dataType, exData);\r\n return _createEnvelope(logger, Exception.envelopeType, telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData.name, baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric.dataType, baseMetricData);\r\n return _createEnvelope(logger, Metric.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var strDuration = \"duration\";\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][strDuration])) { // from part B properties\r\n duration = baseData[strProperties][strDuration];\r\n delete baseData[strProperties][strDuration];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem.data) &&\r\n !isNullOrUndefined(telemetryItem.data[strDuration])) { // from custom properties\r\n duration = telemetryItem.data[strDuration];\r\n delete telemetryItem.data[strDuration];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {}).traceID) {\r\n currentContextId = telemetryItem.ext.trace.traceID;\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd.name;\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn.toString();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView.dataType, pageViewData);\r\n return _createEnvelope(logger, PageView.envelopeType, telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd.name;\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd.measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance.dataType, baseData);\r\n return _createEnvelope(logger, PageViewPerformance.envelopeType, telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData].measurements || {};\r\n _extractPropsAndMeasurements(telemetryItem.data, props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace.dataType, baseData);\r\n return _createEnvelope(logger, Trace.envelopeType, telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { LoggingSeverity, _InternalMessageId, getJSON, objForEachKey, isFunction, isObject, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON().stringify(output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CircularReferenceDetected, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.CannotSerializeObjectNonSerializable, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON().stringify(source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSerializeObject, (e && isFunction(e.toString)) ? e.toString() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* Required */) : (contract & 1 /* Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* Hidden */) : (contract & 4 /* Hidden */);\r\n var isArray = contract & 2 /* Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.MissingRequiredFieldSpecification, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ItemNotInArray, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources.length; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output.push(item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value.toString) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value.toString();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n logger.throwInternal(LoggingSeverity.CRITICAL, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { SessionStorageSendBuffer, ArraySendBuffer } from \"./SendBuffer\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { Serializer } from \"./Serializer\"; // todo move to channel\r\nimport { DisabledPropertyName, RequestHeaders, PageView, Event, Trace, Exception, Metric, PageViewPerformance, RemoteDependencyData, ProcessLegacy, BreezeChannelIdentifier, SampleRate, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, getWindow, getNavigator, getJSON, BaseTelemetryPlugin, objForEachKey, isNullOrUndefined, arrForEach, dateNow, dumpObj, getExceptionName, getIEVersion, throwError, objKeys, isBeaconsSupported, isFetchSupported, useXDomainRequest, isXhrSupported, isArray } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Offline } from \"./Offline\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction _getDefaultAppInsightsChannelConfig() {\r\n // set default values\r\n return {\r\n endpointUrl: function () { return \"https://dc.services.visualstudio.com/v2/track\"; },\r\n emitLineDelimitedJson: function () { return false; },\r\n maxBatchInterval: function () { return 15000; },\r\n maxBatchSizeInBytes: function () { return 102400; },\r\n disableTelemetry: function () { return false; },\r\n enableSessionStorageBuffer: function () { return true; },\r\n isRetryDisabled: function () { return false; },\r\n isBeaconApiDisabled: function () { return true; },\r\n disableXhr: function () { return false; },\r\n onunloadDisableFetch: function () { return false; },\r\n onunloadDisableBeacon: function () { return false; },\r\n instrumentationKey: function () { return undefined; },\r\n namePrefix: function () { return undefined; },\r\n samplingPercentage: function () { return 100; },\r\n customHeaders: function () { return undefined; },\r\n convertUndefined: function () { return undefined; },\r\n eventsLimitInMem: function () { return 10000; }\r\n };\r\n}\r\nvar EnvelopeTypeCreator = (_a = {},\r\n _a[Event.dataType] = EventEnvelopeCreator,\r\n _a[Trace.dataType] = TraceEnvelopeCreator,\r\n _a[PageView.dataType] = PageViewEnvelopeCreator,\r\n _a[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _a[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _a[Metric.dataType] = MetricEnvelopeCreator,\r\n _a[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _a);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n /**\r\n * How many times in a row a retryable error condition has occurred.\r\n */\r\n var _consecutiveErrors;\r\n /**\r\n * The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n */\r\n var _retryAt;\r\n /**\r\n * The time of the last send operation.\r\n */\r\n var _lastSend;\r\n /**\r\n * Flag indicating that the sending should be paused\r\n */\r\n var _paused = false;\r\n /**\r\n * Handle to the timer for delayed sending of batches of data.\r\n */\r\n var _timeoutHandle;\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers = {};\r\n // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncFetchPayload = 0;\r\n /**\r\n * The sender to use if the payload size is too large\r\n */\r\n var _fallbackSender;\r\n /**\r\n * The identified sender to use for the synchronous unload stage\r\n */\r\n var _syncUnloadSender;\r\n _this._senderConfig = _getDefaultAppInsightsChannelConfig();\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n function _notImplemented() {\r\n throwError(\"Method not implemented.\");\r\n }\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n if (_self._buffer.size() > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function () {\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n _self.triggerSend(true, null, 1 /* ManualFlush */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FlushFailed, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if ((_self._senderConfig.onunloadDisableBeacon() === false || _self._senderConfig.isBeaconApiDisabled() === false) && isBeaconsSupported()) {\r\n try {\r\n _self.triggerSend(true, _doUnloadSend, 2 /* Unload */);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToSendQueuedTelemetry, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush();\r\n }\r\n }\r\n };\r\n _self.teardown = _notImplemented;\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self._sender = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self.diagLog();\r\n var defaultConfig = _getDefaultAppInsightsChannelConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _self._senderConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self._buffer = (_self._senderConfig.enableSessionStorageBuffer() && utlCanUseSessionStorage())\r\n ? new SessionStorageSendBuffer(diagLog, _self._senderConfig) : new ArraySendBuffer(diagLog, _self._senderConfig);\r\n _self._sample = new Sample(_self._senderConfig.samplingPercentage(), diagLog);\r\n if (!_validateInstrumentationKey(config)) {\r\n diagLog.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidInstrumentationKey, \"Invalid Instrumentation key \" + config.instrumentationKey);\r\n }\r\n if (!isInternalApplicationInsightsEndpoint(_self._senderConfig.endpointUrl()) && _self._senderConfig.customHeaders() && _self._senderConfig.customHeaders().length > 0) {\r\n arrForEach(_self._senderConfig.customHeaders(), function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n var senderConfig = _self._senderConfig;\r\n var sendPostFunc = null;\r\n if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.isBeaconApiDisabled() && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self._sender = sendPostFunc || _xhrSender;\r\n if (!senderConfig.onunloadDisableFetch() && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig.disableXhr() && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig.disableXhr() && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_self._senderConfig.disableTelemetry()) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CannotSendEmptyTelemetry, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem.baseType) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidEvent, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem.baseType) {\r\n // Default\r\n telemetryItem.baseType = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self._sender) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.SenderNotInitialized, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TelemetrySampledAndNotSent, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample.sampleRate });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample.sampleRate;\r\n }\r\n var convertUndefined = _self._senderConfig.convertUndefined() || undefined;\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _self._senderConfig.instrumentationKey();\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, itemCtx.diagLog(), convertUndefined);\r\n if (!aiEnvelope_1) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.CreateEnvelopeError, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem.tags && telemetryItem.tags[ProcessLegacy]) {\r\n arrForEach(telemetryItem.tags[ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n itemCtx.diagLog().warnToConsole(\"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TelemetryInitializerFailed, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem.tags[ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self._buffer;\r\n var bufferSize = buffer.size();\r\n if ((bufferSize + payload.length) > _self._senderConfig.maxBatchSizeInBytes()) {\r\n _self.triggerSend(true, null, 10 /* MaxBatchSize */);\r\n }\r\n // enqueue the payload\r\n buffer.enqueue(payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n itemCtx.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.FailedAddingTelemetryToBuffer, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self.triggerSend = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n if (!_paused) {\r\n try {\r\n var buffer = _self._buffer;\r\n // Send data only if disableTelemetry is false\r\n if (!_self._senderConfig.disableTelemetry()) {\r\n if (buffer.count() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n forcedSender.call(_this, payload, async);\r\n }\r\n else {\r\n _self._sender(payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer.clear();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.TransmissionFailed, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self._onError = function (payload, message, event) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.OnError, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self._onPartialSuccess = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry.push(extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed.push(extracted);\r\n }\r\n }\r\n if (payload.length > 0) {\r\n _self._onSuccess(payload, results.itemsAccepted);\r\n }\r\n if (failed.length > 0) {\r\n _self._onError(failed, _formatErrorMessageXhr(null, [\"partial success\", results.itemsAccepted, \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry.length > 0) {\r\n _resendPayload(retry);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \"Partial success. \" +\r\n \"Delivered: \" + payload.length + \", Failed: \" + failed.length +\r\n \". Will retry to send \" + retry.length + \" our of \" + results.itemsReceived + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self._onSuccess = function (payload, countOfItemsInPayload) {\r\n _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results.itemsAccepted\r\n && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, results);\r\n }\r\n else {\r\n _self._onError(payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self._onError(payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_self._senderConfig.isRetryDisabled() && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload.length + \" items.\");\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else if (Offline.isOffline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_self._senderConfig.isRetryDisabled()) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(Offline.isOffline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_self._senderConfig.isRetryDisabled()) {\r\n _self._onPartialSuccess(payload, response);\r\n }\r\n else {\r\n _self._onError(payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self._onSuccess(payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _self._senderConfig.endpointUrl()) {\r\n _self._senderConfig.endpointUrl = function () { return responseUrl; };\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self._buffer;\r\n var url = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer.markAsSent(payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload.length);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload.length > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload.push(thePayload);\r\n }\r\n }\r\n if (droppedPayload.length > 0) {\r\n _fallbackSender(droppedPayload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr.setRequestHeader(\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr.setRequestHeader(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr.setRequestHeader(headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () { return _self._xhrReadyStateChange(xhr, payload, payload.length); };\r\n xhr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXhr(xhr), event); };\r\n // compose an array of payloads\r\n var batch = _self._buffer.batchPayloads(payload);\r\n xhr.send(batch);\r\n _self._buffer.markAsSent(payload);\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload.length;\r\n for (var lp = 0; lp < payload.length; lp++) {\r\n payloadSize += payload[lp].length;\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - not used\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _self._senderConfig.endpointUrl();\r\n var batch = _self._buffer.batchPayloads(payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var requestHeaders = new Headers();\r\n var batchLength = batch.length;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders.sdkContextHeader, RequestHeaders.sdkContextHeaderAppIdRequest);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n fetch(request).then(function (response) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response.ok) {\r\n _self._onError(payload, response.statusText);\r\n }\r\n else {\r\n response.text().then(function (text) {\r\n _checkResponsStatus(response.status, payload, response.url, payload.length, response.statusText, text);\r\n });\r\n }\r\n })[\"catch\"](function (error) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n _self._onError(payload, error.message);\r\n });\r\n _self._buffer.markAsSent(payload);\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors.length) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.InvalidBackendResponse, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload.length === 0) {\r\n return;\r\n }\r\n var buffer = _self._buffer;\r\n buffer.clearSent(payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer.enqueue(item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_self._senderConfig.maxBatchInterval(), retryInterval);\r\n _timeoutHandle = setTimeout(function () {\r\n _timeoutHandle = null;\r\n _self.triggerSend(true, null, 1 /* NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n clearTimeout(_timeoutHandle);\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 503; // Service unavailable.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload {string} - The data payload to be sent.\r\n * @param isAsync {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self._buffer;\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self._onError(payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_self._senderConfig.endpointUrl().lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _self.diagLog().throwInternal(LoggingSeverity.WARNING, _InternalMessageId.TransmissionFailed, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer.clear();\r\n return;\r\n }\r\n var endpointUrl = _self._senderConfig.endpointUrl().replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer.batchPayloads(payload);\r\n xdr.send(batch);\r\n buffer.markAsSent(payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager.eventsSendRequest) {\r\n try {\r\n manager.eventsSendRequest(sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _self.diagLog().throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.NotificationException, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(config) {\r\n var disableIKeyValidationFlag = isNullOrUndefined(config.disableInstrumentationKeyValidation) ? false : config.disableInstrumentationKeyValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(config.instrumentationKey);\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.teardown.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { getWindow, getDocument, getNavigator, isUndefined, isNullOrUndefined, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\n/**\r\n * @description Monitors browser for offline events\r\n * @export default - Offline: Static instance of OfflineListener\r\n * @class OfflineListener\r\n */\r\nvar OfflineListener = /** @class */ (function () {\r\n function OfflineListener() {\r\n var _window = getWindow();\r\n var _document = getDocument();\r\n var isListening = false;\r\n var _onlineStatus = true;\r\n dynamicProto(OfflineListener, this, function (_self) {\r\n try {\r\n if (_window) {\r\n if (attachEvent(_window, \"online\", _setOnline)) {\r\n attachEvent(_window, \"offline\", _setOffline);\r\n isListening = true;\r\n }\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n target.ononline = _setOnline;\r\n target.onoffline = _setOffline;\r\n isListening = true;\r\n }\r\n }\r\n if (isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator.onLine;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n isListening = false;\r\n }\r\n _self.isListening = isListening;\r\n _self.isOnline = function () {\r\n var result = true;\r\n var _navigator = getNavigator();\r\n if (isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator.onLine)) { // navigator.onLine is undefined in react-native\r\n result = _navigator.onLine;\r\n }\r\n return result;\r\n };\r\n _self.isOffline = function () {\r\n return !_self.isOnline();\r\n };\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n });\r\n }\r\n// Removed Stub for OfflineListener.prototype.isOnline.\r\n// Removed Stub for OfflineListener.prototype.isOffline.\r\n OfflineListener.Offline = new OfflineListener;\r\n return OfflineListener;\r\n}());\r\nexport { OfflineListener };\r\nexport var Offline = OfflineListener.Offline;\r\n//# sourceMappingURL=Offline.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input.length < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input.length; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self.getSamplingScore = function (item) {\r\n var score = 0;\r\n if (item.tags && item.tags[keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.user.id);\r\n }\r\n else if (item.tags && item.tags[keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item.tags[keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace.traceID) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace.traceID);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Channel, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SampleRateOutOfRange, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this.sampleRate = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this.sampleRate; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric.dataType) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator.getSamplingScore(envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, isFunction, newId, dumpObj, getExceptionName, dateNow, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n if (!isFunction(config.sessionExpirationMs)) {\r\n config.sessionExpirationMs = function () { return _SessionManager.acquisitionSpan; };\r\n }\r\n if (!isFunction(config.sessionRenewalMs)) {\r\n config.sessionRenewalMs = function () { return _SessionManager.renewalSpan; };\r\n }\r\n _self.config = config;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = (_self.config.sessionCookiePostfix && _self.config.sessionCookiePostfix()) ?\r\n _self.config.sessionCookiePostfix() :\r\n ((_self.config.namePrefix && _self.config.namePrefix()) ? _self.config.namePrefix() : \"\");\r\n _storageNamePrefix = function () { return cookieNameConst + sessionCookiePostfix; };\r\n _self.automaticSession = new Session();\r\n _self.update = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self.automaticSession;\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n var sessionExpirationMs = _self.config.sessionExpirationMs();\r\n if (!isExpired && sessionExpirationMs > 0) {\r\n var sessionRenewalMs = _self.config.sessionRenewalMs();\r\n var timeSinceAcqMs = nowMs - session.acquisitionDate;\r\n var timeSinceRenewalMs = nowMs - session.renewalDate;\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > _SessionManager.cookieUpdateInterval) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self.automaticSession;\r\n _setStorage(session.id, session.acquisitionDate, session.renewalDate);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix());\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix());\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param {string} sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens.length >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SessionRenewalDateIsZero, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session.acquisitionDate = acqMs;\r\n session.renewalDate = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.ErrorParsingAISessionCookie, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var theConfig = (_self.config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n _self.automaticSession.id = getNewId(theConfig.idLength ? theConfig.idLength() : 22);\r\n _self.automaticSession.acquisitionDate = nowMs;\r\n _setCookie(_self.automaticSession, nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.BrowserDoesNotSupportLocalStorage, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session.acquisitionDate;\r\n session.renewalDate = nowMs;\r\n var config = _self.config;\r\n var renewalPeriodMs = config.sessionRenewalMs();\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + config.sessionExpirationMs()) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain ? config.cookieDomain() : null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix(), cookie.join(\"|\"), config.sessionExpirationMs() > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n _SessionManager.acquisitionSpan = 86400000; // 24 hours in ms\r\n _SessionManager.renewalSpan = 1800000; // 30 minutes in ms\r\n _SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Version = \"2.7.2\";\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config) {\r\n this.sdkVersion = (config.sdkExtension && config.sdkExtension() ? config.sdkExtension() + \"_\" : \"\") + \"javascript:\" + Version;\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalMessageId, LoggingSeverity, safeGetCookieMgr, safeGetLogger, newId, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n _self.config = config;\r\n var userCookiePostfix = (_self.config.userCookiePostfix && _self.config.userCookiePostfix()) ? _self.config.userCookiePostfix() : \"\";\r\n _storageNamePrefix = function () { return User.userCookieName + userCookiePostfix; };\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix());\r\n if (cookie) {\r\n _self.isNewUser = false;\r\n var params = cookie.split(User.cookieSeparator);\r\n if (params.length > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self.isUserCookieSet = !!_self.id;\r\n }\r\n }\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = (theConfig.getNewId ? theConfig.getNewId() : null) || newId;\r\n var id = getNewId(theConfig.idLength ? config.idLength() : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self.isNewUser = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self.isUserCookieSet = _cookieManager.set(_storageNamePrefix(), cookie, oneYear);\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie.join(User.cookieSeparator));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = config.namePrefix && config.namePrefix() ? config.namePrefix() + \"ai_session\" : \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self.accountId = config.accountId ? config.accountId() : undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User.authUserCookieName);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User.cookieSeparator);\r\n if (authCookieString[0]) {\r\n _self.authenticatedId = authCookieString[0];\r\n }\r\n if (authCookieString.length > 1 && authCookieString[1]) {\r\n _self.accountId = authCookieString[1];\r\n }\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _logger.throwInternal(LoggingSeverity.WARNING, _InternalMessageId.SetAuthContextFailedAccountName, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self.authenticatedId = authenticatedUserId;\r\n var authCookie = _self.authenticatedId;\r\n if (accountId) {\r\n _self.accountId = accountId;\r\n authCookie = [_self.authenticatedId, _self.accountId].join(User.cookieSeparator);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User.authUserCookieName, encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self.authenticatedId = null;\r\n _self.accountId = null;\r\n _cookieManager.del(User.authUserCookieName);\r\n };\r\n _self.update = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self.isUserCookieSet) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie.join(User.cookieSeparator));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n _self.name = name;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n _self.name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, _self.name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * TelemetryContext.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isString, objKeys, hasWindow, _InternalLogMessage, setValue, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { Extensions, CtxTagKeys, PageView } from \"@microsoft/applicationinsights-common\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { User } from \"./Context/User\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name]).length === 0) {\r\n delete target[name];\r\n }\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig) {\r\n var _this = this;\r\n var logger = core.logger;\r\n this.appId = function () { return null; };\r\n this.getSessionId = function () { return null; };\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig);\r\n if (hasWindow()) {\r\n _self.sessionManager = new _SessionManager(defaultConfig, core);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core);\r\n _self.telemetryTrace = new TelemetryTrace(undefined, undefined, undefined, logger);\r\n _self.session = new Session();\r\n }\r\n _self.getSessionId = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self.sessionManager || {}).automaticSession;\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self.applySessionContext = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self.getSessionId(), isString);\r\n };\r\n _self.applyOperatingSystemContxt = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self.applyApplicationContext = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self.applyDeviceContext = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self.applyInternalContext = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, internal.sdkVersion, isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self.applyLocationContext = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self.applyOperationContext = function (evt, itemCtx) {\r\n var telemetryTrace = _self.telemetryTrace;\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self.applyUserContext = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user.accountId, isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user.authenticatedId, isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Properties Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n * PropertiesPlugin.ts\r\n * @copyright Microsoft 2018\r\n */\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, isNullOrUndefined, _InternalLogMessage, LoggingSeverity, _InternalMessageId, getNavigator, objForEachKey, getSetValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { PageView, BreezeChannelIdentifier, PropertiesPluginIdentifier, getExtensionByName } from \"@microsoft/applicationinsights-common\";\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _breezeChannel; // optional. If exists, grab appId from it\r\n var _extensionConfig;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var ctx = _self._getTelCtx();\r\n var identifier = _self.identifier;\r\n var defaultConfig = PropertiesPlugin.getDefaultConfig();\r\n _extensionConfig = _extensionConfig || {};\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _extensionConfig[field] = function () { return ctx.getConfig(identifier, field, value()); };\r\n });\r\n _self.context = new TelemetryContext(core, _extensionConfig);\r\n _breezeChannel = getExtensionByName(extensions, BreezeChannelIdentifier);\r\n _self.context.appId = function () { return _breezeChannel ? _breezeChannel[\"_appId\"] : null; };\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (isNullOrUndefined(event)) {\r\n // TODO(barustum): throw an internal event once we have support for internal logging\r\n }\r\n else {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_self.context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _self.context.session.id !== \"string\" && theContext.sessionManager) {\r\n theContext.sessionManager.update();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx.isUserCookieSet) {\r\n userCtx.update(theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx.isNewUser) {\r\n userCtx.isNewUser = false;\r\n var message = new _InternalLogMessage(_InternalMessageId.SendBrowserInfoOnUserInit, ((getNavigator() || {}).userAgent || \"\"));\r\n itemCtx.diagLog().logInternalMessage(LoggingSeverity.CRITICAL, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx.applySessionContext(evt, itemCtx);\r\n ctx.applyApplicationContext(evt, itemCtx);\r\n ctx.applyDeviceContext(evt, itemCtx);\r\n ctx.applyOperationContext(evt, itemCtx);\r\n ctx.applyUserContext(evt, itemCtx);\r\n ctx.applyOperatingSystemContxt(evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx.applyLocationContext(evt, itemCtx); // legacy tags\r\n ctx.applyInternalContext(evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.getDefaultConfig = function () {\r\n var defaultConfig = {\r\n instrumentationKey: function () { return undefined; },\r\n accountId: function () { return null; },\r\n sessionRenewalMs: function () { return 30 * 60 * 1000; },\r\n samplingPercentage: function () { return 100; },\r\n sessionExpirationMs: function () { return 24 * 60 * 60 * 1000; },\r\n cookieDomain: function () { return null; },\r\n sdkExtension: function () { return null; },\r\n isBrowserLinkTrackingEnabled: function () { return false; },\r\n appId: function () { return null; },\r\n getSessionId: function () { return null; },\r\n namePrefix: function () { return undefined; },\r\n sessionCookiePostfix: function () { return undefined; },\r\n userCookiePostfix: function () { return undefined; },\r\n idLength: function () { return 22; },\r\n getNewId: function () { return null; }\r\n };\r\n return defaultConfig;\r\n };\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Core, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { hasOwnProperty } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strConstructor = \"constructor\";\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr.length; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* Request */ && type <= 2 /* HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb.apply(callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb.apply(callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = {\r\n name: aiHook.n,\r\n inst: funcThis,\r\n ctx: null,\r\n set: _replaceArg\r\n };\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target.push(arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n try {\r\n funcArgs.rslt = theFunc.apply(funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Object[\"getPrototypeOf\"];\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n if (target) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n // target[Constructor] May break if the constructor has been changed or removed\r\n var newProto = target[str__Proto] || target[strShimPrototype] || target[strConstructor];\r\n if (newProto) {\r\n return newProto;\r\n }\r\n }\r\n return null;\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype) {\r\n var owner = null;\r\n if (target) {\r\n if (hasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n var aiHook_1 = fn[aiInstrumentHooks];\r\n if (!aiHook_1) {\r\n // Only hook the function once\r\n aiHook_1 = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook_1);\r\n newFunc[aiInstrumentHooks] = aiHook_1; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook_1.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook_1.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook_1.h.splice(idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook_1.i++;\r\n aiHook_1.h.push(theHook);\r\n return theHook;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks.push(hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeUrl, dateTimeUtilsDuration, urlGetAbsoluteUrl, urlGetCompleteUrl, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { objKeys, arrForEach, isNumber, isString, normalizeJsName, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar strProperties = \"properties\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData.perfTiming;\r\n var props = dependency[strProperties] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strDuration = \"duration\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[strDuration];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, strDuration, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData.perfMark) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[strProperties] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self.openDone = false;\r\n self.setRequestHeaderDone = false;\r\n self.sendDone = false;\r\n self.abortDone = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self.stateChangeAttached = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceID, spanID, logger) {\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self.perfMark = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self.requestHeaders = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self.ajaxTotalDuration = null;\r\n self.aborted = 0;\r\n self.pageUrl = null;\r\n self.requestUrl = null;\r\n self.requestSize = 0;\r\n self.method = null;\r\n self.status = null;\r\n self.requestSentTime = null;\r\n self.responseStartedTime = null;\r\n self.responseFinishedTime = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self.traceID = traceID;\r\n self.spanID = spanID;\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self.requestUrl ? urlGetAbsoluteUrl(self.requestUrl) : null;\r\n };\r\n self.getPathName = function () {\r\n return self.requestUrl ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self.method, self.requestUrl)) : null;\r\n };\r\n self.CreateTrackItem = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self.ajaxTotalDuration < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self.traceID + \".\" + self.spanID,\r\n target: self.getAbsoluteUrl(),\r\n name: self.getPathName(),\r\n type: ajaxType,\r\n startTime: null,\r\n duration: self.ajaxTotalDuration,\r\n success: (+(self.status)) >= 200 && (+(self.status)) < 400,\r\n responseCode: (+(self.status)),\r\n method: self.method\r\n },\r\n _a[strProperties] = { HttpMethod: self.method },\r\n _a);\r\n if (self.requestSentTime) {\r\n // Set the correct dependency start time\r\n dependency.startTime = new Date();\r\n dependency.startTime.setTime(self.requestSentTime);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].requestHeaders = self.requestHeaders;\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response.correlationContext;\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response.headerMap) {\r\n if (objKeys(response.headerMap).length > 0) {\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n dependency[strProperties].responseHeaders = response.headerMap;\r\n }\r\n }\r\n if (self.errorStatusText && self.status >= 400) {\r\n var responseType = response.type;\r\n dependency[strProperties] = dependency[strProperties] || {};\r\n if (responseType === \"\" || responseType === \"text\") {\r\n dependency[strProperties][strResponseText] = response[strResponseText] ? response.statusText + \" - \" + response[strResponseText] : response.statusText;\r\n }\r\n if (responseType === \"json\") {\r\n dependency[strProperties][strResponseText] = response.response ? response.statusText + \" - \" + JSON.stringify(response.response) : response.statusText;\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { generateW3CId } from \"@microsoft/applicationinsights-core-js\";\r\nvar Traceparent = /** @class */ (function () {\r\n function Traceparent(traceId, spanId) {\r\n var self = this;\r\n self.traceFlag = Traceparent.DEFAULT_TRACE_FLAG;\r\n self.version = Traceparent.DEFAULT_VERSION;\r\n if (traceId && Traceparent.isValidTraceId(traceId)) {\r\n self.traceId = traceId;\r\n }\r\n else {\r\n self.traceId = generateW3CId();\r\n }\r\n if (spanId && Traceparent.isValidSpanId(spanId)) {\r\n self.spanId = spanId;\r\n }\r\n else {\r\n self.spanId = generateW3CId().substr(0, 16);\r\n }\r\n }\r\n Traceparent.isValidTraceId = function (id) {\r\n return id.match(/^[0-9a-f]{32}$/) && id !== \"00000000000000000000000000000000\";\r\n };\r\n Traceparent.isValidSpanId = function (id) {\r\n return id.match(/^[0-9a-f]{16}$/) && id !== \"0000000000000000\";\r\n };\r\n Traceparent.prototype.toString = function () {\r\n var self = this;\r\n return \"\".concat(self.version, \"-\").concat(self.traceId, \"-\").concat(self.spanId, \"-\").concat(self.traceFlag);\r\n };\r\n Traceparent.DEFAULT_TRACE_FLAG = \"01\";\r\n Traceparent.DEFAULT_VERSION = \"00\";\r\n return Traceparent;\r\n}());\r\nexport { Traceparent };\r\n//# sourceMappingURL=TraceParent.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { RequestHeaders, CorrelationIdHelper, TelemetryItemCreator, RemoteDependencyData, dateTimeUtilsNow, DisabledPropertyName, PropertiesPluginIdentifier, DistributedTracingModes, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { isNullOrUndefined, arrForEach, isString, strTrim, isFunction, LoggingSeverity, _InternalMessageId, BaseTelemetryPlugin, getLocation, getGlobal, strPrototype, InstrumentFunc, InstrumentProto, getPerformance, objForEachKey, generateW3CId, getIEVersion, dumpObj, isXhrSupported, attachEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nimport { Traceparent } from \"./TraceParent\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar strAjaxData = \"ajaxData\";\r\nvar strThrowInternal = \"throwInternal\";\r\nvar strFetch = \"fetch\";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[strFetch])) {\r\n return null;\r\n }\r\n return _global[strFetch];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance) {\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n xhr[strAjaxData] = {};\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", {\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(xhr) &&\r\n !isNullOrUndefined(xhr[strAjaxData]) &&\r\n !isNullOrUndefined(xhr[strAjaxData].requestUrl)) {\r\n result += \"(url: '\" + xhr[strAjaxData].requestUrl + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.CRITICAL, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n ajaxMonitorInstance[strDiagLog]()[strThrowInternal](LoggingSeverity.WARNING, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (args) {\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(args.inst),\r\n exception: dumpObj(args.err)\r\n });\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return value.indexOf(match);\r\n }\r\n return -1;\r\n}\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var strTrackDependencyDataInternal = \"trackDependencyDataInternal\"; // Using string to help with minification\r\n var location = getLocation();\r\n var _fetchInitialized = false; // fetch monitoring initialized\r\n var _xhrInitialized = false; // XHR monitoring initialized\r\n var _currentWindowHost = location && location.host && location.host.toLowerCase();\r\n var _config = AjaxMonitor.getEmptyConfig();\r\n var _enableRequestHeaderTracking = false;\r\n var _enableAjaxErrorStatusText = false;\r\n var _trackAjaxAttempts = 0;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking = false;\r\n var _maxAjaxCallsPerView = 0;\r\n var _enableResponseHeaderTracking = false;\r\n var _hooks = [];\r\n var _disabledUrls = {};\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n dynamicProto(AjaxMonitor, _this, function (_self, base) {\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n base.initialize(config, core, extensions, pluginChain);\r\n var ctx_1 = _self._getTelCtx();\r\n var defaultConfig = AjaxMonitor.getDefaultConfig();\r\n objForEachKey(defaultConfig, function (field, value) {\r\n _config[field] = ctx_1.getConfig(AjaxMonitor.identifier, field, value);\r\n });\r\n var distributedTracingMode = _config.distributedTracingMode;\r\n _enableRequestHeaderTracking = _config.enableRequestHeaderTracking;\r\n _enableAjaxErrorStatusText = _config.enableAjaxErrorStatusText;\r\n _enableAjaxPerfTracking = _config.enableAjaxPerfTracking;\r\n _maxAjaxCallsPerView = _config.maxAjaxCallsPerView;\r\n _enableResponseHeaderTracking = _config.enableResponseHeaderTracking;\r\n _excludeRequestFromAutoTrackingPatterns = _config.excludeRequestFromAutoTrackingPatterns;\r\n _addRequestContext = _config.addRequestContext;\r\n _isUsingAIHeaders = distributedTracingMode === DistributedTracingModes.AI || distributedTracingMode === DistributedTracingModes.AI_AND_W3C;\r\n _isUsingW3CHeaders = distributedTracingMode === DistributedTracingModes.AI_AND_W3C || distributedTracingMode === DistributedTracingModes.W3C;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey.length > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey.substring(iKey.length - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n if (_config.disableAjaxTracking === false) {\r\n _instrumentXhr();\r\n }\r\n _instrumentFetch();\r\n if (extensions.length > 0 && extensions) {\r\n var propExt = void 0, extIx = 0;\r\n while (!propExt && extIx < extensions.length) {\r\n if (extensions[extIx] && extensions[extIx].identifier === PropertiesPluginIdentifier) {\r\n propExt = extensions[extIx];\r\n }\r\n extIx++;\r\n }\r\n if (propExt) {\r\n _context = propExt.context; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n }\r\n };\r\n _self.teardown = function () {\r\n // Remove all instrumentation hooks\r\n arrForEach(_hooks, function (fn) {\r\n fn.rm();\r\n });\r\n _hooks = [];\r\n _fetchInitialized = false;\r\n _xhrInitialized = false;\r\n _self.setInitialized(false);\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _self[strTrackDependencyDataInternal](dependency, properties);\r\n };\r\n _self.includeCorrelationHeaders = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n if (input) { // Fetch\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n init.headers = new Headers(init.headers || (input instanceof Request ? (input.headers || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n init.headers.set(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n init.headers.set(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n init.headers.set(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (CorrelationIdHelper.canIncludeCorrelationHeader(_config, ajaxData.getAbsoluteUrl(), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData.traceID + \".\" + ajaxData.spanID;\r\n xhr.setRequestHeader(RequestHeaders.requestIdHeader, id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestIdHeader] = id;\r\n }\r\n }\r\n var appId = _config.appId || (_context && _context.appId());\r\n if (appId) {\r\n xhr.setRequestHeader(RequestHeaders.requestContextHeader, RequestHeaders.requestContextAppIdFormat + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.requestContextHeader] = RequestHeaders.requestContextAppIdFormat + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceparent = new Traceparent(ajaxData.traceID, ajaxData.spanID);\r\n xhr.setRequestHeader(RequestHeaders.traceParentHeader, traceparent.toString());\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData.requestHeaders[RequestHeaders.traceParentHeader] = traceparent.toString();\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[strTrackDependencyDataInternal] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_config.distributedTracingMode === DistributedTracingModes.W3C\r\n || _config.distributedTracingMode === DistributedTracingModes.AI_AND_W3C)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id.length - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency.startTime)) {\r\n dependency.startTime = new Date();\r\n }\r\n var item = TelemetryItemCreator.create(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self.core.track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, _InternalMessageId.MaxAjaxPerPVExceeded, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _config.ignoreHeaders) {\r\n arrForEach(_config.ignoreHeaders, (function (key) {\r\n if (key.toLowerCase() === header.toLowerCase()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n if (_config.disableFetchTracking === false) {\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (_fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self.includeCorrelationHeaders(fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n var fetchData = callDetails.ctx().data;\r\n if (fetchData) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {}).status, input, response, fetchData, function () {\r\n var ajaxResponse = {\r\n statusText: response.statusText,\r\n headerMap: null,\r\n correlationContext: _getFetchCorrelationContext(response)\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })[\"catch\"](function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData, null, { error: reason.message });\r\n throw reason;\r\n });\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor Window.fetch, monitoring data for this fetch call may be incorrect.\")\r\n }));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"poyyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _hooks.push(InstrumentFunc(global, strFetch, {\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n }\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[strFetch].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _hooks.push(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (_supportsAjaxMonitoring(_self) && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n req: function (args, method, url, async) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState.openDone) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr);\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to monitor XMLHttpRequest.open, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n req: function (args, context) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.sendDone) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n _self.includeCorrelationHeaders(ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState.sendDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSend, \"Failed to monitor XMLHttpRequest, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n req: function (args) {\r\n var xhr = args.inst;\r\n var ajaxData = xhr[strAjaxData];\r\n if (_isMonitoredXhrInstance(xhr) && !ajaxData.xhrMonitoringState.abortDone) {\r\n ajaxData.aborted = 1;\r\n ajaxData.xhrMonitoringState.abortDone = true;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxAbort, \"Failed to monitor XMLHttpRequest.abort, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n // Instrument setRequestHeader\r\n if (_enableRequestHeaderTracking) {\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n req: function (args, header, value) {\r\n var xhr = args.inst;\r\n if (_isMonitoredXhrInstance(xhr) && _canIncludeHeaders(header)) {\r\n xhr[strAjaxData].requestHeaders[header] = value;\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, _InternalMessageId.FailedMonitorAjaxSetRequestHeader, \"Failed to monitor XMLHttpRequest.setRequestHeader, monitoring data for this ajax call may be incorrect.\")\r\n });\r\n }\r\n _xhrInitialized = true;\r\n }\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\").toLowerCase();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particalar instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(xhr[strAjaxData]);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.method = method;\r\n ajaxData.requestUrl = url;\r\n ajaxData.xhrMonitoringState.openDone = true;\r\n ajaxData.requestHeaders = {};\r\n ajaxData.async = async;\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n xhr[strAjaxData] = ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr) {\r\n xhr[strAjaxData].xhrMonitoringState.stateChangeAttached = attachEvent(xhr, \"readystatechange\", function () {\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText.toLowerCase(), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxRSC, \"Failed to monitor XMLHttpRequest 'readystatechange' event handler, monitoring data for this ajax call may be incorrect.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: exceptionText\r\n });\r\n }\r\n }\r\n });\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr.responseText;\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = xhr[strAjaxData];\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = xhr.status;\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxDur, \"Failed to calculate the duration of the ajax call, monitoring data for this ajax call won't be sent.\", errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData.CreateTrackItem(\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var ajaxResponse = {\r\n statusText: xhr.statusText,\r\n headerMap: null,\r\n correlationContext: _getAjaxCorrelationContext(xhr),\r\n type: xhr.responseType,\r\n responseText: _getResponseText(xhr),\r\n response: xhr.response\r\n };\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr.getAllResponseHeaders();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse.headerMap = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr.status, xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n xhr[strAjaxData] = null;\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n try {\r\n var responseHeadersString = xhr.getAllResponseHeaders();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString.toLowerCase(), RequestHeaders.requestContextHeaderLowerCase);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(xhr),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData.requestUrl && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries.length === 1) {\r\n ajaxData.perfMark = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData.perfMark;\r\n var performance = getPerformance();\r\n var maxAttempts = _config.maxAjaxPerfLookupAttempts;\r\n var retryDelay = _config.ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData.requestUrl;\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries.length - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry.name, requestUrl) !== -1 || _indexOf(requestUrl, entry.name) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry.name === perfMark.name) {\r\n // We hit the start event\r\n ajaxData.perfTiming = perfTiming;\r\n break;\r\n }\r\n if (entry.startTime < perfMark.startTime - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData.perfTiming || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark.name);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n setTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var traceID = (_context && _context.telemetryTrace && _context.telemetryTrace.traceID) || generateW3CId();\r\n var spanID = generateW3CId().substr(0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog]());\r\n ajaxData.requestSentTime = dateTimeUtilsNow();\r\n ajaxData.errorStatusText = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData.requestUrl = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData.requestUrl = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init.method) {\r\n method = init.method;\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input.method;\r\n }\r\n ajaxData.method = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init.headers : 0) || (input instanceof Request ? (input.headers || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData.requestHeaders = requestHeaders;\r\n _createMarkId(\"fetch\", ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, _InternalMessageId.FailedMonitorAjaxOpen, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, \"Failed to calculate the duration of the fetch call, monitoring data for this fetch call won't be sent.\", errorProps);\r\n }\r\n ajaxData.responseFinishedTime = dateTimeUtilsNow();\r\n ajaxData.status = status;\r\n _findPerfResourceEntry(\"fetch\", ajaxData, function () {\r\n var dependency = ajaxData.CreateTrackItem(\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedAddingCustomDefinedRequestContext, \"Failed to add custom defined request context as configured call back may missing a null check.\");\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency.properties = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n _self[strTrackDependencyDataInternal](dependency);\r\n }\r\n else {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxDur, null, {\r\n requestSentTime: ajaxData.requestSentTime,\r\n responseFinishedTime: ajaxData.responseFinishedTime\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(_InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n if (response && response.headers) {\r\n try {\r\n var responseHeader = response.headers.get(RequestHeaders.requestContextHeader);\r\n return CorrelationIdHelper.getCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, _InternalMessageId.FailedMonitorAjaxGetCorrelationHeader, \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\", {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response),\r\n exception: dumpObj(e)\r\n });\r\n }\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n AjaxMonitor.getDefaultConfig = function () {\r\n var config = {\r\n maxAjaxCallsPerView: 500,\r\n disableAjaxTracking: false,\r\n disableFetchTracking: true,\r\n excludeRequestFromAutoTrackingPatterns: undefined,\r\n disableCorrelationHeaders: false,\r\n distributedTracingMode: DistributedTracingModes.AI_AND_W3C,\r\n correlationHeaderExcludedDomains: [\r\n \"*.blob.core.windows.net\",\r\n \"*.blob.core.chinacloudapi.cn\",\r\n \"*.blob.core.cloudapi.de\",\r\n \"*.blob.core.usgovcloudapi.net\"\r\n ],\r\n correlationHeaderDomains: undefined,\r\n correlationHeaderExcludePatterns: undefined,\r\n appId: undefined,\r\n enableCorsCorrelation: false,\r\n enableRequestHeaderTracking: false,\r\n enableResponseHeaderTracking: false,\r\n enableAjaxErrorStatusText: false,\r\n enableAjaxPerfTracking: false,\r\n maxAjaxPerfLookupAttempts: 3,\r\n ajaxPerfLookupDelay: 25,\r\n ignoreHeaders: [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n addRequestContext: undefined\r\n };\r\n return config;\r\n };\r\n AjaxMonitor.getEmptyConfig = function () {\r\n var emptyConfig = this.getDefaultConfig();\r\n objForEachKey(emptyConfig, function (value) {\r\n emptyConfig[value] = undefined;\r\n });\r\n return emptyConfig;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n// Removed Stub for AjaxMonitor.prototype.teardown.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString.split(_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv.split(_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts.length === 2) { // only save fields with valid formats\r\n var key = kvParts[0].toLowerCase();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result).length > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result.ingestionendpoint = result.ingestionendpoint || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result.ingestionendpoint = result.ingestionendpoint || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Common, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nvar ConfigurationManager = /** @class */ (function () {\r\n function ConfigurationManager() {\r\n }\r\n ConfigurationManager.getConfig = function (config, field, identifier, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var configValue;\r\n if (identifier && config.extensionConfig && config.extensionConfig[identifier] && !isNullOrUndefined(config.extensionConfig[identifier][field])) {\r\n configValue = config.extensionConfig[identifier][field];\r\n }\r\n else {\r\n configValue = config[field];\r\n }\r\n return !isNullOrUndefined(configValue) ? configValue : defaultValue;\r\n };\r\n return ConfigurationManager;\r\n}());\r\nexport { ConfigurationManager };\r\n//# sourceMappingURL=IConfig.js.map\n","/*** IMPORTS FROM imports-loader ***/\nvar define = false;\n\n/*\n * Application Insights JavaScript SDK - Web, 2.7.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { AppInsightsCore, LoggingSeverity, _InternalMessageId, hasWindow, hasDocument, isReactNative, doPerf, objForEachKey, proxyAssign, arrForEach, isString, isFunction, isNullOrUndefined, isArray, throwError, addPageUnloadEventListener, addPageHideEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { ApplicationInsights } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { Util, CorrelationIdHelper, UrlHelper, DateTimeUtils, ConnectionStringParser, RequestHeaders, DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, AIData, AIBase, Envelope, Event, Exception, Metric, PageView, PageViewData, RemoteDependencyData, Trace, PageViewPerformance, Data, SeverityLevel, ConfigurationManager, ContextTagKeys, DataSanitizer, TelemetryItemCreator, CtxTagKeys, Extensions, DistributedTracingModes, PropertiesPluginIdentifier, BreezeChannelIdentifier, AnalyticsPluginIdentifier, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\n\"use strict\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n \"snippet\", \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\n// Re-exposing the Common classes as Telemetry, the list was taken by reviewing the generated code for the build while using\r\n// the previous configuration :-\r\n// import * as Common from \"@microsoft/applicationinsights-common\"\r\n// export const Telemetry = Common;\r\nvar fieldType = {\r\n Default: 0 /* Default */,\r\n Required: 1 /* Required */,\r\n Array: 2 /* Array */,\r\n Hidden: 4 /* Hidden */\r\n};\r\n/**\r\n * Telemetry type classes, e.g. PageView, Exception, etc\r\n */\r\nexport var Telemetry = {\r\n __proto__: null,\r\n PropertiesPluginIdentifier: PropertiesPluginIdentifier,\r\n BreezeChannelIdentifier: BreezeChannelIdentifier,\r\n AnalyticsPluginIdentifier: AnalyticsPluginIdentifier,\r\n Util: Util,\r\n CorrelationIdHelper: CorrelationIdHelper,\r\n UrlHelper: UrlHelper,\r\n DateTimeUtils: DateTimeUtils,\r\n ConnectionStringParser: ConnectionStringParser,\r\n FieldType: fieldType,\r\n RequestHeaders: RequestHeaders,\r\n DisabledPropertyName: DisabledPropertyName,\r\n ProcessLegacy: ProcessLegacy,\r\n SampleRate: SampleRate,\r\n HttpMethod: HttpMethod,\r\n DEFAULT_BREEZE_ENDPOINT: DEFAULT_BREEZE_ENDPOINT,\r\n AIData: AIData,\r\n AIBase: AIBase,\r\n Envelope: Envelope,\r\n Event: Event,\r\n Exception: Exception,\r\n Metric: Metric,\r\n PageView: PageView,\r\n PageViewData: PageViewData,\r\n RemoteDependencyData: RemoteDependencyData,\r\n Trace: Trace,\r\n PageViewPerformance: PageViewPerformance,\r\n Data: Data,\r\n SeverityLevel: SeverityLevel,\r\n ConfigurationManager: ConfigurationManager,\r\n ContextTagKeys: ContextTagKeys,\r\n DataSanitizer: DataSanitizer,\r\n TelemetryItemCreator: TelemetryItemCreator,\r\n CtxTagKeys: CtxTagKeys,\r\n Extensions: Extensions,\r\n DistributedTracingModes: DistributedTracingModes\r\n};\r\n/**\r\n * Application Insights API\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar Initialization = /** @class */ (function () {\r\n function Initialization(snippet) {\r\n var _self = this;\r\n // initialize the queue and config in case they are undefined\r\n _self._snippetVersion = \"\" + (snippet.sv || snippet.version || \"\");\r\n snippet.queue = snippet.queue || [];\r\n snippet.version = snippet.version || 2.0; // Default to new version\r\n var config = snippet.config || {};\r\n if (config.connectionString) {\r\n var cs = parseConnectionString(config.connectionString);\r\n var ingest = cs.ingestionendpoint;\r\n config.endpointUrl = ingest ? \"\".concat(ingest, \"/v2/track\") : config.endpointUrl; // only add /v2/track when from connectionstring\r\n config.instrumentationKey = cs.instrumentationkey || config.instrumentationKey;\r\n }\r\n _self.appInsights = new ApplicationInsights();\r\n _self.properties = new PropertiesPlugin();\r\n _self.dependencies = new DependenciesPlugin();\r\n _self.core = new AppInsightsCore();\r\n _self._sender = new Sender();\r\n _self.snippet = snippet;\r\n _self.config = config;\r\n _self.getSKUDefaults();\r\n }\r\n // Analytics Plugin\r\n /**\r\n * Get the current cookie manager for this instance\r\n */\r\n Initialization.prototype.getCookieMgr = function () {\r\n return this.appInsights.getCookieMgr();\r\n };\r\n /**\r\n * Log a user action or other occurrence.\r\n * @param {IEventTelemetry} event\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackEvent = function (event, customProperties) {\r\n this.appInsights.trackEvent(event, customProperties);\r\n };\r\n /**\r\n * Logs that a page, or similar container was displayed to the user.\r\n * @param {IPageViewTelemetry} pageView\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageView = function (pageView) {\r\n var inPv = pageView || {};\r\n this.appInsights.trackPageView(inPv);\r\n };\r\n /**\r\n * Log a bag of performance information via the customProperties field.\r\n * @param {IPageViewPerformanceTelemetry} pageViewPerformance\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackPageViewPerformance = function (pageViewPerformance) {\r\n var inPvp = pageViewPerformance || {};\r\n this.appInsights.trackPageViewPerformance(inPvp);\r\n };\r\n /**\r\n * Log an exception that you have caught.\r\n * @param {IExceptionTelemetry} exception\r\n * @param {{[key: string]: any}} customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackException = function (exception, customProperties) {\r\n if (exception && !exception.exception && exception.error) {\r\n exception.exception = exception.error;\r\n }\r\n this.appInsights.trackException(exception, customProperties);\r\n };\r\n /**\r\n * Manually send uncaught exception telemetry. This method is automatically triggered\r\n * on a window.onerror event.\r\n * @param {IAutoExceptionTelemetry} exception\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype._onerror = function (exception) {\r\n this.appInsights._onerror(exception);\r\n };\r\n /**\r\n * Log a diagnostic scenario such entering or leaving a function.\r\n * @param {ITraceTelemetry} trace\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackTrace = function (trace, customProperties) {\r\n this.appInsights.trackTrace(trace, customProperties);\r\n };\r\n /**\r\n * Log a numeric value that is not associated with a specific event. Typically used\r\n * to send regular reports of performance indicators.\r\n *\r\n * To send a single measurement, just use the `name` and `average` fields\r\n * of {@link IMetricTelemetry}.\r\n *\r\n * If you take measurements frequently, you can reduce the telemetry bandwidth by\r\n * aggregating multiple measurements and sending the resulting average and modifying\r\n * the `sampleCount` field of {@link IMetricTelemetry}.\r\n * @param {IMetricTelemetry} metric input object argument. Only `name` and `average` are mandatory.\r\n * @param {ICustomProperties} [customProperties]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackMetric = function (metric, customProperties) {\r\n this.appInsights.trackMetric(metric, customProperties);\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n Initialization.prototype.startTrackPage = function (name) {\r\n this.appInsights.startTrackPage(name);\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackPage = function (name, url, customProperties, measurements) {\r\n this.appInsights.stopTrackPage(name, url, customProperties, measurements);\r\n };\r\n Initialization.prototype.startTrackEvent = function (name) {\r\n this.appInsights.startTrackEvent(name);\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n Initialization.prototype.stopTrackEvent = function (name, properties, measurements) {\r\n this.appInsights.stopTrackEvent(name, properties, measurements); // Todo: Fix to pass measurements once type is updated\r\n };\r\n Initialization.prototype.addTelemetryInitializer = function (telemetryInitializer) {\r\n return this.appInsights.addTelemetryInitializer(telemetryInitializer);\r\n };\r\n // Properties Plugin\r\n /**\r\n * Set the authenticated user id and the account id. Used for identifying a specific signed-in user. Parameters must not contain whitespace or ,;=|\r\n *\r\n * The method will only set the `authenticatedUserId` and `accountId` in the current page view. To set them for the whole session, you should set `storeInCookie = true`\r\n * @param {string} authenticatedUserId\r\n * @param {string} [accountId]\r\n * @param {boolean} [storeInCookie=false]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n this.properties.context.user.setAuthenticatedUserContext(authenticatedUserId, accountId, storeInCookie);\r\n };\r\n /**\r\n * Clears the authenticated user id and account id. The associated cookie is cleared, if present.\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.clearAuthenticatedUserContext = function () {\r\n this.properties.context.user.clearAuthenticatedUserContext();\r\n };\r\n // Dependencies Plugin\r\n /**\r\n * Log a dependency call (e.g. ajax)\r\n * @param {IDependencyTelemetry} dependency\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.trackDependencyData = function (dependency) {\r\n this.dependencies.trackDependencyData(dependency);\r\n };\r\n // Misc\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.flush = function (async) {\r\n var _this = this;\r\n if (async === void 0) { async = true; }\r\n doPerf(this.core, function () { return \"AISKU.flush\"; }, function () {\r\n arrForEach(_this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n channel.flush(async);\r\n });\r\n });\r\n }, null, async);\r\n };\r\n /**\r\n * Manually trigger an immediate send of all telemetry still in the buffer using beacon Sender.\r\n * Fall back to xhr sender if beacon is not supported.\r\n * @param {boolean} [async=true]\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.onunloadFlush = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(this.core.getTransmissionControls(), function (channels) {\r\n arrForEach(channels, function (channel) {\r\n if (channel.onunloadFlush) {\r\n channel.onunloadFlush();\r\n }\r\n else {\r\n channel.flush(async);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initialize this instance of ApplicationInsights\r\n * @returns {IApplicationInsights}\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n var _this = this;\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n var _self = this;\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_self._snippetVersion)) {\r\n snippetVer += _self._snippetVersion;\r\n }\r\n if (legacyMode) {\r\n snippetVer += \".lg\";\r\n }\r\n if (_self.context && _self.context.internal) {\r\n _self.context.internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n _ignoreUpdateSnippetProperties.indexOf(field) === -1) {\r\n snippet[field] = value;\r\n }\r\n });\r\n }\r\n }\r\n // dont allow additional channels/other extensions for legacy mode; legacy mode is only to allow users to switch with no code changes!\r\n if (legacyMode && _self.config.extensions && _self.config.extensions.length > 0) {\r\n throwError(\"Extensions not allowed in legacy mode\");\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n var extensions = [];\r\n extensions.push(_self._sender);\r\n extensions.push(_self.properties);\r\n extensions.push(_self.dependencies);\r\n extensions.push(_self.appInsights);\r\n // initialize core\r\n _self.core.initialize(_self.config, extensions, logger, notificationManager);\r\n _self.context = _self.properties.context;\r\n if (_internalSdkSrc && _self.context) {\r\n _self.context.internal.sdkSrc = _internalSdkSrc;\r\n }\r\n _updateSnippetProperties(_self.snippet);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self.pollInternalLogs();\r\n _self.addHousekeepingBeforeUnload(_this);\r\n });\r\n return _self;\r\n };\r\n /**\r\n * Overwrite the lazy loaded fields of global window snippet to contain the\r\n * actual initialized API methods\r\n * @param {Snippet} snippet\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.updateSnippetDefinitions = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, this, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && _ignoreUpdateSnippetProperties.indexOf(name) === -1;\r\n });\r\n };\r\n /**\r\n * Call any functions that were queued before the main script was loaded\r\n * @memberof Initialization\r\n */\r\n Initialization.prototype.emptyQueue = function () {\r\n var _self = this;\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet.queue)) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet.queue.length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet.queue[i];\r\n call();\r\n }\r\n _self.snippet.queue = undefined;\r\n delete _self.snippet.queue;\r\n }\r\n }\r\n catch (exception) {\r\n var properties = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // LoggingSeverity.WARNING,\r\n // _InternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n Initialization.prototype.pollInternalLogs = function () {\r\n this.core.pollInternalLogs();\r\n };\r\n Initialization.prototype.stopPollingInternalLogs = function () {\r\n this.core.stopPollingInternalLogs();\r\n };\r\n Initialization.prototype.addHousekeepingBeforeUnload = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance.onunloadFlush(false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n arrForEach(appInsightsInstance.appInsights.core[\"_extensions\"], function (ext) {\r\n if (ext.identifier === PropertiesPluginIdentifier) {\r\n if (ext && ext.context && ext.context._sessionManager) {\r\n ext.context._sessionManager.backup();\r\n }\r\n return -1;\r\n }\r\n });\r\n };\r\n var added = false;\r\n var excludePageUnloadEvents = appInsightsInstance.appInsights.config.disablePageUnloadEvents;\r\n if (!appInsightsInstance.appInsights.config.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n added = addPageUnloadEventListener(performHousekeeping, excludePageUnloadEvents);\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n added = addPageHideEventListener(performHousekeeping, excludePageUnloadEvents) || added;\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added && !isReactNative()) {\r\n appInsightsInstance.appInsights.core.logger.throwInternal(LoggingSeverity.CRITICAL, _InternalMessageId.FailedToAddHandlerForOnBeforeUnload, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added && !appInsightsInstance.appInsights.config.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping, excludePageUnloadEvents);\r\n }\r\n }\r\n };\r\n Initialization.prototype.getSender = function () {\r\n return this._sender;\r\n };\r\n Initialization.prototype.getSKUDefaults = function () {\r\n var _self = this;\r\n _self.config.diagnosticLogInterval =\r\n _self.config.diagnosticLogInterval && _self.config.diagnosticLogInterval > 0 ? _self.config.diagnosticLogInterval : 10000;\r\n };\r\n return Initialization;\r\n}());\r\nexport { Initialization };\r\n// tslint:disable-next-line\r\n(function () {\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url = sdkSrc.toLowerCase();\r\n if (url) {\r\n var src = \"\";\r\n for (var idx = 0; idx < cdns.length; idx++) {\r\n if (url.indexOf(cdns[idx]) !== -1) {\r\n src = \"cdn\" + (idx + 1);\r\n if (url.indexOf(\"/scripts/\") === -1) {\r\n if (url.indexOf(\"/next/\") !== -1) {\r\n src += \"-next\";\r\n }\r\n else if (url.indexOf(\"/beta/\") !== -1) {\r\n src += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src + (isModule ? \".mod\" : \"\");\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n})();\r\n//# sourceMappingURL=Initialization.js.map\n"],"sourceRoot":""}