@bbn/bbn 2.0.173 → 2.0.175
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bbn.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bbn.js","sources":["../node_modules/temporal-polyfill/chunks/internal.js","../node_modules/temporal-polyfill/chunks/classApi.js","_.js","lng.js","vars.js","env.js","com.js","fn/type/isNumber.js","fn/type/isIterable.js","fn/type/isString.js","fn/type/isInt.js","fn/type/isFunction.js","fn/browser/log.js","fn/string/substr.js","fn/object/removePrivateProp.js","fn/loop/iterate.js","fn/loop/each.js","fn/type/isObject.js","fn/type/isArray.js","fn/object/extend.js","db.js","fn/ajax/_addLoader.js","fn/object/getProperty.js","fn/string/removeAccents.js","fn/type/isDate.js","fn/object/_compareValues.js","fn/object/numProperties.js","fn/type/isEmpty.js","fn/type/isNull.js","fn/string/simpleHash1.js","fn/string/simpleHash2.js","fn/string/simpleHash.js","fn/type/isDom.js","fn/html/getPath.js","fn/type/isCp.js","fn/string/treatForHash.js","fn/string/hash.js","fn/string/md5.js","fn/misc/analyzeFunction.js","fn/type/isSame.js","fn/object/compare.js","fn/object/compareConditions.js","fn/object/filterToConditions.js","fn/object/search.js","fn/object/getRow.js","fn/ajax/_deleteLoader.js","fn/ajax/getLoader.js","fn/object/_filter.js","fn/style/addColors.js","fn/form/addInputs.js","fn/html/adjustSize.js","fn/string/escapeRegExp.js","fn/string/replaceAll.js","fn/ajax/getRequestId.js","fn/ajax/ajax.js","fn/convert/arrayBuffer2String.js","fn/string/baseName.js","dt/vars/units.js","fn/type/isPrimitive.js","dt/classes/duration.js","dt/classes/dt.js","dt/classes/dateTime.js","dt/classes/date.js","dt/classes/zoned.js","dt/functions/fromJsDate.js","dt/classes/yearMonth.js","dt/classes/monthDay.js","dt/functions/buildLocaleFromIntl.js","dt/classes/time.js","dt/functions/parse.js","dt/functions/guessFormat.js","dt.js","fn/browser/error.js","fn/ajax/callback.js","fn/object/checkPropsDetails.js","fn/string/correctCase.js","fn/type/checkType.js","fn/object/clone.js","fn/browser/copy.js","fn/object/filter.js","fn/string/crc32.js","fn/object/createObject.js","fn/datetime/date.js","fn/default/defaultAjaxAbortFunction.js","fn/default/defaultAjaxErrorFunction.js","fn/default/defaultEndLoadingFunction.js","fn/type/isNotObject.js","fn/object/diffObj.js","fn/string/dirName.js","fn/type/isBlob.js","fn/string/fileExt.js","fn/type/isCanvas.js","fn/ajax/downloadContent.js","fn/browser/yieldToBrowser.js","fn/browser/executeSlowly.js","fn/form/fieldValue.js","fn/form/formdata.js","fn/object/unique.js","fn/html/getAncestors.js","fn/style/getCssVar.js","fn/browser/getDeviceType.js","fn/html/getHTMLOfSelection.js","fn/string/removeHtmlComments.js","fn/html/html2text.js","fn/convert/imageToCanvas.js","fn/ajax/treatAjaxArguments.js","fn/ajax/setNavigationVars.js","fn/ajax/link.js","fn/style/resize.js","fn/browser/isMobileDevice.js","fn/browser/isTabletDevice.js","fn/browser/isMobile.js","fn/datetime/timestamp.js","dt/functions/intl-weekinfo-polyfill.js","dt/functions/setupIntl.js","fn/init.js","fn/type/isValidDimension.js","fn/type/isIP.js","fn/type/isSymbol.js","fn/browser/warning.js","fn/form/objectToFormData.js","fn/html/selector.js","fn/ajax/post.js","fn/object/setProperty.js","fn/misc/randomInt.js","fn/string/trim.js","fn/string/shorten.js","fn.js","fn/ajax/abort.js","fn/ajax/abortURL.js","fn/style/addStyle.js","fn/html/adjustHeight.js","fn/html/adjustWidth.js","fn/style/animateCss.js","fn/object/arrayFromProp.js","fn/object/autoExtend.js","fn/string/br2nl.js","fn/datetime/calendar.js","fn/string/camelize.js","fn/string/camelToCss.js","fn/convert/canvasToImage.js","fn/string/cast.js","fn/style/center.js","fn/object/checkProps.js","fn/object/checkPropsOrDie.js","fn/object/circularReplacer.js","fn/convert/colorToHex.js","fn/object/count.js","fn/style/cssExists.js","fn/string/data2Html.js","fn/datetime/dateSQL.js","fn/object/deepPath.js","fn/default/defaultAlertFunction.js","fn/default/defaultConfirmFunction.js","fn/default/defaultErrorFunction.js","fn/default/defaultHistoryFunction.js","fn/default/defaultLinkFunction.js","fn/default/defaultPostLinkFunction.js","fn/default/defaultPreLinkFunction.js","fn/default/defaultResizeFunction.js","fn/default/defaultStartLoadingFunction.js","fn/object/deleteProp.js","fn/ajax/download.js","fn/browser/eraseCookie.js","fn/string/escapeDquotes.js","fn/string/escapeSquotes.js","fn/string/escapeTicks.js","fn/string/escapeUrl.js","fn/object/extendOut.js","fn/datetime/fdate.js","fn/datetime/fdatetime.js","fn/object/findAll.js","fn/string/firstVarElement.js","fn/loop/fori.js","fn/loop/forir.js","fn/string/format.js","fn/string/formatBytes.js","fn/datetime/formatDate.js","fn/string/formatSize.js","fn/phone/fphone.js","fn/convert/fromXml.js","fn/datetime/ftime.js","fn/html/getAllTags.js","fn/html/getAttributes.js","fn/browser/getBrowserName.js","fn/browser/getBrowserVersion.js","fn/datetime/getChrono.js","fn/browser/getCookie.js","fn/datetime/getDay.js","fn/browser/getEventData.js","fn/object/getField.js","fn/object/getFieldValues.js","fn/html/getIndex.js","fn/html/getHtml.js","fn/object/getProp.js","fn/style/getScrollBarSize.js","fn/object/getSortingMoves.js","fn/html/getText.js","fn/misc/getTimeoff.js","fn/browser/happy.js","fn/convert/hex2rgb.js","fn/browser/history.js","fn/convert/imgToBase64.js","fn/browser/info.js","fn/browser/isActiveInterface.js","fn/type/isBoolean.js","fn/type/isColor.js","fn/type/isComment.js","fn/type/isDataURL.js","fn/browser/isDesktopDevice.js","fn/type/isDimension.js","fn/type/isEmail.js","fn/type/isEvent.js","fn/browser/isFocused.js","fn/type/isHex.js","fn/type/isHostname.js","fn/html/isInside.js","fn/html/isInViewport.js","fn/type/isPercent.js","fn/type/isPromise.js","fn/type/isPropSize.js","fn/type/isSQLDate.js","fn/type/isURL.js","fn/type/isUid.js","fn/type/isValidName.js","fn/type/isVue.js","fn/object/isWritable.js","fn/style/lightenDarkenHex.js","fn/html/makeReactive.js","fn/object/map.js","fn/datetime/microtimestamp.js","fn/misc/money.js","fn/object/move.js","fn/object/multiorder.js","fn/object/mutateArray.js","fn/object/mutateObject.js","fn/string/nl2br.js","fn/object/order.js","fn/style/outerHeight.js","fn/style/outerWidth.js","fn/misc/percent.js","fn/object/pickValue.js","fn/ajax/postOut.js","fn/string/printf.js","fn/string/quotes2html.js","fn/string/randomString.js","fn/object/range.js","fn/object/removeEmpty.js","fn/string/removeExtraSpaces.js","fn/string/removeTrailingChars.js","fn/string/repeat.js","fn/browser/replaceSelection.js","fn/convert/rgb2hex.js","fn/loop/riterate.js","fn/misc/roundDecimal.js","fn/string/sanitize.js","fn/browser/selectElementText.js","fn/browser/setCookie.js","fn/style/setCssVar.js","fn/object/setProp.js","fn/object/shortenObj.js","fn/object/shuffle.js","fn/datetime/startChrono.js","fn/datetime/stopChrono.js","fn/ajax/stream.js","fn/convert/string2ArrayBuffer.js","fn/form/submit.js","fn/object/sum.js","fn/convert/toCSV.js","fn/browser/toggleFullScreen.js","fn/misc/translate.js","fn/string/uniqString.js","fn/ajax/upload.js","index.js","$.js","dt/data/weekinfo-overrides.js","../node_modules/@formatjs/intl-relativetimeformat/polyfill.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/en.js","../node_modules/@formatjs/intl-datetimeformat/polyfill.js","../node_modules/@formatjs/intl-datetimeformat/locale-data/en.js"],"sourcesContent":["function clampProp(e, n, t, o, r) {\n return clampEntity(n, ((e, n) => {\n const t = e[n];\n if (void 0 === t) {\n throw new TypeError(missingField(n));\n }\n return t;\n })(e, n), t, o, r);\n}\n\nfunction clampEntity(e, n, t, o, r, i) {\n const a = clampNumber(n, t, o);\n if (r && n !== a) {\n throw new RangeError(numberOutOfRange(e, n, t, o, i));\n }\n return a;\n}\n\nfunction s(e) {\n return null !== e && /object|function/.test(typeof e);\n}\n\nfunction on(e, n = Map) {\n const t = new n;\n return (n, ...o) => {\n if (t.has(n)) {\n return t.get(n);\n }\n const r = e(n, ...o);\n return t.set(n, r), r;\n };\n}\n\nfunction r(e) {\n return n({\n name: e\n }, 1);\n}\n\nfunction n(n, t) {\n return e((e => ({\n value: e,\n configurable: 1,\n writable: !t\n })), n);\n}\n\nfunction t(n) {\n return e((e => ({\n get: e,\n configurable: 1\n })), n);\n}\n\nfunction o(e) {\n return {\n [Symbol.toStringTag]: {\n value: e,\n configurable: 1\n }\n };\n}\n\nfunction zipProps(e, n) {\n const t = {};\n let o = e.length;\n for (const r of n) {\n t[e[--o]] = r;\n }\n return t;\n}\n\nfunction e(e, n, t) {\n const o = {};\n for (const r in n) {\n o[r] = e(n[r], r, t);\n }\n return o;\n}\n\nfunction g(e, n, t) {\n const o = {};\n for (let r = 0; r < n.length; r++) {\n const i = n[r];\n o[i] = e(i, r, t);\n }\n return o;\n}\n\nfunction remapProps(e, n, t) {\n const o = {};\n for (let r = 0; r < e.length; r++) {\n o[n[r]] = t[e[r]];\n }\n return o;\n}\n\nfunction nn(e, n) {\n const t = Object.create(null);\n for (const o of e) {\n t[o] = n[o];\n }\n return t;\n}\n\nfunction hasAnyPropsByName(e, n) {\n for (const t of n) {\n if (t in e) {\n return 1;\n }\n }\n return 0;\n}\n\nfunction allPropsEqual(e, n, t) {\n for (const o of e) {\n if (n[o] !== t[o]) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction zeroOutProps(e, n, t) {\n const o = {\n ...t\n };\n for (let t = 0; t < n; t++) {\n o[e[t]] = 0;\n }\n return o;\n}\n\nfunction Pt(e, ...n) {\n return (...t) => e(...n, ...t);\n}\n\nfunction capitalize(e) {\n return e[0].toUpperCase() + e.substring(1);\n}\n\nfunction sortStrings(e) {\n return e.slice().sort();\n}\n\nfunction padNumber(e, n) {\n return String(n).padStart(e, \"0\");\n}\n\nfunction compareNumbers(e, n) {\n return Math.sign(e - n);\n}\n\nfunction clampNumber(e, n, t) {\n return Math.min(Math.max(e, n), t);\n}\n\nfunction divModFloor(e, n) {\n return [ Math.floor(e / n), modFloor(e, n) ];\n}\n\nfunction modFloor(e, n) {\n return (e % n + n) % n;\n}\n\nfunction divModTrunc(e, n) {\n return [ divTrunc(e, n), modTrunc(e, n) ];\n}\n\nfunction divTrunc(e, n) {\n return Math.trunc(e / n) || 0;\n}\n\nfunction modTrunc(e, n) {\n return e % n || 0;\n}\n\nfunction hasHalf(e) {\n return .5 === Math.abs(e % 1);\n}\n\nfunction givenFieldsToBigNano(e, n, t) {\n let o = 0, r = 0;\n for (let i = 0; i <= n; i++) {\n const n = e[t[i]], a = Ao[i], s = Uo / a, [c, u] = divModTrunc(n, s);\n o += u * a, r += c;\n }\n const [i, a] = divModTrunc(o, Uo);\n return [ r + i, a ];\n}\n\nfunction nanoToGivenFields(e, n, t) {\n const o = {};\n for (let r = n; r >= 0; r--) {\n const n = Ao[r];\n o[t[r]] = divTrunc(e, n), e = modTrunc(e, n);\n }\n return o;\n}\n\nfunction d(e) {\n if (void 0 !== e) {\n return m(e);\n }\n}\n\nfunction P(e) {\n if (void 0 !== e) {\n return h(e);\n }\n}\n\nfunction S(e) {\n if (void 0 !== e) {\n return T(e);\n }\n}\n\nfunction h(e) {\n return requireNumberIsPositive(T(e));\n}\n\nfunction T(e) {\n return ze(cr(e));\n}\n\nfunction requirePropDefined(e, n) {\n if (null == n) {\n throw new RangeError(missingField(e));\n }\n return n;\n}\n\nfunction requireObjectLike(e) {\n if (!s(e)) {\n throw new TypeError(oo);\n }\n return e;\n}\n\nfunction requireType(e, n, t = e) {\n if (typeof n !== e) {\n throw new TypeError(invalidEntity(t, n));\n }\n return n;\n}\n\nfunction ze(e, n = \"number\") {\n if (!Number.isInteger(e)) {\n throw new RangeError(expectedInteger(n, e));\n }\n return e || 0;\n}\n\nfunction requireNumberIsPositive(e, n = \"number\") {\n if (e <= 0) {\n throw new RangeError(expectedPositive(n, e));\n }\n return e;\n}\n\nfunction toString(e) {\n if (\"symbol\" == typeof e) {\n throw new TypeError(no);\n }\n return String(e);\n}\n\nfunction toStringViaPrimitive(e, n) {\n return s(e) ? String(e) : m(e, n);\n}\n\nfunction toBigInt(e) {\n if (\"string\" == typeof e) {\n return BigInt(e);\n }\n if (\"bigint\" != typeof e) {\n throw new TypeError(invalidBigInt(e));\n }\n return e;\n}\n\nfunction toNumber(e, n = \"number\") {\n if (\"bigint\" == typeof e) {\n throw new TypeError(forbiddenBigIntToNumber(n));\n }\n if (e = Number(e), !Number.isFinite(e)) {\n throw new RangeError(expectedFinite(n, e));\n }\n return e;\n}\n\nfunction toInteger(e, n) {\n return Math.trunc(toNumber(e, n)) || 0;\n}\n\nfunction toStrictInteger(e, n) {\n return ze(toNumber(e, n), n);\n}\n\nfunction toPositiveInteger(e, n) {\n return requireNumberIsPositive(toInteger(e, n), n);\n}\n\nfunction createBigNano(e, n) {\n let [t, o] = divModTrunc(n, Uo), r = e + t;\n const i = Math.sign(r);\n return i && i === -Math.sign(o) && (r -= i, o += i * Uo), [ r, o ];\n}\n\nfunction addBigNanos(e, n, t = 1) {\n return createBigNano(e[0] + n[0] * t, e[1] + n[1] * t);\n}\n\nfunction moveBigNano(e, n) {\n return createBigNano(e[0], e[1] + n);\n}\n\nfunction diffBigNanos(e, n) {\n return addBigNanos(n, e, -1);\n}\n\nfunction compareBigNanos(e, n) {\n return compareNumbers(e[0], n[0]) || compareNumbers(e[1], n[1]);\n}\n\nfunction bigNanoOutside(e, n, t) {\n return -1 === compareBigNanos(e, n) || 1 === compareBigNanos(e, t);\n}\n\nfunction bigIntToBigNano(e, n = 1) {\n const t = BigInt(Uo / n);\n return [ Number(e / t), Number(e % t) * n ];\n}\n\nfunction Ge(e, n = 1) {\n const t = Uo / n, [o, r] = divModTrunc(e, t);\n return [ o, r * n ];\n}\n\nfunction bigNanoToNumber(e, n = 1, t) {\n const [o, r] = e, [i, a] = divModTrunc(r, n);\n return o * (Uo / n) + (i + (t ? a / n : 0));\n}\n\nfunction divModBigNano(e, n, t = divModFloor) {\n const [o, r] = e, [i, a] = t(r, n);\n return [ o * (Uo / n) + i, a ];\n}\n\nfunction checkIsoYearMonthInBounds(e) {\n return clampProp(e, \"isoYear\", wr, Fr, 1), e.isoYear === wr ? clampProp(e, \"isoMonth\", 4, 12, 1) : e.isoYear === Fr && clampProp(e, \"isoMonth\", 1, 9, 1), \n e;\n}\n\nfunction checkIsoDateInBounds(e) {\n return checkIsoDateTimeInBounds({\n ...e,\n ...Nt,\n isoHour: 12\n }), e;\n}\n\nfunction checkIsoDateTimeInBounds(e) {\n const n = clampProp(e, \"isoYear\", wr, Fr, 1), t = n === wr ? 1 : n === Fr ? -1 : 0;\n return t && checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + t,\n isoNanosecond: e.isoNanosecond - t\n })), e;\n}\n\nfunction checkEpochNanoInBounds(e) {\n if (!e || bigNanoOutside(e, Sr, Er)) {\n throw new RangeError(Io);\n }\n return e;\n}\n\nfunction isoTimeFieldsToNano(e) {\n return givenFieldsToBigNano(e, 5, w)[1];\n}\n\nfunction nanoToIsoTimeAndDay(e) {\n const [n, t] = divModFloor(e, Uo);\n return [ nanoToGivenFields(t, 5, w), n ];\n}\n\nfunction epochNanoToSecMod(e) {\n return divModBigNano(e, Ro);\n}\n\nfunction isoToEpochMilli(e) {\n return isoArgsToEpochMilli(e.isoYear, e.isoMonth, e.isoDay, e.isoHour, e.isoMinute, e.isoSecond, e.isoMillisecond);\n}\n\nfunction isoToEpochNano(e) {\n const n = isoToEpochMilli(e);\n if (void 0 !== n) {\n const [t, o] = divModTrunc(n, ko);\n return [ t, o * Qe + (e.isoMicrosecond || 0) * Yo + (e.isoNanosecond || 0) ];\n }\n}\n\nfunction isoToEpochNanoWithOffset(e, n) {\n const [t, o] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) - n);\n return checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + o,\n ...t\n }));\n}\n\nfunction isoArgsToEpochSec(...e) {\n return isoArgsToEpochMilli(...e) / Co;\n}\n\nfunction isoArgsToEpochMilli(...e) {\n const [n, t] = isoToLegacyDate(...e), o = n.valueOf();\n if (!isNaN(o)) {\n return o - t * ko;\n }\n}\n\nfunction isoToLegacyDate(e, n = 1, t = 1, o = 0, r = 0, i = 0, a = 0) {\n const s = e === wr ? 1 : e === Fr ? -1 : 0, c = new Date;\n return c.setUTCHours(o, r, i, a), c.setUTCFullYear(e, n - 1, t + s), [ c, s ];\n}\n\nfunction epochNanoToIso(e, n) {\n let [t, o] = moveBigNano(e, n);\n o < 0 && (o += Uo, t -= 1);\n const [r, i] = divModFloor(o, Qe), [a, s] = divModFloor(i, Yo);\n return epochMilliToIso(t * ko + r, a, s);\n}\n\nfunction epochMilliToIso(e, n = 0, t = 0) {\n const o = Math.ceil(Math.max(0, Math.abs(e) - Pr) / ko) * Math.sign(e), r = new Date(e - o * ko);\n return zipProps(Tr, [ r.getUTCFullYear(), r.getUTCMonth() + 1, r.getUTCDate() + o, r.getUTCHours(), r.getUTCMinutes(), r.getUTCSeconds(), r.getUTCMilliseconds(), n, t ]);\n}\n\nfunction hashIntlFormatParts(e, n) {\n if (n < -Pr) {\n throw new RangeError(Io);\n }\n const t = e.formatToParts(n), o = {};\n for (const e of t) {\n o[e.type] = e.value;\n }\n return o;\n}\n\nfunction computeIsoDateParts(e) {\n return [ e.isoYear, e.isoMonth, e.isoDay ];\n}\n\nfunction computeIsoMonthCodeParts(e, n) {\n return [ n, 0 ];\n}\n\nfunction computeIsoMonthsInYear() {\n return kr;\n}\n\nfunction computeIsoDaysInMonth(e, n) {\n switch (n) {\n case 2:\n return computeIsoInLeapYear(e) ? 29 : 28;\n\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n }\n return 31;\n}\n\nfunction computeIsoDaysInYear(e) {\n return computeIsoInLeapYear(e) ? 366 : 365;\n}\n\nfunction computeIsoInLeapYear(e) {\n return e % 4 == 0 && (e % 100 != 0 || e % 400 == 0);\n}\n\nfunction computeIsoDayOfWeek(e) {\n const [n, t] = isoToLegacyDate(e.isoYear, e.isoMonth, e.isoDay);\n return modFloor(n.getUTCDay() - t, 7) || 7;\n}\n\nfunction computeIsoEraParts(e) {\n return this.id === or ? (({isoYear: e}) => e < 1 ? [ \"gregory-inverse\", 1 - e ] : [ \"gregory\", e ])(e) : this.id === rr ? Yr(e) : [];\n}\n\nfunction computeJapaneseEraParts(e) {\n const n = isoToEpochMilli(e);\n if (n < Cr) {\n const {isoYear: n} = e;\n return n < 1 ? [ \"japanese-inverse\", 1 - n ] : [ \"japanese\", n ];\n }\n const t = hashIntlFormatParts(Ci(rr), n), {era: o, eraYear: r} = parseIntlYear(t, rr);\n return [ o, r ];\n}\n\nfunction checkIsoDateTimeFields(e) {\n return checkIsoDateFields(e), constrainIsoTimeFields(e, 1), e;\n}\n\nfunction checkIsoDateFields(e) {\n return constrainIsoDateFields(e, 1), e;\n}\n\nfunction isIsoDateFieldsValid(e) {\n return allPropsEqual(Dr, e, constrainIsoDateFields(e));\n}\n\nfunction constrainIsoDateFields(e, n) {\n const {isoYear: t} = e, o = clampProp(e, \"isoMonth\", 1, computeIsoMonthsInYear(), n);\n return {\n isoYear: t,\n isoMonth: o,\n isoDay: clampProp(e, \"isoDay\", 1, computeIsoDaysInMonth(t, o), n)\n };\n}\n\nfunction constrainIsoTimeFields(e, n) {\n return zipProps(w, [ clampProp(e, \"isoHour\", 0, 23, n), clampProp(e, \"isoMinute\", 0, 59, n), clampProp(e, \"isoSecond\", 0, 59, n), clampProp(e, \"isoMillisecond\", 0, 999, n), clampProp(e, \"isoMicrosecond\", 0, 999, n), clampProp(e, \"isoNanosecond\", 0, 999, n) ]);\n}\n\nfunction mt(e) {\n return void 0 === e ? 0 : Xr(requireObjectLike(e));\n}\n\nfunction je(e, n = 0) {\n e = normalizeOptions(e);\n const t = ei(e), o = ni(e, n);\n return [ Xr(e), o, t ];\n}\n\nfunction refineDiffOptions(e, n, t, o = 9, r = 0, i = 4) {\n n = normalizeOptions(n);\n let a = Kr(n, o, r), s = parseRoundingIncInteger(n), c = ii(n, i);\n const u = Jr(n, o, r, 1);\n return null == a ? a = Math.max(t, u) : checkLargestSmallestUnit(a, u), s = refineRoundingInc(s, u, 1), \n e && (c = (e => e < 4 ? (e + 2) % 4 : e)(c)), [ a, u, s, c ];\n}\n\nfunction refineRoundingOptions(e, n = 6, t) {\n let o = parseRoundingIncInteger(e = normalizeOptionsOrString(e, Rr));\n const r = ii(e, 7);\n let i = Jr(e, n);\n return i = requirePropDefined(Rr, i), o = refineRoundingInc(o, i, void 0, t), [ i, o, r ];\n}\n\nfunction refineDateDisplayOptions(e) {\n return ti(normalizeOptions(e));\n}\n\nfunction refineTimeDisplayOptions(e, n) {\n return refineTimeDisplayTuple(normalizeOptions(e), n);\n}\n\nfunction Me(e) {\n const n = normalizeOptionsOrString(e, qr), t = refineChoiceOption(qr, _r, n, 0);\n if (!t) {\n throw new RangeError(invalidEntity(qr, t));\n }\n return t;\n}\n\nfunction refineTimeDisplayTuple(e, n = 4) {\n const t = refineSubsecDigits(e);\n return [ ii(e, 4), ...refineSmallestUnitAndSubsecDigits(Jr(e, n), t) ];\n}\n\nfunction refineSmallestUnitAndSubsecDigits(e, n) {\n return null != e ? [ Ao[e], e < 4 ? 9 - 3 * e : -1 ] : [ void 0 === n ? 1 : 10 ** (9 - n), n ];\n}\n\nfunction parseRoundingIncInteger(e) {\n const n = e[zr];\n return void 0 === n ? 1 : toInteger(n, zr);\n}\n\nfunction refineRoundingInc(e, n, t, o) {\n const r = o ? Uo : Ao[n + 1];\n if (r) {\n const t = Ao[n];\n if (r % ((e = clampEntity(zr, e, 1, r / t - (o ? 0 : 1), 1)) * t)) {\n throw new RangeError(invalidEntity(zr, e));\n }\n } else {\n e = clampEntity(zr, e, 1, t ? 10 ** 9 : 1, 1);\n }\n return e;\n}\n\nfunction refineSubsecDigits(e) {\n let n = e[Ur];\n if (void 0 !== n) {\n if (\"number\" != typeof n) {\n if (\"auto\" === toString(n)) {\n return;\n }\n throw new RangeError(invalidEntity(Ur, n));\n }\n n = clampEntity(Ur, Math.floor(n), 0, 9, 1);\n }\n return n;\n}\n\nfunction normalizeOptions(e) {\n return void 0 === e ? {} : requireObjectLike(e);\n}\n\nfunction normalizeOptionsOrString(e, n) {\n return \"string\" == typeof e ? {\n [n]: e\n } : requireObjectLike(e);\n}\n\nfunction fabricateOverflowOptions(e) {\n return {\n overflow: jr[e]\n };\n}\n\nfunction refineUnitOption(e, n, t = 9, o = 0, r) {\n let i = n[e];\n if (void 0 === i) {\n return r ? o : void 0;\n }\n if (i = toString(i), \"auto\" === i) {\n return r ? o : null;\n }\n let a = Oo[i];\n if (void 0 === a && (a = mr[i]), void 0 === a) {\n throw new RangeError(invalidChoice(e, i, Oo));\n }\n return clampEntity(e, a, o, t, 1, Bo), a;\n}\n\nfunction refineChoiceOption(e, n, t, o = 0) {\n const r = t[e];\n if (void 0 === r) {\n return o;\n }\n const i = toString(r), a = n[i];\n if (void 0 === a) {\n throw new RangeError(invalidChoice(e, i, n));\n }\n return a;\n}\n\nfunction checkLargestSmallestUnit(e, n) {\n if (n > e) {\n throw new RangeError(Eo);\n }\n}\n\nfunction xe(e) {\n return {\n branding: Re,\n epochNanoseconds: e\n };\n}\n\nfunction _e(e, n, t) {\n return {\n branding: z,\n calendar: t,\n timeZone: n,\n epochNanoseconds: e\n };\n}\n\nfunction jt(e, n = e.calendar) {\n return {\n branding: x,\n calendar: n,\n ...nn(Nr, e)\n };\n}\n\nfunction W(e, n = e.calendar) {\n return {\n branding: G,\n calendar: n,\n ...nn(Ir, e)\n };\n}\n\nfunction createPlainYearMonthSlots(e, n = e.calendar) {\n return {\n branding: Ut,\n calendar: n,\n ...nn(Ir, e)\n };\n}\n\nfunction createPlainMonthDaySlots(e, n = e.calendar) {\n return {\n branding: qt,\n calendar: n,\n ...nn(Ir, e)\n };\n}\n\nfunction St(e) {\n return {\n branding: ft,\n ...nn(Mr, e)\n };\n}\n\nfunction Oe(e) {\n return {\n branding: N,\n sign: computeDurationSign(e),\n ...nn(ur, e)\n };\n}\n\nfunction I(e) {\n return divModBigNano(e.epochNanoseconds, Qe)[0];\n}\n\nfunction v(e) {\n return ((e, n = 1) => {\n const [t, o] = e, r = Math.floor(o / n), i = Uo / n;\n return BigInt(t) * BigInt(i) + BigInt(r);\n })(e.epochNanoseconds);\n}\n\nfunction extractEpochNano(e) {\n return e.epochNanoseconds;\n}\n\nfunction J(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s] = ((e, n) => {\n const t = n((e = normalizeOptionsOrString(e, Zr))[Ar]);\n let o = Qr(e);\n return o = requirePropDefined(Zr, o), [ o, t ];\n })(r, e), c = Math.max(a, i);\n if (!s && isUniformUnit(c, s)) {\n return totalDayTimeDuration(o, a);\n }\n if (!s) {\n throw new RangeError(yo);\n }\n if (!o.sign) {\n return 0;\n }\n const [u, f, l] = createMarkerSystem(n, t, s), d = createMarkerToEpochNano(l), m = createMoveMarker(l), h = createDiffMarkers(l), g = m(f, u, o);\n isZonedEpochSlots(s) || (checkIsoDateTimeInBounds(u), checkIsoDateTimeInBounds(g));\n const D = h(f, u, g, a);\n return isUniformUnit(a, s) ? totalDayTimeDuration(D, a) : ((e, n, t, o, r, i, a) => {\n const s = computeDurationSign(e), [c, u] = clampRelativeDuration(o, gr(t, e), t, s, r, i, a), f = computeEpochNanoFrac(n, c, u);\n return e[p[t]] + f * s;\n })(D, d(g), a, f, u, d, m);\n}\n\nfunction totalDayTimeDuration(e, n) {\n return bigNanoToNumber(durationFieldsToBigNano(e), Ao[n], 1);\n}\n\nfunction clampRelativeDuration(e, n, t, o, r, i, a) {\n const s = p[t], c = {\n ...n,\n [s]: n[s] + o\n }, u = a(e, r, n), f = a(e, r, c);\n return [ i(u), i(f) ];\n}\n\nfunction computeEpochNanoFrac(e, n, t) {\n const o = bigNanoToNumber(diffBigNanos(n, t));\n if (!o) {\n throw new RangeError(fo);\n }\n return bigNanoToNumber(diffBigNanos(n, e)) / o;\n}\n\nfunction Le(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5, 1);\n return xe(roundBigNano(e.epochNanoseconds, t, o, r, 1));\n}\n\nfunction Ie(e, n, t) {\n let {epochNanoseconds: o, timeZone: r, calendar: i} = n;\n const [a, s, c] = refineRoundingOptions(t);\n if (0 === a && 1 === s) {\n return n;\n }\n const u = e(r);\n if (6 === a) {\n o = ((e, n, t, o) => {\n const r = he(t, n), [i, a] = e(r), s = t.epochNanoseconds, c = getStartOfDayInstantFor(n, i), u = getStartOfDayInstantFor(n, a);\n if (bigNanoOutside(s, c, u)) {\n throw new RangeError(fo);\n }\n return roundWithMode(computeEpochNanoFrac(s, c, u), o) ? u : c;\n })(computeDayInterval, u, n, c);\n } else {\n const e = u.R(o);\n o = getMatchingInstantFor(u, roundDateTime(epochNanoToIso(o, e), a, s, c), e, 2, 0, 1);\n }\n return _e(o, r, i);\n}\n\nfunction vt(e, n) {\n return jt(roundDateTime(e, ...refineRoundingOptions(n)), e.calendar);\n}\n\nfunction lt(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5);\n var i;\n return St((i = r, roundTimeToNano(e, computeNanoInc(t, o), i)[0]));\n}\n\nfunction Te(e, n) {\n const t = e(n.timeZone), o = he(n, t), [r, i] = computeDayInterval(o), a = bigNanoToNumber(diffBigNanos(getStartOfDayInstantFor(t, r), getStartOfDayInstantFor(t, i)), zo, 1);\n if (a <= 0) {\n throw new RangeError(fo);\n }\n return a;\n}\n\nfunction ve(e, n) {\n const {timeZone: t, calendar: o} = n, r = ((e, n, t) => getStartOfDayInstantFor(n, e(he(t, n))))(computeDayFloor, e(t), n);\n return _e(r, t, o);\n}\n\nfunction roundDateTime(e, n, t, o) {\n return roundDateTimeToNano(e, computeNanoInc(n, t), o);\n}\n\nfunction roundDateTimeToNano(e, n, t) {\n const [o, r] = roundTimeToNano(e, n, t);\n return checkIsoDateTimeInBounds({\n ...moveByDays(e, r),\n ...o\n });\n}\n\nfunction roundTimeToNano(e, n, t) {\n return nanoToIsoTimeAndDay(roundByInc(isoTimeFieldsToNano(e), n, t));\n}\n\nfunction roundToMinute(e) {\n return roundByInc(e, Zo, 7);\n}\n\nfunction computeNanoInc(e, n) {\n return Ao[e] * n;\n}\n\nfunction computeDayInterval(e) {\n const n = computeDayFloor(e);\n return [ n, moveByDays(n, 1) ];\n}\n\nfunction computeDayFloor(e) {\n return yr(6, e);\n}\n\nfunction roundDayTimeDurationByInc(e, n, t) {\n const o = Math.min(getMaxDurationUnit(e), 6);\n return nanoToDurationDayTimeFields(roundBigNanoByInc(durationFieldsToBigNano(e, o), n, t), o);\n}\n\nfunction roundRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n if (0 === o && 1 === r) {\n return e;\n }\n const f = isUniformUnit(o, s) ? isZonedEpochSlots(s) && o < 6 && t >= 6 ? nudgeZonedTimeDuration : nudgeDayTimeDuration : nudgeRelativeDuration;\n let [l, d, m] = f(e, n, t, o, r, i, a, s, c, u);\n return m && 7 !== o && (l = ((e, n, t, o, r, i, a, s) => {\n const c = computeDurationSign(e);\n for (let u = o + 1; u <= t; u++) {\n if (7 === u && 7 !== t) {\n continue;\n }\n const o = gr(u, e);\n o[p[u]] += c;\n const f = bigNanoToNumber(diffBigNanos(a(s(r, i, o)), n));\n if (f && Math.sign(f) !== c) {\n break;\n }\n e = o;\n }\n return e;\n })(l, d, t, Math.max(6, o), a, s, c, u)), l;\n}\n\nfunction roundBigNano(e, n, t, o, r) {\n if (6 === n) {\n const n = (e => e[0] + e[1] / Uo)(e);\n return [ roundByInc(n, t, o), 0 ];\n }\n return roundBigNanoByInc(e, computeNanoInc(n, t), o, r);\n}\n\nfunction roundBigNanoByInc(e, n, t, o) {\n let [r, i] = e;\n o && i < 0 && (i += Uo, r -= 1);\n const [a, s] = divModFloor(roundByInc(i, n, t), Uo);\n return createBigNano(r + a, s);\n}\n\nfunction roundByInc(e, n, t) {\n return roundWithMode(e / n, t) * n;\n}\n\nfunction roundWithMode(e, n) {\n return ai[n](e);\n}\n\nfunction nudgeDayTimeDuration(e, n, t, o, r, i) {\n const a = computeDurationSign(e), s = durationFieldsToBigNano(e), c = roundBigNano(s, o, r, i), u = diffBigNanos(s, c), f = Math.sign(c[0] - s[0]) === a, l = nanoToDurationDayTimeFields(c, Math.min(t, 6));\n return [ {\n ...e,\n ...l\n }, addBigNanos(n, u), f ];\n}\n\nfunction nudgeZonedTimeDuration(e, n, t, o, r, i, a, s, c, u) {\n const f = computeDurationSign(e) || 1, l = bigNanoToNumber(durationFieldsToBigNano(e, 5)), d = computeNanoInc(o, r);\n let m = roundByInc(l, d, i);\n const [p, h] = clampRelativeDuration(a, {\n ...e,\n ...hr\n }, 6, f, s, c, u), g = m - bigNanoToNumber(diffBigNanos(p, h));\n let D = 0;\n g && Math.sign(g) !== f ? n = moveBigNano(p, m) : (D += f, m = roundByInc(g, d, i), \n n = moveBigNano(h, m));\n const T = nanoToDurationTimeFields(m);\n return [ {\n ...e,\n ...T,\n days: e.days + D\n }, n, Boolean(D) ];\n}\n\nfunction nudgeRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n const f = computeDurationSign(e), l = p[o], d = gr(o, e);\n 7 === o && (e = {\n ...e,\n weeks: e.weeks + Math.trunc(e.days / 7)\n });\n const m = divTrunc(e[l], r) * r;\n d[l] = m;\n const [h, g] = clampRelativeDuration(a, d, o, r * f, s, c, u), D = m + computeEpochNanoFrac(n, h, g) * f * r, T = roundByInc(D, r, i), I = Math.sign(T - D) === f;\n return d[l] = T, [ d, I ? g : h, I ];\n}\n\nfunction ke(e, n, t, o) {\n const [r, i, a, s] = (e => {\n const n = refineTimeDisplayTuple(e = normalizeOptions(e));\n return [ e.timeZone, ...n ];\n })(o), c = void 0 !== r;\n return ((e, n, t, o, r, i) => {\n t = roundBigNanoByInc(t, r, o, 1);\n const a = n.R(t);\n return formatIsoDateTimeFields(epochNanoToIso(t, a), i) + (e ? Se(roundToMinute(a)) : \"Z\");\n })(c, n(c ? e(r) : si), t.epochNanoseconds, i, a, s);\n}\n\nfunction Fe(e, n, t) {\n const [o, r, i, a, s, c] = (e => {\n e = normalizeOptions(e);\n const n = ti(e), t = refineSubsecDigits(e), o = ri(e), r = ii(e, 4), i = Jr(e, 4);\n return [ n, oi(e), o, r, ...refineSmallestUnitAndSubsecDigits(i, t) ];\n })(t);\n return ((e, n, t, o, r, i, a, s, c, u) => {\n o = roundBigNanoByInc(o, c, s, 1);\n const f = e(t).R(o);\n return formatIsoDateTimeFields(epochNanoToIso(o, f), u) + Se(roundToMinute(f), a) + ((e, n) => 1 !== n ? \"[\" + (2 === n ? \"!\" : \"\") + e + \"]\" : \"\")(t, i) + formatCalendar(n, r);\n })(e, n.calendar, n.timeZone, n.epochNanoseconds, o, r, i, a, s, c);\n}\n\nfunction Ft(e, n) {\n const [t, o, r, i] = (e => (e = normalizeOptions(e), [ ti(e), ...refineTimeDisplayTuple(e) ]))(n);\n return a = e.calendar, s = t, c = i, formatIsoDateTimeFields(roundDateTimeToNano(e, r, o), c) + formatCalendar(a, s);\n var a, s, c;\n}\n\nfunction ce(e, n) {\n return t = e.calendar, o = e, r = refineDateDisplayOptions(n), formatIsoDateFields(o) + formatCalendar(t, r);\n var t, o, r;\n}\n\nfunction Kt(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoYearMonthFields, e, refineDateDisplayOptions(n));\n}\n\nfunction Jt(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoMonthDayFields, e, refineDateDisplayOptions(n));\n}\n\nfunction ct(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n);\n return i = r, formatIsoTimeFields(roundTimeToNano(e, o, t)[0], i);\n var i;\n}\n\nfunction k(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n, 3);\n return o > 1 && checkDurationUnits(e = {\n ...e,\n ...roundDayTimeDurationByInc(e, o, t)\n }), ((e, n) => {\n const {sign: t} = e, o = -1 === t ? negateDurationFields(e) : e, {hours: r, minutes: i} = o, [a, s] = divModBigNano(durationFieldsToBigNano(o, 3), Ro, divModTrunc);\n checkDurationTimeUnit(a);\n const c = formatSubsecNano(s, n), u = n >= 0 || !t || c;\n return (t < 0 ? \"-\" : \"\") + \"P\" + formatDurationFragments({\n Y: formatDurationNumber(o.years),\n M: formatDurationNumber(o.months),\n W: formatDurationNumber(o.weeks),\n D: formatDurationNumber(o.days)\n }) + (r || i || a || u ? \"T\" + formatDurationFragments({\n H: formatDurationNumber(r),\n M: formatDurationNumber(i),\n S: formatDurationNumber(a, u) + c\n }) : \"\");\n })(e, r);\n}\n\nfunction formatDateLikeIso(e, n, t, o) {\n const r = o > 1 || 0 === o && e !== l;\n return 1 === o ? e === l ? n(t) : formatIsoDateFields(t) : r ? formatIsoDateFields(t) + formatCalendarId(e, 2 === o) : n(t);\n}\n\nfunction formatDurationFragments(e) {\n const n = [];\n for (const t in e) {\n const o = e[t];\n o && n.push(o, t);\n }\n return n.join(\"\");\n}\n\nfunction formatIsoDateTimeFields(e, n) {\n return formatIsoDateFields(e) + \"T\" + formatIsoTimeFields(e, n);\n}\n\nfunction formatIsoDateFields(e) {\n return formatIsoYearMonthFields(e) + \"-\" + bo(e.isoDay);\n}\n\nfunction formatIsoYearMonthFields(e) {\n const {isoYear: n} = e;\n return (n < 0 || n > 9999 ? getSignStr(n) + padNumber(6, Math.abs(n)) : padNumber(4, n)) + \"-\" + bo(e.isoMonth);\n}\n\nfunction formatIsoMonthDayFields(e) {\n return bo(e.isoMonth) + \"-\" + bo(e.isoDay);\n}\n\nfunction formatIsoTimeFields(e, n) {\n const t = [ bo(e.isoHour), bo(e.isoMinute) ];\n return -1 !== n && t.push(bo(e.isoSecond) + ((e, n, t, o) => formatSubsecNano(e * Qe + n * Yo + t, o))(e.isoMillisecond, e.isoMicrosecond, e.isoNanosecond, n)), \n t.join(\":\");\n}\n\nfunction Se(e, n = 0) {\n if (1 === n) {\n return \"\";\n }\n const [t, o] = divModFloor(Math.abs(e), zo), [r, i] = divModFloor(o, Zo), [a, s] = divModFloor(i, Ro);\n return getSignStr(e) + bo(t) + \":\" + bo(r) + (a || s ? \":\" + bo(a) + formatSubsecNano(s) : \"\");\n}\n\nfunction formatCalendar(e, n) {\n return 1 !== n && (n > 1 || 0 === n && e !== l) ? formatCalendarId(e, 2 === n) : \"\";\n}\n\nfunction formatCalendarId(e, n) {\n return \"[\" + (n ? \"!\" : \"\") + \"u-ca=\" + e + \"]\";\n}\n\nfunction formatSubsecNano(e, n) {\n let t = padNumber(9, e);\n return t = void 0 === n ? t.replace(li, \"\") : t.slice(0, n), t ? \".\" + t : \"\";\n}\n\nfunction getSignStr(e) {\n return e < 0 ? \"-\" : \"+\";\n}\n\nfunction formatDurationNumber(e, n) {\n return e || n ? e.toLocaleString(\"fullwide\", {\n useGrouping: 0\n }) : \"\";\n}\n\nfunction _zonedEpochSlotsToIso(e, n) {\n const {epochNanoseconds: t} = e, o = (n.R ? n : n(e.timeZone)).R(t), r = epochNanoToIso(t, o);\n return {\n calendar: e.calendar,\n ...r,\n offsetNanoseconds: o\n };\n}\n\nfunction getMatchingInstantFor(e, n, t, o = 0, r = 0, i, a) {\n if (void 0 !== t && 1 === o && (1 === o || a)) {\n return isoToEpochNanoWithOffset(n, t);\n }\n const s = e.I(n);\n if (void 0 !== t && 3 !== o) {\n const e = ((e, n, t, o) => {\n const r = isoToEpochNano(n);\n o && (t = roundToMinute(t));\n for (const n of e) {\n let e = bigNanoToNumber(diffBigNanos(n, r));\n if (o && (e = roundToMinute(e)), e === t) {\n return n;\n }\n }\n })(s, n, t, i);\n if (void 0 !== e) {\n return e;\n }\n if (0 === o) {\n throw new RangeError(Do);\n }\n }\n return a ? isoToEpochNano(n) : getSingleInstantFor(e, n, r, s);\n}\n\nfunction getSingleInstantFor(e, n, t = 0, o = e.I(n)) {\n if (1 === o.length) {\n return o[0];\n }\n if (1 === t) {\n throw new RangeError(To);\n }\n if (o.length) {\n return o[3 === t ? 1 : 0];\n }\n const r = isoToEpochNano(n), i = ((e, n) => {\n const t = e.R(moveBigNano(n, -Uo));\n return (e => {\n if (e > Uo) {\n throw new RangeError(go);\n }\n return e;\n })(e.R(moveBigNano(n, Uo)) - t);\n })(e, r), a = i * (2 === t ? -1 : 1);\n return (o = e.I(epochNanoToIso(r, a)))[2 === t ? 0 : o.length - 1];\n}\n\nfunction getStartOfDayInstantFor(e, n) {\n const t = e.I(n);\n if (t.length) {\n return t[0];\n }\n const o = moveBigNano(isoToEpochNano(n), -Uo);\n return e.O(o, 1);\n}\n\nfunction Ye(e, n, t) {\n return xe(checkEpochNanoInBounds(addBigNanos(n.epochNanoseconds, (e => {\n if (durationHasDateParts(e)) {\n throw new RangeError(vo);\n }\n return durationFieldsToBigNano(e, 5);\n })(e ? negateDurationFields(t) : t))));\n}\n\nfunction pe(e, n, t, o, r, i = Object.create(null)) {\n const a = n(o.timeZone), s = e(o.calendar);\n return {\n ...o,\n ...moveZonedEpochs(a, s, o, t ? negateDurationFields(r) : r, i)\n };\n}\n\nfunction wt(e, n, t, o, r = Object.create(null)) {\n const {calendar: i} = t;\n return jt(moveDateTime(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction ne(e, n, t, o, r) {\n const {calendar: i} = t;\n return W(moveDate(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction Gt(e, n, t, o, r) {\n const i = t.calendar, a = e(i);\n let s = checkIsoDateInBounds(moveToDayOfMonthUnsafe(a, t));\n n && (o = B(o)), o.sign < 0 && (s = a.P(s, {\n ...pr,\n months: 1\n }), s = moveByDays(s, -1));\n const c = a.P(s, o, r);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(a, c), i);\n}\n\nfunction at(e, n, t) {\n return St(moveTime(n, e ? negateDurationFields(t) : t)[0]);\n}\n\nfunction moveZonedEpochs(e, n, t, o, r) {\n const i = durationFieldsToBigNano(o, 5);\n let a = t.epochNanoseconds;\n if (durationHasDateParts(o)) {\n const s = he(t, e);\n a = addBigNanos(getSingleInstantFor(e, {\n ...moveDate(n, s, {\n ...o,\n ...hr\n }, r),\n ...nn(w, s)\n }), i);\n } else {\n a = addBigNanos(a, i), mt(r);\n }\n return {\n epochNanoseconds: checkEpochNanoInBounds(a)\n };\n}\n\nfunction moveDateTime(e, n, t, o) {\n const [r, i] = moveTime(n, t);\n return checkIsoDateTimeInBounds({\n ...moveDate(e, n, {\n ...t,\n ...hr,\n days: t.days + i\n }, o),\n ...r\n });\n}\n\nfunction moveDate(e, n, t, o) {\n if (t.years || t.months || t.weeks) {\n return e.P(n, t, o);\n }\n mt(o);\n const r = t.days + durationFieldsToBigNano(t, 5)[0];\n return r ? checkIsoDateInBounds(moveByDays(n, r)) : n;\n}\n\nfunction moveToDayOfMonthUnsafe(e, n, t = 1) {\n return moveByDays(n, t - e.day(n));\n}\n\nfunction moveTime(e, n) {\n const [t, o] = durationFieldsToBigNano(n, 5), [r, i] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) + o);\n return [ r, t + i ];\n}\n\nfunction moveByDays(e, n) {\n return n ? {\n ...e,\n ...epochMilliToIso(isoToEpochMilli(e) + n * ko)\n } : e;\n}\n\nfunction createMarkerSystem(e, n, t) {\n const o = e(t.calendar);\n return isZonedEpochSlots(t) ? [ t, o, n(t.timeZone) ] : [ {\n ...t,\n ...Nt\n }, o ];\n}\n\nfunction createMarkerToEpochNano(e) {\n return e ? extractEpochNano : isoToEpochNano;\n}\n\nfunction createMoveMarker(e) {\n return e ? Pt(moveZonedEpochs, e) : moveDateTime;\n}\n\nfunction createDiffMarkers(e) {\n return e ? Pt(diffZonedEpochsExact, e) : diffDateTimesExact;\n}\n\nfunction isZonedEpochSlots(e) {\n return e && e.epochNanoseconds;\n}\n\nfunction isUniformUnit(e, n) {\n return e <= 6 - (isZonedEpochSlots(n) ? 1 : 0);\n}\n\nfunction E(e, n, t, o, r, i, a) {\n const s = e(normalizeOptions(a).relativeTo), c = Math.max(getMaxDurationUnit(r), getMaxDurationUnit(i));\n if (isUniformUnit(c, s)) {\n return Oe(checkDurationUnits(((e, n, t, o) => {\n const r = addBigNanos(durationFieldsToBigNano(e), durationFieldsToBigNano(n), o ? -1 : 1);\n if (!Number.isFinite(r[0])) {\n throw new RangeError(Io);\n }\n return {\n ...pr,\n ...nanoToDurationDayTimeFields(r, t)\n };\n })(r, i, c, o)));\n }\n if (!s) {\n throw new RangeError(yo);\n }\n o && (i = negateDurationFields(i));\n const [u, f, l] = createMarkerSystem(n, t, s), d = createMoveMarker(l), m = createDiffMarkers(l), p = d(f, u, r);\n return Oe(m(f, u, d(f, p, i), c));\n}\n\nfunction V(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s, c, u, f] = ((e, n, t) => {\n e = normalizeOptionsOrString(e, Rr);\n let o = Kr(e);\n const r = t(e[Ar]);\n let i = parseRoundingIncInteger(e);\n const a = ii(e, 7);\n let s = Jr(e);\n if (void 0 === o && void 0 === s) {\n throw new RangeError(Po);\n }\n if (null == s && (s = 0), null == o && (o = Math.max(s, n)), checkLargestSmallestUnit(o, s), \n i = refineRoundingInc(i, s, 1), i > 1 && s > 5 && o !== s) {\n throw new RangeError(\"For calendar units with roundingIncrement > 1, use largestUnit = smallestUnit\");\n }\n return [ o, s, i, a, r ];\n })(r, i, e), l = Math.max(i, a);\n if (!f && l <= 6) {\n return Oe(checkDurationUnits(((e, n, t, o, r) => {\n const i = roundBigNano(durationFieldsToBigNano(e), t, o, r);\n return {\n ...pr,\n ...nanoToDurationDayTimeFields(i, n)\n };\n })(o, a, s, c, u)));\n }\n if (!isZonedEpochSlots(f) && !o.sign) {\n return o;\n }\n if (!f) {\n throw new RangeError(yo);\n }\n const [d, m, p] = createMarkerSystem(n, t, f), h = createMarkerToEpochNano(p), g = createMoveMarker(p), D = createDiffMarkers(p), T = g(m, d, o);\n isZonedEpochSlots(f) || (checkIsoDateTimeInBounds(d), checkIsoDateTimeInBounds(T));\n let I = D(m, d, T, a);\n const M = o.sign, N = computeDurationSign(I);\n if (M && N && M !== N) {\n throw new RangeError(fo);\n }\n return I = roundRelativeDuration(I, h(T), a, s, c, u, m, d, h, g), Oe(I);\n}\n\nfunction Y(e) {\n return -1 === e.sign ? B(e) : e;\n}\n\nfunction B(e) {\n return Oe(negateDurationFields(e));\n}\n\nfunction negateDurationFields(e) {\n const n = {};\n for (const t of p) {\n n[t] = -1 * e[t] || 0;\n }\n return n;\n}\n\nfunction y(e) {\n return !e.sign;\n}\n\nfunction computeDurationSign(e, n = p) {\n let t = 0;\n for (const o of n) {\n const n = Math.sign(e[o]);\n if (n) {\n if (t && t !== n) {\n throw new RangeError(No);\n }\n t = n;\n }\n }\n return t;\n}\n\nfunction checkDurationUnits(e) {\n for (const n of dr) {\n clampEntity(n, e[n], -di, di, 1);\n }\n return checkDurationTimeUnit(bigNanoToNumber(durationFieldsToBigNano(e), Ro)), e;\n}\n\nfunction checkDurationTimeUnit(e) {\n if (!Number.isSafeInteger(e)) {\n throw new RangeError(Mo);\n }\n}\n\nfunction durationFieldsToBigNano(e, n = 6) {\n return givenFieldsToBigNano(e, n, p);\n}\n\nfunction nanoToDurationDayTimeFields(e, n = 6) {\n const [t, o] = e, r = nanoToGivenFields(o, n, p);\n if (r[p[n]] += t * (Uo / Ao[n]), !Number.isFinite(r[p[n]])) {\n throw new RangeError(Io);\n }\n return r;\n}\n\nfunction nanoToDurationTimeFields(e, n = 5) {\n return nanoToGivenFields(e, n, p);\n}\n\nfunction durationHasDateParts(e) {\n return Boolean(computeDurationSign(e, lr));\n}\n\nfunction getMaxDurationUnit(e) {\n let n = 9;\n for (;n > 0 && !e[p[n]]; n--) {}\n return n;\n}\n\nfunction createSplitTuple(e, n) {\n return [ e, n ];\n}\n\nfunction computePeriod(e) {\n const n = Math.floor(e / ci) * ci;\n return [ n, n + ci ];\n}\n\nfunction We(e) {\n const n = parseDateTimeLike(e = toStringViaPrimitive(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n let t;\n if (n.j) {\n t = 0;\n } else {\n if (!n.offset) {\n throw new RangeError(failedParse(e));\n }\n t = parseOffsetNano(n.offset);\n }\n return n.timeZone && parseOffsetNanoMaybe(n.timeZone, 1), xe(isoToEpochNanoWithOffset(checkIsoDateTimeFields(n), t));\n}\n\nfunction H(e) {\n const n = parseDateTimeLike(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n if (n.timeZone) {\n return finalizeZonedDateTime(n, n.offset ? parseOffsetNano(n.offset) : void 0);\n }\n if (n.j) {\n throw new RangeError(failedParse(e));\n }\n return finalizeDate(n);\n}\n\nfunction Ae(e, n) {\n const t = parseDateTimeLike(m(e));\n if (!t || !t.timeZone) {\n throw new RangeError(failedParse(e));\n }\n const {offset: o} = t, r = o ? parseOffsetNano(o) : void 0, [, i, a] = je(n);\n return finalizeZonedDateTime(t, r, i, a);\n}\n\nfunction parseOffsetNano(e) {\n const n = parseOffsetNanoMaybe(e);\n if (void 0 === n) {\n throw new RangeError(failedParse(e));\n }\n return n;\n}\n\nfunction Bt(e) {\n const n = parseDateTimeLike(m(e));\n if (!n || n.j) {\n throw new RangeError(failedParse(e));\n }\n return jt(finalizeDateTime(n));\n}\n\nfunction de(e, n, t) {\n let o = parseDateTimeLike(m(e));\n if (!o || o.j) {\n throw new RangeError(failedParse(e));\n }\n return n ? o.calendar === l && (o = -271821 === o.isoYear && 4 === o.isoMonth ? {\n ...o,\n isoDay: 20,\n ...Nt\n } : {\n ...o,\n isoDay: 1,\n ...Nt\n }) : t && o.calendar === l && (o = {\n ...o,\n isoYear: Br\n }), W(o.C ? finalizeDateTime(o) : finalizeDate(o));\n}\n\nfunction _t(e, n) {\n const t = parseYearMonthOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields(t)));\n }\n const o = de(n, 1);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(e(o.calendar), o));\n}\n\nfunction requireIsoCalendar(e) {\n if (e.calendar !== l) {\n throw new RangeError(invalidSubstring(e.calendar));\n }\n}\n\nfunction xt(e, n) {\n const t = parseMonthDayOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainMonthDaySlots(checkIsoDateFields(t));\n }\n const o = de(n, 0, 1), {calendar: r} = o, i = e(r), [a, s, c] = i.v(o), [u, f] = i.q(a, s), [l, d] = i.G(u, f, c);\n return createPlainMonthDaySlots(checkIsoDateInBounds(i.V(l, d, c)), r);\n}\n\nfunction ht(e) {\n let n, t = (e => {\n const n = Pi.exec(e);\n return n ? (organizeAnnotationParts(n[10]), organizeTimeParts(n)) : void 0;\n })(m(e));\n if (!t) {\n if (t = parseDateTimeLike(e), !t) {\n throw new RangeError(failedParse(e));\n }\n if (!t.C) {\n throw new RangeError(failedParse(e));\n }\n if (t.j) {\n throw new RangeError(invalidSubstring(\"Z\"));\n }\n requireIsoCalendar(t);\n }\n if ((n = parseYearMonthOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n if ((n = parseMonthDayOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n return St(constrainIsoTimeFields(t, 1));\n}\n\nfunction R(e) {\n const n = (e => {\n const n = Fi.exec(e);\n return n ? (e => {\n function parseUnit(e, r, i) {\n let a = 0, s = 0;\n if (i && ([a, o] = divModFloor(o, Ao[i])), void 0 !== e) {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n s = (e => {\n const n = parseInt(e);\n if (!Number.isFinite(n)) {\n throw new RangeError(invalidSubstring(e));\n }\n return n;\n })(e), n = 1, r && (o = parseSubsecNano(r) * (Ao[i] / Ro), t = 1);\n }\n return a + s;\n }\n let n = 0, t = 0, o = 0, r = {\n ...zipProps(p, [ parseUnit(e[2]), parseUnit(e[3]), parseUnit(e[4]), parseUnit(e[5]), parseUnit(e[6], e[7], 5), parseUnit(e[8], e[9], 4), parseUnit(e[10], e[11], 3) ]),\n ...nanoToGivenFields(o, 2, p)\n };\n if (!n) {\n throw new RangeError(noValidFields(p));\n }\n return parseSign(e[1]) < 0 && (r = negateDurationFields(r)), r;\n })(n) : void 0;\n })(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n return Oe(checkDurationUnits(n));\n}\n\nfunction f(e) {\n const n = parseDateTimeLike(e) || parseYearMonthOnly(e) || parseMonthDayOnly(e);\n return n ? n.calendar : e;\n}\n\nfunction Z(e) {\n const n = parseDateTimeLike(e);\n return n && (n.timeZone || n.j && si || n.offset) || e;\n}\n\nfunction finalizeZonedDateTime(e, n, t = 0, o = 0) {\n const r = M(e.timeZone), i = L(r);\n let a;\n return checkIsoDateTimeFields(e), a = e.C ? getMatchingInstantFor(i, e, n, t, o, !i.$, e.j) : getStartOfDayInstantFor(i, e), \n _e(a, r, u(e.calendar));\n}\n\nfunction finalizeDateTime(e) {\n return resolveSlotsCalendar(checkIsoDateTimeInBounds(checkIsoDateTimeFields(e)));\n}\n\nfunction finalizeDate(e) {\n return resolveSlotsCalendar(checkIsoDateInBounds(checkIsoDateFields(e)));\n}\n\nfunction resolveSlotsCalendar(e) {\n return {\n ...e,\n calendar: u(e.calendar)\n };\n}\n\nfunction parseDateTimeLike(e) {\n const n = vi.exec(e);\n return n ? (e => {\n const n = e[10], t = \"Z\" === (n || \"\").toUpperCase();\n return {\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: parseInt(e[5]),\n ...organizeTimeParts(e.slice(5)),\n ...organizeAnnotationParts(e[16]),\n C: Boolean(e[6]),\n j: t,\n offset: t ? void 0 : n\n };\n })(n) : void 0;\n}\n\nfunction parseYearMonthOnly(e) {\n const n = Ni.exec(e);\n return n ? (e => ({\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: 1,\n ...organizeAnnotationParts(e[5])\n }))(n) : void 0;\n}\n\nfunction parseMonthDayOnly(e) {\n const n = yi.exec(e);\n return n ? (e => ({\n isoYear: Br,\n isoMonth: parseInt(e[1]),\n isoDay: parseInt(e[2]),\n ...organizeAnnotationParts(e[3])\n }))(n) : void 0;\n}\n\nfunction parseOffsetNanoMaybe(e, n) {\n const t = Ei.exec(e);\n return t ? ((e, n) => {\n const t = e[4] || e[5];\n if (n && t) {\n throw new RangeError(invalidSubstring(t));\n }\n return (e => {\n if (Math.abs(e) >= Uo) {\n throw new RangeError(ho);\n }\n return e;\n })((parseInt0(e[2]) * zo + parseInt0(e[3]) * Zo + parseInt0(e[4]) * Ro + parseSubsecNano(e[5] || \"\")) * parseSign(e[1]));\n })(t, n) : void 0;\n}\n\nfunction organizeIsoYearParts(e) {\n const n = parseSign(e[1]), t = parseInt(e[2] || e[3]);\n if (n < 0 && !t) {\n throw new RangeError(invalidSubstring(-0));\n }\n return n * t;\n}\n\nfunction organizeTimeParts(e) {\n const n = parseInt0(e[3]);\n return {\n ...nanoToIsoTimeAndDay(parseSubsecNano(e[4] || \"\"))[0],\n isoHour: parseInt0(e[1]),\n isoMinute: parseInt0(e[2]),\n isoSecond: 60 === n ? 59 : n\n };\n}\n\nfunction organizeAnnotationParts(e) {\n let n, t;\n const o = [];\n if (e.replace(Si, ((e, r, i) => {\n const a = Boolean(r), [s, c] = i.split(\"=\").reverse();\n if (c) {\n if (\"u-ca\" === c) {\n o.push(s), n || (n = a);\n } else if (a || /[A-Z]/.test(c)) {\n throw new RangeError(invalidSubstring(e));\n }\n } else {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n t = s;\n }\n return \"\";\n })), o.length > 1 && n) {\n throw new RangeError(invalidSubstring(e));\n }\n return {\n timeZone: t,\n calendar: o[0] || l\n };\n}\n\nfunction parseSubsecNano(e) {\n return parseInt(e.padEnd(9, \"0\"));\n}\n\nfunction createRegExp(e) {\n return new RegExp(`^${e}$`, \"i\");\n}\n\nfunction parseSign(e) {\n return e && \"+\" !== e ? -1 : 1;\n}\n\nfunction parseInt0(e) {\n return void 0 === e ? 0 : parseInt(e);\n}\n\nfunction Ze(e) {\n return M(m(e));\n}\n\nfunction M(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? Se(n) : n ? (e => {\n if (Oi.test(e)) {\n throw new RangeError(F(e));\n }\n if (bi.test(e)) {\n throw new RangeError(po);\n }\n return e.toLowerCase().split(\"/\").map(((e, n) => (e.length <= 3 || /\\d/.test(e)) && !/etc|yap/.test(e) ? e.toUpperCase() : e.replace(/baja|dumont|[a-z]+/g, ((e, t) => e.length <= 2 && !n || \"in\" === e || \"chat\" === e ? e.toUpperCase() : e.length > 2 || !t ? capitalize(e).replace(/island|noronha|murdo|rivadavia|urville/, capitalize) : e)))).join(\"/\");\n })(e) : si;\n}\n\nfunction getTimeZoneAtomic(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? n : n ? n.resolvedOptions().timeZone : si;\n}\n\nfunction getTimeZoneEssence(e) {\n const n = parseOffsetNanoMaybe(e = e.toUpperCase(), 1);\n return void 0 !== n ? n : e !== si ? wi(e) : void 0;\n}\n\nfunction Ke(e, n) {\n return compareBigNanos(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction Be(e, n) {\n return compareBigNanos(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction K(e, n, t, o, r, i) {\n const a = e(normalizeOptions(i).relativeTo), s = Math.max(getMaxDurationUnit(o), getMaxDurationUnit(r));\n if (allPropsEqual(p, o, r)) {\n return 0;\n }\n if (isUniformUnit(s, a)) {\n return compareBigNanos(durationFieldsToBigNano(o), durationFieldsToBigNano(r));\n }\n if (!a) {\n throw new RangeError(yo);\n }\n const [c, u, f] = createMarkerSystem(n, t, a), l = createMarkerToEpochNano(f), d = createMoveMarker(f);\n return compareBigNanos(l(d(u, c, o)), l(d(u, c, r)));\n}\n\nfunction Yt(e, n) {\n return te(e, n) || Dt(e, n);\n}\n\nfunction te(e, n) {\n return compareNumbers(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction Dt(e, n) {\n return compareNumbers(isoTimeFieldsToNano(e), isoTimeFieldsToNano(n));\n}\n\nfunction Ve(e, n) {\n return !Ke(e, n);\n}\n\nfunction Ce(e, n) {\n return !Be(e, n) && !!isTimeZoneIdsEqual(e.timeZone, n.timeZone) && e.calendar === n.calendar;\n}\n\nfunction Ct(e, n) {\n return !Yt(e, n) && e.calendar === n.calendar;\n}\n\nfunction re(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction $t(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction Lt(e, n) {\n return !te(e, n) && e.calendar === n.calendar;\n}\n\nfunction st(e, n) {\n return !Dt(e, n);\n}\n\nfunction isTimeZoneIdsEqual(e, n) {\n if (e === n) {\n return 1;\n }\n try {\n return getTimeZoneAtomic(e) === getTimeZoneAtomic(n);\n } catch (e) {}\n}\n\nfunction Ee(e, n, t, o) {\n const r = refineDiffOptions(e, o, 3, 5), i = diffEpochNanos(n.epochNanoseconds, t.epochNanoseconds, ...r);\n return Oe(e ? negateDurationFields(i) : i);\n}\n\nfunction we(e, n, t, o, r, i) {\n const a = getCommonCalendarId(o.calendar, r.calendar), [s, c, u, f] = refineDiffOptions(t, i, 5), l = o.epochNanoseconds, d = r.epochNanoseconds, m = compareBigNanos(d, l);\n let p;\n if (m) {\n if (s < 6) {\n p = diffEpochNanos(l, d, s, c, u, f);\n } else {\n const t = n(((e, n) => {\n if (!isTimeZoneIdsEqual(e, n)) {\n throw new RangeError(mo);\n }\n return e;\n })(o.timeZone, r.timeZone)), l = e(a);\n p = diffZonedEpochsBig(l, t, o, r, m, s, i), p = roundRelativeDuration(p, d, s, c, u, f, l, o, extractEpochNano, Pt(moveZonedEpochs, t));\n }\n } else {\n p = pr;\n }\n return Oe(t ? negateDurationFields(p) : p);\n}\n\nfunction It(e, n, t, o, r) {\n const i = getCommonCalendarId(t.calendar, o.calendar), [a, s, c, u] = refineDiffOptions(n, r, 6), f = isoToEpochNano(t), l = isoToEpochNano(o), d = compareBigNanos(l, f);\n let m;\n if (d) {\n if (a <= 6) {\n m = diffEpochNanos(f, l, a, s, c, u);\n } else {\n const n = e(i);\n m = diffDateTimesBig(n, t, o, d, a, r), m = roundRelativeDuration(m, l, a, s, c, u, n, t, isoToEpochNano, moveDateTime);\n }\n } else {\n m = pr;\n }\n return Oe(n ? negateDurationFields(m) : m);\n}\n\nfunction oe(e, n, t, o, r) {\n const i = getCommonCalendarId(t.calendar, o.calendar);\n return diffDateLike(n, (() => e(i)), t, o, ...refineDiffOptions(n, r, 6, 9, 6));\n}\n\nfunction zt(e, n, t, o, r) {\n const i = getCommonCalendarId(t.calendar, o.calendar), a = refineDiffOptions(n, r, 9, 9, 8), s = e(i), c = moveToDayOfMonthUnsafe(s, t), u = moveToDayOfMonthUnsafe(s, o);\n return c.isoYear === u.isoYear && c.isoMonth === u.isoMonth && c.isoDay === u.isoDay ? Oe(pr) : diffDateLike(n, (() => s), checkIsoDateInBounds(c), checkIsoDateInBounds(u), ...a, 8);\n}\n\nfunction diffDateLike(e, n, t, o, r, i, a, s, c = 6) {\n const u = isoToEpochNano(t), f = isoToEpochNano(o);\n if (void 0 === u || void 0 === f) {\n throw new RangeError(Io);\n }\n let l;\n if (compareBigNanos(f, u)) {\n if (6 === r) {\n l = diffEpochNanos(u, f, r, i, a, s);\n } else {\n const e = n();\n l = e.N(t, o, r), i === c && 1 === a || (l = roundRelativeDuration(l, f, r, i, a, s, e, t, isoToEpochNano, moveDate));\n }\n } else {\n l = pr;\n }\n return Oe(e ? negateDurationFields(l) : l);\n}\n\nfunction it(e, n, t, o) {\n const [r, i, a, s] = refineDiffOptions(e, o, 5, 5), c = roundByInc(diffTimes(n, t), computeNanoInc(i, a), s), u = {\n ...pr,\n ...nanoToDurationTimeFields(c, r)\n };\n return Oe(e ? negateDurationFields(u) : u);\n}\n\nfunction diffZonedEpochsExact(e, n, t, o, r, i) {\n const a = compareBigNanos(o.epochNanoseconds, t.epochNanoseconds);\n return a ? r < 6 ? diffEpochNanosExact(t.epochNanoseconds, o.epochNanoseconds, r) : diffZonedEpochsBig(n, e, t, o, a, r, i) : pr;\n}\n\nfunction diffDateTimesExact(e, n, t, o, r) {\n const i = isoToEpochNano(n), a = isoToEpochNano(t), s = compareBigNanos(a, i);\n return s ? o <= 6 ? diffEpochNanosExact(i, a, o) : diffDateTimesBig(e, n, t, s, o, r) : pr;\n}\n\nfunction diffZonedEpochsBig(e, n, t, o, r, i, a) {\n const [s, c, u] = ((e, n, t, o) => {\n function updateMid() {\n return f = {\n ...moveByDays(a, c++ * -o),\n ...i\n }, l = getSingleInstantFor(e, f), compareBigNanos(s, l) === -o;\n }\n const r = he(n, e), i = nn(w, r), a = he(t, e), s = t.epochNanoseconds;\n let c = 0;\n const u = diffTimes(r, a);\n let f, l;\n if (Math.sign(u) === -o && c++, updateMid() && (-1 === o || updateMid())) {\n throw new RangeError(fo);\n }\n const d = bigNanoToNumber(diffBigNanos(l, s));\n return [ r, f, d ];\n })(n, t, o, r);\n var f, l;\n return {\n ...6 === i ? (f = s, l = c, {\n ...pr,\n days: diffDays(f, l)\n }) : e.N(s, c, i, a),\n ...nanoToDurationTimeFields(u)\n };\n}\n\nfunction diffDateTimesBig(e, n, t, o, r, i) {\n const [a, s, c] = ((e, n, t) => {\n let o = n, r = diffTimes(e, n);\n return Math.sign(r) === -t && (o = moveByDays(n, -t), r += Uo * t), [ e, o, r ];\n })(n, t, o);\n return {\n ...e.N(a, s, r, i),\n ...nanoToDurationTimeFields(c)\n };\n}\n\nfunction diffEpochNanos(e, n, t, o, r, i) {\n return {\n ...pr,\n ...nanoToDurationDayTimeFields(roundBigNano(diffBigNanos(e, n), o, r, i), t)\n };\n}\n\nfunction diffEpochNanosExact(e, n, t) {\n return {\n ...pr,\n ...nanoToDurationDayTimeFields(diffBigNanos(e, n), t)\n };\n}\n\nfunction diffDays(e, n) {\n return diffEpochMilliByDay(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction diffEpochMilliByDay(e, n) {\n return Math.trunc((n - e) / ko);\n}\n\nfunction diffTimes(e, n) {\n return isoTimeFieldsToNano(n) - isoTimeFieldsToNano(e);\n}\n\nfunction getCommonCalendarId(e, n) {\n if (e !== n) {\n throw new RangeError(lo);\n }\n return e;\n}\n\nfunction computeNativeWeekOfYear(e) {\n return this.m(e)[0];\n}\n\nfunction computeNativeYearOfWeek(e) {\n return this.m(e)[1];\n}\n\nfunction computeNativeDayOfYear(e) {\n const [n] = this.v(e);\n return diffEpochMilliByDay(this.p(n), isoToEpochMilli(e)) + 1;\n}\n\nfunction parseMonthCode(e) {\n const n = Bi.exec(e);\n if (!n) {\n throw new RangeError(invalidMonthCode(e));\n }\n return [ parseInt(n[1]), Boolean(n[2]) ];\n}\n\nfunction formatMonthCode(e, n) {\n return \"M\" + bo(e) + (n ? \"L\" : \"\");\n}\n\nfunction monthCodeNumberToMonth(e, n, t) {\n return e + (n || t && e >= t ? 1 : 0);\n}\n\nfunction monthToMonthCodeNumber(e, n) {\n return e - (n && e >= n ? 1 : 0);\n}\n\nfunction eraYearToYear(e, n) {\n return (n + e) * (Math.sign(n) || 1) || 0;\n}\n\nfunction getCalendarEraOrigins(e) {\n return ir[getCalendarIdBase(e)];\n}\n\nfunction getCalendarLeapMonthMeta(e) {\n return sr[getCalendarIdBase(e)];\n}\n\nfunction getCalendarIdBase(e) {\n return computeCalendarIdBase(e.id || l);\n}\n\nfunction createIntlCalendar(e) {\n function epochMilliToIntlFields(e) {\n return ((e, n) => ({\n ...parseIntlYear(e, n),\n o: e.month,\n day: parseInt(e.day)\n }))(hashIntlFormatParts(n, e), t);\n }\n const n = Ci(e), t = computeCalendarIdBase(e);\n return {\n id: e,\n h: createIntlFieldCache(epochMilliToIntlFields),\n l: createIntlYearDataCache(epochMilliToIntlFields)\n };\n}\n\nfunction createIntlFieldCache(e) {\n return on((n => {\n const t = isoToEpochMilli(n);\n return e(t);\n }), WeakMap);\n}\n\nfunction createIntlYearDataCache(e) {\n const n = e(0).year - Or;\n return on((t => {\n let o, r = isoArgsToEpochMilli(t - n), i = 0;\n const a = [], s = [];\n do {\n r += 400 * ko;\n } while ((o = e(r)).year <= t);\n do {\n if (r += (1 - o.day) * ko, o.year === t && (a.push(r), s.push(o.o)), r -= ko, ++i > 100 || r < -Pr) {\n throw new RangeError(fo);\n }\n } while ((o = e(r)).year >= t);\n return {\n i: a.reverse(),\n u: Fo(s.reverse())\n };\n }));\n}\n\nfunction parseIntlYear(e, n) {\n let t, o, r = parseIntlPartsYear(e);\n if (e.era) {\n const i = ir[n], a = ar[n] || {};\n void 0 !== i && (t = \"islamic\" === n ? \"ah\" : e.era.normalize(\"NFD\").toLowerCase().replace(/[^a-z0-9]/g, \"\"), \n \"bc\" === t || \"b\" === t ? t = \"bce\" : \"ad\" === t || \"a\" === t ? t = \"ce\" : \"beforeroc\" === t && (t = \"broc\"), \n t = a[t] || t, o = r, r = eraYearToYear(o, i[t] || 0));\n }\n return {\n era: t,\n eraYear: o,\n year: r\n };\n}\n\nfunction parseIntlPartsYear(e) {\n return parseInt(e.relatedYear || e.year);\n}\n\nfunction computeIntlDateParts(e) {\n const {year: n, o: t, day: o} = this.h(e), {u: r} = this.l(n);\n return [ n, r[t] + 1, o ];\n}\n\nfunction computeIntlEpochMilli(e, n = 1, t = 1) {\n return this.l(e).i[n - 1] + (t - 1) * ko;\n}\n\nfunction computeIntlMonthCodeParts(e, n) {\n const t = computeIntlLeapMonth.call(this, e);\n return [ monthToMonthCodeNumber(n, t), t === n ];\n}\n\nfunction computeIntlLeapMonth(e) {\n const n = queryMonthStrings(this, e), t = queryMonthStrings(this, e - 1), o = n.length;\n if (o > t.length) {\n const e = getCalendarLeapMonthMeta(this);\n if (e < 0) {\n return -e;\n }\n for (let e = 0; e < o; e++) {\n if (n[e] !== t[e]) {\n return e + 1;\n }\n }\n }\n}\n\nfunction computeIntlDaysInYear(e) {\n return diffEpochMilliByDay(computeIntlEpochMilli.call(this, e), computeIntlEpochMilli.call(this, e + 1));\n}\n\nfunction computeIntlDaysInMonth(e, n) {\n const {i: t} = this.l(e);\n let o = n + 1, r = t;\n return o > t.length && (o = 1, r = this.l(e + 1).i), diffEpochMilliByDay(t[n - 1], r[o - 1]);\n}\n\nfunction computeIntlMonthsInYear(e) {\n return this.l(e).i.length;\n}\n\nfunction computeIntlEraParts(e) {\n const n = this.h(e);\n return [ n.era, n.eraYear ];\n}\n\nfunction queryMonthStrings(e, n) {\n return Object.keys(e.l(n).u);\n}\n\nfunction Mt(e) {\n return u(m(e));\n}\n\nfunction u(e) {\n if ((e = e.toLowerCase()) !== l && e !== or) {\n const n = Ci(e).resolvedOptions().calendar;\n if (computeCalendarIdBase(e) !== computeCalendarIdBase(n)) {\n throw new RangeError(c(e));\n }\n return n;\n }\n return e;\n}\n\nfunction computeCalendarIdBase(e) {\n return \"islamicc\" === e && (e = \"islamic\"), e.split(\"-\")[0];\n}\n\nfunction createNativeOpsCreator(e, n) {\n return t => t === l ? e : t === or || t === rr ? Object.assign(Object.create(e), {\n id: t\n }) : Object.assign(Object.create(n), ki(t));\n}\n\nfunction $(e, n, t, o) {\n const r = refineCalendarFields(t, o, Xo, [], xo);\n if (void 0 !== r.timeZone) {\n const o = t.F(r), i = refineTimeBag(r), a = e(r.timeZone);\n return {\n epochNanoseconds: getMatchingInstantFor(n(a), {\n ...o,\n ...i\n }, void 0 !== r.offset ? parseOffsetNano(r.offset) : void 0),\n timeZone: a\n };\n }\n return {\n ...t.F(r),\n ...Nt\n };\n}\n\nfunction Ne(e, n, t, o, r, i) {\n const a = refineCalendarFields(t, r, Xo, jo, xo), s = e(a.timeZone), [c, u, f] = je(i), l = t.F(a, fabricateOverflowOptions(c)), d = refineTimeBag(a, c);\n return _e(getMatchingInstantFor(n(s), {\n ...l,\n ...d\n }, void 0 !== a.offset ? parseOffsetNano(a.offset) : void 0, u, f), s, o);\n}\n\nfunction At(e, n, t) {\n const o = refineCalendarFields(e, n, Xo, [], O), r = mt(t);\n return jt(checkIsoDateTimeInBounds({\n ...e.F(o, fabricateOverflowOptions(r)),\n ...refineTimeBag(o, r)\n }));\n}\n\nfunction me(e, n, t, o = []) {\n const r = refineCalendarFields(e, n, Xo, o);\n return e.F(r, t);\n}\n\nfunction Xt(e, n, t, o) {\n const r = refineCalendarFields(e, n, Ko, o);\n return e.K(r, t);\n}\n\nfunction Rt(e, n, t, o) {\n const r = refineCalendarFields(e, t, Xo, Jo);\n return n && void 0 !== r.month && void 0 === r.monthCode && void 0 === r.year && (r.year = Br), \n e._(r, o);\n}\n\nfunction Tt(e, n) {\n return St(refineTimeBag(refineFields(e, qo, [], 1), mt(n)));\n}\n\nfunction q(e) {\n const n = refineFields(e, ur);\n return Oe(checkDurationUnits({\n ...pr,\n ...n\n }));\n}\n\nfunction refineCalendarFields(e, n, t, o = [], r = []) {\n return refineFields(n, [ ...e.fields(t), ...r ].sort(), o);\n}\n\nfunction refineFields(e, n, t, o = !t) {\n const r = {};\n let i, a = 0;\n for (const o of n) {\n if (o === i) {\n throw new RangeError(duplicateFields(o));\n }\n if (\"constructor\" === o || \"__proto__\" === o) {\n throw new RangeError(forbiddenField(o));\n }\n let n = e[o];\n if (void 0 !== n) {\n a = 1, Li[o] && (n = Li[o](n, o)), r[o] = n;\n } else if (t) {\n if (t.includes(o)) {\n throw new TypeError(missingField(o));\n }\n r[o] = tr[o];\n }\n i = o;\n }\n if (o && !a) {\n throw new TypeError(noValidFields(n));\n }\n return r;\n}\n\nfunction refineTimeBag(e, n) {\n return constrainIsoTimeFields(xi({\n ...tr,\n ...e\n }), n);\n}\n\nfunction De(e, n, t, o, r) {\n const {calendar: i, timeZone: a} = t, s = e(i), c = n(a), u = [ ...s.fields(Xo), ...Lo ].sort(), f = (e => {\n const n = he(e, L), t = Se(n.offsetNanoseconds), o = ji(e.calendar), [r, i, a] = o.v(n), [s, c] = o.q(r, i), u = formatMonthCode(s, c);\n return {\n ...$i(n),\n year: r,\n monthCode: u,\n day: a,\n offset: t\n };\n })(t), l = refineFields(o, u), d = s.k(f, l), m = {\n ...f,\n ...l\n }, [p, h, g] = je(r, 2);\n return _e(getMatchingInstantFor(c, {\n ...s.F(d, fabricateOverflowOptions(p)),\n ...constrainIsoTimeFields(xi(m), p)\n }, parseOffsetNano(m.offset), h, g), a, i);\n}\n\nfunction gt(e, n, t, o) {\n const r = e(n.calendar), i = [ ...r.fields(Xo), ...O ].sort(), a = {\n ...computeDateEssentials(s = n),\n hour: s.isoHour,\n minute: s.isoMinute,\n second: s.isoSecond,\n millisecond: s.isoMillisecond,\n microsecond: s.isoMicrosecond,\n nanosecond: s.isoNanosecond\n };\n var s;\n const c = refineFields(t, i), u = mt(o), f = r.k(a, c), l = {\n ...a,\n ...c\n };\n return jt(checkIsoDateTimeInBounds({\n ...r.F(f, fabricateOverflowOptions(u)),\n ...constrainIsoTimeFields(xi(l), u)\n }));\n}\n\nfunction ee(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(Xo).sort(), a = computeDateEssentials(n), s = refineFields(t, i), c = r.k(a, s);\n return r.F(c, o);\n}\n\nfunction Wt(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(Ko).sort(), a = (e => {\n const n = ji(e.calendar), [t, o] = n.v(e), [r, i] = n.q(t, o);\n return {\n year: t,\n monthCode: formatMonthCode(r, i)\n };\n })(n), s = refineFields(t, i), c = r.k(a, s);\n return r.K(c, o);\n}\n\nfunction Et(e, n, t, o) {\n const r = e(n.calendar), i = r.fields(Xo).sort(), a = (e => {\n const n = ji(e.calendar), [t, o, r] = n.v(e), [i, a] = n.q(t, o);\n return {\n monthCode: formatMonthCode(i, a),\n day: r\n };\n })(n), s = refineFields(t, i), c = r.k(a, s);\n return r._(c, o);\n}\n\nfunction rt(e, n, t) {\n return St(((e, n, t) => refineTimeBag({\n ...nn(qo, e),\n ...refineFields(n, qo)\n }, mt(t)))(e, n, t));\n}\n\nfunction A(e, n) {\n return Oe((t = e, o = n, checkDurationUnits({\n ...t,\n ...refineFields(o, ur)\n })));\n var t, o;\n}\n\nfunction convertToIso(e, n, t, o, r) {\n n = nn(t = e.fields(t), n), o = refineFields(o, r = e.fields(r), []);\n let i = e.k(n, o);\n return i = refineFields(i, [ ...t, ...r ].sort(), []), e.F(i);\n}\n\nfunction refineYear(e, n) {\n const t = getCalendarEraOrigins(e), o = ar[e.id || \"\"] || {};\n let {era: r, eraYear: i, year: a} = n;\n if (void 0 !== r || void 0 !== i) {\n if (void 0 === r || void 0 === i) {\n throw new TypeError(io);\n }\n if (!t) {\n throw new RangeError(ro);\n }\n const e = t[o[r] || r];\n if (void 0 === e) {\n throw new RangeError(invalidEra(r));\n }\n const n = eraYearToYear(i, e);\n if (void 0 !== a && a !== n) {\n throw new RangeError(ao);\n }\n a = n;\n } else if (void 0 === a) {\n throw new TypeError(missingYear(t));\n }\n return a;\n}\n\nfunction refineMonth(e, n, t, o) {\n let {month: r, monthCode: i} = n;\n if (void 0 !== i) {\n const n = ((e, n, t, o) => {\n const r = e.L(t), [i, a] = parseMonthCode(n);\n let s = monthCodeNumberToMonth(i, a, r);\n if (a) {\n const n = getCalendarLeapMonthMeta(e);\n if (void 0 === n) {\n throw new RangeError(uo);\n }\n if (n > 0) {\n if (s > n) {\n throw new RangeError(uo);\n }\n if (void 0 === r) {\n if (1 === o) {\n throw new RangeError(uo);\n }\n s--;\n }\n } else {\n if (s !== -n) {\n throw new RangeError(uo);\n }\n if (void 0 === r && 1 === o) {\n throw new RangeError(uo);\n }\n }\n }\n return s;\n })(e, i, t, o);\n if (void 0 !== r && r !== n) {\n throw new RangeError(so);\n }\n r = n, o = 1;\n } else if (void 0 === r) {\n throw new TypeError(co);\n }\n return clampEntity(\"month\", r, 1, e.B(t), o);\n}\n\nfunction refineDay(e, n, t, o, r) {\n return clampProp(n, \"day\", 1, e.U(o, t), r);\n}\n\nfunction spliceFields(e, n, t, o) {\n let r = 0;\n const i = [];\n for (const e of t) {\n void 0 !== n[e] ? r = 1 : i.push(e);\n }\n if (Object.assign(e, n), r) {\n for (const n of o || i) {\n delete e[n];\n }\n }\n}\n\nfunction computeDateEssentials(e) {\n const n = ji(e.calendar), [t, o, r] = n.v(e), [i, a] = n.q(t, o);\n return {\n year: t,\n monthCode: formatMonthCode(i, a),\n day: r\n };\n}\n\nfunction qe(e) {\n return xe(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction ye(e, n, t, o, r = l) {\n return _e(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(t))), n(o), e(r));\n}\n\nfunction Zt(n, t, o, r, i = 0, a = 0, s = 0, c = 0, u = 0, f = 0, d = l) {\n return jt(checkIsoDateTimeInBounds(checkIsoDateTimeFields(e(toInteger, zipProps(Tr, [ t, o, r, i, a, s, c, u, f ])))), n(d));\n}\n\nfunction ue(n, t, o, r, i = l) {\n return W(checkIsoDateInBounds(checkIsoDateFields(e(toInteger, {\n isoYear: t,\n isoMonth: o,\n isoDay: r\n }))), n(i));\n}\n\nfunction Qt(e, n, t, o = l, r = 1) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields({\n isoYear: i,\n isoMonth: a,\n isoDay: toInteger(r)\n })), s);\n}\n\nfunction kt(e, n, t, o = l, r = Br) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainMonthDaySlots(checkIsoDateInBounds(checkIsoDateFields({\n isoYear: toInteger(r),\n isoMonth: i,\n isoDay: a\n })), s);\n}\n\nfunction ut(n = 0, t = 0, o = 0, r = 0, i = 0, a = 0) {\n return St(constrainIsoTimeFields(e(toInteger, zipProps(w, [ n, t, o, r, i, a ])), 1));\n}\n\nfunction j(n = 0, t = 0, o = 0, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0, f = 0) {\n return Oe(checkDurationUnits(e(toStrictInteger, zipProps(p, [ n, t, o, r, i, a, s, c, u, f ]))));\n}\n\nfunction Je(e, n, t = l) {\n return _e(e.epochNanoseconds, n, t);\n}\n\nfunction be(e) {\n return xe(e.epochNanoseconds);\n}\n\nfunction yt(e, n) {\n return jt(he(n, e));\n}\n\nfunction fe(e, n) {\n return W(he(n, e));\n}\n\nfunction dt(e, n) {\n return St(he(n, e));\n}\n\nfunction bt(e, n, t, o) {\n const r = ((e, n, t, o) => {\n const r = (e => ei(normalizeOptions(e)))(o);\n return getSingleInstantFor(e(n), t, r);\n })(e, t, n, o);\n return _e(checkEpochNanoInBounds(r), t, n.calendar);\n}\n\nfunction ae(e, n, t, o, r) {\n const i = e(r.timeZone), a = r.plainTime, s = void 0 !== a ? n(a) : void 0, c = t(i);\n let u;\n return u = s ? getSingleInstantFor(c, {\n ...o,\n ...s\n }) : getStartOfDayInstantFor(c, {\n ...o,\n ...Nt\n }), _e(u, i, o.calendar);\n}\n\nfunction ie(e, n = Nt) {\n return jt(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction le(e, n, t) {\n return ((e, n) => {\n const t = refineCalendarFields(e, n, Qo);\n return e.K(t, void 0);\n })(e(n.calendar), t);\n}\n\nfunction se(e, n, t) {\n return ((e, n) => {\n const t = refineCalendarFields(e, n, nr);\n return e._(t);\n })(e(n.calendar), t);\n}\n\nfunction Ht(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, Qo, requireObjectLike(t), Jo))(e(n.calendar), t, o);\n}\n\nfunction Vt(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, nr, requireObjectLike(t), Go))(e(n.calendar), t, o);\n}\n\nfunction $e(e) {\n return xe(checkEpochNanoInBounds(Ge(toStrictInteger(e), Qe)));\n}\n\nfunction He(e) {\n return xe(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction createOptionsTransformer(e, n, t) {\n const o = new Set(t);\n return (r, i) => {\n const a = t && hasAnyPropsByName(r, t);\n if (!hasAnyPropsByName(r = ((e, n) => {\n const t = {};\n for (const o in n) {\n e.has(o) || (t[o] = n[o]);\n }\n return t;\n })(o, r), e)) {\n if (i && a) {\n throw new TypeError(\"Invalid formatting options\");\n }\n r = {\n ...n,\n ...r\n };\n }\n return t && (r.timeZone = si, [ \"full\", \"long\" ].includes(r.J) && (r.J = \"medium\")), \n r;\n };\n}\n\nfunction Q(e, n = an, t = 0) {\n const [o, , , r] = e;\n return (i, a = Na, ...s) => {\n const c = n(r && r(...s), i, a, o, t), u = c.resolvedOptions();\n return [ c, ...toEpochMillis(e, u, s) ];\n };\n}\n\nfunction an(e, n, t, o, r) {\n if (t = o(t, r), e) {\n if (void 0 !== t.timeZone) {\n throw new TypeError(So);\n }\n t.timeZone = e;\n }\n return new en(n, t);\n}\n\nfunction toEpochMillis(e, n, t) {\n const [, o, r] = e;\n return t.map((e => (e.calendar && ((e, n, t) => {\n if ((t || e !== l) && e !== n) {\n throw new RangeError(lo);\n }\n })(e.calendar, n.calendar, r), o(e, n))));\n}\n\nfunction ge(e, n, t) {\n const o = n.timeZone, r = e(o), i = {\n ...he(n, r),\n ...t || Nt\n };\n let a;\n return a = t ? getMatchingInstantFor(r, i, i.offsetNanoseconds, 2) : getStartOfDayInstantFor(r, i), \n _e(a, o, n.calendar);\n}\n\nfunction Ot(e, n = Nt) {\n return jt(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction pt(e, n) {\n return {\n ...e,\n calendar: n\n };\n}\n\nfunction Pe(e, n) {\n return {\n ...e,\n timeZone: n\n };\n}\n\nfunction tn(e) {\n const n = Xe();\n return epochNanoToIso(n, e.R(n));\n}\n\nfunction Xe() {\n return Ge(Date.now(), Qe);\n}\n\nfunction Ue() {\n return va || (va = (new en).resolvedOptions().timeZone);\n}\n\nconst expectedInteger = (e, n) => `Non-integer ${e}: ${n}`, expectedPositive = (e, n) => `Non-positive ${e}: ${n}`, expectedFinite = (e, n) => `Non-finite ${e}: ${n}`, forbiddenBigIntToNumber = e => `Cannot convert bigint to ${e}`, invalidBigInt = e => `Invalid bigint: ${e}`, no = \"Cannot convert Symbol to string\", oo = \"Invalid object\", numberOutOfRange = (e, n, t, o, r) => r ? numberOutOfRange(e, r[n], r[t], r[o]) : invalidEntity(e, n) + `; must be between ${t}-${o}`, invalidEntity = (e, n) => `Invalid ${e}: ${n}`, missingField = e => `Missing ${e}`, forbiddenField = e => `Invalid field ${e}`, duplicateFields = e => `Duplicate field ${e}`, noValidFields = e => \"No valid fields: \" + e.join(), i = \"Invalid bag\", invalidChoice = (e, n, t) => invalidEntity(e, n) + \"; must be \" + Object.keys(t).join(), b = \"Cannot use valueOf\", a = \"Invalid calling context\", ro = \"Forbidden era/eraYear\", io = \"Mismatching era/eraYear\", ao = \"Mismatching year/eraYear\", invalidEra = e => `Invalid era: ${e}`, missingYear = e => \"Missing year\" + (e ? \"/era/eraYear\" : \"\"), invalidMonthCode = e => `Invalid monthCode: ${e}`, so = \"Mismatching month/monthCode\", co = \"Missing month/monthCode\", uo = \"Invalid leap month\", fo = \"Invalid protocol results\", c = e => invalidEntity(\"Calendar\", e), lo = \"Mismatching Calendars\", F = e => invalidEntity(\"TimeZone\", e), mo = \"Mismatching TimeZones\", po = \"Forbidden ICU TimeZone\", ho = \"Out-of-bounds offset\", go = \"Out-of-bounds TimeZone gap\", Do = \"Invalid TimeZone offset\", To = \"Ambiguous offset\", Io = \"Out-of-bounds date\", Mo = \"Out-of-bounds duration\", No = \"Cannot mix duration signs\", yo = \"Missing relativeTo\", vo = \"Cannot use large units\", Po = \"Required smallestUnit or largestUnit\", Eo = \"smallestUnit > largestUnit\", failedParse = e => `Cannot parse: ${e}`, invalidSubstring = e => `Invalid substring: ${e}`, rn = e => `Cannot format ${e}`, ln = \"Mismatching types for formatting\", So = \"Cannot specify TimeZone\", Fo = /*@__PURE__*/ Pt(g, ((e, n) => n)), wo = /*@__PURE__*/ Pt(g, ((e, n, t) => t)), bo = /*@__PURE__*/ Pt(padNumber, 2), Oo = {\n nanosecond: 0,\n microsecond: 1,\n millisecond: 2,\n second: 3,\n minute: 4,\n hour: 5,\n day: 6,\n week: 7,\n month: 8,\n year: 9\n}, Bo = /*@__PURE__*/ Object.keys(Oo), ko = 864e5, Co = 1e3, Yo = 1e3, Qe = 1e6, Ro = 1e9, Zo = 6e10, zo = 36e11, Uo = 864e11, Ao = [ 1, Yo, Qe, Ro, Zo, zo, Uo ], O = /*@__PURE__*/ Bo.slice(0, 6), qo = /*@__PURE__*/ sortStrings(O), Wo = [ \"offset\" ], jo = [ \"timeZone\" ], Lo = /*@__PURE__*/ O.concat(Wo), xo = /*@__PURE__*/ Lo.concat(jo), $o = [ \"era\", \"eraYear\" ], Ho = /*@__PURE__*/ $o.concat([ \"year\" ]), Go = [ \"year\" ], Vo = [ \"monthCode\" ], _o = /*@__PURE__*/ [ \"month\" ].concat(Vo), Jo = [ \"day\" ], Ko = /*@__PURE__*/ _o.concat(Go), Qo = /*@__PURE__*/ Vo.concat(Go), Xo = /*@__PURE__*/ Jo.concat(Ko), er = /*@__PURE__*/ Jo.concat(_o), nr = /*@__PURE__*/ Jo.concat(Vo), tr = /*@__PURE__*/ wo(O, 0), l = \"iso8601\", or = \"gregory\", rr = \"japanese\", ir = {\n [or]: {\n \"gregory-inverse\": -1,\n gregory: 0\n },\n [rr]: {\n \"japanese-inverse\": -1,\n japanese: 0,\n meiji: 1867,\n taisho: 1911,\n showa: 1925,\n heisei: 1988,\n reiwa: 2018\n },\n ethiopic: {\n ethioaa: 0,\n ethiopic: 5500\n },\n coptic: {\n \"coptic-inverse\": -1,\n coptic: 0\n },\n roc: {\n \"roc-inverse\": -1,\n roc: 0\n },\n buddhist: {\n be: 0\n },\n islamic: {\n ah: 0\n },\n indian: {\n saka: 0\n },\n persian: {\n ap: 0\n }\n}, ar = {\n [or]: {\n bce: \"gregory-inverse\",\n ce: \"gregory\"\n },\n [rr]: {\n bce: \"japanese-inverse\",\n ce: \"japanese\"\n },\n ethiopic: {\n era0: \"ethioaa\",\n era1: \"ethiopic\"\n },\n coptic: {\n era0: \"coptic-inverse\",\n era1: \"coptic\"\n },\n roc: {\n broc: \"roc-inverse\",\n minguo: \"roc\"\n }\n}, sr = {\n chinese: 13,\n dangi: 13,\n hebrew: -6\n}, m = /*@__PURE__*/ Pt(requireType, \"string\"), D = /*@__PURE__*/ Pt(requireType, \"boolean\"), cr = /*@__PURE__*/ Pt(requireType, \"number\"), p = /*@__PURE__*/ Bo.map((e => e + \"s\")), ur = /*@__PURE__*/ sortStrings(p), fr = /*@__PURE__*/ p.slice(0, 6), lr = /*@__PURE__*/ p.slice(6), dr = /*@__PURE__*/ lr.slice(1), mr = /*@__PURE__*/ Fo(p), pr = /*@__PURE__*/ wo(p, 0), hr = /*@__PURE__*/ wo(fr, 0), gr = /*@__PURE__*/ Pt(zeroOutProps, p), w = [ \"isoNanosecond\", \"isoMicrosecond\", \"isoMillisecond\", \"isoSecond\", \"isoMinute\", \"isoHour\" ], Dr = [ \"isoDay\", \"isoMonth\", \"isoYear\" ], Tr = /*@__PURE__*/ w.concat(Dr), Ir = /*@__PURE__*/ sortStrings(Dr), Mr = /*@__PURE__*/ sortStrings(w), Nr = /*@__PURE__*/ sortStrings(Tr), Nt = /*@__PURE__*/ wo(Mr, 0), yr = /*@__PURE__*/ Pt(zeroOutProps, Tr), vr = 1e8, Pr = vr * ko, Er = [ vr, 0 ], Sr = [ -vr, 0 ], Fr = 275760, wr = -271821, en = Intl.DateTimeFormat, br = \"en-GB\", Or = 1970, Br = 1972, kr = 12, Cr = /*@__PURE__*/ isoArgsToEpochMilli(1868, 9, 8), Yr = /*@__PURE__*/ on(computeJapaneseEraParts, WeakMap), Rr = \"smallestUnit\", Zr = \"unit\", zr = \"roundingIncrement\", Ur = \"fractionalSecondDigits\", Ar = \"relativeTo\", qr = \"direction\", Wr = {\n constrain: 0,\n reject: 1\n}, jr = /*@__PURE__*/ Object.keys(Wr), Lr = {\n compatible: 0,\n reject: 1,\n earlier: 2,\n later: 3\n}, xr = {\n reject: 0,\n use: 1,\n prefer: 2,\n ignore: 3\n}, $r = {\n auto: 0,\n never: 1,\n critical: 2,\n always: 3\n}, Hr = {\n auto: 0,\n never: 1,\n critical: 2\n}, Gr = {\n auto: 0,\n never: 1\n}, Vr = {\n floor: 0,\n halfFloor: 1,\n ceil: 2,\n halfCeil: 3,\n trunc: 4,\n halfTrunc: 5,\n expand: 6,\n halfExpand: 7,\n halfEven: 8\n}, _r = {\n previous: -1,\n next: 1\n}, Jr = /*@__PURE__*/ Pt(refineUnitOption, Rr), Kr = /*@__PURE__*/ Pt(refineUnitOption, \"largestUnit\"), Qr = /*@__PURE__*/ Pt(refineUnitOption, Zr), Xr = /*@__PURE__*/ Pt(refineChoiceOption, \"overflow\", Wr), ei = /*@__PURE__*/ Pt(refineChoiceOption, \"disambiguation\", Lr), ni = /*@__PURE__*/ Pt(refineChoiceOption, \"offset\", xr), ti = /*@__PURE__*/ Pt(refineChoiceOption, \"calendarName\", $r), oi = /*@__PURE__*/ Pt(refineChoiceOption, \"timeZoneName\", Hr), ri = /*@__PURE__*/ Pt(refineChoiceOption, \"offset\", Gr), ii = /*@__PURE__*/ Pt(refineChoiceOption, \"roundingMode\", Vr), Ut = \"PlainYearMonth\", qt = \"PlainMonthDay\", G = \"PlainDate\", x = \"PlainDateTime\", ft = \"PlainTime\", z = \"ZonedDateTime\", Re = \"Instant\", N = \"Duration\", ai = [ Math.floor, e => hasHalf(e) ? Math.floor(e) : Math.round(e), Math.ceil, e => hasHalf(e) ? Math.ceil(e) : Math.round(e), Math.trunc, e => hasHalf(e) ? Math.trunc(e) || 0 : Math.round(e), e => e < 0 ? Math.floor(e) : Math.ceil(e), e => Math.sign(e) * Math.round(Math.abs(e)) || 0, e => hasHalf(e) ? (e = Math.trunc(e) || 0) + e % 2 : Math.round(e) ], si = \"UTC\", ci = 5184e3, ui = /*@__PURE__*/ isoArgsToEpochSec(1847), fi = /*@__PURE__*/ isoArgsToEpochSec(/*@__PURE__*/ (/*@__PURE__*/ new Date).getUTCFullYear() + 10), li = /0+$/, he = /*@__PURE__*/ on(_zonedEpochSlotsToIso, WeakMap), di = 2 ** 32 - 1, L = /*@__PURE__*/ on((e => {\n const n = getTimeZoneEssence(e);\n return \"object\" == typeof n ? new IntlTimeZone(n) : new FixedTimeZone(n || 0);\n}));\n\nclass FixedTimeZone {\n constructor(e) {\n this.$ = e;\n }\n R() {\n return this.$;\n }\n I(e) {\n return (e => {\n const n = isoToEpochNano({\n ...e,\n ...Nt\n });\n if (!n || Math.abs(n[0]) > 1e8) {\n throw new RangeError(Io);\n }\n })(e), [ isoToEpochNanoWithOffset(e, this.$) ];\n }\n O() {}\n}\n\nclass IntlTimeZone {\n constructor(e) {\n this.nn = (e => {\n function getOffsetSec(e) {\n const i = clampNumber(e, o, r), [a, s] = computePeriod(i), c = n(a), u = n(s);\n return c === u ? c : pinch(t(a, s), c, u, e);\n }\n function pinch(n, t, o, r) {\n let i, a;\n for (;(void 0 === r || void 0 === (i = r < n[0] ? t : r >= n[1] ? o : void 0)) && (a = n[1] - n[0]); ) {\n const t = n[0] + Math.floor(a / 2);\n e(t) === o ? n[1] = t : n[0] = t + 1;\n }\n return i;\n }\n const n = on(e), t = on(createSplitTuple);\n let o = ui, r = fi;\n return {\n tn(e) {\n const n = getOffsetSec(e - 86400), t = getOffsetSec(e + 86400), o = e - n, r = e - t;\n if (n === t) {\n return [ o ];\n }\n const i = getOffsetSec(o);\n return i === getOffsetSec(r) ? [ e - i ] : n > t ? [ o, r ] : [];\n },\n rn: getOffsetSec,\n O(e, i) {\n const a = clampNumber(e, o, r);\n let [s, c] = computePeriod(a);\n const u = ci * i, f = i < 0 ? () => c > o || (o = a, 0) : () => s < r || (r = a, \n 0);\n for (;f(); ) {\n const o = n(s), r = n(c);\n if (o !== r) {\n const n = t(s, c);\n pinch(n, o, r);\n const a = n[0];\n if ((compareNumbers(a, e) || 1) === i) {\n return a;\n }\n }\n s += u, c += u;\n }\n }\n };\n })((e => n => {\n const t = hashIntlFormatParts(e, n * Co);\n return isoArgsToEpochSec(parseIntlPartsYear(t), parseInt(t.month), parseInt(t.day), parseInt(t.hour), parseInt(t.minute), parseInt(t.second)) - n;\n })(e));\n }\n R(e) {\n return this.nn.rn((e => epochNanoToSecMod(e)[0])(e)) * Ro;\n }\n I(e) {\n const [n, t] = [ isoArgsToEpochSec((o = e).isoYear, o.isoMonth, o.isoDay, o.isoHour, o.isoMinute, o.isoSecond), o.isoMillisecond * Qe + o.isoMicrosecond * Yo + o.isoNanosecond ];\n var o;\n return this.nn.tn(n).map((e => checkEpochNanoInBounds(moveBigNano(Ge(e, Ro), t))));\n }\n O(e, n) {\n const [t, o] = epochNanoToSecMod(e), r = this.nn.O(t + (n > 0 || o ? 1 : 0), n);\n if (void 0 !== r) {\n return Ge(r, Ro);\n }\n }\n}\n\nconst mi = \"([+-])\", pi = \"(?:[.,](\\\\d{1,9}))?\", hi = `(?:(?:${mi}(\\\\d{6}))|(\\\\d{4}))-?(\\\\d{2})`, gi = \"(\\\\d{2})(?::?(\\\\d{2})(?::?(\\\\d{2})\" + pi + \")?)?\", Di = mi + gi, Ti = hi + \"-?(\\\\d{2})(?:[T ]\" + gi + \"(Z|\" + Di + \")?)?\", Ii = \"\\\\[(!?)([^\\\\]]*)\\\\]\", Mi = `((?:${Ii}){0,9})`, Ni = /*@__PURE__*/ createRegExp(hi + Mi), yi = /*@__PURE__*/ createRegExp(\"(?:--)?(\\\\d{2})-?(\\\\d{2})\" + Mi), vi = /*@__PURE__*/ createRegExp(Ti + Mi), Pi = /*@__PURE__*/ createRegExp(\"T?\" + gi + \"(?:\" + Di + \")?\" + Mi), Ei = /*@__PURE__*/ createRegExp(Di), Si = /*@__PURE__*/ new RegExp(Ii, \"g\"), Fi = /*@__PURE__*/ createRegExp(`${mi}?P(\\\\d+Y)?(\\\\d+M)?(\\\\d+W)?(\\\\d+D)?(?:T(?:(\\\\d+)${pi}H)?(?:(\\\\d+)${pi}M)?(?:(\\\\d+)${pi}S)?)?`), wi = /*@__PURE__*/ on((e => new en(br, {\n timeZone: e,\n era: \"short\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n}))), bi = /^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/, Oi = /[^\\w\\/:+-]+/, Bi = /^M(\\d{2})(L?)$/, ki = /*@__PURE__*/ on(createIntlCalendar), Ci = /*@__PURE__*/ on((e => new en(br, {\n calendar: e,\n timeZone: si,\n era: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n}))), Yi = {\n P(e, n, t) {\n const o = mt(t);\n let r, {years: i, months: a, weeks: s, days: c} = n;\n if (c += durationFieldsToBigNano(n, 5)[0], i || a) {\n r = ((e, n, t, o, r) => {\n let [i, a, s] = e.v(n);\n if (t) {\n const [n, o] = e.q(i, a);\n i += t, a = monthCodeNumberToMonth(n, o, e.L(i)), a = clampEntity(\"month\", a, 1, e.B(i), r);\n }\n return o && ([i, a] = e.un(i, a, o)), s = clampEntity(\"day\", s, 1, e.U(i, a), r), \n e.p(i, a, s);\n })(this, e, i, a, o);\n } else {\n if (!s && !c) {\n return e;\n }\n r = isoToEpochMilli(e);\n }\n if (void 0 === r) {\n throw new RangeError(Io);\n }\n return r += (7 * s + c) * ko, checkIsoDateInBounds(epochMilliToIso(r));\n },\n N(e, n, t) {\n if (t <= 7) {\n let o = 0, r = diffDays({\n ...e,\n ...Nt\n }, {\n ...n,\n ...Nt\n });\n return 7 === t && ([o, r] = divModTrunc(r, 7)), {\n ...pr,\n weeks: o,\n days: r\n };\n }\n const o = this.v(e), r = this.v(n);\n let [i, a, s] = ((e, n, t, o, r, i, a) => {\n let s = r - n, c = i - t, u = a - o;\n if (s || c) {\n const f = Math.sign(s || c);\n let l = e.U(r, i), d = 0;\n if (Math.sign(u) === -f) {\n const o = l;\n [r, i] = e.un(r, i, -f), s = r - n, c = i - t, l = e.U(r, i), d = f < 0 ? -o : l;\n }\n if (u = a - Math.min(o, l) + d, s) {\n const [o, a] = e.q(n, t), [u, l] = e.q(r, i);\n if (c = u - o || Number(l) - Number(a), Math.sign(c) === -f) {\n const t = f < 0 && -e.B(r);\n s = (r -= f) - n, c = i - monthCodeNumberToMonth(o, a, e.L(r)) + (t || e.B(r));\n }\n }\n }\n return [ s, c, u ];\n })(this, ...o, ...r);\n return 8 === t && (a += this.cn(i, o[0]), i = 0), {\n ...pr,\n years: i,\n months: a,\n days: s\n };\n },\n F(e, n) {\n const t = mt(n), o = refineYear(this, e), r = refineMonth(this, e, o, t), i = refineDay(this, e, r, o, t);\n return W(checkIsoDateInBounds(this.V(o, r, i)), this.id || l);\n },\n K(e, n) {\n const t = mt(n), o = refineYear(this, e), r = refineMonth(this, e, o, t);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(this.V(o, r, 1)), this.id || l);\n },\n _(e, n) {\n const t = mt(n);\n let o, r, i, a = void 0 !== e.eraYear || void 0 !== e.year ? refineYear(this, e) : void 0;\n const s = !this.id;\n if (void 0 === a && s && (a = Br), void 0 !== a) {\n const n = refineMonth(this, e, a, t);\n o = refineDay(this, e, n, a, t);\n const s = this.L(a);\n r = monthToMonthCodeNumber(n, s), i = n === s;\n } else {\n if (void 0 === e.monthCode) {\n throw new TypeError(co);\n }\n if ([r, i] = parseMonthCode(e.monthCode), this.id && this.id !== or && this.id !== rr) {\n if (this.id && \"coptic\" === computeCalendarIdBase(this.id) && 0 === t) {\n const n = i || 13 !== r ? 30 : 6;\n o = e.day, o = clampNumber(o, 1, n);\n } else if (this.id && \"chinese\" === computeCalendarIdBase(this.id) && 0 === t) {\n const n = !i || 1 !== r && 9 !== r && 10 !== r && 11 !== r && 12 !== r ? 30 : 29;\n o = e.day, o = clampNumber(o, 1, n);\n } else {\n o = e.day;\n }\n } else {\n o = refineDay(this, e, refineMonth(this, e, Br, t), Br, t);\n }\n }\n const c = this.G(r, i, o);\n if (!c) {\n throw new RangeError(\"Cannot guess year\");\n }\n const [u, f] = c;\n return createPlainMonthDaySlots(checkIsoDateInBounds(this.V(u, f, o)), this.id || l);\n },\n fields(e) {\n return getCalendarEraOrigins(this) && e.includes(\"year\") ? [ ...e, ...$o ] : e;\n },\n k(e, n) {\n const t = Object.assign(Object.create(null), e);\n return spliceFields(t, n, _o), getCalendarEraOrigins(this) && (spliceFields(t, n, Ho), \n this.id === rr && spliceFields(t, n, er, $o)), t;\n },\n inLeapYear(e) {\n const [n] = this.v(e);\n return this.sn(n);\n },\n monthsInYear(e) {\n const [n] = this.v(e);\n return this.B(n);\n },\n daysInMonth(e) {\n const [n, t] = this.v(e);\n return this.U(n, t);\n },\n daysInYear(e) {\n const [n] = this.v(e);\n return this.fn(n);\n },\n dayOfYear: computeNativeDayOfYear,\n era(e) {\n return this.hn(e)[0];\n },\n eraYear(e) {\n return this.hn(e)[1];\n },\n monthCode(e) {\n const [n, t] = this.v(e), [o, r] = this.q(n, t);\n return formatMonthCode(o, r);\n },\n dayOfWeek: computeIsoDayOfWeek,\n daysInWeek() {\n return 7;\n }\n}, Ri = {\n v: computeIsoDateParts,\n hn: computeIsoEraParts,\n q: computeIsoMonthCodeParts\n}, Zi = {\n dayOfYear: computeNativeDayOfYear,\n v: computeIsoDateParts,\n p: isoArgsToEpochMilli\n}, zi = /*@__PURE__*/ Object.assign({}, Zi, {\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n m(e) {\n function computeWeekShift(e) {\n return (7 - e < n ? 7 : 0) - e;\n }\n function computeWeeksInYear(e) {\n const n = computeIsoDaysInYear(f + e), t = e || 1, o = computeWeekShift(modFloor(a + n * t, 7));\n return c = (n + (o - s) * t) / 7;\n }\n const n = this.id ? 1 : 4, t = computeIsoDayOfWeek(e), o = this.dayOfYear(e), r = modFloor(t - 1, 7), i = o - 1, a = modFloor(r - i, 7), s = computeWeekShift(a);\n let c, u = Math.floor((i - s) / 7) + 1, f = e.isoYear;\n return u ? u > computeWeeksInYear(0) && (u = 1, f++) : (u = computeWeeksInYear(-1), \n f--), [ u, f, c ];\n }\n}), Ui = /*@__PURE__*/ Object.assign({}, Yi, zi, {\n v: computeIsoDateParts,\n hn: computeIsoEraParts,\n q: computeIsoMonthCodeParts,\n G(e, n) {\n if (!n) {\n return [ Br, e ];\n }\n },\n sn: computeIsoInLeapYear,\n L() {},\n B: computeIsoMonthsInYear,\n cn: e => e * kr,\n U: computeIsoDaysInMonth,\n fn: computeIsoDaysInYear,\n V: (e, n, t) => ({\n isoYear: e,\n isoMonth: n,\n isoDay: t\n }),\n p: isoArgsToEpochMilli,\n un: (e, n, t) => (e += divTrunc(t, kr), (n += modTrunc(t, kr)) < 1 ? (e--, n += kr) : n > kr && (e++, \n n -= kr), [ e, n ]),\n year(e) {\n return e.isoYear;\n },\n month(e) {\n return e.isoMonth;\n },\n day: e => e.isoDay\n}), Ai = {\n v: computeIntlDateParts,\n hn: computeIntlEraParts,\n q: computeIntlMonthCodeParts\n}, qi = {\n dayOfYear: computeNativeDayOfYear,\n v: computeIntlDateParts,\n p: computeIntlEpochMilli,\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n m() {\n return [];\n }\n}, Wi = /*@__PURE__*/ Object.assign({}, Yi, qi, {\n v: computeIntlDateParts,\n hn: computeIntlEraParts,\n q: computeIntlMonthCodeParts,\n G(e, n, t) {\n const o = this.id && \"chinese\" === computeCalendarIdBase(this.id) ? ((e, n, t) => {\n if (n) {\n switch (e) {\n case 1:\n return 1651;\n\n case 2:\n return t < 30 ? 1947 : 1765;\n\n case 3:\n return t < 30 ? 1966 : 1955;\n\n case 4:\n return t < 30 ? 1963 : 1944;\n\n case 5:\n return t < 30 ? 1971 : 1952;\n\n case 6:\n return t < 30 ? 1960 : 1941;\n\n case 7:\n return t < 30 ? 1968 : 1938;\n\n case 8:\n return t < 30 ? 1957 : 1718;\n\n case 9:\n return 1832;\n\n case 10:\n return 1870;\n\n case 11:\n return 1814;\n\n case 12:\n return 1890;\n }\n }\n return 1972;\n })(e, n, t) : Br;\n let [r, i, a] = computeIntlDateParts.call(this, {\n isoYear: o,\n isoMonth: kr,\n isoDay: 31\n });\n const s = computeIntlLeapMonth.call(this, r), c = i === s;\n 1 === (compareNumbers(e, monthToMonthCodeNumber(i, s)) || compareNumbers(Number(n), Number(c)) || compareNumbers(t, a)) && r--;\n for (let o = 0; o < 100; o++) {\n const i = r - o, a = computeIntlLeapMonth.call(this, i), s = monthCodeNumberToMonth(e, n, a);\n if (n === (s === a) && t <= computeIntlDaysInMonth.call(this, i, s)) {\n return [ i, s ];\n }\n }\n },\n sn(e) {\n const n = computeIntlDaysInYear.call(this, e);\n return n > computeIntlDaysInYear.call(this, e - 1) && n > computeIntlDaysInYear.call(this, e + 1);\n },\n L: computeIntlLeapMonth,\n B: computeIntlMonthsInYear,\n cn(e, n) {\n const t = n + e, o = Math.sign(e), r = o < 0 ? -1 : 0;\n let i = 0;\n for (let e = n; e !== t; e += o) {\n i += computeIntlMonthsInYear.call(this, e + r);\n }\n return i;\n },\n U: computeIntlDaysInMonth,\n fn: computeIntlDaysInYear,\n V(e, n, t) {\n return epochMilliToIso(computeIntlEpochMilli.call(this, e, n, t));\n },\n p: computeIntlEpochMilli,\n un(e, n, t) {\n if (t) {\n if (n += t, !Number.isSafeInteger(n)) {\n throw new RangeError(Io);\n }\n if (t < 0) {\n for (;n < 1; ) {\n n += computeIntlMonthsInYear.call(this, --e);\n }\n } else {\n let t;\n for (;n > (t = computeIntlMonthsInYear.call(this, e)); ) {\n n -= t, e++;\n }\n }\n }\n return [ e, n ];\n },\n year(e) {\n return this.h(e).year;\n },\n month(e) {\n const {year: n, o: t} = this.h(e), {u: o} = this.l(n);\n return o[t] + 1;\n },\n day(e) {\n return this.h(e).day;\n }\n}), ji = /*@__PURE__*/ createNativeOpsCreator(Ri, Ai), C = /*@__PURE__*/ createNativeOpsCreator(Ui, Wi), Li = {\n ...{\n era: toStringViaPrimitive,\n eraYear: toInteger,\n year: toInteger,\n month: toPositiveInteger,\n monthCode(e) {\n const n = toStringViaPrimitive(e);\n return parseMonthCode(n), n;\n },\n day: toPositiveInteger\n },\n .../*@__PURE__*/ wo(O, toInteger),\n .../*@__PURE__*/ wo(p, toStrictInteger),\n offset(e) {\n const n = toStringViaPrimitive(e);\n return parseOffsetNano(n), n;\n }\n}, xi = /*@__PURE__*/ Pt(remapProps, O, w), $i = /*@__PURE__*/ Pt(remapProps, w, O), Hi = \"numeric\", Gi = [ \"timeZoneName\" ], Vi = {\n month: Hi,\n day: Hi\n}, _i = {\n year: Hi,\n month: Hi\n}, Ji = /*@__PURE__*/ Object.assign({}, _i, {\n day: Hi\n}), Ki = {\n hour: Hi,\n minute: Hi,\n second: Hi\n}, Qi = /*@__PURE__*/ Object.assign({}, Ji, Ki), Xi = /*@__PURE__*/ Object.assign({}, Qi, {\n timeZoneName: \"short\"\n}), ea = /*@__PURE__*/ Object.keys(_i), na = /*@__PURE__*/ Object.keys(Vi), ta = /*@__PURE__*/ Object.keys(Ji), oa = /*@__PURE__*/ Object.keys(Ki), ra = [ \"dateStyle\" ], ia = /*@__PURE__*/ ea.concat(ra), aa = /*@__PURE__*/ na.concat(ra), sa = /*@__PURE__*/ ta.concat(ra, [ \"weekday\" ]), ca = /*@__PURE__*/ oa.concat([ \"dayPeriod\", \"timeStyle\", \"fractionalSecondDigits\" ]), ua = /*@__PURE__*/ sa.concat(ca), fa = /*@__PURE__*/ Gi.concat(ca), la = /*@__PURE__*/ Gi.concat(sa), da = /*@__PURE__*/ Gi.concat([ \"day\", \"weekday\" ], ca), ma = /*@__PURE__*/ Gi.concat([ \"year\", \"weekday\" ], ca), pa = /*@__PURE__*/ createOptionsTransformer(ua, Qi), ha = /*@__PURE__*/ createOptionsTransformer(ua, Xi), ga = /*@__PURE__*/ createOptionsTransformer(ua, Qi, Gi), Da = /*@__PURE__*/ createOptionsTransformer(sa, Ji, fa), Ta = /*@__PURE__*/ createOptionsTransformer(ca, Ki, la), Ia = /*@__PURE__*/ createOptionsTransformer(ia, _i, da), Ma = /*@__PURE__*/ createOptionsTransformer(aa, Vi, ma), Na = {}, ya = /*@__PURE__*/ new en(void 0, {\n calendar: l\n}).resolvedOptions().calendar === l, U = [ pa, I ], ot = [ ha, I, 0, (e, n) => {\n const t = e.timeZone;\n if (n && n.timeZone !== t) {\n throw new RangeError(mo);\n }\n return t;\n} ], X = [ ga, isoToEpochMilli ], _ = [ Da, isoToEpochMilli ], tt = [ Ta, e => isoTimeFieldsToNano(e) / Qe ], et = [ Ia, isoToEpochMilli, ya ], nt = [ Ma, isoToEpochMilli, ya ];\n\nlet va;\n\nexport { N as DurationBranding, Re as InstantBranding, G as PlainDateBranding, x as PlainDateTimeBranding, qt as PlainMonthDayBranding, ft as PlainTimeBranding, Ut as PlainYearMonthBranding, en as RawDateTimeFormat, z as ZonedDateTimeBranding, Y as absDuration, E as addDurations, Pt as bindArgs, K as compareDurations, Ke as compareInstants, te as compareIsoDateFields, Yt as compareIsoDateTimeFields, Dt as compareIsoTimeFields, Be as compareZonedDateTimes, Te as computeZonedHoursInDay, ve as computeZonedStartOfDay, j as constructDurationSlots, qe as constructInstantSlots, ue as constructPlainDateSlots, Zt as constructPlainDateTimeSlots, kt as constructPlainMonthDaySlots, ut as constructPlainTimeSlots, Qt as constructPlainYearMonthSlots, ye as constructZonedDateTimeSlots, Oe as createDurationSlots, an as createFormatForPrep, Q as createFormatPrepper, t as createGetterDescriptors, xe as createInstantSlots, r as createNameDescriptors, C as createNativeStandardOps, W as createPlainDateSlots, jt as createPlainDateTimeSlots, St as createPlainTimeSlots, n as createPropDescriptors, o as createStringTagDescriptors, _e as createZonedDateTimeSlots, _ as dateConfig, X as dateTimeConfig, Ee as diffInstants, It as diffPlainDateTimes, oe as diffPlainDates, it as diffPlainTimes, zt as diffPlainYearMonth, we as diffZonedDateTimes, p as durationFieldNamesAsc, A as durationWithFields, $e as epochMilliToInstant, He as epochNanoToInstant, b as forbiddenValueOf, k as formatDurationIso, ke as formatInstantIso, Se as formatOffsetNano, ce as formatPlainDateIso, Ft as formatPlainDateTimeIso, Jt as formatPlainMonthDayIso, ct as formatPlainTimeIso, Kt as formatPlainYearMonthIso, Fe as formatZonedDateTimeIso, Xe as getCurrentEpochNano, tn as getCurrentIsoDateTime, Ue as getCurrentTimeZoneId, y as getDurationBlank, I as getEpochMilli, v as getEpochNano, U as instantConfig, Je as instantToZonedDateTime, Ve as instantsEqual, i as invalidBag, c as invalidCalendar, a as invalidCallingContext, rn as invalidFormatType, F as invalidTimeZone, s as isObjectLike, l as isoCalendarId, Nt as isoTimeFieldDefaults, w as isoTimeFieldNamesAsc, g as mapPropNames, e as mapProps, on as memoize, ln as mismatchingFormatTypes, nt as monthDayConfig, Ye as moveInstant, ne as movePlainDate, wt as movePlainDateTime, at as movePlainTime, Gt as movePlainYearMonth, pe as moveZonedDateTime, Qe as nanoInMilli, B as negateDuration, Ge as numberToBigNano, f as parseCalendarId, R as parseDuration, We as parseInstant, de as parsePlainDate, Bt as parsePlainDateTime, xt as parsePlainMonthDay, ht as parsePlainTime, _t as parsePlainYearMonth, H as parseRelativeToSlots, Z as parseTimeZoneId, Ae as parseZonedDateTime, bt as plainDateTimeToZonedDateTime, gt as plainDateTimeWithFields, Ot as plainDateTimeWithPlainTime, Ct as plainDateTimesEqual, ie as plainDateToPlainDateTime, se as plainDateToPlainMonthDay, le as plainDateToPlainYearMonth, ae as plainDateToZonedDateTime, ee as plainDateWithFields, re as plainDatesEqual, Vt as plainMonthDayToPlainDate, Et as plainMonthDayWithFields, Lt as plainMonthDaysEqual, rt as plainTimeWithFields, st as plainTimesEqual, Ht as plainYearMonthToPlainDate, Wt as plainYearMonthWithFields, $t as plainYearMonthsEqual, nn as pluckProps, L as queryNativeTimeZone, Mt as refineCalendarId, Me as refineDirectionOptions, q as refineDurationBag, $ as refineMaybeZonedDateTimeBag, mt as refineOverflowOptions, me as refinePlainDateBag, At as refinePlainDateTimeBag, Rt as refinePlainMonthDayBag, Tt as refinePlainTimeBag, Xt as refinePlainYearMonthBag, Ze as refineTimeZoneId, Ne as refineZonedDateTimeBag, je as refineZonedFieldOptions, D as requireBoolean, T as requireInteger, S as requireIntegerOrUndefined, ze as requireNumberIsInteger, h as requirePositiveInteger, P as requirePositiveIntegerOrUndefined, m as requireString, d as requireStringOrUndefined, u as resolveCalendarId, M as resolveTimeZoneId, V as roundDuration, Le as roundInstant, vt as roundPlainDateTime, lt as roundPlainTime, Ie as roundZonedDateTime, pt as slotsWithCalendarId, Pe as slotsWithTimeZoneId, tt as timeConfig, O as timeFieldNamesAsc, J as totalDuration, et as yearMonthConfig, ot as zonedConfig, be as zonedDateTimeToInstant, fe as zonedDateTimeToPlainDate, yt as zonedDateTimeToPlainDateTime, dt as zonedDateTimeToPlainTime, De as zonedDateTimeWithFields, ge as zonedDateTimeWithPlainTime, Ce as zonedDateTimesEqual, he as zonedEpochSlotsToIso };\n","function createSlotClass(i, l, s, c, u) {\n function Class(...t) {\n if (!(this instanceof Class)) {\n throw new TypeError(a);\n }\n un(this, l(...t));\n }\n function bindMethod(t, e) {\n return Object.defineProperties((function(...e) {\n return t.call(this, getSpecificSlots(this), ...e);\n }), r(e));\n }\n function getSpecificSlots(t) {\n const e = cn(t);\n if (!e || e.branding !== i) {\n throw new TypeError(a);\n }\n return e;\n }\n return Object.defineProperties(Class.prototype, {\n ...t(e(bindMethod, s)),\n ...n(e(bindMethod, c)),\n ...o(\"Temporal.\" + i)\n }), Object.defineProperties(Class, {\n ...n(u),\n ...r(i)\n }), [ Class, t => {\n const e = Object.create(Class.prototype);\n return un(e, t), e;\n }, getSpecificSlots ];\n}\n\nfunction rejectInvalidBag(t) {\n if (cn(t) || void 0 !== t.calendar || void 0 !== t.timeZone) {\n throw new TypeError(i);\n }\n return t;\n}\n\nfunction getCalendarIdFromBag(t) {\n return extractCalendarIdFromBag(t) || l;\n}\n\nfunction extractCalendarIdFromBag(t) {\n const {calendar: e} = t;\n if (void 0 !== e) {\n return refineCalendarArg(e);\n }\n}\n\nfunction refineCalendarArg(t) {\n if (s(t)) {\n const {calendar: e} = cn(t) || {};\n if (!e) {\n throw new TypeError(c(t));\n }\n return e;\n }\n return (t => u(f(m(t))))(t);\n}\n\nfunction createCalendarGetters(t) {\n const e = {};\n for (const n in t) {\n e[n] = t => {\n const {calendar: e} = t;\n return C(e)[n](t);\n };\n }\n return e;\n}\n\nfunction neverValueOf() {\n throw new TypeError(b);\n}\n\nfunction refineTimeZoneArg(t) {\n if (s(t)) {\n const {timeZone: e} = cn(t) || {};\n if (!e) {\n throw new TypeError(F(t));\n }\n return e;\n }\n return (t => M(Z(m(t))))(t);\n}\n\nfunction toDurationSlots(t) {\n if (s(t)) {\n const e = cn(t);\n return e && e.branding === N ? e : q(t);\n }\n return R(t);\n}\n\nfunction refinePublicRelativeTo(t) {\n if (void 0 !== t) {\n if (s(t)) {\n const e = cn(t) || {};\n switch (e.branding) {\n case z:\n case G:\n return e;\n\n case x:\n return W(e);\n }\n const n = getCalendarIdFromBag(t);\n return {\n ...$(refineTimeZoneArg, L, C(n), t),\n calendar: n\n };\n }\n return H(t);\n }\n}\n\nfunction toPlainTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case ft:\n return mt(e), n;\n\n case x:\n return mt(e), St(n);\n\n case z:\n return mt(e), dt(L, n);\n }\n return Tt(t, e);\n }\n const n = ht(t);\n return mt(e), n;\n}\n\nfunction optionalToPlainTimeFields(t) {\n return void 0 === t ? void 0 : toPlainTimeSlots(t);\n}\n\nfunction toPlainDateTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case x:\n return mt(e), n;\n\n case G:\n return mt(e), jt({\n ...n,\n ...Nt\n });\n\n case z:\n return mt(e), yt(L, n);\n }\n return At(C(getCalendarIdFromBag(t)), t, e);\n }\n const n = Bt(t);\n return mt(e), n;\n}\n\nfunction toPlainMonthDaySlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n if (n && n.branding === qt) {\n return mt(e), n;\n }\n const o = extractCalendarIdFromBag(t);\n return Rt(C(o || l), !o, t, e);\n }\n const n = xt(C, t);\n return mt(e), n;\n}\n\nfunction toPlainYearMonthSlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n return n && n.branding === Ut ? (mt(e), n) : Xt(C(getCalendarIdFromBag(t)), t, e);\n }\n const n = _t(C, t);\n return mt(e), n;\n}\n\nfunction toPlainDateSlots(t, e) {\n if (s(t)) {\n const n = cn(t) || {};\n switch (n.branding) {\n case G:\n return mt(e), n;\n\n case x:\n return mt(e), W(n);\n\n case z:\n return mt(e), fe(L, n);\n }\n return me(C(getCalendarIdFromBag(t)), t, e);\n }\n const n = de(t);\n return mt(e), n;\n}\n\nfunction toZonedDateTimeSlots(t, e) {\n if (s(t)) {\n const n = cn(t);\n if (n && n.branding === z) {\n return je(e), n;\n }\n const o = getCalendarIdFromBag(t);\n return Ne(refineTimeZoneArg, L, C(o), o, t, e);\n }\n return Ae(t, e);\n}\n\nfunction adaptDateMethods(t) {\n return e((t => e => t(slotsToIso(e))), t);\n}\n\nfunction slotsToIso(t) {\n return he(t, L);\n}\n\nfunction toInstantSlots(t) {\n if (s(t)) {\n const e = cn(t);\n if (e) {\n switch (e.branding) {\n case Re:\n return e;\n\n case z:\n return xe(e.epochNanoseconds);\n }\n }\n }\n return We(t);\n}\n\nfunction toTemporalInstant() {\n const t = Date.prototype.valueOf.call(this);\n return Kn(xe(Ge(ze(t), Qe)));\n}\n\nfunction createDateTimeFormatClass() {\n function DateTimeFormatFunc(t, e) {\n return new DateTimeFormatNew(t, e);\n }\n function DateTimeFormatNew(t, e = Object.create(null)) {\n to.set(this, ((t, e) => {\n const n = new en(t, e), o = n.resolvedOptions(), r = o.locale, a = nn(Object.keys(e), o), i = on(createFormatPrepperForBranding), prepFormat = (t, ...e) => {\n if (t) {\n if (2 !== e.length) {\n throw new TypeError(ln);\n }\n for (const t of e) {\n if (void 0 === t) {\n throw new TypeError(ln);\n }\n }\n }\n t || void 0 !== e[0] || (e = []);\n const o = e.map((t => cn(t) || Number(t)));\n let l, s = 0;\n for (const t of o) {\n const e = \"object\" == typeof t ? t.branding : void 0;\n if (s++ && e !== l) {\n throw new TypeError(ln);\n }\n l = e;\n }\n return l ? i(l)(r, a, ...o) : [ n, ...o ];\n };\n return prepFormat.X = n, prepFormat;\n })(t, e));\n }\n const t = en.prototype, e = Object.getOwnPropertyDescriptors(t), n = Object.getOwnPropertyDescriptors(en);\n for (const t in e) {\n const n = e[t], o = t.startsWith(\"format\") && createFormatMethod(t);\n \"function\" == typeof n.value ? n.value = \"constructor\" === t ? DateTimeFormatFunc : o || createProxiedMethod(t) : o && (n.get = function() {\n if (!to.has(this)) {\n throw new TypeError(a);\n }\n return (...t) => o.apply(this, t);\n }, Object.defineProperties(n.get, r(`get ${t}`)));\n }\n return n.prototype.value = DateTimeFormatNew.prototype = Object.create({}, e), Object.defineProperties(DateTimeFormatFunc, n), \n DateTimeFormatFunc;\n}\n\nfunction createFormatMethod(t) {\n return Object.defineProperties((function(...e) {\n const n = to.get(this), [o, ...r] = n(t.includes(\"Range\"), ...e);\n return o[t](...r);\n }), r(t));\n}\n\nfunction createProxiedMethod(t) {\n return Object.defineProperties((function(...e) {\n return to.get(this).X[t](...e);\n }), r(t));\n}\n\nfunction createFormatPrepperForBranding(t) {\n const e = Cn[t];\n if (!e) {\n throw new TypeError(rn(t));\n }\n return Q(e, on(an), 1);\n}\n\nimport { createGetterDescriptors as t, mapProps as e, createPropDescriptors as n, createStringTagDescriptors as o, createNameDescriptors as r, invalidCallingContext as a, invalidBag as i, isoCalendarId as l, isObjectLike as s, invalidCalendar as c, resolveCalendarId as u, parseCalendarId as f, requireString as m, requireStringOrUndefined as d, requireIntegerOrUndefined as S, requireInteger as T, requirePositiveInteger as h, requireBoolean as D, requirePositiveIntegerOrUndefined as P, mapPropNames as g, durationFieldNamesAsc as p, timeFieldNamesAsc as O, isoTimeFieldNamesAsc as w, getEpochMilli as I, getEpochNano as v, createNativeStandardOps as C, forbiddenValueOf as b, invalidTimeZone as F, resolveTimeZoneId as M, parseTimeZoneId as Z, getDurationBlank as y, constructDurationSlots as j, DurationBranding as N, durationWithFields as A, negateDuration as B, absDuration as Y, addDurations as E, queryNativeTimeZone as L, roundDuration as V, totalDuration as J, formatDurationIso as k, refineDurationBag as q, parseDuration as R, PlainDateTimeBranding as x, createPlainDateSlots as W, PlainDateBranding as G, ZonedDateTimeBranding as z, refineMaybeZonedDateTimeBag as $, parseRelativeToSlots as H, compareDurations as K, createFormatPrepper as Q, instantConfig as U, dateTimeConfig as X, dateConfig as _, timeConfig as tt, yearMonthConfig as et, monthDayConfig as nt, zonedConfig as ot, plainTimeWithFields as rt, movePlainTime as at, diffPlainTimes as it, roundPlainTime as lt, plainTimesEqual as st, formatPlainTimeIso as ct, constructPlainTimeSlots as ut, PlainTimeBranding as ft, refineOverflowOptions as mt, zonedDateTimeToPlainTime as dt, createPlainTimeSlots as St, refinePlainTimeBag as Tt, parsePlainTime as ht, compareIsoTimeFields as Dt, bindArgs as Pt, plainDateTimeWithFields as gt, slotsWithCalendarId as pt, plainDateTimeWithPlainTime as Ot, movePlainDateTime as wt, diffPlainDateTimes as It, roundPlainDateTime as vt, plainDateTimesEqual as Ct, plainDateTimeToZonedDateTime as bt, formatPlainDateTimeIso as Ft, refineCalendarId as Mt, constructPlainDateTimeSlots as Zt, zonedDateTimeToPlainDateTime as yt, createPlainDateTimeSlots as jt, isoTimeFieldDefaults as Nt, refinePlainDateTimeBag as At, parsePlainDateTime as Bt, compareIsoDateTimeFields as Yt, plainMonthDayWithFields as Et, plainMonthDaysEqual as Lt, plainMonthDayToPlainDate as Vt, formatPlainMonthDayIso as Jt, constructPlainMonthDaySlots as kt, PlainMonthDayBranding as qt, refinePlainMonthDayBag as Rt, parsePlainMonthDay as xt, plainYearMonthWithFields as Wt, movePlainYearMonth as Gt, diffPlainYearMonth as zt, plainYearMonthsEqual as $t, plainYearMonthToPlainDate as Ht, formatPlainYearMonthIso as Kt, constructPlainYearMonthSlots as Qt, PlainYearMonthBranding as Ut, refinePlainYearMonthBag as Xt, parsePlainYearMonth as _t, compareIsoDateFields as te, plainDateWithFields as ee, movePlainDate as ne, diffPlainDates as oe, plainDatesEqual as re, plainDateToZonedDateTime as ae, plainDateToPlainDateTime as ie, plainDateToPlainYearMonth as le, plainDateToPlainMonthDay as se, formatPlainDateIso as ce, constructPlainDateSlots as ue, zonedDateTimeToPlainDate as fe, refinePlainDateBag as me, parsePlainDate as de, formatOffsetNano as Se, computeZonedHoursInDay as Te, zonedEpochSlotsToIso as he, zonedDateTimeWithFields as De, slotsWithTimeZoneId as Pe, zonedDateTimeWithPlainTime as ge, moveZonedDateTime as pe, createDurationSlots as Oe, diffZonedDateTimes as we, roundZonedDateTime as Ie, computeZonedStartOfDay as ve, zonedDateTimesEqual as Ce, zonedDateTimeToInstant as be, formatZonedDateTimeIso as Fe, refineDirectionOptions as Me, refineTimeZoneId as Ze, constructZonedDateTimeSlots as ye, refineZonedFieldOptions as je, refineZonedDateTimeBag as Ne, parseZonedDateTime as Ae, compareZonedDateTimes as Be, moveInstant as Ye, diffInstants as Ee, roundInstant as Le, instantsEqual as Ve, instantToZonedDateTime as Je, formatInstantIso as ke, constructInstantSlots as qe, InstantBranding as Re, createInstantSlots as xe, parseInstant as We, numberToBigNano as Ge, requireNumberIsInteger as ze, epochMilliToInstant as $e, epochNanoToInstant as He, compareInstants as Ke, nanoInMilli as Qe, getCurrentTimeZoneId as Ue, getCurrentEpochNano as Xe, createZonedDateTimeSlots as _e, getCurrentIsoDateTime as tn, RawDateTimeFormat as en, pluckProps as nn, memoize as on, invalidFormatType as rn, createFormatForPrep as an, mismatchingFormatTypes as ln } from \"./internal.js\";\n\nconst sn = /*@__PURE__*/ new WeakMap, cn = /*@__PURE__*/ sn.get.bind(sn), un = /*@__PURE__*/ sn.set.bind(sn), fn = {\n era: d,\n eraYear: S,\n year: T,\n month: h,\n daysInMonth: h,\n daysInYear: h,\n inLeapYear: D,\n monthsInYear: h\n}, mn = {\n monthCode: m\n}, dn = {\n day: h\n}, Sn = {\n dayOfWeek: h,\n dayOfYear: h,\n weekOfYear: P,\n yearOfWeek: S,\n daysInWeek: h\n}, Tn = /*@__PURE__*/ createCalendarGetters(/*@__PURE__*/ Object.assign({}, fn, mn, dn, Sn)), hn = /*@__PURE__*/ createCalendarGetters({\n ...fn,\n ...mn\n}), Dn = /*@__PURE__*/ createCalendarGetters({\n ...mn,\n ...dn\n}), Pn = {\n calendarId: t => t.calendar\n}, gn = /*@__PURE__*/ g((t => e => e[t]), p.concat(\"sign\")), pn = /*@__PURE__*/ g(((t, e) => t => t[w[e]]), O), On = {\n epochMilliseconds: I,\n epochNanoseconds: v\n}, [wn, In, vn] = createSlotClass(N, j, {\n ...gn,\n blank: y\n}, {\n with: (t, e) => In(A(t, e)),\n negated: t => In(B(t)),\n abs: t => In(Y(t)),\n add: (t, e, n) => In(E(refinePublicRelativeTo, C, L, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => In(E(refinePublicRelativeTo, C, L, 1, t, toDurationSlots(e), n)),\n round: (t, e) => In(V(refinePublicRelativeTo, C, L, t, e)),\n total: (t, e) => J(refinePublicRelativeTo, C, L, t, e),\n toLocaleString(t, e, n) {\n return Intl.DurationFormat ? new Intl.DurationFormat(e, n).format(this) : k(t);\n },\n toString: k,\n toJSON: t => k(t),\n valueOf: neverValueOf\n}, {\n from: t => In(toDurationSlots(t)),\n compare: (t, e, n) => K(refinePublicRelativeTo, C, L, toDurationSlots(t), toDurationSlots(e), n)\n}), Cn = {\n Instant: U,\n PlainDateTime: X,\n PlainDate: _,\n PlainTime: tt,\n PlainYearMonth: et,\n PlainMonthDay: nt\n}, bn = /*@__PURE__*/ Q(U), Fn = /*@__PURE__*/ Q(ot), Mn = /*@__PURE__*/ Q(X), Zn = /*@__PURE__*/ Q(_), yn = /*@__PURE__*/ Q(tt), jn = /*@__PURE__*/ Q(et), Nn = /*@__PURE__*/ Q(nt), [An, Bn] = createSlotClass(ft, ut, pn, {\n with(t, e, n) {\n return Bn(rt(this, rejectInvalidBag(e), n));\n },\n add: (t, e) => Bn(at(0, t, toDurationSlots(e))),\n subtract: (t, e) => Bn(at(1, t, toDurationSlots(e))),\n until: (t, e, n) => In(it(0, t, toPlainTimeSlots(e), n)),\n since: (t, e, n) => In(it(1, t, toPlainTimeSlots(e), n)),\n round: (t, e) => Bn(lt(t, e)),\n equals: (t, e) => st(t, toPlainTimeSlots(e)),\n toLocaleString(t, e, n) {\n const [o, r] = yn(e, n, t);\n return o.format(r);\n },\n toString: ct,\n toJSON: t => ct(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Bn(toPlainTimeSlots(t, e)),\n compare: (t, e) => Dt(toPlainTimeSlots(t), toPlainTimeSlots(e))\n}), [Yn, En] = createSlotClass(x, Pt(Zt, Mt), {\n ...Pn,\n ...Tn,\n ...pn\n}, {\n with: (t, e, n) => En(gt(C, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => En(pt(t, refineCalendarArg(e))),\n withPlainTime: (t, e) => En(Ot(t, optionalToPlainTimeFields(e))),\n add: (t, e, n) => En(wt(C, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => En(wt(C, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(It(C, 0, t, toPlainDateTimeSlots(e), n)),\n since: (t, e, n) => In(It(C, 1, t, toPlainDateTimeSlots(e), n)),\n round: (t, e) => En(vt(t, e)),\n equals: (t, e) => Ct(t, toPlainDateTimeSlots(e)),\n toZonedDateTime: (t, e, n) => $n(bt(L, t, refineTimeZoneArg(e), n)),\n toPlainDate: t => Wn(W(t)),\n toPlainTime: t => Bn(St(t)),\n toLocaleString(t, e, n) {\n const [o, r] = Mn(e, n, t);\n return o.format(r);\n },\n toString: Ft,\n toJSON: t => Ft(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => En(toPlainDateTimeSlots(t, e)),\n compare: (t, e) => Yt(toPlainDateTimeSlots(t), toPlainDateTimeSlots(e))\n}), [Ln, Vn, Jn] = createSlotClass(qt, Pt(kt, Mt), {\n ...Pn,\n ...Dn\n}, {\n with: (t, e, n) => Vn(Et(C, t, rejectInvalidBag(e), n)),\n equals: (t, e) => Lt(t, toPlainMonthDaySlots(e)),\n toPlainDate(t, e) {\n return Wn(Vt(C, t, this, e));\n },\n toLocaleString(t, e, n) {\n const [o, r] = Nn(e, n, t);\n return o.format(r);\n },\n toString: Jt,\n toJSON: t => Jt(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Vn(toPlainMonthDaySlots(t, e))\n}), [kn, qn, Rn] = createSlotClass(Ut, Pt(Qt, Mt), {\n ...Pn,\n ...hn\n}, {\n with: (t, e, n) => qn(Wt(C, t, rejectInvalidBag(e), n)),\n add: (t, e, n) => qn(Gt(C, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => qn(Gt(C, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(zt(C, 0, t, toPlainYearMonthSlots(e), n)),\n since: (t, e, n) => In(zt(C, 1, t, toPlainYearMonthSlots(e), n)),\n equals: (t, e) => $t(t, toPlainYearMonthSlots(e)),\n toPlainDate(t, e) {\n return Wn(Ht(C, t, this, e));\n },\n toLocaleString(t, e, n) {\n const [o, r] = jn(e, n, t);\n return o.format(r);\n },\n toString: Kt,\n toJSON: t => Kt(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => qn(toPlainYearMonthSlots(t, e)),\n compare: (t, e) => te(toPlainYearMonthSlots(t), toPlainYearMonthSlots(e))\n}), [xn, Wn, Gn] = createSlotClass(G, Pt(ue, Mt), {\n ...Pn,\n ...Tn\n}, {\n with: (t, e, n) => Wn(ee(C, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => Wn(pt(t, refineCalendarArg(e))),\n add: (t, e, n) => Wn(ne(C, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => Wn(ne(C, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(oe(C, 0, t, toPlainDateSlots(e), n)),\n since: (t, e, n) => In(oe(C, 1, t, toPlainDateSlots(e), n)),\n equals: (t, e) => re(t, toPlainDateSlots(e)),\n toZonedDateTime(t, e) {\n const n = s(e) ? e : {\n timeZone: e\n };\n return $n(ae(refineTimeZoneArg, toPlainTimeSlots, L, t, n));\n },\n toPlainDateTime: (t, e) => En(ie(t, optionalToPlainTimeFields(e))),\n toPlainYearMonth(t) {\n return qn(le(C, t, this));\n },\n toPlainMonthDay(t) {\n return Vn(se(C, t, this));\n },\n toLocaleString(t, e, n) {\n const [o, r] = Zn(e, n, t);\n return o.format(r);\n },\n toString: ce,\n toJSON: t => ce(t),\n valueOf: neverValueOf\n}, {\n from: (t, e) => Wn(toPlainDateSlots(t, e)),\n compare: (t, e) => te(toPlainDateSlots(t), toPlainDateSlots(e))\n}), [zn, $n] = createSlotClass(z, Pt(ye, Mt, Ze), {\n ...On,\n ...Pn,\n ...adaptDateMethods(Tn),\n ...adaptDateMethods(pn),\n offset: t => Se(slotsToIso(t).offsetNanoseconds),\n offsetNanoseconds: t => slotsToIso(t).offsetNanoseconds,\n timeZoneId: t => t.timeZone,\n hoursInDay: t => Te(L, t)\n}, {\n with: (t, e, n) => $n(De(C, L, t, rejectInvalidBag(e), n)),\n withCalendar: (t, e) => $n(pt(t, refineCalendarArg(e))),\n withTimeZone: (t, e) => $n(Pe(t, refineTimeZoneArg(e))),\n withPlainTime: (t, e) => $n(ge(L, t, optionalToPlainTimeFields(e))),\n add: (t, e, n) => $n(pe(C, L, 0, t, toDurationSlots(e), n)),\n subtract: (t, e, n) => $n(pe(C, L, 1, t, toDurationSlots(e), n)),\n until: (t, e, n) => In(Oe(we(C, L, 0, t, toZonedDateTimeSlots(e), n))),\n since: (t, e, n) => In(Oe(we(C, L, 1, t, toZonedDateTimeSlots(e), n))),\n round: (t, e) => $n(Ie(L, t, e)),\n startOfDay: t => $n(ve(L, t)),\n equals: (t, e) => Ce(t, toZonedDateTimeSlots(e)),\n toInstant: t => Kn(be(t)),\n toPlainDateTime: t => En(yt(L, t)),\n toPlainDate: t => Wn(fe(L, t)),\n toPlainTime: t => Bn(dt(L, t)),\n toLocaleString(t, e, n = {}) {\n const [o, r] = Fn(e, n, t);\n return o.format(r);\n },\n toString: (t, e) => Fe(L, t, e),\n toJSON: t => Fe(L, t),\n valueOf: neverValueOf,\n getTimeZoneTransition(t, e) {\n const {timeZone: n, epochNanoseconds: o} = t, r = Me(e), a = L(n).O(o, r);\n return a ? $n({\n ...t,\n epochNanoseconds: a\n }) : null;\n }\n}, {\n from: (t, e) => $n(toZonedDateTimeSlots(t, e)),\n compare: (t, e) => Be(toZonedDateTimeSlots(t), toZonedDateTimeSlots(e))\n}), [Hn, Kn, Qn] = createSlotClass(Re, qe, On, {\n add: (t, e) => Kn(Ye(0, t, toDurationSlots(e))),\n subtract: (t, e) => Kn(Ye(1, t, toDurationSlots(e))),\n until: (t, e, n) => In(Ee(0, t, toInstantSlots(e), n)),\n since: (t, e, n) => In(Ee(1, t, toInstantSlots(e), n)),\n round: (t, e) => Kn(Le(t, e)),\n equals: (t, e) => Ve(t, toInstantSlots(e)),\n toZonedDateTimeISO: (t, e) => $n(Je(t, refineTimeZoneArg(e))),\n toLocaleString(t, e, n) {\n const [o, r] = bn(e, n, t);\n return o.format(r);\n },\n toString: (t, e) => ke(refineTimeZoneArg, L, t, e),\n toJSON: t => ke(refineTimeZoneArg, L, t),\n valueOf: neverValueOf\n}, {\n from: t => Kn(toInstantSlots(t)),\n fromEpochMilliseconds: t => Kn($e(t)),\n fromEpochNanoseconds: t => Kn(He(t)),\n compare: (t, e) => Ke(toInstantSlots(t), toInstantSlots(e))\n}), Un = /*@__PURE__*/ Object.defineProperties({}, {\n ...o(\"Temporal.Now\"),\n ...n({\n timeZoneId: () => Ue(),\n instant: () => Kn(xe(Xe())),\n zonedDateTimeISO: (t = Ue()) => $n(_e(Xe(), refineTimeZoneArg(t), l)),\n plainDateTimeISO: (t = Ue()) => En(jt(tn(L(refineTimeZoneArg(t))), l)),\n plainDateISO: (t = Ue()) => Wn(W(tn(L(refineTimeZoneArg(t))), l)),\n plainTimeISO: (t = Ue()) => Bn(St(tn(L(refineTimeZoneArg(t)))))\n })\n}), Xn = /*@__PURE__*/ Object.defineProperties({}, {\n ...o(\"Temporal\"),\n ...n({\n PlainYearMonth: kn,\n PlainMonthDay: Ln,\n PlainDate: xn,\n PlainTime: An,\n PlainDateTime: Yn,\n ZonedDateTime: zn,\n Instant: Hn,\n Duration: wn,\n Now: Un\n })\n}), _n = /*@__PURE__*/ createDateTimeFormatClass(), to = /*@__PURE__*/ new WeakMap, eo = /*@__PURE__*/ Object.defineProperties(Object.create(Intl), n({\n DateTimeFormat: _n\n}));\n\nexport { _n as DateTimeFormat, eo as IntlExtended, Xn as Temporal, toTemporalInstant };\n","/**\n * Translate an expression using the object bbn.lng\n *\n * @param {String} st\n * @param {...String | Number} args\n * @returns {String}\n */\nexport default function _(st, ...args) {\n let res = bbn.lng[st] || st;\n if (args.length) {\n let i = 0;\n return res.replace(/\\%([d|s])/g, (match, type) => {\n let tmp = args[i++];\n if (!tmp) {\n tmp = type === 'd' ? 0 : '';\n }\n const curType = typeof tmp;\n if ((type === 'd') && (curType !== 'number')) {\n tmp = parseFloat(tmp);\n if (isNaN(tmp)) {\n tmp = 0;\n }\n }\n else if ((type === 's') && (curType !== 'string')) {\n tmp = '' + tmp;\n }\n return tmp;\n });\n }\n return res;\n}\n;\n","export default {\n /* User-defined languages elements */\n select_unselect_all: \"Select/Clear all\",\n select_all: \"Select all\",\n search: 'Search',\n loading: 'Loading...',\n choose: 'Choose',\n error: 'Error',\n server_response: 'Server response',\n reload: 'Reload',\n errorText: 'Something went wrong',\n closeAll: \"Close all\",\n closeOthers: \"Close others\",\n pin: \"Pin\",\n arrange: \"Arrange\",\n cancel: \"Cancel\",\n unpin: \"Unpin\",\n yes: \"Yes\",\n no: \"No\",\n unknown: \"Unknown\",\n untitled: \"Untitled\",\n confirmation: \"Confirmation\",\n Today: \"Today\",\n Tomorrow: \"Tomorrow\",\n Yesterday: \"Yesterday\"\n};\n","export default {\n loggers: {\n _num: 0\n },\n /* Usable datatypes through Ajax function */\n datatypes: ['xml', 'html', 'script', 'json', 'jsonp', 'text', 'blob'],\n /* The default value used by the function shorten */\n shortenLen: 30,\n /* Categorizing keyboard map */\n keys: {\n upDown: [33, 34, 35, 36, 38, 40],\n leftRight: [36, 35, 37, 39],\n dels: [8, 46, 45],\n confirm: [13, 9],\n alt: [20, 16, 17, 18, 144],\n numbers: [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105],\n numsigns: [109, 110, 189, 190]\n },\n comparators: [\">=\", \"<=\", \">\", \"<\", \"=\"],\n operators: [\"+\", \"-\", \"/\", \"*\"],\n tags: ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'slot', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr'],\n colors: {\n darkgrey: '#5a6a62',\n black: '#000000',\n anthracite: '#454545',\n grey: '#d3d3d3',\n white: '#ffffff',\n beige: '#fdfdfd',\n lightgrey: '#dcdcdc',\n pastelblue: '#ddebf6',\n cyan: '#00c8f8',\n blue: '#6e9ecf',\n indigo: '#3f51b5',\n navy: '#354458',\n webblue: '#2196f3',\n teal: '#009688',\n turquoise: '#1fda9a',\n pastelgreen: '#e2efda',\n palegreen: '#ccffcc',\n green: '#00a03e',\n olive: '#92b06a',\n pastelorange: '#fff2cc',\n yellow: '#fdf200',\n orange: '#ff9900',\n pink: '#eb65a0',\n purple: '#a333c8',\n red: '#db3340',\n brown: '#8c6954'\n },\n reserved: ['abstract', 'boolean', 'break', 'byte', 'case', 'catch', 'char', 'class', 'continue', 'const', 'debugger', 'default', 'delete', 'do', 'double', 'else', 'enum', 'export', 'extends', 'false', 'final', 'finally', 'float', 'for', 'function', 'goto', 'if', 'implements', 'import', 'in', 'instanceof', 'int', 'interface', 'long', /*'native', */ 'new', 'null', 'package', /*'private', 'protected', 'public', */ 'return', /*'short', 'static',*/ 'super', 'switch', 'synchronized', 'this', 'throw', 'throws', 'transient', 'true', 'try', 'typeof', 'var', 'void', 'while', 'with'],\n mockText: \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n regexp: {\n url: new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.?)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'),\n ip: /^((\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])$/,\n hostname: /^[a-z\\d]([a-z\\d-]{0,61}[a-z\\d])?(\\.[a-z\\d]([a-z\\d-]{0,61}[a-z\\d])?)*$/i,\n }\n};\n","export default {\n siteTitle: window.document.title,\n /* This variable should be set to true in debugging mode only */\n logging: false,\n /* Address of the CDN (where this file should be hosted) */\n cdn: '',\n /* Default language */\n lang: 'en',\n host: window.location.protocol + '//' + window.location.hostname,\n url: window.location.href,\n old_path: null,\n /* True when non asynchronous Ajax loads */\n loading: false,\n _enumerated: [],\n get isEnumerating() {\n return this._enumerated.length > 0;\n },\n /* Window width */\n width: 0,\n /* Window height */\n height: 0,\n /* Element currently focused (Element object) */\n focused: false,\n /* Last time user has been active */\n last_focus: (new Date()).getTime(),\n /* Sleep mode (tab or window unfocused */\n sleep: false,\n theme: 'dark',\n /**\n * @var bbn.env.loaders Object where the props are MD5 of data and url while the values are the requests,\n * for preventing the same call to be made at the same time\n **/\n loaders: [],\n loadersHistory: [],\n maxLoadersHistory: 50,\n /* bbn.env.params is an array of each element of the path */\n resizeTimer: false,\n hashChanged: 0,\n params: [],\n isInit: false,\n isFocused: false,\n isVisible: !document.hidden,\n timeoff: Math.round((new Date()).getTime() / 1000),\n loggingLevel: 5,\n ignoreUnload: false,\n historyDisabled: false,\n nav: 'ajax',\n online: window.navigator.onLine\n};\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nclass Cancel extends Error {\n constructor(message) {\n super(message || 'Request canceled');\n this.name = 'Cancel';\n this.__BBN_CANCEL__ = true;\n }\n}\nconst parseXhrHeaders = (raw) => {\n const headers = {};\n if (!raw)\n return headers;\n raw.trim().split(/[\\r\\n]+/).forEach(line => {\n const parts = line.split(': ');\n const key = parts.shift();\n const value = parts.join(': ');\n if (key) {\n headers[key.toLowerCase()] = value;\n }\n });\n return headers;\n};\nconst methodsWithBody = ['POST', 'PUT', 'PATCH', 'DELETE'];\nconst buildURL = (url, params) => {\n if (!params)\n return url;\n const usp = new URLSearchParams(params).toString();\n return usp ? url + (url.includes('?') ? '&' : '?') + usp : url;\n};\nconst normalizeDataAndHeaders = (data, headersObj) => {\n const headers = new Headers(headersObj || {});\n let body = data;\n if (data != null && !(data instanceof FormData) && typeof data === 'object') {\n headers.set('Content-Type', 'application/json');\n body = JSON.stringify(data);\n }\n return { body, headers };\n};\nconst fetchRequest = (method, url, config = {}, aborter) => {\n const fetchConfig = {\n method,\n headers: new Headers(config.headers || {}),\n signal: aborter === null || aborter === void 0 ? void 0 : aborter.signal,\n };\n const hasBody = methodsWithBody.includes(method.toUpperCase());\n if (config.data != null && hasBody) {\n // You can get fancier here (JSON, FormData, etc.)\n bbn.fn.log('DATA', config.data);\n if (typeof config.data === 'object' && !(config.data instanceof FormData)) {\n fetchConfig.headers.set('Content-Type', 'application/json');\n fetchConfig.body = JSON.stringify(config.data);\n }\n else {\n fetchConfig.body = config.data;\n }\n }\n // Add query params support if needed\n if (config.params) {\n const usp = new URLSearchParams(config.params).toString();\n url += (url.includes('?') ? '&' : '?') + usp;\n }\n const fetchPromise = fetch(url, fetchConfig).then((res) => __awaiter(void 0, void 0, void 0, function* () {\n let data;\n const contentType = res.headers.get('content-type') || '';\n try {\n if (contentType.includes('application/json')) {\n data = yield res.json();\n }\n else if (contentType.startsWith('text/')) {\n data = yield res.text();\n }\n else if (contentType.includes(\"multipart/\")) {\n data = yield res.arrayBuffer();\n }\n else {\n data = yield res.blob();\n }\n }\n catch (_a) {\n data = yield res.text();\n }\n const response = {\n data,\n status: res.status,\n statusText: res.statusText,\n headers: Object.fromEntries(res.headers.entries()),\n config,\n request: res,\n };\n if (!res.ok) {\n // axios rejects for 4xx/5xx\n const error = new Error('Request failed with status code ' + res.status);\n error.response = response;\n error.config = config;\n error.request = res;\n throw error;\n }\n return response;\n })).catch((err) => {\n if (err.name === 'AbortError') {\n throw new Cancel('Request canceled');\n }\n throw err;\n });\n // axios usually gives you the cancel token separately;\n // here we return both for convenience.\n fetchPromise.cancel = () => aborter.abort();\n return fetchPromise;\n};\nconst xhrRequest = (method, url, config = {}, aborter) => {\n const xhr = new XMLHttpRequest();\n const hasBody = methodsWithBody.includes(method.toUpperCase());\n const promise = new Promise((resolve, reject) => {\n xhr.open(method.toUpperCase(), url, true);\n // Set headers\n const { body, headers } = normalizeDataAndHeaders(config.data, config.headers);\n headers.forEach((value, key) => {\n xhr.setRequestHeader(key, value);\n });\n // Upload progress\n if (typeof config.onUploadProgress === 'function' && xhr.upload) {\n xhr.upload.addEventListener('progress', (event) => {\n const total = event.lengthComputable ? event.total : undefined;\n config.onUploadProgress({\n loaded: event.loaded,\n total,\n progress: total ? event.loaded / total : undefined\n });\n });\n }\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4)\n return;\n const headersObj = parseXhrHeaders(xhr.getAllResponseHeaders());\n const status = xhr.status === 1223 ? 204 : xhr.status; // IE fix, mostly irrelevant now\n const statusText = xhr.statusText || '';\n let data = xhr.responseText;\n const contentType = headersObj['content-type'] || '';\n if (contentType.includes('application/json')) {\n try {\n data = JSON.parse(xhr.responseText);\n }\n catch (e) {\n // leave as text if JSON parse fails\n }\n }\n const response = {\n data,\n status,\n statusText,\n headers: headersObj,\n config,\n request: xhr\n };\n if (status >= 200 && status < 300) {\n resolve(response);\n }\n else {\n const err = new Error('Request failed with status code ' + status);\n err.response = response;\n err.config = config;\n err.request = xhr;\n reject(err);\n }\n };\n xhr.onerror = () => {\n const err = new Error('Network Error');\n err.config = config;\n err.request = xhr;\n reject(err);\n };\n xhr.onabort = () => {\n reject(new Cancel('Request canceled'));\n };\n if (hasBody) {\n xhr.send(body);\n }\n else {\n xhr.send();\n }\n });\n promise.cancel = () => xhr.abort();\n return promise;\n};\n/**\n * Upload a file in chunks with progress and cancel support.\n *\n * @param {Object} options\n * @param {string} options.url - Upload endpoint\n * @param {File|Blob} options.file - File to upload\n * @param {number} [options.chunkSize=5MB] - Chunk size in bytes\n * @param {function} [options.onProgress] - Global progress callback\n * onProgress({ loaded, total, progress, chunkIndex, totalChunks })\n * @param {function} [options.onChunkProgress]- Per-chunk progress callback\n * onChunkProgress({ loaded, total, progress, chunkIndex })\n * @param {Object} [options.headers] - Extra headers\n * @param {string} [options.uploadId] - Optional upload ID (for resume)\n * @returns {Promise} - Promise with a .cancel() method\n */\nconst uploadFileInChunks = ({ url, file, chunkSize = 5 * 1024 * 1024, // 5 MB\nonProgress, onChunkProgress, headers = {}, uploadId }) => {\n if (!file) {\n throw new Error('No file provided');\n }\n const totalSize = file.size;\n const totalChunks = Math.ceil(totalSize / chunkSize);\n const finalUploadId = uploadId ||\n (window.crypto && crypto.randomUUID\n ? crypto.randomUUID()\n : Date.now().toString(36) + Math.random().toString(36).slice(2));\n let uploadedBytes = 0;\n let aborted = false;\n let currentXhr = null;\n function createChunkRequest(chunk, chunkIndex) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n currentXhr = xhr;\n // Build URL with query params describing the chunk\n const params = new URLSearchParams({\n uploadId: finalUploadId,\n chunkIndex: String(chunkIndex),\n totalChunks: String(totalChunks),\n fileName: file.name,\n fileSize: String(file.size)\n });\n const requestUrl = url + (url.includes('?') ? '&' : '?') + params.toString();\n xhr.open('POST', requestUrl, true);\n // Set extra headers\n Object.entries(headers).forEach(([key, value]) => {\n xhr.setRequestHeader(key, value);\n });\n // Per-chunk upload progress\n xhr.upload.onprogress = (event) => {\n if (!event.lengthComputable)\n return;\n const chunkLoaded = event.loaded;\n const chunkTotal = event.total;\n const chunkProgress = chunkLoaded / chunkTotal;\n if (typeof onChunkProgress === 'function') {\n onChunkProgress({\n loaded: chunkLoaded,\n total: chunkTotal,\n progress: chunkProgress,\n chunkIndex,\n totalChunks\n });\n }\n // Global progress: bytes before this chunk + current loaded\n const globalLoaded = uploadedBytes + chunkLoaded;\n const globalProgress = globalLoaded / totalSize;\n if (typeof onProgress === 'function') {\n onProgress({\n loaded: globalLoaded,\n total: totalSize,\n progress: globalProgress,\n chunkIndex,\n totalChunks\n });\n }\n };\n xhr.onreadystatechange = () => {\n if (xhr.readyState !== 4)\n return;\n // Reset currentXhr when completed\n if (currentXhr === xhr) {\n currentXhr = null;\n }\n if (xhr.status >= 200 && xhr.status < 300) {\n // This chunk is done, add its full size to uploadedBytes\n uploadedBytes += chunk.size;\n resolve(xhr.responseText);\n }\n else {\n const err = new Error('Chunk upload failed with status ' + xhr.status);\n err.status = xhr.status;\n err.responseText = xhr.responseText;\n reject(err);\n }\n };\n xhr.onerror = () => {\n if (currentXhr === xhr) {\n currentXhr = null;\n }\n reject(new Error('Network error during chunk upload'));\n };\n xhr.onabort = () => {\n if (aborted) {\n reject(new Error('Upload canceled'));\n }\n else {\n reject(new Error('Chunk upload aborted'));\n }\n };\n // Send the chunk as the request body\n xhr.send(chunk);\n });\n }\n const promise = (() => __awaiter(void 0, void 0, void 0, function* () {\n try {\n let lastResponse = null;\n for (let chunkIndex = 0; chunkIndex < totalChunks; chunkIndex++) {\n if (aborted) {\n throw new Error('Upload canceled');\n }\n const start = chunkIndex * chunkSize;\n const end = Math.min(start + chunkSize, totalSize);\n const chunk = file.slice(start, end);\n lastResponse = yield createChunkRequest(chunk, chunkIndex);\n }\n // All chunks uploaded\n return {\n uploadId: finalUploadId,\n response: lastResponse\n };\n }\n finally {\n currentXhr = null;\n }\n }))();\n // Attach cancel method to the promise\n promise.cancel = () => {\n aborted = true;\n if (currentXhr) {\n currentXhr.abort();\n }\n };\n return promise;\n};\nconst isCancel = (value) => {\n return !!(value && value.__BBN_CANCEL__ === true);\n};\nconst run = (method, url, config = {}, aborter) => {\n // Optionally handle baseURL\n if (config.baseURL && !/^https?:\\/\\//i.test(url)) {\n url = config.baseURL.replace(/\\/+$/, '') + '/' + url.replace(/^\\/+/, '');\n }\n url = buildURL(url, config.params);\n const wantsUploadProgress = typeof config.onUploadProgress === 'function' &&\n methodsWithBody.includes(method.toUpperCase());\n if (wantsUploadProgress) {\n // Use XHR when upload progress is requested\n return xhrRequest(method, url, config, aborter);\n }\n else {\n // Default to fetch\n return fetchRequest(method, url, config, aborter);\n }\n};\nexport default {\n isCancel,\n run\n};\n","/**\n * Returns true if the given argument is a number\n * @method isNumber\n * @global\n * @example\n * ```javascript\n * bbn.fn.isNumber(5);\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isNumber(0.5);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isNumber(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ([\"boolean\", \"object\", \"symbol\"].includes(typeof a) ||\n a === \"\" ||\n isNaN(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given object can be iterated as an array (numerically).\n *\n * It is possible to pass as argument a string with hexadecimal value in rgb or the name of the color.\n *\n * @method isIterable\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.isIterable([1, 2])\n * // true\n * bbn.fn.isIterable({a: 1, b: 2})\n * // false\n * bbn.fn.isIterable(25)\n * // false\n * bbn.fn.isIterable(document.body.querySelectorAll('.container > div'))\n * // true\n * ```\n *\n * @param {String} st\n *\n * @returns {Boolean}\n */\nexport default function isIterable(...args) {\n if (!args.length) {\n return false;\n }\n for (let a of args) {\n if (!a ||\n (typeof a !== \"object\") ||\n !(Symbol.iterator in Object(a))) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a string;\n * @method isString\n * @global\n * @example\n * ```javascript\n * bbn.fn.isString('bbn');\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isString(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object String]\") {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is an integer\n * @method isInt\n * @global\n * @example\n * ```javascript\n * bbn.fn.isInt(5);\n * // true\n * bbn.fn.isInt(0.5);\n * // false\n * bbn.fn.isInt(\"hello\");\n * // false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isInt(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!Number.isInteger(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a function.\n * @global\n * @example\n * ```javascript\n * bbn.fn.isFunction(() => {\n * alert('Hello world');\n * });\n * //true\n * ```\n * @method isFunction\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isFunction(...args) {\n if (!args.length)\n return false;\n for (let obj of args) {\n if (!(obj && obj.constructor && obj.call && obj.apply)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isFunction from '../type/isFunction.js';\n/**\n * Logs the given arguments in the browser's console.\n * @method log\n * @global\n * @example\n * ```javascript\n * //'hello'\n * bbn.fn.log('hello');\n * ```\n * @memberof bbn.fn\n * @param {...any} args\n * @returns\n */\nexport default function log(...args) {\n var _a, _b, _c;\n if (((_a = bbn.env) === null || _a === void 0 ? void 0 : _a.isDev) && ((window === null || window === void 0 ? void 0 : window.console) !== undefined)) {\n let cfg;\n let level = 5;\n let fn = 'log';\n if (args[0] && typeof args[0] === 'object' && args[0]._bbn_console_style) {\n if (args[0]._bbn_console_mode && isFunction(console[args[0]._bbn_console_mode])) {\n fn = args[0]._bbn_console_mode;\n }\n else {\n cfg = args[0]._bbn_console_style;\n level = args[0]._bbn_console_level;\n }\n args.shift();\n }\n const exec = window.console[fn];\n if (((_c = (_b = window['bbn']) === null || _b === void 0 ? void 0 : _b.env) === null || _c === void 0 ? void 0 : _c.loggingLevel) >= level) {\n let i = 0;\n while (i < args.length) {\n let t = typeof args[i];\n let consoleArguments = [args[i]];\n if (t === 'string' || t === 'number') {\n consoleArguments.unshift('%c %s ', cfg);\n }\n exec.apply(window.console, consoleArguments);\n i++;\n }\n }\n }\n return this;\n}\n;\n","import isString from '../type/isString.js';\nimport isInt from '../type/isInt.js';\nimport log from '../browser/log.js';\n/**\n * Basic substring function accepting both positive and negative values.\n *\n * @method substr\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.substr(bbn.fn, 'Hello', -3, -1);\n * // \"ll\"\n * bbn.fn.substr(bbn.fn, 'Hello', -3);\n * // \"llo\"\n * bbn.fn.substr(bbn.fn, 'Hello', 0, 1);\n * // \"H\"\n * ```\n * @memberof bbn.fn\n * @param {String} str\n * @param {Number} from\n * @param {Number} length\n * @returns {String} Result substring\n */\nexport default function substr(str, from, length) {\n if (!isString(str) || !isInt(from)) {\n log(arguments);\n throw new Error(bbn._(\"The substr function should be applied to a string and at least a `from` argument should be given\"));\n }\n if (from < 0) {\n from = str.length + from;\n }\n if (!isInt(length)) {\n return str.substring(from);\n }\n return str.substring(from, (length < 0 ? str.length : from) + length);\n}\n;\n","import substr from '../string/substr.js';\n/**\n * Returns an object with the original objects' properties starting with an alphanumeric character.\n *\n * It is presumed that external libraries, bbn variables use prefixes such as _ or $ for\n * naming private properties; this returns a new object purged from these properties.\n *\n * @method removePrivateProp\n * @global\n * @example\n * ```javascript\n * bbn.fn.removePrivateProp({\n * _bbn_timestamp: 1587269593987,\n * name: \"Wonka\",\n * fname: \"Willy\"\n * });\n * // {name: \"Wonka\", fname: \"Willy\"}\n * ```\n * @memberof bbn.fn\n * @param {Object} obj The original object\n * @param {Boolean} deep If true the function will be reapplied on object properties\n * @returns {Object} A new object without only the _public_ properties.\n */\nexport default function removePrivateProp(obj, deep = false) {\n let r = null;\n if (typeof obj === 'object') {\n r = {};\n for (var n in obj) {\n if (substr(n, 0, 1).match(/^[A-z0-9]$/) && (n in obj)) {\n if (deep && typeof obj[n] === 'object') {\n r[n] = removePrivateProp(obj[n], true);\n }\n else {\n r[n] = obj[n];\n }\n }\n }\n }\n return r || false;\n}\n;\n","import removePrivateProp from '../object/removePrivateProp.js';\n/**\n * Executes the provided function on each property of the given object.\n *\n * @method iterate\n * @global\n * @example\n * ```javascript\n * //[\"value1\", 2]\n * let arr = [];\n * bbn.fn.iterate({field1: \"value1\", field2: 2}, (val, idx) => {\n * arr.push(value);\n * });\n * ```\n * @memberof bbn.fn\n * @param {(Object|Number)} obj The object to loop on\n * @param {Function} fn The function, gets the array's element and the index as arguments\n * @param {Boolean} noPrivate If set to true the _private_ properties won't be included\n * @param {Boolean} reverse If set to true the order of the keys will be reversed\n * @returns {Object}\n */\nexport default function iterate(obj, fn, noPrivate = false, reverse = false) {\n if (obj !== null && typeof obj === \"object\") {\n let iter = Object.keys(noPrivate ? removePrivateProp(obj) : obj);\n if (reverse) {\n iter.reverse();\n }\n for (let prop of iter) {\n if (fn(obj[prop], prop) === false) {\n break;\n }\n }\n }\n return obj;\n}\n;\n","import isNumber from '../type/isNumber.js';\nimport isIterable from '../type/isIterable.js';\nimport iterate from './iterate.js';\n/**\n * Executes the provided function on each element of the given array.\n *\n * Returning false will stop the loop.\n *\n * @method each\n * @global\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.each([4, 5, 5, 10, 1, 2], d => {\n * res += d;\n * });\n * // res = 27\n * ```\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.each([4, 5, 5, 10, 1, 2], d => {\n * if (res >= 20) {\n * return false;\n * }\n * res += d;\n * });\n * // res = 24\n * ```\n * @memberof bbn.fn\n * @param {*} arr The array to loop on\n * @param {Function} fn The function, gets the array's element and the index as arguments\n * @returns {[Array, Object, void]}\n */\nexport default function each(arr, fn) {\n if (isNumber(arr) && arr > 0) {\n for (let i = 0; i < arr; i++) {\n if (fn(i, i) === false) {\n return;\n }\n }\n return;\n }\n if (isIterable(arr)) {\n for (let i = 0; i < arr.length; i++) {\n if (fn(arr[i], i) === false) {\n return;\n }\n }\n return arr;\n }\n return iterate(arr, fn);\n}\n;\n","/**\n * Returns true if the given argument is an object.\n * @method isObject\n * @global\n * @example\n * ```javascript\n * bbn.fn.isObject({name: 'cami', age: 7});\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isObject([{name: 'cami', age: 7}]);\n * //false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isObject(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (({}).toString.apply(a) !== \"[object Object]\") {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is array.\n * @method isArray\n * @global\n * @example\n * ```javascript\n * bbn.fn.isArray([5,2,6]);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isArray(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!Array.isArray(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","import iterate from '../loop/iterate.js';\nimport isArray from '../type/isArray.js';\nimport each from '../loop/each.js';\nimport isObject from '../type/isObject.js';\n/**\n * Merges the contents of two or more objects together into the first object.\n *\n * A boolean true argument can be done to operate a deep extend. In this case,\n * the content of properties or subproperties arrays and objects will also be merged.\n *\n * @method extend\n * @global\n * @example\n * ```javascript\n * bbn.fn.extend(\n * {prop1: 10, prop2: 20},\n * {prop1: 11, prop3: 21},\n * {prop2: 22, prop4: false},\n * {prop5: false, prop3: 45}\n * );\n * // {prop1: 11, prop2: 22, prop3: 45, prop4: false, prop5: false}\n * ```\n * @example\n * ```javascript\n * bbn.fn.extend(\n * {\n * prop1: [3, 5, 6],\n * prop2: {\n * subprop1: 87,\n * subprop2: 100\n * }\n * }, {\n * prop1: 11,\n * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]\n * }, {\n * prop2: {\n * subprop1: 90,\n * subprop3: 25\n * },\n * prop4: false\n * }, {\n * prop5: false,\n * prop3: [8, 45, {anotherProperty: false, andAnother: true}]\n * }\n * );\n * // {\n * // prop1: 11,\n * // prop2: {subprop1: 90, subprop3: 25},\n * // prop3: [8, 45, {anotherProperty: false, andAnother: true}],\n * // prop4: false,\n * // prop5: false\n * // }\n * ```\n * @example\n * ```javascript\n * // Deep\n * bbn.fn.extend(\n * true,\n * {\n * prop1: [3, 5, 6],\n * prop2: {\n * subprop1: 87,\n * subprop2: 100\n * }\n * }, {\n * prop1: 11,\n * prop3: [8, 12, {aProperty: 1, anotherProperty: true}, 26]\n * }, {\n * prop2: {\n * subprop1: 90,\n * subprop3: 25\n * },\n * prop4: false\n * }, {\n * prop5: false,\n * prop3: [8, 45, {anotherProperty: false, andAnother: true}]\n * }\n * );\n * // {\n * // prop1: 11,\n * // prop2: {subprop1: 90, subprop3: 25},\n * // prop3: [8, 45, {aProperty: 1, anotherProperty: false, andAnother: true}, 26],\n * // prop4: false,\n * // prop5: false\n * // }\n * ```\n * @memberof bbn.fn\n * @returns {Object} The first object argument, merged with the other objects given\n */\nexport default function extend(...originalArgs) {\n let deep = false;\n let args = [];\n for (let i = 0; i < originalArgs.length; i++) {\n if (originalArgs[i] === true) {\n deep = true;\n }\n else if (!originalArgs[i]) {\n continue;\n }\n else if (typeof originalArgs[i] !== \"object\") {\n throw new Error(bbn._(\"Error in extend: all arguments should be object, you have given \") + typeof originalArgs[i]);\n }\n else {\n args.push(originalArgs[i]);\n }\n }\n if (!args.length) {\n throw new Error(\"No argument given\");\n }\n let out = args[0];\n let hasNoData;\n for (let i = 1; i < args.length; i++) {\n iterate(args[i], (a, key) => {\n if (deep) {\n if (isArray(a)) {\n out[key] = isArray(out[key]) ? out[key] : [];\n each(a, (b, i) => {\n if (b && typeof b === \"object\") {\n let tmp = out[key][i];\n if (isArray(b)) {\n if (!isArray(tmp)) {\n tmp = [];\n }\n }\n else if (!isObject(tmp)) {\n tmp = {};\n }\n out[key][i] = extend(true, tmp, b);\n }\n else {\n out[key][i] = b;\n }\n });\n }\n else if (isObject(a)) {\n out[key] = extend(true, out[key] && typeof out[key] === \"object\"\n ? out[key]\n : Object.create(Object.getPrototypeOf(a)), a);\n }\n else {\n out[key] = a;\n }\n }\n else if ((out[key] !== a) || ((a === undefined) && !Object.prototype.hasOwnProperty.apply(out, [key]))) {\n out[key] = a;\n }\n });\n if (!hasNoData) {\n hasNoData = !!args[i].__bbnNoData;\n }\n }\n if (hasNoData && 'bbnData' in window) {\n if (out.__bbnData) {\n out.__bbnData.unset();\n }\n Object.defineProperty(out, \"__bbnNoData\", {\n value: true,\n enumerable: false,\n configurable: false,\n writable: false,\n });\n }\n return out;\n}\n;\n","import _ from './_.js';\nimport each from './fn/loop/each.js';\nimport iterate from './fn/loop/iterate.js';\nimport log from './fn/browser/log.js';\nimport isObject from './fn/type/isObject.js';\nimport isArray from './fn/type/isArray.js';\nimport extend from './fn/object/extend.js';\nconst idb = window['indexedDB'] || window['webkitIndexedDB'] || window['mozIndexedDB'] || window['OIndexedDB'] || window['msIndexedDB'];\nconst transformResult = (obj, fields) => {\n if (fields === null || fields === void 0 ? void 0 : fields.length) {\n let res = {};\n iterate(obj, (v, n) => {\n if (fields.indexOf(n) > -1) {\n res[n] = v;\n }\n });\n return res;\n }\n return obj;\n};\nconst fieldsFromFilter = (filter, fields = []) => {\n var _a;\n if ((_a = filter === null || filter === void 0 ? void 0 : filter.conditions) === null || _a === void 0 ? void 0 : _a.length) {\n filter.conditions.forEach(cond => {\n if (cond.field && !fields.includes(cond.field)) {\n fields.push(cond.field);\n }\n else if (cond.conditions) {\n fieldsFromFilter(cond, fields);\n }\n });\n }\n else if (isObject(filter)) {\n iterate(filter, (v, n) => {\n if (!fields.includes(n)) {\n fields.push(n);\n }\n });\n }\n else if (isArray(filter)) {\n filter.forEach(cond => {\n if (cond.field && !fields.includes(cond.field)) {\n fields.push(cond.field);\n }\n else if (cond.conditions) {\n fieldsFromFilter(cond, fields);\n }\n });\n }\n return fields;\n};\nconst dbObject = function (dbName) {\n const conn = db._connections[dbName];\n const structure = db._structures[dbName];\n let lastError = null;\n const onError = (req, resolve) => {\n req.onerror = () => {\n lastError = req.error;\n log(req.error);\n resolve(req.error);\n };\n };\n const getStore = (table, mode) => {\n const tx = conn.transaction([table], mode.toLowerCase().indexOf('r') === 0 ? \"readonly\" : \"readwrite\");\n tx.onabort = () => {\n lastError = tx.error;\n throw new Error(tx.error);\n };\n return [tx, tx.objectStore(table)];\n };\n this.lastError = () => lastError;\n this.insert = (table, data) => {\n if (!Array.isArray(data)) {\n data = [data];\n }\n return new Promise(resolve => {\n const [tx, store] = getStore(table, 'w');\n let res = data.length;\n each(data, a => {\n const request = store.put(a);\n request.onerror = () => {\n log(request.error);\n res--;\n };\n });\n tx.oncomplete = () => {\n resolve(res);\n };\n });\n };\n this.update = (table, data, where, replace) => {\n return new Promise(resolve => {\n this.selectAll(table, [], where).then(rows => {\n if (!rows.length) {\n resolve(0);\n return;\n }\n const [tx, store] = getStore(table, 'w');\n const arch = structure[table];\n const primary = arch.keys.PRIMARY.columns.length > 1 ? arch.keys.PRIMARY.columns : arch.keys.PRIMARY.columns[0];\n let res = 0;\n for (let i = 0; i < rows.length; i++) {\n const newData = extend({}, replace ? { [primary]: rows[i][primary] } : rows[i], data);\n if (!newData[primary]) {\n throw new Error(_(\"No primary key in the data\"));\n }\n const req = store.put(newData);\n onError(req, resolve);\n req.onsuccess = () => {\n res++;\n };\n }\n tx.oncomplete = () => {\n resolve(res);\n };\n });\n });\n };\n this.delete = (table, where) => {\n return new Promise(resolve => {\n const [tx, store] = getStore(table, 'w');\n const arch = structure[table];\n const primary = arch.keys.PRIMARY.columns.length > 1 ? arch.keys.PRIMARY.columns : arch.keys.PRIMARY.columns[0];\n if (!where[primary]) {\n throw new Error(_(\"No \"));\n }\n let res = 1;\n const req = store.delete(where[primary]);\n onError(req, resolve);\n tx.oncomplete = () => {\n resolve(res);\n };\n });\n };\n this.selectOne = (table, field, where, order, start, limit) => {\n return new Promise(resolve => {\n this.selectAll(table, [field], where, order, start, 1).then(d => {\n var _a, _b;\n resolve((_b = (_a = d === null || d === void 0 ? void 0 : d[0]) === null || _a === void 0 ? void 0 : _a[field]) !== null && _b !== void 0 ? _b : undefined);\n });\n });\n };\n this.select = (table, fields, where, order, start) => {\n return new Promise(resolve => {\n this.selectAll(table, fields, where, order, start, 1).then(d => {\n resolve(d.length ? d[0] : null);\n });\n });\n };\n this.selectAll = (table, fields = [], where = null, order = null, start = 0, limit = null) => {\n return new Promise(resolve => {\n const [tx, store] = getStore(table, 'r');\n const arch = structure[table];\n const primary = arch.keys.PRIMARY.columns.length > 1 ? arch.keys.PRIMARY.columns : arch.keys.PRIMARY.columns[0];\n const search = isObject(where) ? Object.keys(where)[0] : (!where || isArray(where) ? null : primary);\n const results = [];\n if (search === primary) {\n if (bbn.fn.isArray(where === null || where === void 0 ? void 0 : where[primary])) {\n let req = [];\n const max = Math.min(where[primary].length, limit || 9999999);\n for (let i = start || 0; i < max; i++) {\n let getter = store.get(where[primary][i]);\n getter.onsuccess = () => {\n let obj = getter.result;\n results.push(transformResult(obj, fields));\n if (results.length === max) {\n resolve(results);\n }\n };\n onError(getter, resolve);\n req.push(getter);\n }\n }\n else {\n let req = store.get((where === null || where === void 0 ? void 0 : where[primary]) || where);\n req.onsuccess = () => {\n let obj = req.result;\n results.push(transformResult(obj, fields));\n resolve(results);\n };\n onError(req, resolve);\n }\n }\n else {\n const req = store.openCursor();\n let i = 0;\n req.onsuccess = (e) => {\n const cursor = e.target.result;\n if (cursor) {\n if (!where || !bbn.fn.search([cursor.value], where)) {\n if (i >= start) {\n results.push(transformResult(cursor.value, fields));\n if (results.length === limit) {\n resolve(results);\n }\n }\n i++;\n }\n cursor.continue();\n }\n else {\n resolve(results);\n }\n };\n onError(req, resolve);\n }\n });\n };\n this.getColumnValues = (table, field, where, order, start, limit) => {\n return new Promise(resolve => {\n const tx = conn.transaction([table], \"read\");\n const store = tx.objectStore(table);\n });\n };\n this.copyTable = (target, table, fields = [], where = null, order = null, start = 0, limit = null) => {\n return new Promise(resolve => {\n if (!conn.objectStoreNames.contains(target)) {\n db.add(dbName, target, structure[table]);\n }\n if (!conn.objectStoreNames.contains(target)) {\n resolve(0);\n throw new Error(_(\"The target table %s does not exist\", target));\n }\n this.selectAll(table, fields, where, order, start, limit).then(d => {\n if (d.length) {\n this.insert(target, d).then(res => {\n resolve(res);\n });\n }\n else {\n resolve(0);\n }\n });\n });\n };\n this.deleteTable = table => {\n return new Promise(resolve => {\n conn.deleteObjectStore(table);\n resolve(true);\n });\n };\n};\nconst db = {\n _structures: {},\n /* This variable should be set to true in debugging mode only */\n _connections: {},\n /* Address of the CDN (where this file should be hosted) */\n _stores: {},\n ok: idb !== undefined,\n updateStructure(storeName, structure, req) {\n const primary = structure.keys.PRIMARY.columns.length > 1 ? structure.keys.PRIMARY.columns : structure.keys.PRIMARY.columns[0];\n const stores = req.objectStoreNames;\n if (!stores.contains(storeName)) {\n const store = req.createObjectStore(storeName, { keyPath: primary });\n iterate(structure.keys, (a, n) => {\n if (n !== 'PRIMARY') {\n store.createIndex(n, a.columns.length > 1 ? a.columns : a.columns[0], {\n unique: !!a.unique\n });\n }\n });\n }\n else {\n }\n },\n open(name) {\n return new Promise((resolve) => {\n if (!db._connections[name]) {\n if (!db._structures[name]) {\n throw new Error(_(\"Impossible to find a structure for the database %s\", name));\n }\n let num = Math.max.apply(this, [1].concat(Object.keys(db._structures[name]).map(a => db._structures[name][a].num || 1)));\n const conn = idb.open(name, num);\n conn.onupgradeneeded = () => {\n const req = conn.result;\n iterate(db._structures[name], (structure, storeName) => {\n this.updateStructure(storeName, structure, req);\n });\n };\n conn.onsuccess = () => {\n db._connections[name] = conn.result;\n let obj = new dbObject(name);\n resolve(obj);\n };\n }\n else {\n resolve(new dbObject(name));\n }\n });\n },\n add(database, name, structure) {\n var _a;\n if (((_a = structure === null || structure === void 0 ? void 0 : structure.keys) === null || _a === void 0 ? void 0 : _a.PRIMARY) && (structure === null || structure === void 0 ? void 0 : structure.fields)) {\n if (!db._structures[database]) {\n db._structures[database] = {};\n }\n db._structures[database][name] = structure;\n if (db._connections[database]) {\n this.updateStructure(name, structure, db._connections[database]);\n }\n }\n else {\n throw new Error(_(\"The database structure for %s is not valid (are there keys and field? Is there a primary?\", name));\n }\n }\n};\nexport default db;\n","import substr from '../string/substr.js';\n/**\n * Creates and adds a \"loader\" object to the property bbn.env.loaders.\n *\n * @method _addLoader\n * @global\n * @ignore\n * @memberof bbn.fn\n *\n * @param {String} requestId\n * @param {Promise} prom\n * @param {Object} aborter\n *\n * @returns {Number} The timestamp (in ms)\n */\nexport default function _addLoader(requestId, prom, aborter) {\n /** @var {Number} tst Current timestamp */\n let tst = new Date().getTime();\n /** @var {String} url The original URL (part of requestId before : and md5) */\n let url = substr(requestId, 0, requestId.length - 33);\n /** @var {Object} loader The loader object */\n let loader = {\n key: requestId,\n url,\n loader: prom,\n aborter,\n loading: true,\n error: false,\n abort: false,\n errorMessage: false,\n success: false,\n start: tst,\n };\n // Adding the loader in bbn.env.loaders\n bbn.env.loaders.push(loader);\n // Adding an object with this loader info in bbn.env.loadersHistory\n bbn.env.loadersHistory.unshift(loader);\n /** @var {Number} idx A pointer starting at the end of array loadersHistory */\n let idx = bbn.env.loadersHistory.length;\n // Removing elements from the loadersHistory object if their number is higher\n // than bbn.env.maxLoadersHistory\n while (idx && bbn.env.loadersHistory.length > bbn.env.maxLoadersHistory) {\n idx--;\n // Not removing the ones still loading\n if (!bbn.env.loading) {\n bbn.env.loadersHistory.splice(idx, 1);\n }\n }\n return tst;\n}\n;\n","/**\n * Returns the value of the given property from the given object.\n *\n * Looks for the given property in the given object, accepting dot (.) separator\n * for deep property access, and returns its value if found and undefined otherwise.\n *\n * @method getProperty\n * @global\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: 2}, 'b');\n * // 2\n * ```\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: {o: {a: 33, h: 5}}}, 'b.o.a');\n * // 33\n * ```\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: {o: {a: 33, h: 5}}}, 'b.h.a');\n * // undefined\n * ```\n * @memberof bbn.fn\n * @param {Object} obj\n * @param {String} props\n * @returns {*} The property's value or undefined\n */\nexport default function getProperty(obj, ...props) {\n if (typeof obj === 'object') {\n const arr = [];\n if (props.length === 1 && typeof props[0] === 'string') {\n arr.push(...props[0].split('.'));\n }\n else {\n arr.push(...props);\n }\n return arr.reduce((o, i) => {\n if (o) {\n return o[o instanceof Array ? parseInt(i) : i];\n }\n return undefined;\n }, obj);\n }\n}\n;\n","import isString from '../type/isString.js';\nimport log from '../browser/log.js';\n/**\n * Returns the string passed as an argument without accents.\n *\n * @method removeAccents\n * @global\n *\n * @example\n * ```javascript\n * //\"eeou\"\n * bbn.fn.removeAccents(\"èéòù\");\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {String}\n */\nexport default function removeAccents(st) {\n if (!isString(st)) {\n if (st.toString) {\n st = st.toString();\n }\n else {\n log(st);\n throw new Error(bbn._(\"removeAccent expects a string\"));\n }\n }\n return st.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\n;\n","/**\n * Returns true if the given argument is a date object.\n * @method isDate\n * @global\n * @example\n * ```javascript\n * let date = new Date();\n * bbn.fn.isDate(date);\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isDate('16/04/2020');\n * //false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isDate(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object Date]\") {\n return false;\n }\n }\n return true;\n}\n;\n","import getProperty from './getProperty.js';\nimport isString from '../type/isString.js';\nimport removeAccents from '../string/removeAccents.js';\nimport isDate from '../type/isDate.js';\n/**\n * Compares the given property in the given objects and returns -1, 1, or 0 depending on their difference.\n *\n * This is only used as a sorting function by bbn.fn.order and bbn.fn.multiorder.\n *\n * @method _compareValues\n * @global\n * @example\n * ```javascript\n * // Same value\n * bbn.fn._compareValues({year: 2015, value: 2}, {year: 2016, value: 2}, 'value');\n * // 0\n * ```\n * @example\n * ```javascript\n * // First value smaller than second\n * bbn.fn._compareValues({year: 2015, value: 2}, {year: 2016, value: 2}, 'year');\n * // -1\n * ```\n * @example\n * ```javascript\n * // First value greater than second\n * bbn.fn._compareValues({year: 2017, value: 2}, {year: 2016, value: 2}, 'year');\n * // 1\n * ```\n * @example\n * ```javascript\n * // First value is undefined\n * bbn.fn._compareValues({year: 2017}, {year: 2016, value: 2}, 'value');\n * // 1\n * ```\n * @memberof bbn.fn\n * @param {Object} a First object for comparison\n * @param {Object} b Second object for comparison\n * @param {String} prop Property to compare\n * @param {String} [dir=asc] Direction of comparison (desc or asc by default)\n * @returns {Number} Always either -1, 1, or 0\n */\nexport default function _compareValues(a, b, prop, dir = \"asc\") {\n let va = getProperty(a, prop), vb = getProperty(b, prop), ta = (typeof va).toLowerCase(), tb = (typeof vb).toLowerCase();\n if (dir !== \"asc\" && isString(dir) && dir.toLowerCase() === \"desc\") {\n dir = \"desc\";\n }\n if (ta !== tb) {\n va = ta;\n vb = tb;\n }\n else {\n switch (ta) {\n case \"string\":\n va = removeAccents(va).toLowerCase();\n vb = removeAccents(vb).toLowerCase();\n break;\n case \"boolean\":\n va = va ? 1 : 0;\n vb = vb ? 1 : 0;\n break;\n case \"object\":\n if (isDate(va)) {\n va = va.getTime();\n vb = isDate(vb) ? vb.getTime() : 0;\n }\n break;\n }\n }\n if (va < vb) {\n return dir === \"desc\" ? 1 : -1;\n }\n if (va > vb) {\n return dir === \"desc\" ? -1 : 1;\n }\n return 0;\n}\n;\n","/**\n * Returns the number of properties contained in the object.\n *\n * Only takes into account the own properties - not the inherited ones - and the non _private_ ones.\n *\n * @method numProperties\n * @global\n * @example\n * ```javascript\n * bbn.fn.numProperties({author: \"Chuck Palahniuk\", \"title\": \"Fight club\"});\n * // 2\n * ```\n * @example\n * ```javascript\n * bbn.fn.numProperties({username: \"chuck\", \"password\": \"soap\", _bbn_timestamp: 1587323193751});\n * // 2\n * @example\n * ```javascript\n * let d = new Date();\n * bbn.fn.numProperties(d);\n * // 0\n * d.myProp = 1;\n * bbn.fn.numProperties(d);\n * // 1\n * ```\n * @memberof bbn.fn\n * @param {Object} obj The object to analyze\n * @returns {Number} The number of properties\n */\nexport default function numProperties(obj) {\n if (!obj || typeof obj !== 'object') {\n return 0;\n }\n return Object.keys(obj).length;\n}\n;\n","import isArray from './isArray.js';\nimport numProperties from '../object/numProperties.js';\n/**\n * Checks if the argument is empty or not.\n * @method isEmpty\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.isEmpty({});\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isEmpty({test : 1});\n * //false\n * ```\n * @example\n * ```javascript\n * bbn.fn.isEmpty([]);\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isEmpty(['test']);\n * //false\n * ```\n * @example\n * ```javascript\n * bbn.fn.isEmpty('');\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isEmpty('test');\n * //false\n * ```\n * @memberof bbn.fn\n * @param {*} obj\n * @returns {Boolean}\n */\nexport default function isEmpty(obj) {\n if (!obj) {\n return true;\n }\n if (isArray(obj)) {\n return obj.length ? false : true;\n }\n if (typeof obj === \"object\") {\n if (numProperties(obj)) {\n return false;\n }\n return true;\n }\n return false;\n}\n;\n","/**\n * Returns true if the given argument is null;\n * @method isNull\n * @global\n * @example\n * ```javascript\n * bbn.fn.isNull(myData);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isNull(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object Null]\") {\n return false;\n }\n }\n return true;\n}\n;\n","export default function simpleHash1(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = (hash << 5) - hash + char;\n hash |= 0; // Convert to 32-bit integer\n }\n return Math.abs(hash).toString(16);\n}\n;\n","export default function simpleHash2(str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i);\n hash = char + (hash << 6) + (hash << 16) - hash;\n hash |= 0; // Convert to 32-bit integer\n }\n return Math.abs(hash).toString(16);\n}\n;\n","import simpleHash1 from './simpleHash1.js';\nimport simpleHash2 from './simpleHash2.js';\nexport default function simpleHash(str) {\n const part1 = simpleHash1(str).padStart(8, '0');\n const part2 = simpleHash2(str).padStart(8, '0');\n return part1 + part2;\n}\n;\n","/**\n * Returns true if the given argument is a dom element;\n * @method isDom\n * @example\n * ```javascript\n * bbn.fn.isDom(document.body.childNodes[0]);\n * //true\n * ```\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isDom(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!(a instanceof HTMLElement)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * @method getPath\n * @todo Add method description for getPath\n * @global\n * @ignore\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function getPath(element) {\n let path = '', \n //node = $(element),\n node = element;\n if (element.id) {\n return '#' + element.id;\n }\n while (node && (node !== document.body)) {\n //let realNode = node[0],\n let realNode = node, name = realNode.localName, done = 0;\n if (!name)\n break;\n if (realNode === document.body)\n break;\n if (realNode.id) {\n path = '#' + realNode.id + '>' + path;\n done = 1;\n }\n //var parent = node.parent(),\n let parent = node.parentNode, \n //sameTagSiblings = parent.children(name);\n sameTagSiblings = Array.from(parent.children).filter((val) => {\n return val.tagName === realNode.tagName;\n });\n if (!done && sameTagSiblings.length > 1) {\n //var allSiblings = parent.children(),\n let allSiblings = Array.from(parent.children), \n //index = allSiblings.index(realNode) + 1;\n index = allSiblings.indexOf(realNode) + 1;\n if (index > 1) {\n name += ':nth-child(' + index + ')';\n }\n }\n path = name + (path ? '>' + path : '');\n node = parent;\n }\n return path;\n}\n;\n","import isDom from './isDom.js';\nexport default function isCp(...args) {\n var _a;\n if (!args.length) {\n return false;\n }\n if (!('cp' in bbn) || !('isComponent' in bbn['cp']) || !(typeof bbn['cp'].isComponent === 'function')) {\n return false;\n }\n for (let a of args) {\n let res = bbn.cp.isComponent(a);\n if (!res || isDom(a) || !((_a = a.$el) === null || _a === void 0 ? void 0 : _a.bbnCid)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isDom from '../type/isDom.js';\nimport getPath from '../html/getPath.js';\nimport isCp from '../type/isCp.js';\n/**\n * Makes a string out of anything\n * @param {*} value\n * @param {Function} fn\n * @param {Number} [depth=null]\n * @param {Number} [level=0]\n * @param {WeakSet} [visited=null]\n * @returns {String}\n */\nexport default function treatForHash(value, depth = null, level = 0, visited = null, fn = null) {\n if (!level && !visited) {\n visited = new WeakSet();\n }\n if (value === undefined) {\n value = \"__BBN_UNDEFINED__\";\n }\n else if (value === null) {\n value = \"__BBN_NULL__\";\n }\n else if (value === null) {\n value = \"__BBN_NULL__\";\n }\n else if (typeof value === 'function') {\n value = \"__BBN_FUNCTION__\" + value.toString();\n }\n else if (typeof value === 'symbol') {\n value = \"__BBN_SYMBOL__\" + value.toString();\n }\n else if (typeof value === 'string') {\n value = \"__BBN_STRING__\" + value;\n }\n else if (typeof value === 'number') {\n value = \"__BBN_NUMBER__\" + value.toString();\n }\n else if (typeof value === 'boolean') {\n value = \"__BBN_BOOLEAN__\" + value.toString();\n }\n else if (![undefined, Object, Array, null].includes(value === null || value === void 0 ? void 0 : value.constructor)) {\n if (isDom(value)) {\n if (isCp(value)) {\n value = \"__BBN_CP__\" + value.$cid;\n }\n else if (value.bbnId) {\n value =\n \"__BBN_DOM__\" + value.tagName + \"/\" + value.bbnId + value.bbnHash;\n }\n else {\n value = \"__BBN_DOM__\" + getPath(value);\n }\n }\n else {\n value = \"__BBN_UNKNOWN_OBJECT__\" + value.constructor.toString();\n }\n }\n else if (bbn.fn.isArray(value)) {\n if (visited.has(value) || (depth && (depth < level))) {\n value = \"__BBN_ARRAY__\" + value.constructor.toString();\n }\n else {\n visited.add(value);\n let st = '';\n for (let i = 0; i < value.length; i++) {\n st += \"__BBN_ITEM\" + i.toString() + \"__\" + fn(value[i], depth, level + 1, visited, fn);\n }\n value = \"__BBN_ARRAY__\" + st;\n }\n }\n else if (typeof value === 'object') {\n if (visited.has(value) || (depth && (depth < level))) {\n value = \"__BBN_OBJECT__\" + (value.constructor ? value.constructor.toString() : '');\n }\n else {\n visited.add(value);\n let st = '';\n for (let n in value) {\n let idx = n;\n if (typeof idx !== 'string') {\n idx = fn(idx, fn, 1, 1);\n }\n st += \"__BBN_PROP_\" + idx + \"__\" + fn(value[n], depth, level + 1, visited, fn);\n }\n value = \"__BBN_OBJECT__\" + st;\n }\n }\n return value;\n}\n;\n","import simpleHash from './simpleHash.js';\nimport treatForHash from './treatForHash.js';\n/**\n * Makes a hash out of anything\n * @param {[*]} args\n * @returns {String}\n */\nexport default function hash(...args) {\n //log(obj);\n let st = \"\";\n let depth = null;\n if ((args.length === 2) && (typeof args[1] === 'number')) {\n depth = args[1];\n args = [args[0]];\n }\n for (let i in args) {\n st += treatForHash(args[i], depth, 0, null, treatForHash);\n }\n return simpleHash(st);\n}\n;\n","/**\n * Converts and returns the argument passed in a string in md5 format.\n *\n * This is a formatted version of popular md5 implementation\n * Original copyright (c) Paul Johnston & Greg Holt.\n *\n *\n * @method md5\n * @global\n *\n * @example\n * ```javascript\n * //\"486eb65274adb86441072afa1e2289f3\"\n * bbn.fn.md5(\"this is a test string\");\n * ```\n *\n * @memberof bbn.fn\n * @param {Mixed} st\n * @returns {String} in md5 format\n */\nexport default function md5(st) {\n var hc = \"0123456789abcdef\";\n function rh(n) {\n var j, s = \"\";\n for (j = 0; j <= 3; j++)\n s +=\n hc.charAt((n >> (j * 8 + 4)) & 0x0f) + hc.charAt((n >> (j * 8)) & 0x0f);\n return s;\n }\n function ad(x, y) {\n var l = (x & 0xffff) + (y & 0xffff);\n var m = (x >> 16) + (y >> 16) + (l >> 16);\n return (m << 16) | (l & 0xffff);\n }\n function rl(n, c) {\n return (n << c) | (n >>> (32 - c));\n }\n function cm(q, a, b, x, s, t) {\n return ad(rl(ad(ad(a, q), ad(x, t)), s), b);\n }\n function ff(a, b, c, d, x, s, t) {\n return cm((b & c) | (~b & d), a, b, x, s, t);\n }\n function gg(a, b, c, d, x, s, t) {\n return cm((b & d) | (c & ~d), a, b, x, s, t);\n }\n function hh(a, b, c, d, x, s, t) {\n return cm(b ^ c ^ d, a, b, x, s, t);\n }\n function ii(a, b, c, d, x, s, t) {\n return cm(c ^ (b | ~d), a, b, x, s, t);\n }\n function sb(x) {\n var i;\n var nblk = ((x.length + 8) >> 6) + 1;\n var blks = new Array(nblk * 16);\n for (i = 0; i < nblk * 16; i++)\n blks[i] = 0;\n for (i = 0; i < x.length; i++)\n blks[i >> 2] |= x.charCodeAt(i) << ((i % 4) * 8);\n blks[i >> 2] |= 0x80 << ((i % 4) * 8);\n blks[nblk * 16 - 2] = x.length * 8;\n return blks;\n }\n var i, x = sb(st), a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, olda, oldb, oldc, oldd;\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = ff(a, b, c, d, x[i + 0], 7, -680876936);\n d = ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = ff(c, d, a, b, x[i + 10], 17, -42063);\n b = ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = gg(b, c, d, a, x[i + 0], 20, -373897302);\n a = gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = hh(a, b, c, d, x[i + 5], 4, -378558);\n d = hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = hh(d, a, b, c, x[i + 0], 11, -358537222);\n c = hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = ii(a, b, c, d, x[i + 0], 6, -198630844);\n d = ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = ad(a, olda);\n b = ad(b, oldb);\n c = ad(c, oldc);\n d = ad(d, oldd);\n }\n return rh(a) + rh(b) + rh(c) + rh(d);\n}\n;\n","import md5 from \"../string/md5.js\";\n/**\n * Analyzes the given function and extracts details about its structure.\n *\n * @function analyzeFunction\n * @param {Function} fn - The function to analyze.\n * @returns {Object} An object containing details about the function.\n * @throws {Error} When unexpected syntax is encountered while parsing.\n */\nexport default function analyzeFunction(fn) {\n const all = typeof fn === \"function\" ? fn.toString() : fn;\n if (typeof all !== \"string\") {\n throw Error(\"Unexpected type \" + typeof fn + \" while parsing function\");\n }\n let exp = \"\";\n let isArrow = false;\n let isAsync = false;\n let hasFunction = false;\n let name = \"\";\n let parOpened = 0;\n let parClosed = 0;\n let args = [];\n let currentArg = {};\n let body;\n let currentQuote = \"\";\n let escapable = ['\"', \"'\", \"`\"];\n let isEscaped = false;\n let settingDefault = false;\n let isComment = false;\n let isCommentLine = false;\n let isDestructuring = false;\n let isBinary = false;\n let returnType = \"\";\n for (let i = 0; i < all.length; i++) {\n // Handle string literals\n if (!isComment && all[i] === \"/\" && all[i + 1] === \"*\") {\n isComment = true;\n exp = \"\";\n }\n else if (all[i] === \"/\" && all[i - 1] === \"*\") {\n isComment = false;\n }\n else if (!isCommentLine && all[i] === \"/\" && all[i + 1] === \"/\") {\n isCommentLine = true;\n exp = \"\";\n }\n else if (all[i] === \"\\n\") {\n isCommentLine = false;\n }\n else if (isComment || isCommentLine) {\n continue;\n }\n else if (all[i] === currentQuote && !isEscaped && currentQuote) {\n currentQuote = \"\";\n exp += all[i];\n }\n else if (currentQuote) {\n isEscaped = all[i] === \"\\\\\" && !isEscaped;\n exp += all[i];\n }\n else if (escapable.includes(all[i]) && !isEscaped) {\n currentQuote = all[i];\n exp += all[i];\n }\n else if (all[i] === \"(\") {\n parOpened++;\n if (exp.trim() !== \"\") {\n if (exp.trim() === \"function\") {\n hasFunction = true;\n }\n else if (exp.trim() !== \"async\") {\n name = exp.trim();\n let tmp = name.match(/^([a-zA-Z0-9_]+)<[a-zA-Z0-9_]+>$/);\n if (tmp) {\n name = tmp[1];\n }\n }\n exp = \"\";\n }\n }\n else if (all[i] === \")\") {\n if (parOpened === parClosed + 1) {\n if (settingDefault) {\n currentArg[\"default\"] = exp.trim();\n settingDefault = false;\n }\n else if (exp) {\n currentArg[\"name\"] = exp.trim();\n }\n if (currentArg[\"name\"] || currentArg[\"default\"]) {\n args.push(currentArg);\n currentArg = {};\n }\n exp = \"\";\n }\n parClosed++;\n }\n else if (isDestructuring && all[i] !== \"}\") {\n exp += all[i];\n }\n else if (parOpened && parOpened === parClosed && all[i] === \":\") {\n const matches = all.substring(i + 1).trim().match(/^\\s*([a-zA-Z0-9_]+)\\s*\\{/);\n if (!matches) {\n throw Error(\"Unexpected ':' while parsing function\");\n }\n returnType = matches[1];\n body = all.substring(i + matches[0].length).trim();\n break;\n }\n else if (!exp && (all[i] === \"=\") && (all[i + 1] === \">\") && (parOpened === parClosed) && !parClosed && !isArrow) {\n currentArg[\"name\"] = all.slice(0, i).trim();\n args.push(currentArg);\n currentArg = {};\n isArrow = true;\n body = bbn.fn.substr(all, i + 2).trim();\n break;\n }\n else if (parOpened === parClosed && all[i] === \"=\" && all[i + 1] === \">\") {\n if (exp.trim() !== \"\") {\n currentArg[\"name\"] = exp.trim();\n args.push(currentArg);\n currentArg = {};\n exp = \"\";\n }\n isArrow = true;\n i++;\n continue;\n }\n else if (all[i] === \"=\" && parOpened > parClosed && !settingDefault) {\n currentArg[\"name\"] = exp.trim();\n exp = \"\";\n settingDefault = true;\n }\n else if (all[i] === \",\") {\n if (isDestructuring) {\n exp += all[i];\n }\n else if (parOpened > parClosed) {\n if (settingDefault) {\n currentArg[\"default\"] = exp.trim();\n settingDefault = false;\n }\n else if (exp) {\n currentArg[\"name\"] = exp.trim();\n }\n if (currentArg[\"name\"] || currentArg[\"default\"]) {\n args.push(currentArg);\n currentArg = {};\n }\n exp = \"\";\n }\n else {\n throw Error(\"Unexpected ',' while parsing function\");\n }\n }\n else if (all[i] === \"{\" || all[i] === \"}\") {\n if (parOpened === parClosed) {\n body = all.substring(i).trim();\n break;\n }\n else {\n if (parOpened > parClosed) {\n if (all[i] === \"{\" && !isDestructuring) {\n isDestructuring = true;\n exp = all[i];\n }\n else if (all[i] === \"}\" && isDestructuring) {\n isDestructuring = false;\n exp += all[i];\n }\n }\n else {\n exp = \"\";\n }\n }\n }\n else if (isArrow) {\n body = all.substring(all.indexOf(\"=>\") + 2).trim();\n break;\n }\n else if (all[i] === \" \") {\n if (exp.trim() !== \"\") {\n if (exp.trim() === \"async\") {\n isAsync = true;\n }\n if (parOpened > parClosed) {\n exp += all[i];\n }\n else {\n exp = \"\";\n }\n }\n }\n else {\n exp += all[i];\n }\n }\n if (!body) {\n if (isArrow) {\n body = exp;\n }\n else {\n throw Error(\"Unexpected end of function while parsing function\");\n }\n }\n if (body.substr(0, 25).indexOf('[native code]') > -1) {\n isBinary = true;\n }\n const argString = args\n .map((arg) => arg.name + (arg.default ? \" = \" + arg.default : \"\"))\n .join(\", \");\n const hash = md5(body + (name ? \"-\" + name : \"\") + (argString ? \"-\" + argString : \"\"));\n return {\n body,\n args,\n argString,\n isArrow,\n hasFunction,\n name,\n isAsync,\n isBinary,\n hash,\n returnType\n };\n}\n;\n","import hash from '../string/hash.js';\nimport each from '../loop/each.js';\nimport analyzeFunction from '../misc/analyzeFunction.js';\n/**\n * Checks whether the data contained in the given objects is identical.\n *\n * The properties starting with a non alphanumerical character and the\n * inherited ones are removed for the comparison, then the properties are\n * compared individually without the order being taken into account.\n *\n * @method isSame\n * @global\n * @example\n * ```javascript\n * bbn.fn.isSame(\n * {name: \"Wonka\", fname: \"Willy\"},\n * {fname: \"Willy\", name: \"Wonka\"}\n * );\n * // true\n * ```\n * @example\n * ```javascript\n * // Doesn't take into account properties starting with non-alphanumeric characters\n * bbn.fn.isSame(\n * {name: \"Wonka\", fname: \"Willy\", _bbn_timestamp: 1587269593987},\n * {fname: \"Willy\", name: \"Wonka\"}\n * );\n * // true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isSame(\n * {name: \"Wonka\", fname: \"Willy\", real: false},\n * {fname: \"Willy\", name: \"Wonka\"}\n * );\n * // false\n * ```\n * @memberof bbn.fn\n * @param {Object} obj1\n * @param {Object} obj2\n * @returns {Boolean}\n */\nexport default function isSame(obj1, obj2, done) {\n if (!done) {\n done = [];\n }\n if (obj1 === obj2) {\n return true;\n }\n if (obj1 && obj2 && typeof obj1 === 'object' && typeof obj2 === 'object') {\n if (![undefined, Object, Array, null].includes(obj1 === null || obj1 === void 0 ? void 0 : obj1.constructor)\n || ![undefined, Object, Array, null].includes(obj2 === null || obj2 === void 0 ? void 0 : obj2.constructor)) {\n return false;\n }\n let tmp1 = Object.keys(obj1).sort(), tmp2 = Object.keys(obj2).sort();\n // Case where the keys are different\n if (hash(tmp1) !== hash(tmp2)) {\n return false;\n }\n let ok = true;\n if (obj1 && typeof obj1 === 'object') {\n if (done.includes(obj1)) {\n return ok;\n }\n done.push(obj1);\n }\n each(tmp1, (a) => {\n if (!isSame(obj1[a], obj2[a])) {\n ok = false;\n return false;\n }\n });\n return ok;\n }\n else if (obj1 && obj2 && (typeof obj1 === 'function') && (typeof obj2 === 'function')) {\n let tmp1 = analyzeFunction(obj1);\n let tmp2 = analyzeFunction(obj2);\n let isSame = (tmp1.hash === tmp2.hash);\n // If native code better to replace\n if (isSame && tmp1.isBinary) {\n isSame = false;\n }\n return isSame;\n }\n return false;\n}\n;\n","import isEmpty from '../type/isEmpty.js';\nimport removeAccents from '../string/removeAccents.js';\nimport isNull from '../type/isNull.js';\nimport isObject from '../type/isObject.js';\nimport isSame from '../type/isSame.js';\n/**\n * Performs a comparison between two values based on the given operator and returns a boolean.\n *\n * It is internally used by all the filtering functions; the available operators are:\n * - _===_, _=_, _equal_, _eq_, _is_, which stand for __===__\n * - _!==_, _notequal_, _neq_, _isnot_, which stand for __!==__\n * - _!=_, _different_, which stand for __!=__\n * - _contains_, _contain_, _icontains_, _icontain_\n * - _starts_, _start_\n * - _startswith_, _startsi_, _starti_, _istarts_, _istart_\n * - _endswith_, _endsi_, _endi_, _iends_, _iend_\n * - _like_\n * - _gt_, _>_, which stand for __>__\n * - _lt_, _<_, which stand for __<__\n * - _gte_, _>=_, which stand for __>=__\n * - _lte_, _<=_, which stand for __<=__\n * - _isnull_, which stands for __=== null__\n * - _isnotnull_, which stands for __!== null__\n * - _isempty_, which stands for __=== ''__\n * - _isnotempty_, which stands for __!== ''__\n *\n * The defaut operator (if none is given) is __==__ .\n *\n * @method compare\n * @global\n * @example\n * ```javascript\n * bbn.fn.compare('foo', 'bar', 'eq');\n * // false\n * ```\n * @example\n * ```javascript\n * bbn.fn.compare('foo', 'bar', 'neq');\n * // true\n * ```\n * @example\n * ```javascript\n * bbn.fn.compare(3, 1, '>');\n * // true\n * ```\n * @example\n * ```javascript\n * bbn.fn.compare(\"JavaScript\", \"script\", 'contain');\n * // true\n * ```\n * @memberof bbn.fn\n * @param {String|Number} v1\n * @param {String|Number} v2\n * @param {String} operator\n * @returns {Boolean} True if the values' comparison complies with the operator, false otherwise\n */\nexport default function compare(v1, v2, operator) {\n switch (operator) {\n case '===':\n case '=':\n case 'equal':\n case 'eq':\n case 'is':\n return v1 === v2;\n case '!==':\n case 'notequal':\n case 'neq':\n case 'isnot':\n return v1 !== v2;\n case '!=':\n case 'different':\n return v1 != v2;\n case 'contains':\n case 'contain':\n case 'icontains':\n case 'icontain':\n if (isEmpty(v1) || isEmpty(v2)) {\n return false;\n }\n return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) !== -1;\n case 'doesnotcontain':\n case 'donotcontain':\n if (isNull(v1) || isNull(v2)) {\n return true;\n }\n return removeAccents(v1.toLowerCase()).indexOf(removeAccents(v2.toLowerCase())) === -1;\n case 'starts':\n case 'start':\n if (isNull(v1) || isNull(v2)) {\n return false;\n }\n if (typeof v1 !== 'string') {\n v1 = v1.toString() || '';\n }\n if (typeof v2 !== 'string') {\n v2 = v2.toString() || '';\n }\n return v1.indexOf(v2) === 0;\n case 'startswith':\n case 'startsi':\n case 'starti':\n case 'istarts':\n case 'istart':\n if (isNull(v1) || isNull(v2)) {\n return false;\n }\n return removeAccents(v1).toLowerCase().indexOf(removeAccents(v2).toLowerCase()) === 0;\n case 'endswith':\n case 'endsi':\n case 'endi':\n case 'iends':\n case 'iend':\n if (isNull(v1) || isNull(v2)) {\n return false;\n }\n return v1.lastIndexOf(v2) === v1.length - v2.length;\n case 'like':\n if (isNull(v1) || isNull(v2)) {\n return false;\n }\n return removeAccents(v1).toLowerCase() === removeAccents(v2).toLowerCase();\n case 'gt':\n case '>':\n return v1 > v2;\n case 'gte':\n case '>=':\n return v1 >= v2;\n case 'lt':\n case '<':\n return v1 < v2;\n case 'lte':\n case '<=':\n return v1 <= v2;\n case 'isnull':\n return v1 === null;\n case 'isnotnull':\n return v1 !== null;\n case 'isempty':\n return v1 === '';\n case 'isnotempty':\n return v1 !== '';\n case '==':\n if (isObject(v1, v2)) {\n return isSame(v1, v2);\n }\n default:\n return v1 == v2;\n }\n}\n;\n","import isArray from '../type/isArray.js';\nimport each from '../loop/each.js';\nimport compare from './compare.js';\nimport getProperty from './getProperty.js';\n/**\n * Checks whether the given data object complies or not with the given filter.\n *\n * The filter format must be full (i.e. with the properties logic and conditions) such as\n * seen in the function bbn.fn.search and can be generated by the function bbn.fn.filterToConditions.\n *\n * @method compareConditions\n * @global\n * @example\n * ```javascript\n * let item = {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589};\n * bbn.fn.compareConditions(item, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"director\",\n * value: \"Steven Spielberg\"\n * }\n * ]\n * });\n * // true\n * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: \"Steven Soderberg\"}));\n * // false\n * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({director: \"Steven Spielberg\"}));\n * // true\n * bbn.fn.compareConditions(item, bbn.fn.filterToConditions({year: 1980}, \">\"));\n * // true\n * bbn.fn.compareConditions(item, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"year\",\n * operator: \"<\",\n * value: 1980\n * }\n * ]\n * });\n * // false\n * ```\n * @memberof bbn.fn\n * @param {Object} data\n * @param {Object} filter\n * @returns {Boolean}\n */\nexport default function compareConditions(data, filter) {\n if (!filter.conditions || !filter.logic || !isArray(filter.conditions)) {\n throw new Error(\"Error in compareConditions: the filter should an abject with conditions and logic properties and conditions should be an array of objects\");\n }\n let ok = filter.logic === \"AND\" ? true : false;\n each(filter.conditions, (a) => {\n let comparator;\n if (a.conditions && isArray(a.conditions)) {\n comparator = compareConditions(data, a);\n }\n else {\n comparator = compare(getProperty(data, a.field), a.value, a.operator);\n if (comparator) {\n let bits = a.field.split(\".\");\n let prop = bits.pop();\n if (bits.length) {\n each(bits, (b) => (data = data[b]));\n }\n // Case where both are undefined: value and prop which doesn't exist; they are not the same!\n if (getProperty(data, prop) === undefined && a.value !== undefined) {\n comparator = false;\n }\n }\n }\n if (comparator) {\n if (filter.logic === \"OR\") {\n ok = true;\n return false;\n }\n }\n else if (filter.logic === \"AND\") {\n ok = false;\n return false;\n }\n });\n return ok;\n}\n;\n","import isObject from '../type/isObject.js';\nimport isArray from '../type/isArray.js';\nimport iterate from '../loop/iterate.js';\n/**\n * Converts the given object 'filter' to a valid format of condition.\n *\n * The resulting format will comply with bbn.fn.compareConditions and also with\n * bbn databases functions and complex filters applied to bbn-vue list components.\n *\n * @method filterToConditions\n * @global\n * @example\n * ```javascript\n * bbn.fn.filterToConditions({num: 3});\n * // {\n * // logic: \"AND\",\n * // conditions: [{\n * // field: \"num\",\n * // operator: \"=\",\n * // value: 3\n * // }]\n * // }\n * ```\n * @example\n * ```javascript\n * bbn.fn.filterToConditions({num: 3}, '>');\n * // {\n * // logic: \"AND\",\n * // conditions: [{\n * // field: \"num\",\n * // operator: \">\",\n * // value: 3\n * // }]\n * // }\n * ```\n * @memberof bbn.fn\n * @param {Object} filter\n * @param {String} operator\n * @returns {Object}\n */\nexport default function filterToConditions(filter, operator = \"=\") {\n if (!isObject(filter)) {\n throw new Error(\"Error in filterToCondition: filter must be an object\");\n }\n if (!filter.conditions || !isArray(filter.conditions)) {\n let tmp = [];\n iterate(filter, (a, n) => {\n if (isObject(a) && typeof a.conditions === \"object\") {\n tmp.push(filterToConditions(a));\n }\n else {\n tmp.push({\n field: n,\n operator: operator,\n value: a,\n });\n }\n });\n filter = {\n conditions: tmp,\n };\n }\n if (!filter.logic) {\n filter.logic = \"AND\";\n }\n return filter;\n}\n;\nexport { filterToConditions };\n","import isIterable from '../type/isIterable.js';\nimport compareConditions from './compareConditions.js';\nimport { filterToConditions } from './filterToConditions.js';\nimport isObject from '../type/isObject.js';\nimport isArray from '../type/isArray.js';\n/**\n * Retrieves the index of the array's first element corresponding to the given filter.\n *\n * Returns -1 if the element is not found. If the second parameter is an object or function\n * for filtering as defined in bbn.fn.filter, the remaining parameters will be shifted to the\n * left, i.e. val becomes operator, and operator startFrom. And if operator is a number, its value will\n * be given to startFrom and operator will be undefined. The filter object can be complex with different\n * operators (as seen in bbn.fn.compare) and logics (AND/OR), and infinitely nested, of this form:\n * ```javascript\n * {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"prop1\",\n * operator: \"eq\",\n * value: \"value1\"\n * }, {\n * logic: \"OR\",\n * conditions: [\n * {\n * field: \"prop2\",\n * operator: \"eq\",\n * value: 1\n * }. {\n * field: \"prop2\",\n * operator: \"eq\",\n * value: 2\n * }\n * ]\n * }\n * ]\n * }\n * ```\n * This way of managing the arguments is used in all the filtering functions.\n *\n * @method search\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n *\n * bbn.fn.search(ar, \"id\", 256);\n * // 2\n *\n * bbn.fn.search(ar, {director: \"Steven Spielberg\"});\n * // 0\n *\n * bbn.fn.search(ar, {year: 1975, director: \"Steven Spielberg\"});\n * // 3\n *\n * bbn.fn.search(ar, {director: \"Steven Spielberg\"}, 1);\n * // 3\n *\n * // Complex filters\n * bbn.fn.search(ar, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"director\",\n * operator: \"eq\",\n * value: \"Steven Spielberg\"\n * }, {\n * logic: \"OR\",\n * conditions: [\n * {\n * field: \"year\",\n * operator: \"eq\",\n * value: 1974\n * }, {\n * field: \"year\",\n * operator: \"eq\",\n * value: 1975\n * }\n * ]\n * }\n * ]\n * });\n * // 3\n *\n * Simple array\n * bbn.fn.search(['a', 'b', 'c'], null, 'b');\n * // 1\n *\n * ```\n *\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @param {Number} startFrom The index from which the search should start\n * @returns {Number} The index if found, otherwise -1\n */\nexport default function search(arr, prop, val = null, operator = '=', startFrom = 0, backward = false) {\n if (!isIterable(arr)) {\n throw new Error(bbn._('The first argument for a search should be iterable') + ' ' + typeof arr + ' ' + bbn._('given'));\n }\n if (!arr.length) {\n return -1;\n }\n let filter;\n let isFn = false;\n let fn;\n if (!prop) {\n isFn = true;\n fn = a => {\n return compareConditions({ value: a }, filterToConditions({\n logic: 'AND',\n conditions: [\n {\n field: 'value',\n operator: operator || '=',\n value: val,\n },\n ],\n }));\n };\n }\n else if (typeof prop === 'string') {\n filter = {\n conditions: [\n {\n field: prop,\n value: val,\n operator: operator || '=',\n },\n ]\n };\n }\n else {\n backward = operator === true ? true : false;\n startFrom = typeof (val) === 'number' ? val : (backward ? arr.length - 1 : 0);\n if (typeof prop === 'function') {\n isFn = true;\n fn = prop;\n }\n else if (isObject(prop)) {\n if ('field' in prop && 'value' in prop) {\n filter = {\n conditions: [prop],\n logic: 'AND'\n };\n }\n else if (!('conditions' in prop)) {\n const conditions = [];\n for (let p in prop) {\n conditions.push({\n field: p,\n value: prop[p],\n operator: '='\n });\n }\n filter = {\n conditions,\n logic: 'AND'\n };\n }\n else {\n filter = prop;\n }\n }\n else if (isArray(prop)) {\n filter = {\n conditions: prop,\n logic: 'AND'\n };\n }\n }\n let res = -1;\n if (isFn || filter) {\n if (typeof startFrom !== 'number') {\n startFrom = backward ? arr.length - 1 : 0;\n }\n if (!fn) {\n const subfilter = filterToConditions(filter);\n fn = (ele) => compareConditions(ele, subfilter);\n }\n if (backward) {\n for (let i = startFrom; i >= 0; i--) {\n bbn.env._enumerated.push(true);\n if (fn(arr[i])) {\n bbn.env._enumerated.pop();\n arr[i];\n return i;\n }\n bbn.env._enumerated.pop();\n }\n }\n else {\n for (let i = startFrom; i < arr.length; i++) {\n bbn.env._enumerated.push(true);\n if (fn(arr[i])) {\n bbn.env._enumerated.pop();\n arr[i];\n return i;\n }\n bbn.env._enumerated.pop();\n }\n }\n }\n return res;\n}\n;\n","import search from './search.js';\n/**\n * Returns the first object matching the given filter in an array of objects.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method getRow\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.getRow(ar, {director: \"Steven Spielberg\"});\n * // {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * bbn.fn.getRow(ar, \"director\", \"Steven Spielberg\");\n * // Same result as the previous example\n * bbn.fn.getRow(ar, {\n * logic: \"OR\",\n * conditions: [\n * {\n * field: \"director\",\n * value: \"Richard Donner\"\n * }, {\n * field: \"director\",\n * value: \"George Lucas\"\n * }\n * ]\n * );\n * // {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {Number|false|String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @param {Number|Boolean} from The index to start from, if false the search starts from the end\n * @param {*} backward Searches backward\n * @param {*} notFound Value to return when not found\n * @returns {*} The item if found, false otherwise\n */\nexport default function getRow(arr, prop, val = null, operator = '=', from = 0, backward = false, notFound = false) {\n let idx = search(arr, prop, val, operator, from, backward);\n if (idx > -1) {\n return arr[idx];\n }\n if (prop && ['object', 'function'].includes(typeof prop) && (5 in arguments)) {\n return backward;\n }\n return notFound;\n}\n;\n","import search from '../object/search.js';\nimport getRow from '../object/getRow.js';\nimport isObject from '../type/isObject.js';\n/**\n * Deletes a loader and changes its history state after the promise is fullfilled.\n *\n * @method _deleteLoader\n * @global\n * @ignore\n * @memberof bbn.fn\n *\n * @param {String} requestId The unique ID of the request sent\n * @param {String|Object} res The result of the request\n * @param {Boolean} isAbort True if the deletion comes from abortion\n *\n * @returns {Boolean} True if the loader was found\n */\nexport default function _deleteLoader(requestId, res = null, isAbort = false) {\n let idx = search(bbn.env.loaders, { key: requestId });\n if (idx > -1) {\n let loader = bbn.env.loaders.splice(idx, 1)[0];\n let history = getRow(bbn.env.loadersHistory, { key: requestId, start: loader.start });\n if (history) {\n history.loading = false;\n history.duration = new Date().getTime() - loader.start;\n if (typeof res === 'string') {\n history.errorMessage = res;\n history.error = !isAbort;\n history.abort = isAbort;\n }\n else if (isObject(res)) {\n history.success = true;\n }\n }\n return true;\n }\n return false;\n}\n;\n","import search from '../object/search.js';\n/**\n * Finds the loader object corresponding to the given unique ID and returns it if found.\n *\n * The loader is an object representing an Ajax request, with the following properties:\n * * _key_ is the unique ID (_requestId_) of the loader\n * * _url_ is the URL called by the request\n * * _loader_ is the Promise from the XHR\n * * _source_ is the source object for aborting the request\n * * _start_ is the timestamp of the moment the request was sent\n *\n * @method getLoader\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.post('my/script', {a: 1, b: 2});\n * let requestId = bbn.fn.getRequestId('my/script', {a: 1, b: 2});\n * if (requestId) {\n * let loader = bbn.fn.getLoader(requestId);\n * console.log(loader);\n * // {\n * // key: \"my/script:af27f0e81533ae2bae3c25dea67359f6\",\n * // url: \"my/script\",\n * // loader: {Promise},\n * // source: {token: {CancelToken}, cancel: {Function}},\n * // start: 1591804716757\n * // }\n * }\n * ```\n *\n * @param {String} requestId The unique ID of the request as used in bbn.env.loaders\n *\n * @returns {null|Object} The corresponding loader Object if it exists, false otherwise\n */\nexport default function getLoader(requestId) {\n let idx = search(bbn.env.loaders, { key: requestId });\n if (idx > -1) {\n return bbn.env.loaders[idx];\n }\n return null;\n}\n;\n","import isArray from '../type/isArray.js';\nimport compareConditions from './compareConditions.js';\n/**\n * Returns a new array with only the data matching the given filter.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method _filter\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.filter(ar, {director: \"Steven Spielberg\"});\n * // [\n * // {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * // {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * // ]\n * bbn.fn.filter(ar, \"director\", \"Steven Spielberg\");\n * // Same result as the previous example\n * bbn.fn.filter(ar, {\n * logic: \"OR\",\n * conditions: [\n * {\n * field: \"director\",\n * value: \"Richard Donner\"\n * }, {\n * field: \"director\",\n * value: \"George Lucas\"\n * }\n * ]\n * );\n * // [\n * // {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * // {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * // ]\n * ```\n *\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Array} A new filtered array\n */\nexport default function _filter(arr, prop, val = null, operator = '=', limit = 0) {\n if (!isArray(arr)) {\n try {\n arr = Array.from(arr);\n }\n catch (_a) {\n bbn.fn.log(\"NOT ARRAY\", arr);\n throw new Error('Error in filter: The first argument must be an array');\n }\n }\n let cfg = {};\n const res = [];\n const isFn = typeof (prop) === 'function';\n if (!prop || !arr.length) {\n return arr;\n }\n if (typeof prop === 'object') {\n operator = val;\n cfg = prop;\n }\n else if (typeof prop === 'string') {\n cfg[prop] = val;\n }\n else if (!isFn) {\n throw new Error('Search function error: The prop argument should be a string or an object');\n }\n let fn;\n if (typeof (prop) === 'function') {\n fn = prop;\n }\n else {\n fn = (a, i) => compareConditions(a, cfg);\n }\n for (let i = 0; i < arr.length; i++) {\n bbn.env._enumerated.push(true);\n if (fn(arr[i], i)) {\n bbn.env._enumerated.pop();\n res.push(arr[i]);\n bbn.env._enumerated.push(true);\n if (limit && (res.length >= limit)) {\n break;\n }\n }\n bbn.env._enumerated.pop();\n }\n return res;\n}\n;\n","import numProperties from '../object/numProperties.js';\nimport iterate from '../loop/iterate.js';\n/**\n * Adds the given color to the object bbn.var.colors in order to be able to use\n * the css classes bbn-bg-myColor for the background and bbn-myColor for the text color.\n *\n * @method addColors\n * @global\n * @example\n * ```javascript\n * //<div class=\"bbn-bg-maroon\">background</div> <span class=\"bbn-maroon\">text color</span>\n * bbn.fn.addColors({maroon: '#800000'});\n * ```\n * @memberof bbn.fn\n * @param {Object} colors\n * @returns\n */\nexport default function addColors(colors) {\n if (numProperties(colors)) {\n if (!bbn.var.colors) {\n bbn.var.colors = {};\n }\n let element = document.createElement(\"style\");\n document.head.appendChild(element);\n let sheet = element.sheet;\n // Append style element to head\n let i = 0;\n iterate(colors, (v, n) => {\n bbn.var.colors[n] = v;\n sheet.insertRule(\".bbn-\" +\n n +\n \", .bbn-color-text-\" +\n n +\n \" {color: \" +\n v +\n \" !important;}\", i);\n sheet.insertRule(\"svg.bbn-\" +\n n +\n \", .bbn-\" +\n n +\n \" svg, svg.bbn-color-text-\" +\n n +\n \", .bbn-color-text-\" +\n n +\n \" svg {fill: \" +\n v +\n \";}\", i);\n sheet.insertRule(\".bbn-bg-\" +\n n +\n \", .bbn-color-bg-\" +\n n +\n \", .bbn-color-background-\" +\n n +\n \" {background-color: \" +\n v +\n \" !important;}\", i);\n sheet.insertRule(\".bbn-border-\" +\n n +\n \", .bbn-color-border-\" +\n n +\n \" {border-color: \" +\n v +\n \" !important;}\", i);\n sheet.insertRule(\".bbn-color-\" +\n n +\n \" {border-color: \" +\n v +\n \"; background-color: \" +\n v +\n \"; color: \" +\n v +\n \";}\", i);\n });\n }\n}\n;\n","import iterate from '../loop/iterate.js';\n/**\n * Adds the given data to the given form by inserting hidden inputs.\n *\n * @method addInputs\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * let o = {name: \"Smith\", fname: \"John\"};\n * bbn.fn.addInputs(document.getElementById('myform'), o, 'bbn');\n * // Will write at the end of the given form:\n * // <input type=\"hidden\" name=\"bbn[name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"bbn[fname]\" value=\"John\">\n *\n * ```\n *\n * @example\n * ```javascript\n * let o = {\n * People: [\n * {name: \"Smith\", fname: \"John\"},\n * {name: \"Smith\", fname: \"Eileen\"}\n * ],\n * Dates: ['2021-08-25', '2021-09-06']\n * };\n * bbn.fn.addInputs(document.getElementById('myform'), o);\n * // Will write at the end of the given form:\n * // <input type=\"hidden\" name=\"People[0][name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"People[0][fname]\" value=\"John\">\n * // <input type=\"hidden\" name=\"People[1][name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"People[1][fname]\" value=\"Eileen\">\n * // <input type=\"hidden\" name=\"Dates[0]\" value=\"2021-08-25\">\n * // <input type=\"hidden\" name=\"Dates[1]\" value=\"2021-09-06\">\n * ```\n *\n * @param {HTMLElement} form The form to which the inputs should be added\n * @param {Object} params The data which will be added\n * @param {String} prefix The optional object's name of the fields in the form\n * @returns {undefined}\n */\nexport default function addInputs(form, params = null, prefix = '') {\n if (form && form.tagName === 'FORM') {\n let appendToForm = (name, val) => {\n let input = document.createElement('input');\n input.setAttribute('type', 'hidden');\n input.setAttribute('name', name);\n input.setAttribute('value', val);\n form.appendChild(input);\n };\n params = JSON.parse(JSON.stringify(params || {}));\n prefix = prefix || '';\n if (params) {\n iterate(params, (param, key) => {\n let name = prefix ? `${prefix}[${key}]` : key;\n if (param instanceof Date) {\n appendToForm(name, param.toISOString());\n }\n else if (param instanceof Array) {\n param.forEach((e, i) => {\n const tempName = `${name}[${i}]`;\n if (typeof e === 'object') {\n addInputs(form, e, tempName);\n }\n else {\n appendToForm(tempName, e.toString());\n }\n });\n }\n else if (typeof param === 'object' && !(param instanceof File)) {\n addInputs(form, param, name);\n }\n else {\n appendToForm(name, param.toString());\n }\n });\n }\n }\n}\n;\n","import each from '../loop/each.js';\nexport default function adjustSize(type, eles) {\n let max = 0, idx;\n each(eles, (el) => {\n el.style[type] = 'auto';\n });\n each(eles, (el, i) => {\n let rect = el.getBoundingClientRect(), s = rect[type] % 1 ? rect[type] - (rect[type] % 1) + 1 : rect[type];\n //s = rect[type];\n if (s > max) {\n max = s;\n idx = i;\n }\n });\n each(eles, (el, i) => {\n if (max) {\n el.style[type] = max + 'px';\n }\n });\n}\n;\n","/**\n * Returns a string escaped.\n *\n * To escape the string by reducing the ambiguity between quotation marks and other characters used.\n *\n * @method escapeRegExp\n * @global\n *\n * @example\n * ```javascript\n * //\"this\\/is\\/a\\/test\\/string\"\n * bbn.fn.escapeRegExp(\"this/is/a/test/string\");\n * ```\n * @memberof bbn.fn\n * @param {String} str\n * @returns {String} string with escape\n */\nexport default function escapeRegExp(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n}\n;\n","import isObject from '../type/isObject.js';\nimport escapeRegExp from './escapeRegExp.js';\n/**\n * Looks for and replaces parts of string with what we want.\n *\n * With the first argument you define what to replace,\n * the second argument with what you have to replace instead and the third argument is the string to be replaced.\n *\n * @method replaceAll\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.replaceAll('day', 'night', 'Today is a beautiful day');\n * //\"Tonight is a beautiful night\"\n * ```\n * @memberof bbn.fn\n * @param {String} find\n * @param {String} replace\n * @param {String|RegExp} str\n * @param {String} flags\n * @returns {String}\n */\nexport default function replaceAll(find, replace, str, flags = \"\") {\n return str\n .toString()\n .replace(isObject(find) ? find : new RegExp(escapeRegExp(find), \"g\" + flags), replace);\n}\n;\n","import iterate from '../loop/iterate.js';\nimport md5 from '../string/md5.js';\n/**\n * Returns a unique ID for a \"loader\" based on the URL, the data keys and the datatype.\n *\n * The routing functions don't allow to send the same request at the same moment,\n * therefore a unique ID is generated to identify them, based on the URL,\n * the keys of the data sent, and the expected returned data type.\n *\n * @method getRequestId\n * @global\n *\n * @example\n * ```javascript\n * // The URL is the first part of the key\n * bbn.fn.getRequestId('my/location', {a: 1, b: 2});\n * // my/location:af27f0e81533ae2bae3c25dea67359f6\n * bbn.fn.getRequestId('my/other/location', {a: 1, b: 2});\n * // my/other/location:af27f0e81533ae2bae3c25dea67359f6\n * ```\n *\n * @example\n * ```javascript\n * // A change of value will not change the requestId\n * bbn.fn.getRequestId('my/location', {a: 1, b: 3});\n * // my/location:af27f0e81533ae2bae3c25dea67359f6\n * // A change of key will\n * bbn.fn.getRequestId('my/location', {a: 1, c: 3});\n * // my/location:fde97ca7c6c998c911f4ab481a136d5f\n * ```\n *\n * @example\n * ```javascript\n * // Same with nested object\n * bbn.fn.getRequestId('my/location', {data: {a: 1, b: 3}});\n * // my/location:a7a58435275054106c4e4c9fb0cea5e5\n * bbn.fn.getRequestId('my/location', {data: {a: 1, b: 2}});\n * // my/location:a7a58435275054106c4e4c9fb0cea5e5\n * bbn.fn.getRequestId('my/location', {data: {a: 1, c: 3}});\n * // my/location:730da481e30d421afbadf1f1282dabb7\n * ```\n *\n * @memberof bbn.fn\n *\n * @param {String} url The URL used by the request\n * @param {Object} data The data sent to the URL\n * @param {String} datatype The type of data requested (JSON by default)\n *\n * @returns {String} The unique ID\n */\nexport default function getRequestId(url, data, datatype) {\n let d = {};\n if (data) {\n iterate(data, (a, n) => {\n if (n.indexOf('_bbn') === -1) {\n d[n] = a;\n }\n });\n }\n return url + ':' + md5((datatype || 'json') + JSON.stringify(d));\n}\n;\n","import isObject from '../type/isObject.js';\nimport replaceAll from '../string/replaceAll.js';\nimport getRequestId from './getRequestId.js';\nimport getLoader from './getLoader.js';\nimport extend from '../object/extend.js';\nimport numProperties from '../object/numProperties.js';\nimport _deleteLoader from './_deleteLoader.js';\nimport isFunction from '../type/isFunction.js';\nimport _addLoader from './_addLoader.js';\nimport com from '../../com.js';\n/**\n * Creates an XHR object and returns the Promise.\n *\n * Checks the URL, makes an ID, creates a loader, sets the general callbacks,\n * makes a POST if data is given a GET otherwise (GET data should be added\n * directly in the URL), and returns the Promise.\n *\n * @method ajax\n * @global\n * @memberof bbn.fn\n * @example\n * ```javascript\n * // Promise\n * bbn.fn.ajax(\n * 'my/location',\n * 'json',\n * {id: 7},\n * d => {\n * console.log(d);\n * alert(\"Success!\");\n * },\n * err => {\n * console.log(err);\n * alert(\"Failure!\");\n * },\n * () => {\n * alert(\"Request aborted!\");\n * }\n * )\n * ```\n *\n * @example\n * ```javascript\n * // Promise\n * bbn.fn.ajax('my/location')\n * .then(\n * d => {\n * console.log(d);\n * alert(\"Success!\");\n * }\n * )\n * .catch(\n * err => {\n * }\n * )\n * ```\n *\n * @param {String} url The URL to be requested by XHR\n * @param {String} datatype The type of data expected\n * @param {Object} data The data to send through POST\n * @param {Function} success The function to execute if the request goes well (200)\n * @param {Function} failure The function to execute if the request goes bad\n * @param {Function} abort The function to execute if the request is aborted\n *\n * @returns {Promise} The Promise created by the generated XHR.\n */\nexport default function ajax(url, datatype = null, data = null, success = null, failure = null, abort = null) {\n if ((datatype === null) && url && (typeof url === \"object\") && url.url) {\n if (url.abort) {\n abort = url.abort;\n }\n if (url.failure) {\n failure = url.failure;\n }\n if (url.success) {\n success = url.success;\n }\n if (url.data) {\n data = url.data;\n }\n if (url.datatype) {\n datatype = url.datatype;\n }\n url = url.url;\n }\n if (!url) {\n return;\n }\n if (url && typeof url === \"string\") {\n if (url.indexOf(\"://\") === -1) {\n // Prevent protocol mismatch by Axios\n url = replaceAll(\"//\", \"/\", url);\n }\n if (!datatype) {\n datatype = \"json\";\n }\n let requestId = getRequestId(url, data, datatype);\n let loaderObj = getLoader(requestId);\n if (loaderObj === null || loaderObj === void 0 ? void 0 : loaderObj.loader) {\n return loaderObj.loader;\n }\n if (bbn.env.token) {\n extend(data || {}, { _bbn_token: bbn.env.token });\n }\n const aborter = new AbortController();\n let options = {\n responseType: datatype,\n signal: aborter.signal\n };\n if (datatype === \"text\") {\n options['headers'] = {\n accept: \"text/javascript\",\n \"Content-Type\": \"text/javascript\",\n };\n }\n else if (datatype === \"json\") {\n options['headers'] = {\n accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n };\n }\n else if (datatype === \"html\") {\n options['headers'] = {\n accept: \"text/html\",\n \"Content-Type\": \"text/html\",\n };\n }\n let method = \"get\";\n if (isObject(data)) {\n if (numProperties(data) > 0) {\n options.data = data;\n method = \"post\";\n }\n }\n let loader = com.run(method, url, options)\n .then(res => {\n _deleteLoader(requestId, res);\n bbn.fn.defaultEndLoadingFunction(url, tst, data, res);\n switch (res.status) {\n case 200:\n if (isFunction(success)) {\n //bbn.fn.log([\"THERE US A SUCCESS FUNCTION\", res, loader]);\n success(res.data, res.headers);\n }\n break;\n default:\n let ok = 1;\n if (isFunction(failure)) {\n ok = failure(loader, res.message, res);\n }\n if (ok) {\n bbn.fn.defaultAjaxErrorFunction(loader, res.message, res);\n }\n }\n return res;\n })\n .catch((err) => {\n let isAbort = com.isCancel(err);\n _deleteLoader(requestId, err.message || err.response.data, isAbort);\n bbn.fn.defaultEndLoadingFunction(url, tst, data, err);\n if (isAbort) {\n let ok = 1;\n if (isFunction(abort)) {\n ok = abort(err.message, url);\n }\n if (ok) {\n bbn.fn.defaultAjaxAbortFunction(err.message, url);\n }\n }\n else {\n let ok = 1;\n if (isFunction(failure)) {\n ok = failure(loader, err.message, err);\n }\n if (ok) {\n bbn.fn.defaultAjaxErrorFunction(loader, err.message, err.response);\n }\n }\n return err.response;\n });\n let tst = _addLoader(requestId, loader, aborter);\n bbn.fn.defaultStartLoadingFunction(url, tst, data, requestId);\n return loader;\n }\n}\n;\n","const decoder = new TextDecoder();\nexport default function arrayBuffer2String(buf) {\n return decoder.decode(buf);\n}\n;\n","import isString from '../type/isString.js';\nimport substr from './substr.js';\n/**\n * Returns the name of the element indicated by path given to it as an argument.\n *\n * @method baseName\n * @global\n *\n * @example\n * ```javascript\n * // \"file.png\"\n * bbn.fn.baseName('folder/other_folder/file.png');\n * ```\n * @example\n * ```javascript\n * // \"file\"\n * bbn.fn.baseName('folder/other_folder/file.png', '.png');\n * ```\n *\n * @memberof bbn.fn\n * @param {String} path The path from which the basename must be extracted\n * @param {String} suffix An optional suffix that will be removed from the basename\n * @returns {String} The basename of path\n */\nexport default function baseName(path, suffix) {\n if (path && isString(path)) {\n let bits = path.split(\"/\");\n let res = bits.pop();\n if (!suffix) {\n return res;\n }\n let len = suffix.length;\n if (res && substr(res, -len) === suffix) {\n return substr(res, 0, res.length - len);\n }\n }\n return \"\";\n}\n;\n","const units = [\n ['y', \"year\", 365 * 24 * 60 * 60 * 1000],\n ['m', \"month\", 30 * 24 * 60 * 60 * 1000],\n ['w', \"week\", 7 * 24 * 60 * 60 * 1000],\n ['d', \"day\", 24 * 60 * 60 * 1000],\n ['h', \"hour\", 60 * 60 * 1000],\n ['i', \"minute\", 60 * 1000],\n ['s', \"second\", 1000],\n ['l', \"millisecond\", 1]\n];\nconst unitsCorrespondence = {\n 'years': 'y',\n 'year': 'y',\n 'YEARS': 'y',\n 'YEAR': 'y',\n 'Years': 'y',\n 'Year': 'y',\n 'YYYY': 'y',\n 'YY': 'y',\n 'yyyy': 'y',\n 'yy': 'y',\n 'months': 'm',\n 'month': 'm',\n 'Months': 'm',\n 'Month': 'm',\n 'MONTHS': 'm',\n 'MONTH': 'm',\n 'MMMM': 'm',\n 'MMM': 'm',\n 'MM': 'm',\n 'weekday': 'e',\n 'WEEKDAY': 'e',\n 'ee': 'e',\n 'EE': 'e',\n 'ddd': 'e',\n 'days': 'd',\n 'day': 'd',\n 'Days': 'd',\n 'Day': 'd',\n 'DAYS': 'd',\n 'DAY': 'd',\n 'DD': 'd',\n 'dd': 'd',\n 'hours': 'h',\n 'hour': 'h',\n 'Hours': 'h',\n 'Hour': 'h',\n 'HOURS': 'h',\n 'HOUR': 'h',\n 'HH': 'h',\n 'hr': 'h',\n 'hh': 'h',\n 'minutes': 'i',\n 'minute': 'i',\n 'Minutes': 'i',\n 'Minute': 'i',\n 'MINUTES': 'i',\n 'MINUTE': 'i',\n 'II': 'i',\n 'ii': 'i',\n 'mn': 'i',\n 'mm': 'i',\n 'min': 'i',\n 'ms': 'l',\n 'SSS': 'l',\n 'sss': 'l',\n 'SS': 's',\n 'ss': 's',\n 'seconds': 's',\n 'second': 's',\n 'Seconds': 's',\n 'Second': 's',\n 'SECONDS': 's',\n 'SECOND': 's',\n 'sec': 's',\n 'WW': 'w',\n 'Y': 'y',\n 'y': 'y',\n 'M': 'm',\n 'm': 'm',\n 'e': 'e',\n 'E': 'e',\n 'D': 'd',\n 'd': 'd',\n 'H': 'h',\n 'h': 'h',\n 'n': 'i',\n 'i': 'i',\n 's': 's',\n 'S': 's',\n 'W': 'w',\n 'w': 'w',\n 'ZZ': 'z',\n 'Z': 'z'\n};\nconst unitsMap = {\n 'y': 'Year',\n 'm': 'Month',\n 'd': 'Date',\n 'w': 'Week',\n 'h': 'Hours',\n 'i': 'Minutes',\n 's': 'Seconds',\n 'l': 'Milliseconds',\n 'z': 'Offset'\n};\nconst formatsMap = {\n 'y': 'YYYY',\n 'm': 'MM',\n 'd': 'DD',\n 'e': 'EE',\n 'w': 'WW',\n 'h': 'HH',\n 'i': 'II',\n 's': 'SS',\n 'z': 'Z'\n};\nexport { units, unitsCorrespondence, unitsMap, formatsMap };\n","/**\n * Returns true if the given arguments are primitive;\n * @method isPrimitive\n * @global\n * @example\n * ```javascript\n * bbn.fn.isPrimitive('myString', 6, true);\n * //true\n * bbn.fn.isPrimitive([80,10,22]);\n * //false\n * bbn.fn.isPrimitive({});\n * //false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isPrimitive(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (a !== null && (typeof a == \"object\" || typeof a == \"function\")) {\n return false;\n }\n }\n return true;\n}\n;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _bbnDtDuration_instances, _bbnDtDuration_value, _bbnDtDuration_unit, _bbnDtDuration_getUnitValue;\nimport { Temporal } from 'temporal-polyfill';\nimport { units, unitsCorrespondence } from '../vars/units.js';\nimport getRow from '../../fn/object/getRow.js';\nconst DURATION_RELATIVE_TO = Temporal.ZonedDateTime.from('1970-01-01T00:00Z[UTC]');\nclass bbnDtDuration {\n static fromUnit(value, unit) {\n const realUnit = unitsCorrespondence[unit] || 'ms';\n if (!realUnit) {\n throw new Error('Invalid unit for duration: ' + unit);\n }\n const ctx = [\n realUnit === 'y' ? value : 0,\n realUnit === 'm' ? value : 0,\n realUnit === 'w' ? value : 0,\n realUnit === 'd' ? value : 0,\n realUnit === 'h' ? value : 0,\n realUnit === 'i' ? value : 0,\n realUnit === 's' ? value : 0,\n ['y', 'm', 'w', 'd', 'h', 'i', 's'].includes(realUnit) ? 0 : value\n ];\n const dur = new Temporal.Duration(...ctx);\n return new bbnDtDuration(dur);\n }\n constructor(y, m, w, d, h, i, s, ms, unit) {\n _bbnDtDuration_instances.add(this);\n _bbnDtDuration_value.set(this, void 0);\n _bbnDtDuration_unit.set(this, void 0);\n if (y instanceof Temporal.Duration) {\n __classPrivateFieldSet(this, _bbnDtDuration_value, y, \"f\");\n }\n else if (typeof y === 'object') {\n __classPrivateFieldSet(this, _bbnDtDuration_value, new Temporal.Duration(y.years || 0, y.months || 0, y.weeks || 0, y.days || 0, y.hours || 0, y.minutes || 0, y.seconds || 0, y.milliseconds || 0, 0, 0), \"f\");\n }\n else {\n __classPrivateFieldSet(this, _bbnDtDuration_value, new Temporal.Duration(y || 0, m || 0, w || 0, d || 0, h || 0, i || 0, s || 0, ms || 0, 0, 0), \"f\");\n }\n const realUnit = unitsCorrespondence[unit || ''] || unit;\n __classPrivateFieldSet(this, _bbnDtDuration_unit, realUnit || 'ms', \"f\");\n const row = getRow(units, (a) => a[0] === realUnit);\n if (!row) {\n //throw new Error('Invalid unit for duration: ' + realUnit);\n }\n Object.defineProperty(this, 'isValid', {\n value: false,\n writable: false,\n configurable: true\n });\n }\n setValid(isValid) {\n Object.defineProperty(this, 'isValid', {\n value: isValid,\n writable: false,\n configurable: false\n });\n }\n get value() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\");\n }\n // -----------------------\n // Public getters\n // -----------------------\n years(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'year', remaining); }\n months(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'month', remaining); }\n weeks(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'week', remaining); }\n days(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'day', remaining); }\n hours(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'hour', remaining); }\n minutes(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'minute', remaining); }\n seconds(remaining = false) { return __classPrivateFieldGet(this, _bbnDtDuration_instances, \"m\", _bbnDtDuration_getUnitValue).call(this, 'second', remaining); }\n // -----------------------\n // Day.js style\n // \"asX\" conversions\n // -----------------------\n toJSON() {\n return this.value.toJSON();\n }\n /**\n * Returns the full duration expressed as X (float), like Day.js.\n */\n asYears() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'year',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asMonths() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'month',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asWeeks() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'week',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asDays() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'day',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asHours() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'hour',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asMinutes() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'minute',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n asSeconds() {\n return __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").total({\n unit: 'second',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n /**\n * Add any unit (or instance default).\n */\n add(value, unit) {\n let targetUnit = __classPrivateFieldGet(this, _bbnDtDuration_unit, \"f\");\n if (unit) {\n if (unitsCorrespondence[unit]) {\n const realUnit = getRow(units, (a) => a[0] === unitsCorrespondence[unit]);\n if (realUnit) {\n targetUnit = realUnit[1];\n }\n }\n else {\n targetUnit = unit;\n }\n }\n // Map to Temporal.DurationLike field name, e.g. 'year' → 'years'\n const field = (targetUnit + 's');\n if (!['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds'].includes(field)) {\n throw new Error('Invalid unit for duration: ' + (unit !== null && unit !== void 0 ? unit : targetUnit));\n }\n const delta = { [field]: value };\n const newDuration = __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\").add(delta);\n // Adapt this constructor call to however you now construct your duration:\n return new bbnDtDuration(newDuration, undefined, undefined, undefined, undefined, undefined, undefined, undefined, __classPrivateFieldGet(this, _bbnDtDuration_unit, \"f\"));\n }\n subtract(value, unit) {\n return this.add(-value, unit);\n }\n toMilliseconds() {\n const d = __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\");\n // If there are no calendar units, we can let Temporal do it directly:\n if (!d.years && !d.months && !d.weeks && !d.days) {\n return d.total({ unit: 'millisecond' });\n }\n // Otherwise we must supply a relativeTo (same as in asX)\n return d.total({\n unit: 'millisecond',\n relativeTo: DURATION_RELATIVE_TO\n });\n }\n}\n_bbnDtDuration_value = new WeakMap(), _bbnDtDuration_unit = new WeakMap(), _bbnDtDuration_instances = new WeakSet(), _bbnDtDuration_getUnitValue = function _bbnDtDuration_getUnitValue(name, remaining) {\n const d = __classPrivateFieldGet(this, _bbnDtDuration_value, \"f\"); // Temporal.Duration\n if (remaining) {\n switch (name) {\n case 'year': return d.years;\n case 'month': return d.months;\n case 'week': return d.weeks;\n case 'day': return d.days;\n case 'hour': return d.hours;\n case 'minute': return d.minutes;\n case 'second':\n // seconds component only; sub-second parts go to milliseconds in toJSON()\n return d.seconds;\n }\n }\n // Total units: use Duration.total()\n const total = d.total({\n unit: name,\n relativeTo: DURATION_RELATIVE_TO\n });\n // Keep same semantics as old code (Math.floor on totals)\n return Math.floor(total);\n};\nexport default bbnDtDuration;\n;\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _bbnDt_value;\nimport { Temporal } from 'temporal-polyfill';\nimport { unitsCorrespondence, units, formatsMap } from '../vars/units.js';\nimport _ from '../../_.js';\nimport substr from '../../fn/string/substr.js';\nimport each from '../../fn/loop/each.js';\nimport getRow from '../../fn/object/getRow.js';\nimport isPrimitive from '../../fn/type/isPrimitive.js';\nimport bbnDtDuration from './duration.js';\nexport class bbnDt {\n constructor(value) {\n this.__bbnNoData = true;\n this.__isBbnDt = true;\n _bbnDt_value.set(this, void 0);\n this.getWeekdayIndex = (name, locale) => {\n const loc = locale || bbn.env.lang;\n const input = name.trim().toLowerCase();\n // Build a localized map only once per locale (optional optimization)\n const langs = [loc, ...navigator.languages];\n for (let i = 0; i < langs.length; i++) {\n if (!langs[i]) {\n continue;\n }\n const formatter = new Intl.DateTimeFormat(langs[i], { weekday: \"long\" });\n // Generate localized weekday names for Sun → Sat\n for (let i = 0; i < 7; i++) {\n // 2023-01-01 was Sunday\n const date = new Date(2023, 0, 1 + i);\n const localized = formatter.format(date).toLowerCase();\n if (localized === input) {\n return i; // JS weekday number\n }\n }\n }\n throw new Error(`Unknown weekday name '${name}' for locale '${loc}'`);\n };\n Object.defineProperty(this, 'isValid', {\n value: true,\n writable: false,\n configurable: true\n });\n __classPrivateFieldSet(this, _bbnDt_value, value, \"f\");\n const d = new Date();\n Object.defineProperty(this, 'defaultValue', {\n value: {\n year: d.getFullYear(),\n month: d.getMonth() + 1,\n day: d.getDate(),\n hour: d.getHours(),\n minute: d.getMinutes(),\n second: d.getSeconds(),\n millisecond: d.getMilliseconds()\n },\n writable: false,\n configurable: false\n });\n }\n setValid(isValid) {\n Object.defineProperty(this, 'isValid', {\n value: isValid,\n writable: false,\n configurable: false\n });\n }\n get value() {\n return __classPrivateFieldGet(this, _bbnDt_value, \"f\");\n }\n get hasFullDate() {\n return ('year' in this.value) && ('month' in this.value) && ('day' in this.value);\n }\n /**\n * Convert this.value (PlainDate, PlainTime, PlainDateTime, YearMonth,\n * MonthDay, ZonedDateTime) into epoch milliseconds, using the system\n * time zone when needed.\n *\n * Conventions:\n * - time → today at that time in system tz\n * - date → that date at 00:00 in system tz\n * - year-month → first of that month at 00:00 in system tz\n * - month-day → that month/day in *this year* at 00:00 in system tz\n */\n toEpochMs() {\n if (this.kind === 'zoned') {\n const v = this.value;\n return v.toInstant().epochMilliseconds;\n }\n const tz = bbnDt.systemTimeZoneId;\n let iso;\n switch (this.kind) {\n case 'dateTime': {\n const v = this.value;\n // RFC 9557 string: \"YYYY-MM-DDTHH:mm:ss[Europe/Rome]\"\n return v.toZonedDateTime(tz).toInstant().epochMilliseconds;\n iso = `${v.toString()}[${tz}]`;\n }\n case 'date': {\n const d = this.value;\n return d.toZonedDateTime({\n timeZone: tz,\n plainTime: {\n hour: this.defaultValue.hour,\n minute: this.defaultValue.minute,\n second: this.defaultValue.second,\n millisecond: this.defaultValue.millisecond\n }\n }).toInstant().epochMilliseconds;\n const today = new Date();\n // \"YYYY-MM-DDT00:00[Europe/Rome]\"\n iso = `${d.toString()}T00:00[${tz}]`;\n }\n case 'time': {\n const t = this.value;\n const today = Temporal.Now.plainDateISO();\n // \"YYYY-MM-DDTHH:mm[:ss][Europe/Rome]\"\n iso = `${today.toString()}T${t.toString()}[${tz}]`;\n }\n case 'yearMonth': {\n const ym = this.value;\n const d = ym.toPlainDate({ day: 1 }); // first day of month\n iso = `${d.toString()}T00:00[${tz}]`;\n }\n case 'monthDay': {\n const md = this.value;\n const today = Temporal.Now.plainDateISO();\n const d = md.toPlainDate({ year: today.year }); // current year\n iso = `${d.toString()}T00:00[${tz}]`;\n }\n }\n if (iso) {\n const zdt = Temporal.ZonedDateTime.from(iso);\n return zdt.toInstant().epochMilliseconds; // - Math.round(zdt.offsetNanoseconds / 1000000);\n }\n throw new Error(`Unsupported kind '${this.kind}' in toEpochMs`);\n }\n /**\n * \"Now\" value in the same *kind* as this instance.\n */\n static nowForKind(kind) {\n switch (kind) {\n case 'zoned':\n return Temporal.Now.zonedDateTimeISO();\n case 'dateTime':\n return Temporal.Now.plainDateTimeISO();\n case 'date':\n return Temporal.Now.plainDateISO();\n case 'time':\n return Temporal.Now.plainTimeISO();\n case 'yearMonth': {\n const d = Temporal.Now.plainDateISO();\n return new Temporal.PlainYearMonth(d.year, d.month);\n }\n case 'monthDay': {\n const d = Temporal.Now.plainDateISO();\n return new Temporal.PlainMonthDay(d.month, d.day, undefined, d.year);\n }\n default:\n throw new Error(`Unsupported kind '${kind}' in nowForKind`);\n }\n }\n /**\n * Helper to rebuild the same concrete subclass with a new Temporal value.\n * Assumes your subclass constructor takes the value as first argument.\n */\n withValue(newValue) {\n const Ctor = this.constructor;\n return new Ctor(newValue);\n }\n static compare(a, b, unit) {\n if (!a || !b) {\n throw new TypeError('Both arguments must be Temporal values');\n }\n const tz = Temporal.Now.timeZoneId();\n const realUnit = unitsCorrespondence[unit] ? getRow(units, d => d[0] === unitsCorrespondence[unit])[1] : undefined;\n const isBbnDt = (x) => x instanceof bbnDt;\n // --- helper: get underlying Temporal value if wrapper ---\n const unwrap = (x) => isBbnDt(x) ? x.value : x;\n // --- helper: normalized ZonedDateTime for comparison ---\n const toZdt = (x) => {\n // x may be a bbnDt* or a raw Temporal\n if (isBbnDt(x)) {\n switch (x.kind) {\n case 'zoned': {\n return x.value;\n }\n case 'dateTime': {\n const v = x.value;\n const iso = `${v.toString()}[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case 'date': {\n const d = x.value;\n const iso = `${d.toString()}T00:00[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case 'yearMonth': {\n const ym = x.value;\n const d = ym.toPlainDate({ day: 1 });\n const iso = `${d.toString()}T00:00[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n default:\n throw new TypeError(`Cannot convert kind '${x.kind}' to ZonedDateTime for comparison`);\n }\n }\n // If it's already a Temporal.ZonedDateTime, keep it\n if (x instanceof Temporal.ZonedDateTime) {\n return x;\n }\n throw new TypeError('toZdt expects a bbnDt wrapper or ZonedDateTime');\n };\n // ---- CASE 1: same constructor → your original logic on raw Temporal ----\n const rawA = unwrap(a);\n const rawB = unwrap(b);\n if (rawA.constructor === rawB.constructor) {\n const Ctor = rawA.constructor;\n if (realUnit === undefined) {\n if (typeof Ctor.compare !== 'function') {\n throw new TypeError('This Temporal type has no static compare');\n }\n return Ctor.compare(rawA, rawB); // -1, 0, 1\n }\n if (typeof rawA.until !== 'function') {\n throw new TypeError('This Temporal type does not support until/since');\n }\n const diff = rawA.until(rawB, { smallestUnit: realUnit, largestUnit: realUnit, roundingMode: 'floor' });\n //bbn.fn.log(['compare0', diff, realUnit, diff.sign, a.date(), b.date(), rawA.day, rawB.day]);\n return diff.sign;\n }\n // ---- CASE 2: different constructors, but convertible bbnDt kinds ----\n const convertibleKinds = new Set([\n 'zoned',\n 'dateTime',\n 'date',\n 'yearMonth',\n ]);\n if (isBbnDt(a) &&\n isBbnDt(b) &&\n convertibleKinds.has(a.kind) &&\n convertibleKinds.has(b.kind)) {\n const za = toZdt(a);\n const zb = toZdt(b);\n if (realUnit === undefined) {\n return Temporal.ZonedDateTime.compare(za, zb);\n }\n if (typeof za.until !== 'function') {\n throw new TypeError('ZonedDateTime does not support until/since');\n }\n const diff = za.until(zb, { smallestUnit: realUnit, largestUnit: realUnit, roundingMode: 'floor' });\n //bbn.fn.log(['compare', diff, realUnit, diff.sign, a.date(), b.date(), za.day, zb.day]);\n return diff.sign;\n }\n // ---- CASE 3: not compatible ----\n throw new TypeError('Cannot compare different Temporal or bbnDt types');\n }\n static parse(input, format, cls = 'auto', locale) {\n return bbn.dt(input, format, cls, locale);\n }\n parse(input, format, cls) {\n return bbnDt.parse(input, format, cls || this.kind);\n }\n compare(other, unit) {\n if (!(other instanceof bbnDt)) {\n other = bbn.dt(other, null, this.kind);\n }\n return bbnDt.compare(this, other, unit);\n }\n add(amount, unit) {\n if (!this.value) {\n return undefined;\n }\n if (this.value instanceof Temporal.PlainMonthDay || typeof this.value.add !== 'function') {\n throw new TypeError('This Temporal type does not support add/subtract');\n }\n if (amount instanceof bbnDtDuration) {\n const d = this.value.add(amount.value);\n return new this.constructor(d);\n }\n else if (typeof amount === 'object') {\n const dur = new bbnDtDuration(amount);\n const d = this.value.add(dur.value);\n return new this.constructor(d);\n }\n else {\n if (!unit) {\n throw new Error('Unit must be specified when adding a number');\n }\n const dur = bbnDtDuration.fromUnit(amount, unit);\n const d = this.value.add(dur.value);\n return new this.constructor(d);\n }\n }\n subtract(amount, unit) {\n if (!this.value) {\n return undefined;\n }\n if (this.value instanceof Temporal.PlainMonthDay || typeof this.value.subtract !== 'function') {\n throw new TypeError('This Temporal type does not support add/subtract');\n }\n if (amount instanceof bbnDtDuration) {\n const d = this.value.subtract(amount.value);\n return new this.constructor(d);\n }\n else if (typeof amount === 'object') {\n const dur = new bbnDtDuration(amount);\n const d = this.value.subtract(dur.value);\n return new this.constructor(d);\n }\n else {\n if (!unit) {\n throw new Error('Unit must be specified when adding a number');\n }\n const dur = bbnDtDuration.fromUnit(amount, unit);\n const d = this.value.subtract(dur.value);\n return new this.constructor(d);\n }\n }\n duration(amount, unit) {\n return bbnDtDuration.fromUnit(amount, unit);\n }\n isBefore(other, unit) {\n return this.compare(other, unit) < 0;\n }\n isBeforeOrSame(other, unit) {\n return this.compare(other, unit) <= 0;\n }\n isAfter(other, unit) {\n return this.compare(other, unit) > 0;\n }\n isAfterOrSame(other, unit) {\n return this.compare(other, unit) >= 0;\n }\n isSame(other, unit) {\n return this.compare(other, unit) === 0;\n }\n equals(other) {\n return this.isSame(other);\n }\n // ---- Serialization ----\n toJSON() {\n if ('toZonedDateTime' in __classPrivateFieldGet(this, _bbnDt_value, \"f\")) {\n const zdt = __classPrivateFieldGet(this, _bbnDt_value, \"f\").toZonedDateTime(bbnDt.systemTimeZoneId);\n const zdt2 = zdt.withTimeZone('UTC');\n return bbn.dt(zdt2).format('YYYY-MM-DDTHH:II:SS.SSS') + 'Z';\n }\n if (this.kind === 'zoned') {\n return this.timezone('America/New_York').format('YYYY-MM-DDTHH:II:SS.SSS') + 'Z';\n }\n }\n timezone(d) {\n switch (this.kind) {\n case 'zoned':\n if (d === undefined) {\n const v = this.value;\n return v.timeZoneId;\n }\n else {\n const v = this.value;\n const newZdt = v.withTimeZone(d);\n return bbn.dt(newZdt);\n }\n break;\n case 'dateTime':\n if (d === undefined) {\n const v = this.value;\n const iso = `${v.toString()}[${bbnDt.systemTimeZoneId}]`;\n const zdt = Temporal.ZonedDateTime.from(iso);\n return zdt.timeZoneId;\n }\n else {\n const v = this.value;\n const iso = `${v.toString()}[${d}]`;\n const zdt = Temporal.ZonedDateTime.from(iso);\n return bbn.dt(zdt);\n }\n break;\n default:\n throw new Error(`timezone() is not supported for kind '${this.kind}'`);\n }\n }\n toString() {\n return new Date(this.valueOf()).toString();\n }\n year(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('year' in this.value)) {\n throw new Error('year() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ year: v });\n return new this.constructor(d);\n }\n return this.value.year;\n }\n month(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('month' in this.value)) {\n throw new Error('month() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ month: v });\n return new this.constructor(d);\n }\n return this.value.month;\n }\n day(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('day' in this.value)) {\n throw new Error('day() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ day: v });\n return new this.constructor(d);\n }\n return this.value.day;\n }\n hour(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('hour' in this.value)) {\n if (this.hasFullDate) {\n return 0;\n }\n throw new Error('hour() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ hour: v });\n return new this.constructor(d);\n }\n return this.value.hour;\n }\n minute(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('minute' in this.value)) {\n if (this.hasFullDate) {\n return 0;\n }\n throw new Error('minute() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ minute: v });\n return new this.constructor(d);\n }\n return this.value.minute;\n }\n second(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('second' in this.value)) {\n if (this.hasFullDate) {\n return 0;\n }\n throw new Error('second() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ second: v });\n return new this.constructor(d);\n }\n return this.value.second;\n }\n millisecond(v) {\n if (!this.value) {\n return undefined;\n }\n if (!('millisecond' in this.value)) {\n if (this.hasFullDate) {\n return 0;\n }\n throw new Error('millisecond() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n const d = this.value.with({ millisecond: v });\n return new this.constructor(d);\n }\n return this.value.millisecond;\n }\n weekday(v, past) {\n if (!this.value) {\n return undefined;\n }\n if (!('dayOfWeek' in this.value)) {\n throw new Error('weekday() is not supported for this type');\n }\n if ((v !== undefined) && !(v instanceof Event)) {\n return this.setWeekday(v, past);\n }\n return this.value.dayOfWeek % 7;\n }\n date(v) {\n if (!this.value) {\n return undefined;\n }\n if (!this.hasFullDate) {\n throw new Error('date() is not supported for this type');\n }\n if (0 in arguments && (v !== undefined) && !(v instanceof Event)) {\n return this.parse(v, 'Y-m-d');\n }\n return this.YYYY + '-' + this.MM + '-' + this.DD;\n }\n datetime(v) {\n if (0 in arguments && (v !== undefined) && !(v instanceof Event)) {\n if (this.kind === 'date') {\n return this.parse(this.date() + ' ' + v, 'Y-m-d 00:00:00', 'dateTime');\n }\n return this.parse(v, 'Y-m-d H:i:s');\n }\n return this.YYYY + '-' + this.MM + '-' + this.DD + ' ' + this.HH + ':' + this.II + ':' + this.SS;\n }\n time(v) {\n if (0 in arguments && (v !== undefined) && !(v instanceof Event)) {\n if (this.kind === 'zoned') {\n return this.parse(this.date() + ' ' + v + ' GMT' + this.value.timeZoneId, 'Y-m-d H:i:s[ GMT]Z', 'dateTime');\n }\n if (['dateTime', 'date'].includes(this.kind)) {\n return this.parse(this.date() + ' ' + v, 'Y-m-d H:i:s', 'dateTime');\n }\n return this.parse(v, 'H:i:s');\n }\n return this.HH + ':' + this.II + ':' + this.SS;\n }\n fdate(long = false, withTime = false) {\n if (!this.value) {\n return '';\n }\n return bbn.dt.locales.formatters[long ? 'long' : 'numeric'].format(new Date(this.toEpochMs()));\n }\n ftime(withSeconds = true) {\n if (!this.value) {\n return '';\n }\n return this.format('HH:II' + (withSeconds ? ':SS' : ''));\n }\n week() {\n if (!this.value) {\n return undefined;\n }\n const year = this.year();\n // Normalize to UTC midnight to avoid DST issues\n const d = new Date(Date.UTC(year, this.month() - 1, this.day()));\n const jan1 = new Date(Date.UTC(year, 0, 1));\n const MS_PER_DAY = 24 * 60 * 60 * 1000;\n const diffDays = Math.floor((d.getTime() - jan1.getTime()) / MS_PER_DAY); // 0 for Jan 1\n const jan1Dow = jan1.getUTCDay(); // 0–6, Sunday=0\n // How many days long is week 1?\n // Week 1 starts on Jan 1 and ends the day before the first `firstDayOfWeek` after Jan 1.\n let offset = (bbn.dt.locales.firstDayOfWeek - jan1Dow + 7) % 7;\n const firstWeekLength = offset === 0 ? 7 : offset;\n // Still in the first (possibly partial) week\n if (diffDays < firstWeekLength) {\n return 1;\n }\n // Remaining days after week 1\n const remainingDays = diffDays - firstWeekLength;\n // Each full block of 7 days is one more week\n return 2 + Math.floor(remainingDays / 7);\n }\n get YYYY() {\n if ('year' in this.value) {\n return this.year().toString();\n }\n return undefined;\n }\n get YY() {\n if ('year' in this.value) {\n return substr(this.year().toString(), 2, 2);\n }\n return undefined;\n }\n get MMMM() {\n if ('month' in this.value) {\n return bbn.dt.locales.monthsLong[this.month() - 1];\n }\n return undefined;\n }\n get MMM() {\n if ('month' in this.value) {\n return bbn.dt.locales.monthsShort[this.month() - 1];\n }\n return undefined;\n }\n get MM() {\n if ('month' in this.value) {\n const m = parseInt(this.month().toString());\n return m < 10 ? '0' + m.toString() : m.toString();\n }\n return undefined;\n }\n get M() {\n if ('month' in this.value) {\n return this.month().toString();\n }\n return undefined;\n }\n get EE() {\n if ('dayOfWeek' in this.value) {\n return this.value.dayOfWeek.toString();\n }\n return undefined;\n }\n get DD() {\n if ('day' in this.value) {\n const d = parseInt(this.day().toString());\n return d < 10 ? '0' + d.toString() : d.toString();\n }\n return undefined;\n }\n get d() {\n if ('day' in this.value) {\n return this.day().toString();\n }\n return undefined;\n }\n get dddd() {\n if ('dayOfWeek' in this.value) {\n return this.getWeekday(this.value.dayOfWeek, 'long');\n }\n return undefined;\n }\n get ddd() {\n if ('dayOfWeek' in this.value) {\n return this.getWeekday(this.value.dayOfWeek, 'short');\n }\n return undefined;\n }\n get D() {\n if ('day' in this.value) {\n return this.day().toString();\n }\n return undefined;\n }\n get HH() {\n if ('hour' in this.value) {\n const h = parseInt(this.hour().toString());\n return h < 10 ? '0' + h.toString() : h.toString();\n }\n else if (this.hasFullDate) {\n return this.defaultValue.hour.toString().padStart(2, '0');\n }\n return undefined;\n }\n get H() {\n if ('hour' in this.value) {\n return this.hour().toString();\n }\n else if (this.hasFullDate) {\n return '0';\n }\n return undefined;\n }\n get II() {\n if ('minute' in this.value) {\n const i = parseInt(this.minute().toString());\n return i < 10 ? '0' + i.toString() : i.toString();\n }\n else if (this.hasFullDate) {\n return this.defaultValue.minute.toString().padStart(2, '0');\n }\n return undefined;\n }\n get mm() {\n if ('minute' in this.value) {\n const i = parseInt(this.minute().toString());\n return i < 10 ? '0' + i.toString() : i.toString();\n }\n else if (this.hasFullDate) {\n return this.defaultValue.minute.toString().padStart(2, '0');\n }\n return undefined;\n }\n get I() {\n if ('minute' in this.value) {\n return this.minute().toString();\n }\n else if (this.hasFullDate) {\n return '0';\n }\n return undefined;\n }\n get SS() {\n if ('second' in this.value) {\n const s = parseInt(this.second().toString());\n return s < 10 ? '0' + s.toString() : s.toString();\n }\n else if (this.hasFullDate) {\n return this.defaultValue.second.toString().padStart(2, '0');\n }\n return undefined;\n }\n get SSS() {\n if ('millisecond' in this.value) {\n const s = parseInt(this.millisecond().toString());\n return s < 10 ? '00' + s.toString() : (s < 100 ? '0' + s.toString() : s.toString());\n }\n else if (this.hasFullDate) {\n return this.defaultValue.millisecond.toString().padStart(3, '0');\n }\n return undefined;\n }\n get S() {\n if ('second' in this.value) {\n return this.second().toString();\n }\n else if (this.hasFullDate) {\n return '0';\n }\n return undefined;\n }\n get WW() {\n if ('weekOfYear' in this.value) {\n return this.value.weekOfYear.toString().padStart(2, '0');\n }\n return undefined;\n }\n get W() {\n if ('weekOfYear' in this.value) {\n return this.value.weekOfYear.toString();\n }\n return undefined;\n }\n get Z() {\n if (this.kind === 'zoned') {\n const zdt = this.value;\n return zdt.offset;\n }\n return undefined;\n }\n get ZZ() {\n if (this.kind === 'zoned') {\n const zdt = this.value;\n return zdt.offset.replace(':', '');\n }\n return undefined;\n }\n unix(ms = false) {\n if (typeof ms === 'number') {\n const Ctor = this.constructor;\n const d = new Date(ms);\n return new Ctor(d);\n }\n return ms ? this.toEpochMs() : Math.floor(this.toEpochMs() / 1000);\n }\n format(format = 'YYYY-MM-DD HH:II:SS') {\n let str = '';\n if (format) {\n const reg = new RegExp('(\\[|\\]|' + Object.keys(unitsCorrespondence).join('|') + ')', 'g');\n let opened = 0;\n const parts = format.split(reg);\n each(parts, (part) => {\n if (part === '[') {\n opened++;\n return;\n }\n else if (part === ']') {\n opened--;\n return;\n }\n if (opened > 0) {\n str += part;\n return;\n }\n if (part in unitsCorrespondence) {\n if (part in this && isPrimitive(this[part])) {\n str += this[part];\n }\n else {\n const suffix = formatsMap[unitsCorrespondence[part]];\n str += this[suffix] || '';\n }\n }\n else {\n str += part;\n }\n });\n }\n return str;\n }\n calendar(short) {\n const now = new this.constructor();\n const startThis = this.startOf(\"day\");\n const startNow = now.startOf(\"day\");\n const diffDays = startThis.diff(startNow, \"day\");\n const options = { numeric: \"auto\" };\n if (short) {\n options.style = \"short\";\n }\n const rtf = new Intl.RelativeTimeFormat(bbn.env.lang, options);\n let phrase = '';\n let parts = [];\n let prefix = '';\n if ((diffDays >= -1) && (diffDays <= 1)) {\n parts = rtf.formatToParts(diffDays, \"day\");\n }\n else if ((diffDays >= -6) && (diffDays < -1)) {\n prefix = this.dddd + ', ';\n parts = rtf.formatToParts(diffDays, \"day\");\n }\n else if ((diffDays <= 6) && (diffDays > 1)) {\n prefix = this.dddd;\n parts = [];\n }\n else {\n return this.fdate();\n }\n bbn.fn.each(parts, (part) => {\n phrase += part.value;\n });\n return `${prefix}${phrase} ${this.ftime()}`;\n }\n matchFormat(value, format) {\n try {\n this.parse(value, format);\n return true;\n }\n catch (_a) {\n return false;\n }\n }\n getWeekday(n, mode = 'long', locale) {\n if (!mode) {\n const letter = this.getWeekday(n, 'narrow', locale);\n const abbr = this.getWeekday(n, 'short', locale);\n const full = this.getWeekday(n, 'long', locale);\n return {\n letter,\n abbr,\n full,\n long: full,\n short: abbr,\n narrow: letter\n };\n }\n let m;\n if (mode === 'letter') {\n m = 'narrow';\n }\n else if (mode === 'abbr') {\n m = 'short';\n }\n else if (mode === 'full') {\n m = 'long';\n }\n else if (!['long', 'short', 'narrow'].includes(mode)) {\n throw new Error('Invalid mode for getWeekDay: ' + mode + '. Allowed values are \"long\", \"short\", \"narrow\", \"letter\", \"abbr\", \"full\".');\n }\n else {\n m = mode;\n }\n // Create a date with the right weekday\n // 2023-01-01 was a Sunday → base for offset\n const base = new Date(2023, 0, 1 + n);\n return base.toLocaleDateString([locale || bbn.env.lang, ...navigator.languages], { weekday: m });\n }\n /**\n * Returns a NEW date that is the next (or previous if past=true)\n * occurrence of the given weekday, starting from this.#value.\n *\n * @param {number|string} weekday - Weekday index (0=Sunday…6=Saturday)\n * or a localized weekday name.\n * @param {boolean} past - If true → return previous occurrence instead of next.\n * @param {string} [locale] - Optional locale for weekday names.\n */\n setWeekday(weekday, past = false, locale) {\n let targetDay;\n if (typeof weekday === \"string\") {\n // Use your previously defined reverse method:\n weekday = this.getWeekdayIndex(weekday, locale);\n }\n // --- Normalize weekday ---\n if (typeof weekday === \"number\") {\n if (weekday < 0 || weekday > 6) {\n throw new RangeError(\"weekday number must be between 0 and 6\");\n }\n targetDay = weekday;\n }\n else {\n throw new TypeError(\"weekday must be a number (0–6) or a string\");\n }\n const currentDay = this.weekday(); // JS weekday (0–6)\n let diff;\n if (!past) {\n // ---------- NEXT occurrence ----------\n diff = (targetDay - currentDay + 7) % 7;\n if (diff === 0) {\n diff = 7; // next week if same day\n }\n }\n else {\n // ---------- PREVIOUS occurrence ----------\n diff = (currentDay - targetDay + 7) % 7;\n if (diff === 0) {\n diff = 7; // previous week if same day\n }\n diff = -diff;\n }\n return this.add(diff, 'd');\n }\n diff(date, unit = '', abs = false) {\n let targetMs;\n if (date instanceof bbnDt) {\n targetMs = date.toEpochMs();\n }\n else if (date instanceof Temporal.ZonedDateTime ||\n date instanceof Temporal.PlainDateTime ||\n date instanceof Temporal.PlainDate ||\n date instanceof Temporal.PlainTime ||\n date instanceof Temporal.PlainYearMonth ||\n date instanceof Temporal.PlainMonthDay) {\n // Wrap it in a temporary bbnDt-like shim to reuse toEpochMs logic;\n // or write a small standalone helper similar to toEpochMs(kind, value).\n const temp = { kind: this.kind, value: date };\n targetMs = temp.toEpochMs();\n }\n else if (typeof date === 'string' || typeof date === 'number') {\n // Reuse your parse API: parse into same kind as `this`\n const parsed = this.parse(String(date), ''); // format depends on your API\n targetMs = parsed.toEpochMs();\n }\n else {\n bbn.fn.log(\"DATE??\", date);\n throw new TypeError('Unsupported date argument for diff');\n }\n const nowMs = this.toEpochMs();\n let diff = nowMs - targetMs;\n if (abs) {\n diff = Math.abs(diff);\n }\n if (!unit) {\n return diff;\n }\n const realUnit = unitsCorrespondence[unit] || unit;\n const match = getRow(units, d => d[0] === realUnit);\n if (!match) {\n throw new Error('Invalid unit for diff: ' + unit);\n }\n const [, , ms] = match; // [shortUnit, rtfUnit, ms]\n return Math.floor(diff / ms);\n }\n guessUnit(valueInMs) {\n const absDiff = Math.abs(valueInMs);\n for (const [shortUnit, rtfUnit, ms] of units) {\n if ((absDiff >= ms) || (rtfUnit === 'millisecond')) {\n return shortUnit;\n }\n }\n return null;\n }\n fromNow(unit = '') {\n const nowValue = bbnDt.nowForKind(this.kind);\n const temp = bbn.dt(undefined, null, this.kind);\n const rawDiffMs = this.diff(temp);\n const chosenUnit = unitsCorrespondence[unit] || this.guessUnit(rawDiffMs);\n if (!chosenUnit) {\n throw new Error('Cannot guess unit for fromNow');\n }\n const diff = this.diff(temp, chosenUnit);\n const rtf = new Intl.RelativeTimeFormat([bbn.env.lang, ...navigator.languages], { numeric: 'auto' });\n const match = getRow(units, d => d[0] === chosenUnit);\n if (!match) {\n throw new Error('Invalid unit for fromNow: ' + unit);\n }\n const [, rtfUnit] = match; // [shortUnit, rtfUnit, ms]\n return rtf.format(diff, rtfUnit);\n }\n from(date, unit = '') {\n const rawDiffMs = this.diff(date);\n const chosenUnit = unitsCorrespondence[unit] || this.guessUnit(rawDiffMs);\n if (!chosenUnit) {\n throw new Error('Cannot guess unit for fromDate');\n }\n const diff = this.diff(date, chosenUnit);\n const u = chosenUnit; // text unit, you may want a label here\n return diff > 0\n ? _('%d %s before', diff, u)\n : diff < 0\n ? _('%d %s after', -diff, u)\n : _('The same %s', u);\n }\n startOf(unit = 'd') {\n var _a, _b;\n const u = unitsCorrespondence[unit] || unit;\n if (!u) {\n throw new Error('Invalid unit for startOf: ' + unit);\n }\n let v = this.value;\n const zeroTime = (obj) => {\n const change = {};\n if ('hour' in obj) {\n Object.assign(change, {\n hour: 0, minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0,\n });\n return obj.with(change);\n }\n return obj;\n };\n switch (u) {\n case 'y':\n if (!('year' in v)) {\n throw new Error('startOf(\"y\") only valid for year-based types');\n }\n v = zeroTime(v.with({ month: 1, day: 1 }));\n break;\n case 'm':\n if (!('month' in v)) {\n throw new Error('startOf(\"m\") only valid for month-based types');\n }\n v = zeroTime(v.with({ day: 1 }));\n break;\n case 'w': {\n // ISO dayOfWeek: 1 (Mon) .. 7 (Sun)\n const d = ('toPlainDate' in v) ? v.toPlainDate() : v;\n const dow = d.dayOfWeek; // 1..7\n const diffToMonday = dow - 1; // 0 for Monday\n const newDate = d.subtract({ days: diffToMonday });\n if ('toPlainDateTime' in v) {\n v = zeroTime(newDate.toPlainDateTime((_b = (_a = v.toPlainTime) === null || _a === void 0 ? void 0 : _a.call(v)) !== null && _b !== void 0 ? _b : Temporal.PlainTime.from('00:00')));\n }\n else {\n v = newDate; // PlainDate case\n }\n break;\n }\n case 'd':\n v = zeroTime(v);\n break;\n case 'h':\n v = v.with({ minute: 0, second: 0, millisecond: 0, microsecond: 0, nanosecond: 0 });\n break;\n case 'i':\n v = v.with({ second: 0, millisecond: 0, microsecond: 0, nanosecond: 0 });\n break;\n case 's':\n v = v.with({ millisecond: 0, microsecond: 0, nanosecond: 0 });\n break;\n default:\n throw new Error('Invalid unit for startOf: ' + unit);\n }\n return this.withValue(v);\n }\n endOf(unit = \"d\") {\n const tz = Temporal.Now.timeZoneId();\n const u = unitsCorrespondence[unit] || unit;\n // 1. Convert current value to a ZonedDateTime (using your conventions)\n const toZdt = (v) => {\n switch (this.kind) {\n case \"zoned\":\n return this.value;\n case \"dateTime\": {\n const pdt = this.value;\n const iso = `${pdt.toString()}[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case \"date\": {\n const d = this.value;\n const iso = `${d.toString()}T00:00[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case \"time\": {\n const t = this.value;\n const today = Temporal.Now.plainDateISO();\n const iso = `${today.toString()}T${t.toString()}[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case \"yearMonth\": {\n const ym = this.value;\n const d = ym.toPlainDate({ day: 1 });\n const iso = `${d.toString()}T00:00[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n case \"monthDay\": {\n const md = this.value;\n const today = Temporal.Now.plainDateISO();\n const d = md.toPlainDate({ year: today.year });\n const iso = `${d.toString()}T00:00[${tz}]`;\n return Temporal.ZonedDateTime.from(iso);\n }\n default:\n throw new Error(\"Unsupported kind in endOf\");\n }\n };\n let zdt = toZdt(this.value);\n // 2. compute start of next unit\n let next;\n switch (u) {\n case \"y\": {\n next = zdt.with({ month: 1, day: 1, hour: 0, minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0 })\n .add({ years: 1 });\n break;\n }\n case \"m\": {\n next = zdt.with({ day: 1, hour: 0, minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0 })\n .add({ months: 1 });\n break;\n }\n case \"w\": {\n // ISO week: Monday = 1, Sunday = 7\n const dow = zdt.toPlainDate().dayOfWeek;\n const diffToMonday = -(dow - 1);\n const weekStart = zdt.add({ days: diffToMonday }).with({\n hour: 0, minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0\n });\n next = weekStart.add({ weeks: 1 });\n break;\n }\n case \"d\": {\n next = zdt\n .with({\n hour: 0, minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0\n })\n .add({ days: 1 });\n break;\n }\n case \"h\": {\n next = zdt.with({\n minute: 0, second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0\n }).add({ hours: 1 });\n break;\n }\n case \"i\": // minute\n case \"n\": // minute alternative?\n case \"min\": {\n next = zdt.with({\n second: 0,\n millisecond: 0, microsecond: 0, nanosecond: 0\n }).add({ minutes: 1 });\n break;\n }\n case \"s\": {\n next = zdt.with({\n millisecond: 0, microsecond: 0, nanosecond: 0\n }).add({ seconds: 1 });\n break;\n }\n default:\n throw new Error(\"Invalid unit for endOf: \" + unit);\n }\n // 3. endOf = startOfNext - 1 millisecond\n const end = (next.subtract({ milliseconds: 1 }));\n // 4. Convert back to original kind\n switch (this.kind) {\n case \"zoned\":\n return this.withValue(end);\n case \"dateTime\":\n return this.withValue(end.toPlainDateTime());\n case \"date\":\n return this.withValue(end.toPlainDate());\n case \"time\":\n return this.withValue(end.toPlainTime());\n case \"yearMonth\": {\n const p = end.toPlainDate();\n return this.withValue(new Temporal.PlainYearMonth(p.year, p.month));\n }\n case \"monthDay\": {\n const p = end.toPlainDate();\n return this.withValue(new Temporal.PlainMonthDay(p.month, p.day));\n }\n default:\n throw new Error(\"Unsupported kind in endOf\");\n }\n }\n clone() {\n return this.withValue(this.value);\n }\n isLeapYear() {\n if (this.isValid) {\n const year = this.year();\n return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);\n }\n return false;\n }\n daysInMonth() {\n if (this.isValid) {\n switch (this.month()) {\n case 2:\n if (this.year() % 4 === 0) {\n return 29;\n }\n else {\n return 28;\n }\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n default:\n return 31;\n }\n }\n }\n valueOf() {\n return this.unix(true);\n }\n}\n_bbnDt_value = new WeakMap();\n/** System time zone ID (e.g. \"Europe/Rome\") */\nbbnDt.systemTimeZoneId = Temporal.Now.timeZoneId();\nexport default bbnDt;\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDt from './dt.js';\nimport getRow from '../../fn/object/getRow.js';\nexport default class bbnDtDateTime extends bbnDt {\n constructor(y, m, d, h, i, s, ms) {\n let value;\n if (!y) {\n value = Temporal.PlainDateTime.from(Temporal.Now.plainDateTimeISO());\n }\n else if (m === undefined) {\n if (y instanceof Temporal.PlainDateTime) {\n value = y;\n }\n else if (y instanceof Date) {\n value = new Temporal.PlainDateTime(y.getFullYear(), y.getMonth() + 1, y.getDate(), y.getHours(), y.getMinutes(), y.getSeconds(), y.getMilliseconds());\n }\n else if (typeof y === 'number') {\n value = Temporal.Instant.fromEpochMilliseconds(y).toZonedDateTimeISO(bbnDt.systemTimeZoneId).toPlainDateTime();\n }\n else {\n throw new Error('Invalid value for bbnDtDateTime');\n }\n }\n else {\n value = new Temporal.PlainDateTime(y, m, d || 1, h || 0, i || 0, s || 0, ms || 0);\n }\n super(value);\n this.kind = 'dateTime';\n }\n format(format) {\n // long\n if ([true, 'long', 'full'].includes(format)) {\n format = getRow(bbn.dt.locales.date, { year: 'numeric', month: 'long', day: 'long', weekday: 'long', hour: '2-digit', minute: '2-digit', second: undefined }).pattern;\n }\n // short\n if (!format) {\n format = getRow(bbn.dt.locales.date, { year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: '2-digit', second: undefined }).pattern;\n }\n return bbnDt.prototype.format.call(this, format);\n }\n fdate(long = false, withTime = false, weekday = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(this.year(), this.month() - 1, this.day(), this.hour(), this.minute(), this.second());\n const opt = Object.assign(Object.assign({ year: 'numeric', month: long ? 'long' : '2-digit', day: '2-digit' }, (weekday ? { weekday: (long ? 'long' : 'short') } : {})), (withTime ? { hour: (long ? '2-digit' : 'numeric'), minute: '2-digit' } : {}));\n const d = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return d.format(date);\n }\n ftime(withSeconds = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(2000, 1, 1, this.hour(), this.minute(), this.second());\n const opt = {\n hour: '2-digit',\n minute: '2-digit',\n };\n if (withSeconds) {\n opt.second = '2-digit';\n }\n const t = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return t.format(date);\n }\n}\n;\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDt from './dt.js';\nimport getRow from '../../fn/object/getRow.js';\nexport default class bbnDtDate extends bbnDt {\n constructor(y, m, d) {\n let value;\n if (!y) {\n value = Temporal.PlainDate.from(Temporal.Now.plainDateISO());\n }\n else if (m === undefined) {\n if (y instanceof Temporal.PlainDate) {\n value = y;\n }\n else if (y instanceof Date) {\n value = new Temporal.PlainDate(y.getFullYear(), y.getMonth() + 1, y.getDate());\n }\n else if (typeof y === 'number') {\n const d = new Date(y);\n value = new Temporal.PlainDate(d.getFullYear(), d.getMonth() + 1, d.getDate());\n }\n else {\n throw new Error('Invalid value for bbnDtDateTime');\n }\n }\n else {\n value = new Temporal.PlainDate(y, m, d || 1);\n }\n super(value);\n this.kind = 'date';\n }\n compareSameKind(other) {\n const cmp = Temporal.PlainDate.compare(this.value, other.value);\n return (cmp < 0 ? -1 : cmp > 0 ? 1 : 0);\n }\n format(format) {\n // long\n if (format === true) {\n format = getRow(bbn.dt.locales.date, { year: 'numeric', month: 'long', day: 'long', weekday: 'long' }).pattern;\n }\n // short\n if (!format) {\n format = getRow(bbn.dt.locales.date, { year: 'numeric', month: 'numeric', day: 'numeric' }).pattern;\n }\n return bbnDt.prototype.format.call(this, format);\n }\n ftime(withSeconds = false) {\n return '00:00' + (withSeconds ? ':00' : '');\n }\n fdate(long = false, weekday = false) {\n const date = new Date(this.year(), this.month() - 1, this.day());\n const opt = Object.assign({ year: 'numeric', month: long ? 'long' : 'numeric', day: 'numeric' }, (weekday ? { weekday: (long ? 'long' : 'short') } : {}));\n const d = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return d.format(date);\n }\n}\n;\n","import { Temporal } from 'temporal-polyfill';\nimport fromJsDate from '../functions/fromJsDate.js';\nimport bbnDt from './dt.js';\nexport default class bbnDtZoned extends bbnDt {\n constructor(z, y, m, d, h, i, s, ms) {\n let value;\n if (!z) {\n const date = new Date();\n value = Temporal.Now.zonedDateTimeISO(Intl.DateTimeFormat().resolvedOptions().timeZone);\n }\n else if (y === undefined) {\n if (z instanceof Temporal.ZonedDateTime) {\n value = z;\n }\n else if (z instanceof Date) {\n value = fromJsDate(z, true);\n }\n else if (typeof z === 'number') {\n value = Temporal.Instant.fromEpochMilliseconds(z).toZonedDateTimeISO(Intl.DateTimeFormat().resolvedOptions().timeZone);\n }\n else {\n throw new Error('Invalid value for bbnDtZoned');\n }\n }\n else {\n const dt = new Temporal.PlainDateTime(y, m, d || 1, h || 0, i || 0, s || 0, ms || 0);\n value = dt.toZonedDateTime(z || Temporal.Now.timeZoneId());\n }\n super(value);\n this.kind = 'zoned';\n }\n fdate(long = false, withTime = false, weekday = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(this.year(), this.month() - 1, this.day(), this.hour(), this.minute(), this.second());\n const opt = Object.assign(Object.assign({ year: 'numeric', month: long ? 'long' : 'numeric', day: 'numeric' }, (weekday ? { weekday: (long ? 'long' : 'short') } : {})), (withTime ? { hour: (long ? '2-digit' : 'numeric'), minute: '2-digit' } : {}));\n const d = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return d.format(date);\n }\n ftime(withSeconds = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(2000, 1, 1, this.hour(), this.minute(), this.second());\n const opt = {\n hour: '2-digit',\n minute: '2-digit',\n };\n if (withSeconds) {\n opt.second = '2-digit';\n }\n const t = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return t.format(date);\n }\n}\n","import { Temporal } from 'temporal-polyfill';\n/**\n * Convert a JS Date into:\n * - Temporal.Instant (if hasZone=true)\n * - Temporal.PlainDate (if hasZone=false)\n */\nexport default function fromJsDate(date, hasZone = false, timeZone = Temporal.Now.timeZoneId()) {\n const T = Temporal;\n const instant = T.Instant.fromEpochMilliseconds(date.getTime());\n const zdt = instant.toZonedDateTimeISO(timeZone);\n return hasZone ? zdt : zdt.toPlainDateTime();\n}\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDt from './dt.js';\nimport getRow from '../../fn/object/getRow.js';\nexport default class bbnDtYearMonth extends bbnDt {\n constructor(y, m) {\n let value;\n if (!y) {\n const d = new Date();\n value = new Temporal.PlainYearMonth(d.getFullYear(), d.getMonth() + 1);\n }\n else if (m === undefined) {\n if (y instanceof Temporal.PlainYearMonth) {\n value = y;\n }\n else if (y instanceof Date) {\n value = new Temporal.PlainYearMonth(y.getFullYear(), y.getMonth() + 1);\n }\n else if (typeof m === 'number') {\n const d = new Date(m);\n value = new Temporal.PlainYearMonth(d.getFullYear(), d.getMonth() + 1);\n }\n else {\n throw new Error('Invalid value for bbnDtDateTime');\n }\n }\n else {\n value = new Temporal.PlainYearMonth(y, m);\n }\n super(value);\n this.kind = 'yearMonth';\n }\n format(format) {\n // long\n if (format === true) {\n format = getRow(bbn.dt.locales.date, d => (d.year === 'numeric')\n && (d.month === 'long')\n && !('day' in d)).pattern;\n }\n // short\n if (!format) {\n format = getRow(bbn.dt.locales.date, d => (d.year === 'numeric')\n && (d.month === 'numeric')\n && !('day' in d)).pattern;\n }\n return bbnDt.prototype.format.call(this, format);\n }\n fdate(long = false, withTime = false, weekday = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(this.year(), this.month() - 1);\n const opt = {\n year: 'numeric',\n month: long ? 'long' : 'numeric',\n };\n const d = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return d.format(date);\n }\n}\n;\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDt from './dt.js';\nexport default class bbnDtMonthDay extends bbnDt {\n constructor(m, d) {\n let value;\n if (!m) {\n const d = new Date();\n value = new Temporal.PlainMonthDay(d.getMonth() + 1, d.getDate());\n }\n else if (d === undefined) {\n if (m instanceof Temporal.PlainMonthDay) {\n value = m;\n }\n else if (m instanceof Date) {\n value = new Temporal.PlainMonthDay(m.getMonth() + 1, m.getDate());\n }\n else if (typeof m === 'number') {\n const d = new Date(m);\n value = new Temporal.PlainMonthDay(d.getMonth() + 1, d.getDate());\n }\n else {\n throw new Error('Invalid value for bbnDtDateTime');\n }\n }\n else {\n value = new Temporal.PlainMonthDay(m, d);\n }\n super(value);\n this.kind = 'monthDay';\n }\n fdate(long = false, withTime = false, weekday = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(2000, this.month() - 1, this.day());\n const opt = {\n month: long ? 'long' : 'numeric',\n day: 'numeric'\n };\n const d = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return d.format(date);\n }\n}\n;\n","import extend from \"../../fn/object/extend.js\";\n/**\n * Build a token pattern (YYYY, MM, DD, dddd, HH, II, SS, A, z) from Intl parts.\n * Uses Intl options to distinguish MMM vs MMMM, ddd vs dddd, etc.\n */\nfunction partsToPattern(parts, hourCycle, opts) {\n let pattern = '';\n const hasDayPeriod = parts.some(p => p.type === 'dayPeriod');\n const is12h = hasDayPeriod || hourCycle === 'h12' || hourCycle === 'h11';\n const hasWeekday = !!opts.weekday;\n const hasTextMonth = opts.month === 'short' || opts.month === 'long';\n // when we *request* year/month/day in \"numeric\" (not 2-digit, not short),\n // and all three are present, then we want D/M/YYYY in our mask,\n // in the locale's order, even if the sample shows \"02\" / \"01\".\n const requestedPureNumericYMD = opts.year === 'numeric' &&\n opts.month === 'numeric' &&\n opts.day === 'numeric' &&\n !hasWeekday &&\n !hasTextMonth;\n for (const p of parts) {\n switch (p.type) {\n case 'year': {\n // If you want YY vs YYYY disambiguation you can still\n // look at opts.year here; I’ll keep it simple:\n // numeric → YYYY, '2-digit' → YY\n if (opts.year === '2-digit') {\n pattern += 'YY';\n }\n else {\n pattern += 'YYYY';\n }\n break;\n }\n case 'month': {\n // Textual month first\n if (opts.month === 'short') {\n pattern += 'MMM';\n break;\n }\n if (opts.month === 'long') {\n pattern += 'MMMM';\n break;\n }\n // 👉 Pure numeric Y-M-D requested: always M\n if (requestedPureNumericYMD) {\n pattern += 'M';\n break;\n }\n // Other numeric month cases (year-month, month-day, or 2-digit)\n if (/^\\d+$/.test(p.value)) {\n pattern += p.value.length === 2 ? 'MM' : 'M';\n }\n else {\n // should not happen, but be defensive\n pattern += p.value.length > 3 ? 'MMMM' : 'MMM';\n }\n break;\n }\n case 'day': {\n // 👉 Pure numeric Y-M-D requested: always D\n if (requestedPureNumericYMD) {\n pattern += 'D';\n break;\n }\n pattern += p.value.length === 2 ? 'DD' : 'D';\n break;\n }\n case 'weekday': {\n if (opts.weekday === 'short' || opts.weekday === 'narrow') {\n pattern += 'ddd';\n }\n else if (opts.weekday === 'long') {\n pattern += 'dddd';\n }\n else {\n pattern += p.value.length > 3 ? 'dddd' : 'ddd';\n }\n break;\n }\n case 'hour': {\n if (is12h) {\n pattern += p.value.length === 2 ? 'hh' : 'h';\n }\n else {\n pattern += p.value.length === 2 ? 'HH' : 'H';\n }\n break;\n }\n case 'minute':\n pattern += 'II';\n break;\n case 'second':\n pattern += 'SS';\n break;\n case 'dayPeriod':\n pattern += 'A';\n break;\n case 'timeZoneName':\n pattern += 'z';\n break;\n case 'literal': {\n if (!p.value)\n break;\n // Only wrap *text* literals in [ ... ], not separators like /, -, spaces, etc.\n const hasLetter = /[A-Za-zÀ-ÖØ-öø-ÿ]/.test(p.value);\n if (hasLetter) {\n const v = p.value.replace(/]/g, '\\\\]');\n pattern += `[${v}]`;\n }\n else {\n pattern += p.value;\n }\n break;\n }\n default:\n pattern += p.value;\n break;\n }\n }\n return pattern;\n}\n;\n/**\n * Get a curated set of *common* date, time and datetime formats\n * for the given locale, without exploding into thousands of combos.\n *\n * Rules:\n * - Date: only sensible combos (Y-M-D ± weekday, Y-M, M-D).\n * - Time: hour / hour:minute / hour:minute:second (+ optional TZ).\n * - Datetime: only full dates (Y-M-D ± weekday) combined with time.\n */\nconst getCommonFormatsForLocale = (lng) => {\n if (!lng) {\n lng = [bbn.env.lang, ...navigator.languages];\n }\n const sample = new Date(Date.UTC(2000, 0, 2, 13, 45, 30));\n const date = [];\n const time = [];\n const datetime = [];\n const seenDatePatterns = new Set();\n const seenTimePatterns = new Set();\n const seenDateTimePatterns = new Set();\n // ---- 1) DATE: curated list of useful patterns ----\n // Includes your important one: { day: \"numeric\", month: \"short\", year: \"numeric\" }\n const dateOptionsList = [\n // Full dates\n { year: 'numeric', month: '2-digit', day: '2-digit' },\n { year: 'numeric', month: 'numeric', day: 'numeric' },\n { year: 'numeric', month: 'short', day: 'numeric' },\n { year: 'numeric', month: 'long', day: 'numeric' },\n // Full dates with weekday\n { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' },\n { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' },\n // Year–month\n { year: 'numeric', month: 'numeric' },\n { year: 'numeric', month: '2-digit' },\n { year: 'numeric', month: 'short' },\n { year: 'numeric', month: 'long' },\n // Month–day (no year)\n { month: 'numeric', day: 'numeric' },\n { month: '2-digit', day: '2-digit' },\n { month: 'short', day: 'numeric' }, // ← e.g. \"22 janv.\"\n { month: 'long', day: 'numeric' }\n ];\n const fullDateOptions = []; // Y+M+D (± weekday)\n for (const opts of dateOptionsList) {\n const fmt = new Intl.DateTimeFormat(lng, opts);\n const parts = fmt.formatToParts(sample);\n const resolved = fmt.resolvedOptions();\n const pattern = partsToPattern(parts, resolved.hourCycle, opts);\n if (!seenDatePatterns.has(pattern)) {\n seenDatePatterns.add(pattern);\n date.push({\n pattern,\n sample: fmt.format(sample),\n options: opts\n });\n }\n // keep track of \"full dates\" (year+month+day) for datetime\n if (opts.year && opts.month && opts.day) {\n fullDateOptions.push(opts);\n }\n }\n // ---- 2) TIME: curated, valid combos (always have hour, then minute/second) ----\n const timeOptionsList = [\n { hour: 'numeric' },\n { hour: '2-digit', minute: '2-digit' },\n { hour: '2-digit', minute: '2-digit', second: '2-digit' },\n { hour: '2-digit', minute: '2-digit', timeZoneName: 'short' },\n { hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short' },\n { hour: '2-digit', minute: '2-digit', timeZoneName: 'long' }\n ];\n for (const opts of timeOptionsList) {\n const fmt = new Intl.DateTimeFormat(lng, opts);\n const parts = fmt.formatToParts(sample);\n const resolved = fmt.resolvedOptions();\n const pattern = partsToPattern(parts, resolved.hourCycle, opts);\n if (!seenTimePatterns.has(pattern)) {\n seenTimePatterns.add(pattern);\n time.push({\n pattern,\n sample: fmt.format(sample),\n options: opts\n });\n }\n }\n // ---- 3) DATETIME: only full dates (Y-M-D ± weekday) × time\n for (const dOpts of fullDateOptions) {\n for (const tOpts of timeOptionsList) {\n const opts = Object.assign(Object.assign({}, dOpts), tOpts);\n const fmt = new Intl.DateTimeFormat(lng, opts);\n const parts = fmt.formatToParts(sample);\n const resolved = fmt.resolvedOptions();\n const pattern = partsToPattern(parts, resolved.hourCycle, opts);\n if (!seenDateTimePatterns.has(pattern)) {\n seenDateTimePatterns.add(pattern);\n datetime.push({\n pattern,\n sample: fmt.format(sample),\n options: opts\n });\n }\n }\n }\n return { date, time, datetime };\n};\nconst buildLocaleFromIntl = () => {\n if (Object.keys(bbn.dt.locales).length) {\n return;\n }\n const langs = [bbn.env.lang, ...navigator.languages];\n const fmtMonthLong = new Intl.DateTimeFormat(langs, { month: 'long' });\n const fmtMonthShort = new Intl.DateTimeFormat(langs, { month: 'short' });\n const fmtWeekLong = new Intl.DateTimeFormat(langs, { weekday: 'long' });\n const fmtWeekShort = new Intl.DateTimeFormat(langs, { weekday: 'short' });\n const fmtShort = new Intl.DateTimeFormat(langs, { dateStyle: 'short', timeStyle: 'short' });\n const fmtLong = new Intl.DateTimeFormat(langs, { dateStyle: 'long', timeStyle: 'long' });\n const fmtNum = new Intl.DateTimeFormat(langs, { year: 'numeric', month: 'numeric', day: 'numeric' });\n const rtf = new Intl.RelativeTimeFormat(langs, { numeric: 'auto' });\n const locale = new Intl.Locale(langs[0]);\n // Create 12 dates for months (2020 chosen arbitrarily)\n const monthsLong = [];\n const monthsShort = [];\n for (let m = 0; m < 12; m++) {\n const d = new Date(2020, m, 1);\n monthsLong.push(fmtMonthLong.format(d));\n monthsShort.push(fmtMonthShort.format(d));\n }\n // Create 7 dates for weekdays (starting from Sunday 2020-02-02 which *is* Sunday)\n // 2020-02-02 is Sunday → guarantees stable weekday list\n const baseSunday = new Date(2020, 1, 2); // YYYY, MM (0-based), DD\n const weekdaysLong = [];\n const weekdaysShort = [];\n for (let i = 0; i < 7; i++) {\n const d = new Date(baseSunday.getTime() + i * 86400000);\n weekdaysLong.push(fmtWeekLong.format(d));\n weekdaysShort.push(fmtWeekShort.format(d));\n }\n const { date, time, datetime } = getCommonFormatsForLocale(langs);\n const weekInfo = locale.getWeekInfo ? locale.getWeekInfo() : { firstDay: 1 };\n extend(bbn.dt.locales, {\n formatters: {\n short: fmtShort,\n long: fmtLong,\n numeric: fmtNum,\n relative: rtf\n },\n firstDayOfWeek: weekInfo.firstDay,\n monthsLong,\n monthsShort,\n weekdaysLong,\n weekdaysShort,\n locale,\n date,\n time,\n datetime\n });\n};\nexport default buildLocaleFromIntl;\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDt from './dt.js';\nexport default class bbnDtTime extends bbnDt {\n constructor(h, i, s, ms) {\n let value;\n if (!h) {\n const d = new Date();\n value = new Temporal.PlainTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds() * 1000000);\n }\n else if (h === undefined) {\n if (h instanceof Temporal.PlainTime) {\n value = h;\n }\n else if (h instanceof Date) {\n value = new Temporal.PlainTime(h.getHours(), h.getMinutes(), h.getSeconds(), h.getMilliseconds() * 1000000);\n }\n else if (typeof h === 'number') {\n if (i !== undefined) {\n value = new Temporal.PlainTime(h, i, s || 0, ms || 0);\n }\n else {\n const d = new Date(h);\n value = new Temporal.PlainTime(d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds() * 1000000);\n }\n }\n else {\n throw new Error('Invalid value for bbnDtDateTime');\n }\n }\n else {\n value = new Temporal.PlainTime(h, i || 0, s || 0, ms || 0);\n }\n super(value);\n this.kind = 'time';\n }\n ftime(withSeconds = false) {\n if (!this.value) {\n return '';\n }\n const date = new Date(2000, 1, 1, this.hour(), this.minute(), this.second());\n const opt = {\n hour: '2-digit',\n minute: '2-digit',\n };\n if (withSeconds) {\n opt.second = '2-digit';\n }\n const t = new Intl.DateTimeFormat([bbn.env.lang, ...navigator.languages], opt);\n return t.format(date);\n }\n}\n;\n","import { Temporal } from 'temporal-polyfill';\nimport buildLocaleFromIntl from './buildLocaleFromIntl.js';\nimport bbnDtZoned from '../classes/zoned.js';\nimport bbnDtDateTime from '../classes/dateTime.js';\nimport bbnDtDate from '../classes/date.js';\nimport bbnDtTime from '../classes/time.js';\nimport bbnDtYearMonth from '../classes/yearMonth.js';\nimport bbnDtMonthDay from '../classes/monthDay.js';\nconst lc = function (str, localeCode) {\n try {\n return localeCode ? str.toLocaleLowerCase(localeCode) : str.toLowerCase();\n }\n catch (_a) {\n return str.toLowerCase();\n }\n};\nexport default function parse(input, format, cls = 'auto', force, locale) {\n var _a, _b, _c, _d, _e, _f, _g;\n buildLocaleFromIntl();\n const T = Temporal;\n if (!T) {\n throw new Error('Temporal API is required (load @js-temporal/polyfill)');\n }\n let isValid = true;\n if (!locale) {\n locale = ((_a = bbn === null || bbn === void 0 ? void 0 : bbn.dt) === null || _a === void 0 ? void 0 : _a.locales) || {};\n }\n const loc = {\n monthsLong: (_b = locale === null || locale === void 0 ? void 0 : locale.monthsLong) !== null && _b !== void 0 ? _b : bbn.dt.locales.monthsLong,\n monthsShort: (_c = locale === null || locale === void 0 ? void 0 : locale.monthsShort) !== null && _c !== void 0 ? _c : bbn.dt.locales.monthsShort,\n weekdaysLong: (_d = locale === null || locale === void 0 ? void 0 : locale.weekdaysLong) !== null && _d !== void 0 ? _d : bbn.dt.locales.weekdaysLong,\n weekdaysShort: (_e = locale === null || locale === void 0 ? void 0 : locale.weekdaysShort) !== null && _e !== void 0 ? _e : bbn.dt.locales.weekdaysShort\n };\n const localeCode = ((bbn === null || bbn === void 0 ? void 0 : bbn.env) && ((_f = bbn.env) === null || _f === void 0 ? void 0 : _f.lang)) ||\n ((bbn === null || bbn === void 0 ? void 0 : bbn.dt) && ((_g = bbn.dt) === null || _g === void 0 ? void 0 : _g.locale)) ||\n Intl.DateTimeFormat().resolvedOptions().locale;\n const escapeRegex = (s) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const makeTokenSpecs = () => [\n // Years\n {\n token: 'YYYY',\n regex: '\\\\d{4}',\n apply: (v, ctx) => {\n ctx.year = parseInt(v, 10);\n ctx.hasYear = true;\n }\n },\n {\n token: 'YY',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n ctx.year = n >= 70 ? 1900 + n : 2000 + n;\n ctx.hasYear = true;\n }\n },\n {\n token: 'Y',\n regex: '[+-]?\\\\d{1,6}',\n apply: (v, ctx) => {\n ctx.year = parseInt(v, 10);\n ctx.hasYear = true;\n }\n },\n // Months\n {\n token: 'MMMM',\n regex: '[^\\\\d\\\\s]+',\n apply: (v, ctx) => {\n const val = lc(v, localeCode);\n const idx = loc.monthsLong\n .findIndex((m) => lc(m, localeCode) === val);\n if (idx === -1) {\n throw new Error('Invalid month name: ' + v);\n }\n ctx.month = idx + 1;\n ctx.hasMonth = true;\n }\n },\n {\n token: 'MMM',\n regex: '[^\\\\d\\\\s]+',\n apply: (v, ctx) => {\n const val = lc(v, localeCode);\n const idx = loc.monthsShort\n .findIndex((m) => lc(m, localeCode) === val);\n if (idx === -1) {\n throw new Error('Invalid short month name: ' + v);\n }\n ctx.month = idx + 1;\n ctx.hasMonth = true;\n }\n },\n {\n token: 'MM',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 12) {\n throw new Error('Invalid month: ' + n);\n }\n ctx.month = n;\n ctx.hasMonth = true;\n }\n },\n {\n token: 'mm',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid minute: ' + n);\n }\n // NOTE: kept as in your original code, even though name suggests minutes.\n ctx.minute = n;\n ctx.hasMinute = true;\n }\n },\n {\n token: 'M',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 12) {\n throw new Error('Invalid month: ' + n);\n }\n ctx.month = n;\n ctx.hasMonth = true;\n }\n },\n {\n token: 'm', // PHP-like month\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 12) {\n throw new Error('Invalid month: ' + n);\n }\n ctx.month = n;\n ctx.hasMonth = true;\n }\n },\n // Day of month\n {\n token: 'DD',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 31) {\n throw new Error('Invalid day of month: ' + n);\n }\n ctx.day = n;\n ctx.hasDay = true;\n }\n },\n {\n token: 'D',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 31) {\n throw new Error('Invalid day of month: ' + n);\n }\n ctx.day = n;\n ctx.hasDay = true;\n }\n },\n {\n token: 'd', // PHP-like day-of-month\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 31) {\n throw new Error('Invalid day of month: ' + n);\n }\n ctx.day = n;\n ctx.hasDay = true;\n }\n },\n // Weekday (validated only, not used for construction)\n {\n token: 'dddd',\n regex: '[^\\\\d\\\\s]+',\n apply: (v, ctx) => {\n const val = lc(v, localeCode);\n const idx = loc.weekdaysLong\n .findIndex((w) => lc(w, localeCode) === val);\n if (idx === -1) {\n throw new Error('Invalid weekday name: ' + v);\n }\n ctx.weekday = idx; // 0-6\n }\n },\n {\n token: 'ddd',\n regex: '[^\\\\d\\\\s]+',\n apply: (v, ctx) => {\n const val = lc(v, localeCode);\n const idx = loc.weekdaysShort\n .findIndex((w) => lc(w, localeCode) === val);\n if (idx === -1) {\n throw new Error('Invalid short weekday name: ' + v);\n }\n ctx.weekday = idx;\n }\n },\n {\n token: 'EE',\n regex: '\\\\d{1}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 7) {\n throw new Error('Invalid weekday number: ' + n);\n }\n ctx.weekday = n;\n }\n },\n // -------- Hours (24h + 12h) --------\n // 12-hour, zero-padded (01–12)\n {\n token: 'hh',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 12) {\n throw new Error('Invalid 12-hour clock hour: ' + n);\n }\n ctx.hour = n; // keep 1–12 for now, convert after AM/PM\n ctx.hasHour = true;\n ctx.uses12Hour = true;\n }\n },\n // 24-hour, zero-padded\n {\n token: 'HH',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 23) {\n throw new Error('Invalid hour: ' + n);\n }\n ctx.hour = n;\n ctx.hasHour = true;\n }\n },\n {\n token: 'H',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 23) {\n throw new Error('Invalid hour: ' + n);\n }\n ctx.hour = n;\n ctx.hasHour = true;\n }\n },\n {\n token: 'h', // PHP-like 24h alias here (kept as you had it)\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 23) {\n throw new Error('Invalid hour: ' + n);\n }\n ctx.hour = n;\n ctx.hasHour = true;\n }\n },\n // Minutes\n {\n token: 'II',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid minute: ' + n);\n }\n ctx.minute = n;\n ctx.hasMinute = true;\n }\n },\n {\n token: 'I',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid minute: ' + n);\n }\n ctx.minute = n;\n ctx.hasMinute = true;\n }\n },\n {\n token: 'i', // PHP-like minutes\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid minute: ' + n);\n }\n ctx.minute = n;\n ctx.hasMinute = true;\n }\n },\n // Seconds\n {\n token: 'SS',\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid second: ' + n);\n }\n ctx.second = n;\n ctx.hasSecond = true;\n }\n },\n {\n token: 'S',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid second: ' + n);\n }\n ctx.second = n;\n ctx.hasSecond = true;\n }\n },\n {\n token: 'ss', // PHP-like seconds\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid second: ' + n);\n }\n ctx.second = n;\n ctx.hasSecond = true;\n }\n },\n {\n token: 's', // PHP-like seconds\n regex: '\\\\d{2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 59) {\n throw new Error('Invalid second: ' + n);\n }\n ctx.second = n;\n ctx.hasSecond = true;\n }\n },\n // Milliseconds\n {\n token: 'ms',\n regex: '\\\\d{1,3}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 0 || n > 999) {\n throw new Error('Invalid millisecond: ' + n);\n }\n ctx.ms = n;\n ctx.hasMs = true;\n }\n },\n // Week (parsed, not used yet)\n {\n token: 'WWWW',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 53) {\n throw new Error('Invalid week number: ' + n);\n }\n ctx.week = n;\n }\n },\n {\n token: 'WWW',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 53) {\n throw new Error('Invalid week number: ' + n);\n }\n ctx.week = n;\n }\n },\n {\n token: 'WW',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 53) {\n throw new Error('Invalid week number: ' + n);\n }\n ctx.week = n;\n }\n },\n {\n token: 'W',\n regex: '\\\\d{1,2}',\n apply: (v, ctx) => {\n const n = parseInt(v, 10);\n if (n < 1 || n > 53) {\n throw new Error('Invalid week number: ' + n);\n }\n ctx.week = n;\n }\n },\n // Timezone offset\n {\n token: 'ZZ',\n regex: '(?:Z?[+-]\\\\d{2}\\\\d{2})',\n apply: (v, ctx) => {\n if (v === 'Z' || v === 'z') {\n ctx.offsetMinutes = 0;\n return;\n }\n const sign = v[0] === '-' ? -1 : 1;\n const rest = v.slice(1); // \"02:00\" or \"0500\"\n const hh = parseInt(rest.slice(0, 2), 10);\n const mm = parseInt(rest.slice(2), 10);\n if (hh < 0 || hh > 23 || mm < 0 || mm > 59) {\n throw new Error('Invalid timezone offset: ' + v);\n }\n ctx.offsetMinutes = sign * (hh * 60 + mm);\n }\n },\n {\n token: 'Z',\n regex: '(?:Z?[+-]\\\\d{2}\\\\:{1}\\\\d{2})',\n apply: (v, ctx) => {\n if (v === 'Z' || v === 'z') {\n ctx.offsetMinutes = 0;\n return;\n }\n const sign = v[0] === '-' ? -1 : 1;\n const rest = v.slice(1); // \"02:00\" or \"0500\"\n const [h, m] = rest.split(':');\n let hh = parseInt(h, 10);\n let mm = parseInt(m, 10);\n if (hh < 0 || hh > 23 || mm < 0 || mm > 59) {\n throw new Error('Invalid timezone offset: ' + v);\n }\n ctx.offsetMinutes = sign * (hh * 60 + mm);\n }\n },\n // Timezone name (z) – IANA like \"Europe/Rome\"\n {\n token: 'z',\n regex: '[A-Za-z_\\\\/]+',\n apply: (v, ctx) => {\n ctx.timeZone = v;\n }\n },\n // -------- NEW: AM/PM markers --------\n {\n token: 'A',\n regex: '(?:AM|PM|am|pm)',\n apply: (v, ctx) => {\n ctx.isPM = /pm/i.test(v);\n ctx.hasAmPm = true;\n }\n },\n {\n token: 'a',\n regex: '(?:AM|PM|am|pm)',\n apply: (v, ctx) => {\n ctx.isPM = /pm/i.test(v);\n ctx.hasAmPm = true;\n }\n }\n ];\n function parseWithFormat(fmt, cls = 'auto') {\n var _a;\n const currentDate = new bbnDtDateTime();\n const ctx = {\n year: currentDate.year(),\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n ms: 0,\n hasYear: false,\n hasMonth: false,\n hasDay: false,\n hasHour: false,\n hasMinute: false,\n hasSecond: false,\n hasMs: false\n };\n const isClsAuto = cls === 'auto';\n const isClsZoned = cls.toLowerCase() === 'zoned';\n const isClsDateTime = cls.toLowerCase() === 'datetime';\n const isClsDate = cls.toLowerCase() === 'date';\n const isClsTime = cls.toLowerCase() === 'time';\n const isClsYearMonth = cls.toLowerCase() === 'yearmonth';\n const isClsMonthDay = cls.toLowerCase() === 'monthday';\n const tokenSpecs = makeTokenSpecs();\n const tokensByLength = [...tokenSpecs].sort((a, b) => b.token.length - a.token.length);\n let pattern = '';\n const applyFns = [];\n let i = 0;\n let lastPositionMatch = 0;\n while (i < fmt.length) {\n // 1) Handle [literal] blocks first\n if (fmt[i] === '[') {\n let j = i + 1;\n let rawLiteral = '';\n while (j < fmt.length && fmt[j] !== ']') {\n rawLiteral += fmt[j];\n j++;\n }\n if (j < fmt.length && fmt[j] === ']') {\n // We found a closing bracket: treat content as literal\n // Undo our earlier escaping of ']' (we used '\\]' when building)\n const literal = rawLiteral.replace(/\\\\]/g, ']');\n pattern += escapeRegex(literal);\n // No capturing group & no applyFn, we just match this text\n i = j + 1;\n continue;\n }\n // If there's no closing ']', fall through and treat '[' as normal char\n }\n // 2) Try to match a token at this position\n let matchedToken = null;\n for (const spec of tokensByLength) {\n if (fmt.startsWith(spec.token, i)) {\n matchedToken = spec;\n break;\n }\n }\n if (matchedToken) {\n pattern += `(${matchedToken.regex})`;\n lastPositionMatch = pattern.length;\n if (matchedToken.apply) {\n applyFns.push(value => matchedToken.apply(value, ctx));\n }\n else {\n applyFns.push(() => { });\n }\n i += matchedToken.token.length;\n }\n else {\n // 3) Plain literal character\n pattern += escapeRegex(fmt[i]);\n i += 1;\n }\n }\n const fullRegex = new RegExp('^' + bbn.fn.substr(pattern, 0, lastPositionMatch));\n let match = fullRegex.exec(input);\n if (!match) {\n if (force) {\n const inputDate = new bbnDtDateTime(currentDate.year(), 1, 1, 0, 0, 0, 0);\n input = inputDate.format(fmt);\n isValid = false;\n match = fullRegex.exec(input);\n }\n else {\n throw new Error(`Date string \"${input}\" does not match format \"${fmt}\"`);\n }\n }\n for (let idx = 1; idx < match.length; idx++) {\n const value = match[idx];\n const apply = applyFns[idx - 1];\n if (value != null && apply) {\n apply(value);\n }\n }\n // ---- NEW: convert 12h + AM/PM to 24h ----\n if (ctx.uses12Hour) {\n if (!ctx.hasAmPm) {\n throw new Error('AM/PM marker (A or a) is required with 12-hour format (hh)');\n }\n let h = ctx.hour; // 1–12\n if (ctx.isPM) {\n if (h < 12) {\n h += 12;\n }\n }\n else { // AM\n if (h === 12) {\n h = 0;\n }\n }\n ctx.hour = h;\n }\n const hasDate = ctx.hasYear || ctx.hasMonth || ctx.hasDay;\n const hasFullDate = ctx.hasYear && ctx.hasMonth && ctx.hasDay;\n const hasYearMonthOnly = ctx.hasYear && ctx.hasMonth && !ctx.hasDay;\n const hasMonthDayOnly = !ctx.hasYear && ctx.hasMonth && ctx.hasDay;\n const hasTime = ctx.hasHour || ctx.hasMinute || ctx.hasSecond || ctx.hasMs;\n const hasZone = ctx.timeZone != null || ctx.offsetMinutes != null;\n let dtObj;\n // ---------- 1) If timezone (Z or z) → Zoned ----------\n if (isClsZoned || (hasZone && isClsAuto)) {\n let pdt;\n try {\n pdt = new T.PlainDateTime(ctx.year, ctx.month, ctx.day, ctx.hour, ctx.minute, ctx.second, ctx.ms * 1000000);\n }\n catch (_b) {\n throw new Error('Invalid date/time components');\n }\n if (ctx.timeZone) {\n const tz = T.TimeZone.from(ctx.timeZone);\n const zdt = pdt.toZonedDateTime(tz);\n dtObj = new bbnDtZoned(zdt);\n }\n else {\n const utcMs = Date.UTC(ctx.year, ctx.month - 1, ctx.day, ctx.hour, ctx.minute, ctx.second, ctx.ms);\n const epochMs = utcMs - ((_a = ctx.offsetMinutes) !== null && _a !== void 0 ? _a : 0) * 60000;\n dtObj = new bbnDtZoned(T.Instant.fromEpochMilliseconds(epochMs).toZonedDateTimeISO(T.Now.timeZoneId()));\n }\n }\n // ---------- 2) No timezone: decide which Plain* type ----------\n else if (isClsDateTime || (isClsAuto && (isValid || (hasDate && hasTime)))) {\n if (!hasFullDate && !isValid) {\n throw new Error('PlainDateTime requires year, month and day');\n }\n const d = new T.PlainDateTime(ctx.year, ctx.month, ctx.day, ctx.hour, ctx.minute, ctx.second, ctx.ms * 1000000);\n dtObj = new bbnDtDateTime(d);\n }\n else if (isClsDate || isClsYearMonth || isClsMonthDay || (isClsAuto && hasDate && !hasTime)) {\n if (isClsDate || (hasFullDate && isClsAuto)) {\n const d = new T.PlainDate(ctx.year, ctx.month, ctx.day);\n dtObj = new bbnDtDate(d);\n }\n else if (isClsYearMonth || (hasYearMonthOnly && isClsAuto)) {\n const d = new T.PlainYearMonth(ctx.year, ctx.month);\n dtObj = new bbnDtYearMonth(d);\n }\n else if (isClsMonthDay || (hasMonthDayOnly && isClsAuto)) {\n const d = new T.PlainMonthDay(ctx.month, ctx.day, 1972);\n dtObj = new bbnDtMonthDay(d);\n }\n else if (isClsAuto && ctx.hasYear) {\n const d = new T.PlainDate(ctx.year, 1, 1);\n dtObj = new bbnDtDate(d);\n }\n else {\n throw new Error('Not enough date components for a known Temporal type');\n }\n }\n else if (isClsTime || (isClsAuto && !hasDate && hasTime)) {\n const d = new T.PlainTime(ctx.hour, ctx.minute, ctx.second, ctx.ms * 1000000);\n dtObj = new bbnDtTime(d);\n }\n else {\n throw new Error('No date or time information found in input');\n }\n dtObj.setValid(isValid);\n return dtObj;\n }\n if (Array.isArray(format)) {\n let lastError = null;\n for (const fmt of format) {\n try {\n return parseWithFormat(fmt, cls);\n }\n catch (e) {\n lastError = e;\n }\n }\n throw lastError !== null && lastError !== void 0 ? lastError : new Error('No format matched');\n }\n return parseWithFormat(format, cls);\n}\n;\n","import parse from './parse.js';\nimport buildLocaleFromIntl from './buildLocaleFromIntl.js';\n// Common MySQL & native JS string formats – tried first in guessFormat\nconst MYSQL_AND_NATIVE_FORMATS = [\n // --- MySQL / MariaDB classic ---\n // Date\n // Date + time\n 'YYYY-MM-DD HH:II:SS.ms',\n 'YYYY-MM-DD HH:II:SS',\n 'YYYY-MM-DD HH:II:SS[ GMT]Z',\n 'YYYY-MM-DD HH:II',\n // Time only\n // --- ISO 8601 / JS toISOString() ---\n // 2025-11-22T14:30:00.123Z\n 'YYYY-MM-DDTHH:II:SS.msZ',\n // 2025-11-22T14:30:00Z\n 'YYYY-MM-DDTHH:II:SSZ',\n // 2025-11-22T14:30:00\n 'YYYY-MM-DDTHH:II:SS',\n // 2025-11-22T14:30\n 'YYYY-MM-DDTHH:II',\n // --- JS toUTCString() ---\n // Tue, 29 Oct 2024 14:30:00 GMT\n 'ddd[, ]DD MMM YYYY HH:II:SS[ GMT]',\n // --- JS toString() (without the parenthesized TZ name) ---\n // Tue Oct 29 2024 14:30:00 GMT+0200\n 'ddd MMM DD YYYY HH:II:SS[ GMT]Z',\n // Tue Oct 29 2024 14:30:00\n 'ddd MMM DD YYYY HH:II:SS',\n 'D MMM',\n 'D MMMM',\n 'D/M',\n 'YYYY-MM-DD',\n 'YYYY-MM',\n 'HH:II:SS',\n 'HH:II',\n];\nexport default function guessFormat(input, formats, lng) {\n const str = input.trim();\n if (!str) {\n return null;\n }\n buildLocaleFromIntl();\n const tryFormats = (fmts) => {\n for (const fmt of fmts) {\n // 1) Try strict format first\n try {\n parse(str, fmt);\n return fmt;\n }\n catch (_a) {\n // ignore, we'll maybe try a relaxed version\n }\n }\n return null;\n };\n // if user provided formats, restrict to those\n if (formats) {\n const list = Array.isArray(formats) ? formats : [formats];\n return tryFormats(list);\n }\n // Avoid trivial duplicates\n const seen = new Set();\n const mysqlNativeCandidates = MYSQL_AND_NATIVE_FORMATS.filter(fmt => {\n if (seen.has(fmt))\n return false;\n seen.add(fmt);\n return true;\n });\n const localeCandidates = [\n ...bbn.dt.locales.datetime.map(f => f.pattern),\n ...bbn.dt.locales.date.map(f => f.pattern),\n ...bbn.dt.locales.time.map(f => f.pattern)\n ].filter(fmt => {\n if (seen.has(fmt))\n return false;\n seen.add(fmt);\n return true;\n });\n // MySQL & native JS patterns are checked FIRST\n const candidates = [\n ...mysqlNativeCandidates,\n ...localeCandidates\n ];\n const fmt = tryFormats(candidates);\n if (fmt) {\n return fmt;\n }\n // last resort: if you *really* want a \"native\" fallback, do it here\n // const d = new Date(str);\n // if (!Number.isNaN(d.getTime())) {\n // return 'native';\n // }\n return null;\n}\n","import { Temporal } from 'temporal-polyfill';\nimport bbnDtDateTime from './dt/classes/dateTime.js';\nimport bbnDtDate from './dt/classes/date.js';\nimport bbnDtTime from './dt/classes/zoned.js';\nimport bbnDtYearMonth from './dt/classes/yearMonth.js';\nimport bbnDtMonthDay from './dt/classes/monthDay.js';\nimport bbnDtZoned from './dt/classes/zoned.js';\nimport bbnDtDuration from './dt/classes/duration.js';\nimport _ from './_.js';\nimport parse from './dt/functions/parse.js';\nimport guessFormat from './dt/functions/guessFormat.js';\nconst patterns = [\n // MariaDB DATETIME \"YYYY-MM-DD HH:MM:SS\"\n {\n name: 'mariadb-datetime',\n re: /^(\\d{4})-(\\d{2})-(\\d{2})[ T](\\d{2}):(\\d{2}):(\\d{2})$/,\n map: m => ({\n year: +m[1],\n month: +m[2],\n day: +m[3],\n hour: +m[4],\n minute: +m[5],\n second: +m[6],\n })\n },\n // MariaDB DATETIME without seconds \"YYYY-MM-DD HH:MM\"\n {\n name: 'mariadb-datetime-no-sec',\n re: /^(\\d{4})-(\\d{2})-(\\d{2})[ T](\\d{2}):(\\d{2})$/,\n map: m => ({\n year: +m[1],\n month: +m[2],\n day: +m[3],\n hour: +m[4],\n minute: +m[5],\n second: 0,\n })\n },\n // MariaDB DATE \"YYYY-MM-DD\"\n {\n name: 'mariadb-date',\n re: /^(\\d{4})-(\\d{2})-(\\d{2})$/,\n map: m => ({\n year: +m[1],\n month: +m[2],\n day: +m[3],\n hour: 0,\n minute: 0,\n second: 0,\n })\n },\n // ISO / JS-style \"YYYY-MM-DDTHH:MM[:SS][.sss][Z or ±HH:MM]\"\n {\n name: 'iso-datetime',\n re: /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2})(?::(\\d{2}))?(?:\\.\\d+)?(?:Z|[+\\-]\\d{2}:?\\d{2})?$/,\n map: m => ({\n year: +m[1],\n month: +m[2],\n day: +m[3],\n hour: +m[4],\n minute: +m[5],\n second: m[6] !== undefined ? +m[6] : 0,\n })\n },\n];\nconst units = [\n ['y', \"year\", 365 * 24 * 60 * 60 * 1000],\n ['m', \"month\", 30 * 24 * 60 * 60 * 1000],\n ['w', \"week\", 7 * 24 * 60 * 60 * 1000],\n ['d', \"day\", 24 * 60 * 60 * 1000],\n ['h', \"hour\", 60 * 60 * 1000],\n ['i', \"minute\", 60 * 1000],\n ['s', \"second\", 1000]\n];\nconst unitsMap = {\n 'y': 'Year',\n 'm': 'Month',\n 'd': 'Date',\n 'w': 'Week',\n 'h': 'Hours',\n 'i': 'Minutes',\n 's': 'Seconds'\n};\nconst formatsMap = {\n 'y': 'YYYY',\n 'm': 'MM',\n 'd': 'DD',\n 'e': 'EE',\n 'w': 'WW',\n 'h': 'HH',\n 'i': 'II',\n 's': 'SS'\n};\nconst unitsCorrespondence = {\n 'years': 'y',\n 'year': 'y',\n 'YEARS': 'y',\n 'YEAR': 'y',\n 'Years': 'y',\n 'Year': 'y',\n 'YYYY': 'y',\n 'YY': 'y',\n 'yyyy': 'y',\n 'yy': 'y',\n 'months': 'm',\n 'month': 'm',\n 'Months': 'm',\n 'Month': 'm',\n 'MONTHS': 'm',\n 'MONTH': 'm',\n 'MMMM': 'm',\n 'MMM': 'm',\n 'MM': 'm',\n 'weekday': 'e',\n 'WEEKDAY': 'e',\n 'ee': 'e',\n 'EE': 'e',\n 'ddd': 'e',\n 'days': 'd',\n 'day': 'd',\n 'Days': 'd',\n 'Day': 'd',\n 'DAYS': 'd',\n 'DAY': 'd',\n 'DD': 'd',\n 'dd': 'd',\n 'hours': 'h',\n 'hour': 'h',\n 'Hours': 'h',\n 'Hour': 'h',\n 'HOURS': 'h',\n 'HOUR': 'h',\n 'HH': 'h',\n 'hr': 'h',\n 'hh': 'h',\n 'minutes': 'i',\n 'minute': 'i',\n 'Minutes': 'i',\n 'Minute': 'i',\n 'MINUTES': 'i',\n 'MINUTE': 'i',\n 'II': 'i',\n 'ii': 'i',\n 'mn': 'i',\n 'mm': 'i',\n 'min': 'i',\n 'SS': 's',\n 'ss': 's',\n 'seconds': 's',\n 'second': 's',\n 'Seconds': 's',\n 'Second': 's',\n 'SECONDS': 's',\n 'SECOND': 's',\n 'sec': 's',\n 'WW': 'w',\n 'Y': 'y',\n 'y': 'y',\n 'M': 'm',\n 'm': 'm',\n 'e': 'e',\n 'E': 'e',\n 'D': 'd',\n 'd': 'd',\n 'H': 'h',\n 'h': 'h',\n 'n': 'i',\n 'i': 'i',\n 's': 's',\n 'S': 's',\n 'W': 'w',\n 'w': 'w'\n};\nconst dt = (value, inputFormat = null, cls = 'auto') => {\n if (value === undefined) {\n return new bbnDtDateTime();\n }\n if (!value) {\n const d = new bbnDtDateTime();\n d.setValid(false);\n return d;\n }\n if (typeof value === 'string') {\n if (inputFormat) {\n return parse(value, inputFormat, cls, true);\n }\n else {\n const format = guessFormat(value);\n if (format) {\n return parse(value, format, cls);\n }\n else {\n throw new Error(_('Could not guess the date format for value: %s', value));\n }\n }\n }\n if (typeof value === 'number') {\n return new bbnDtDateTime(Math.abs(value) < 99999999999 ? Math.floor(value * 1000) : value);\n }\n else if (value.__isBbnDt) {\n return value;\n }\n else if (value instanceof Date) {\n const d = value;\n return new bbnDtDateTime(d.getFullYear(), d.getMonth() + 1, d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\n }\n else if (value instanceof Temporal.PlainDateTime) {\n return new bbnDtDateTime(value);\n }\n else if (value instanceof Temporal.PlainDate) {\n return new bbnDtDate(value);\n }\n else if (value instanceof Temporal.PlainTime) {\n return new bbnDtTime(value);\n }\n else if (value instanceof Temporal.PlainYearMonth) {\n return new bbnDtYearMonth(value);\n }\n else if (value instanceof Temporal.PlainMonthDay) {\n return new bbnDtMonthDay(value);\n }\n else if (value instanceof Temporal.ZonedDateTime) {\n return new bbnDtZoned(value);\n }\n else if (value instanceof Temporal.Duration) {\n return new bbnDtDuration(value);\n }\n else {\n bbn.fn.log('Invalid date value', value);\n throw new Error(_('Invalid date value'));\n }\n //throw new Error(_('Invalid date value: %s', value));\n};\ndt.locales = Object.create(null);\ndt.parse = parse;\ndt.guessFormat = guessFormat;\ndt.time = () => { };\ndt.date = () => { };\ndt.dateTime = () => { };\ndt.duration = (amount, unit) => {\n if (amount instanceof Temporal.Duration) {\n return new bbnDtDuration(amount);\n }\n return bbnDtDuration.fromUnit(amount, unit);\n};\ndt.zoned = () => { };\ndt.monthDay = () => { };\ndt.yearMonth = () => { };\nexport default dt;\n","import log from './log.js';\n/**\n * Throws an error.\n * @method error\n * @global\n * @ignore\n * ``` javascript\n * bbn.fn.error('I log this error in console with a red background')\n * ```\n * @memberof bbn.fn\n * @param {String} errorMsg\n * @returns\n */\nexport default function error(errorMsg) {\n if (arguments.length > 1) {\n const args = [];\n for (let i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.unshift({\n _bbn_console_mode: 'error',\n _bbn_console_level: 1,\n _bbn_console_style: 'color: #E64141; background: #F7E195; font-size: 14px',\n });\n log.apply(this, args);\n }\n throw new Error(errorMsg);\n}\n;\n","import error from '../browser/error.js';\nimport isFunction from '../type/isFunction.js';\nimport log from '../browser/log.js';\n/**\n * Executes a serie of predefined actions once an Ajax request has been done.\n *\n * Used to treat all the requests functions results, it expects at least url and res to be defined;\n * The following properties from the object res have direct effects:\n * - __url__ {String}: if not given it will be automatically defined by the url parameter;\n * __the given URL will be passed to location.href (without reloading)__\n * - __prescript__ {String}: if defined it will attempt to evaluate the code contained in the property\n * - __content__ {String}: if defined and ele is defined too, the string will be inserted as content in the element\n * - __script__ {String}: if defined it will be evaluated, executed, and its result will be returned\n * - __data__ {Object}:\n * - __postscript__ {String}: if defined it will be evaluated and executed\n * - __error__ {String}: if defined it will be trigger bbn.fn.defaultAlertFunction\n *\n * If fn is defined it will be executed after prescript, otherwise it will be bbn.fn.defaultLinkFunction.\n *\n * The rest of the function comes executed if either of these results is not empty.\n *\n * If fn2 is defined it will be executed after script, otherwise it will be bbn.fn.defaultPostLinkFunction.\n *\n * Although not private this function should only be used internally.\n *\n * @method callback\n * @todo Add method description for callback\n * @global\n * @memberof bbn.fn\n *\n * @param {String} url The URL that has been called\n * @param {Object} res The object returned by the request\n * @param {Function} fn A first callback function to execute\n * @param {Function} fn2 A second callback function to execute\n * @param {HTMLElement} ele A DOM element where the content will be inserted\n *\n * @returns {*} The result of the main callback function: res.script, fn, or bbn.fn.defaultLinkFunction\n */\nexport default function callback(url, res = null, fn = null, fn2 = null, ele = null) {\n let tmp = false;\n if (res) {\n tmp = true;\n let t = typeof res;\n let isObj = t.toLowerCase() === 'object';\n let errTitle;\n if (isObj && res.prescript) {\n /* var ok can be changed to false in prescript execution */\n try {\n const preFn = new Function(res.prescript);\n preFn();\n }\n catch (e) {\n error(e.message || '');\n }\n }\n if (isObj && res.url === undefined) {\n res.url = url;\n }\n /* Case where a callback is defined */\n if (fn && isFunction(fn)) {\n tmp = fn(res, ele);\n }\n else {\n tmp = bbn.fn.defaultLinkFunction(res, ele);\n }\n if (ele && isObj && (res.content !== undefined)) {\n if ('value' in ele) {\n ele.value = res.content;\n }\n else {\n ele.innerHTML = res.content;\n }\n }\n if (tmp && isObj && res.script) {\n if (typeof (res.script) === 'function') {\n tmp = res.script(res.data ? res.data : {}, ele || null);\n }\n else {\n tmp = ((data, ele) => {\n let r = null;\n try {\n let fnScript = new Function(res.script);\n r = fnScript();\n if (isFunction(r)) {\n r = r(data, ele);\n }\n }\n catch (e) {\n log(e, res);\n error(isFunction(e.getMessage) ? e.getMessage() : null);\n }\n return r;\n })(res.data ? res.data : {}, ele ? ele : false);\n }\n }\n /* Case where a callback is defined */\n if (tmp && fn2 && isFunction(fn2)) {\n fn2(res);\n }\n else if (isObj && bbn.fn.defaultPostLinkFunction) {\n bbn.fn.defaultPostLinkFunction(res, ele);\n }\n if (tmp && isObj && res.postscript) {\n let fnPost = new Function(res.postscript);\n fnPost(res.postscript);\n }\n if (isObj && res.error) {\n errTitle = res.errorTitle || bbn.lng.server_response;\n bbn.fn.defaultErrorFunction(res.error, errTitle);\n }\n }\n else {\n bbn.fn.defaultErrorFunction(bbn.lng.errorText, bbn.lng.error);\n }\n return tmp;\n}\n;\n","import isArray from '../type/isArray.js';\nimport isObject from '../type/isObject.js';\nimport each from '../loop/each.js';\nimport substr from '../string/substr.js';\nexport default function checkPropsDetails(obj, props, checkEmpty = false) {\n let res = {\n error: false,\n result: true,\n };\n if (typeof props === \"string\") {\n props = [props];\n }\n if (!isArray(props)) {\n res.error = bbn._(\"checkProps must receive a string or an array as props argument\");\n }\n if (!isObject(obj)) {\n res.error = bbn._(\"checkProps must receive an object as obj argument\");\n }\n if (!res.error) {\n let check;\n each(props, (varName) => {\n varName = varName.trim().split(\":\");\n let type = varName[1] || false;\n varName = varName[0];\n if (obj[varName] === undefined) {\n res.error = varName + \" \" + bbn._(\"is not defined\");\n }\n else if (type) {\n check =\n \"is\" +\n substr(type, 0, 1).toUpperCase() +\n substr(type, 1).toLowerCase();\n if (bbn.fn[check] === undefined) {\n res.error = type + \" \" + bbn._(\"is not a valid type\");\n }\n else if (!bbn.fn[check](obj[varName])) {\n res.error = varName + \" \" + bbn._(\"is not a\") + \" \" + type;\n }\n }\n else if (checkEmpty && !obj[varName]) {\n res.error = varName + \" \" + bbn._(\"is empty\");\n }\n if (res.error) {\n return false;\n }\n });\n }\n if (res.error) {\n res.result = false;\n }\n return res;\n}\n;\n","/**\n * Converts the first character of the string to uppercase.\n *\n * @method correctCase\n * @global\n *\n * @example\n * ```javascript\n * //\"This is a test\"\n * bbn.fn.correctCase(\"this is a test\");\n * ```\n *\n * @memberof bbn.fn\n * @param {STring} str\n * @returns {String}\n */\nexport default function correctCase(str) {\n return str.replace(/[A-z]{1}/, (c) => c.toUpperCase());\n}\n;\n","import isArray from './isArray.js';\nimport each from '../loop/each.js';\nimport isFunction from './isFunction.js';\nimport isString from './isString.js';\nimport correctCase from '../string/correctCase.js';\nimport error from '../browser/error.js';\nimport log from '../browser/log.js';\nexport default function checkType(value, type, msg, ...logs) {\n let ok = false;\n if (!isArray(type)) {\n type = [type];\n }\n const typesList = [];\n each(type, (t) => {\n var _a;\n if (t === String) {\n t = 'string';\n }\n else if (t === Number) {\n t = 'number';\n }\n else if (t === Array) {\n t = 'array';\n }\n else if (t === Boolean) {\n t = 'boolean';\n }\n else if (t === Object) {\n t = 'object';\n }\n else if (t === Function) {\n t = 'function';\n }\n if (isFunction(t)) {\n typesList.push(t.name || ((_a = t.constructor) === null || _a === void 0 ? void 0 : _a.name) || t.toString());\n if (value instanceof t) {\n ok = true;\n return false;\n }\n }\n else if (!isString(t) || !isFunction(bbn.fn['is' + correctCase(t)])) {\n error(`The type ${t} is not recognized`);\n }\n else if (bbn.fn['is' + correctCase(t)](value)) {\n ok = true;\n return false;\n }\n else {\n typesList.push(t);\n }\n });\n if (!ok) {\n log(['Value given', value, 'type', typeof value, 'expected', typesList.join(' or ')]);\n if (logs.length) {\n log(logs);\n }\n throw new Error((msg ? msg + ' - ' : '') + bbn._('The value should be a %s', typesList.join(' ' + bbn._('or a') + ' ')));\n }\n}\n;\n","import isArray from '../type/isArray.js';\nimport isObject from '../type/isObject.js';\nimport extend from './extend.js';\n/**\n * Creates and returns a perfect clone - but different - from the given object.\n *\n * @method clone\n * @global\n * @example\n * ```javascript\n * let obj = {name: \"Thomas\"};\n * let objCopy = bbn.fn.clone(obj);\n * obj.name = \"Julie\";\n * // obj: {name: \"Julie\"}\n * // objCopy: {name: \"Thomas\"}\n * ```\n * @memberof bbn.fn\n * @param {Object} obj The source object\n * @returns {Object} A new object\n */\nexport default function clone(obj) {\n if (isArray(obj)) {\n return obj.slice().map((a) => {\n return typeof a === \"object\" ? clone(a) : a;\n });\n }\n if (isObject(obj)) {\n const o = Object.create(Object.getPrototypeOf(obj));\n return extend(true, o, obj);\n }\n return obj;\n}\n;\n","import isObject from '../type/isObject.js';\nimport isFunction from '../type/isFunction.js';\n/**\n * Copies to the clipboard the value of the given string.\n * @method copy\n * @global\n * ``` javascript\n * let myVal = 'the value you want to copy to clipbord';\n * bbn.fn.copy(myVal);\n *\n * ```\n * @memberof bbn.fn\n * @param {String} st The string to copy.\n * @returns\n */\nconst fire = (st, type = 'text/plain') => {\n const transfer = new DataTransfer();\n transfer.setData(type, st);\n const copyEvent = new ClipboardEvent('copy', {\n bubbles: true,\n cancelable: true,\n clipboardData: transfer\n });\n document.dispatchEvent(copyEvent);\n};\nexport default function copy(st, noDispatch) {\n return new Promise((resolve) => {\n if (st) {\n if (navigator && navigator.clipboard) {\n if (st instanceof Blob) {\n navigator.clipboard.write([new ClipboardItem({ [st.type.toString()]: st })]).then(() => {\n resolve(true);\n });\n if (!noDispatch) {\n fire(st, st.type.toString());\n }\n }\n else if (isObject(st) && isFunction(st.toBlob)) {\n st.toBlob((blob) => {\n const item = new ClipboardItem({ [blob.type.toString()]: blob });\n navigator.clipboard.write([item]).then(() => {\n if (!noDispatch) {\n fire(st, blob.type.toString());\n }\n resolve(true);\n });\n });\n }\n else {\n navigator.clipboard.writeText(st);\n if (!noDispatch) {\n fire(st);\n }\n resolve(true);\n }\n return;\n }\n let input = document.createElement('textarea');\n input.style.opacity = '0';\n input.value = st;\n document.body.appendChild(input);\n input.select();\n document.execCommand('copy');\n document.body.removeChild(input);\n if (!noDispatch) {\n fire(st);\n }\n resolve(true);\n }\n resolve(false);\n });\n}\n;\n","import isArray from '../type/isArray.js';\nimport { filterToConditions } from './filterToConditions.js';\nimport compareConditions from './compareConditions.js';\n/**\n * Returns a new array with only the data matching the given filter.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method filter\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.filter(ar, {director: \"Steven Spielberg\"});\n * // [\n * // {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * // {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * // ]\n * bbn.fn.filter(ar, \"director\", \"Steven Spielberg\");\n * // Same result as the previous example\n * bbn.fn.filter(ar, {\n * logic: \"OR\",\n * conditions: [\n * {\n * field: \"director\",\n * value: \"Richard Donner\"\n * }, {\n * field: \"director\",\n * value: \"George Lucas\"\n * }\n * ]\n * );\n * // [\n * // {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * // {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * // ]\n * ```\n *\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Array} A new filtered array\n */\nexport default function filter(arr, prop, val = null, operator = '=') {\n if (!isArray(arr)) {\n bbn.fn.log(\"NOT ARRAY\", arr);\n throw new Error('Error in filter: The first argument must be an array');\n }\n let cfg = {};\n const res = [];\n const isFn = typeof (prop) === 'function';\n if (!prop || !arr.length) {\n return arr;\n }\n if (typeof prop === 'object') {\n operator = val;\n cfg = prop;\n }\n else if (typeof prop === 'string') {\n cfg[prop] = val;\n }\n else if (!isFn) {\n throw new Error('Search function error: The prop argument should be a string or an object');\n }\n if (typeof (prop) === 'function') {\n for (let i = 0; i < arr.length; i++) {\n if (prop(arr[i], i)) {\n res.push(arr[i]);\n }\n }\n }\n else {\n cfg = filterToConditions(cfg, operator);\n if (cfg.conditions && cfg.logic) {\n for (let i = 0; i < arr.length; i++) {\n if (compareConditions(arr[i], cfg)) {\n res.push(arr[i]);\n }\n }\n }\n }\n return res;\n}\n;\n","/**\n * CRC32 implementation.\n */\nconst crc32Table = [];\nfor (let i = 0; i < 256; i++) {\n let c = i;\n for (let j = 0; j < 8; j++) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n crc32Table.push(c);\n}\nexport default function crc32(str) {\n let crc = 0 ^ -1;\n for (let i = 0; i < str.length; i++) {\n const charCode = str.charCodeAt(i);\n crc = (crc >>> 8) ^ crc32Table[(crc ^ charCode) & 0xff];\n }\n return (crc ^ -1) >>> 0; // Make sure the result is a 32-bit positive integer\n}\n;\n","import extend from './extend.js';\nexport default function createObject(...args) {\n const obj = Object.create(null);\n if (args.length) {\n extend(obj, ...args);\n }\n return obj;\n}\n;\n","import isNumber from '../type/isNumber.js';\nimport substr from '../string/substr.js';\nimport isDate from '../type/isDate.js';\n/**\n * Returns a date object from the given argument.\n *\n * @method date\n * @global\n *\n * @example\n * ``` javascript\n * //Mon Feb 11 2019 12:00:00 GMT+0100 (Central European Standard Time)\n * bbn.fn.date('2019/02/11')\n * ```\n *\n * @memberof bbn.fn\n * @param {String|Number} v\n * @returns {date}\n */\nexport default function date(v) {\n let d = false, t = typeof v;\n if (v === undefined) {\n return new Date();\n }\n if (t === 'number' || (isNumber(v) && v !== '')) {\n if (v < 10000000000) {\n v = v * 1000;\n }\n return new Date(v);\n }\n if (t === 'string') {\n if (v.length === 10) {\n return new Date(parseInt(substr(v, 0, 4)), parseInt(substr(v, 5, 2)) - 1, parseInt(substr(v, 8, 2)), 12);\n }\n else if (v.length === 19) {\n return new Date(parseInt(substr(v, 0, 4)), parseInt(substr(v, 5, 2)) - 1, parseInt(substr(v, 8, 2)), parseInt(substr(v, 11, 2)), parseInt(substr(v, 14, 2)), parseInt(substr(v, 17, 2)));\n }\n }\n else if (isDate(v)) {\n return v;\n }\n return d;\n}\n;\n","import log from '../browser/log.js';\nexport default function defaultAjaxAbortFunction(message, url = \"\") {\n log(message);\n}\n;\n","import log from '../browser/log.js';\nexport default function defaultAjaxErrorFunction(jqXHR, textStatus = null, errorThrown = null) {\n log(textStatus, errorThrown);\n}\n;\n","export default function defaultEndLoadingFunction(url, timestamp, data = null, res = null) {\n return true;\n}\n;\n","import isNull from './isNull.js';\n/**\n * Returns true if the given argument is not null or type object or array.\n * @method isNotObject\n * @see bbn.fn.isPrimitive\n * @example\n * ```javascript\n * bbn.fn.isNotObject('myString');\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isNotObject(6);\n * //true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isNotObject([80,10,22]);\n * //false\n * ```\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isNotObject(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (typeof a === \"object\" && !isNull(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isDate from '../type/isDate.js';\nimport createObject from './createObject.js';\nimport isFunction from '../type/isFunction.js';\nimport isNotObject from '../type/isNotObject.js';\nimport isDom from '../type/isDom.js';\nimport numProperties from './numProperties.js';\nlet diffObjProcessed = [];\n/**\n * Returns an object describing the differences for transforming the first given object into the second.\n *\n * The returned data will use the objects properties as keys. If unchanged is set to true, all the\n * properties will be returned, otherwise only the different ones. Each of these keys will have the\n * following properties:\n * - type: can be _modified_, _created_, _deleted_, and if unchanged is set to true _unchanged_\n * - data: the first object's property's value, or the second if type is _created_\n * - newData: the second object's property's value in case of type _updated_\n *\n * @method diffObj\n * @global\n * @example\n * ```javascript\n * bbn.fn.diffObj(\n * {\n * name: \"Thomas\",\n * age: 45\n * }, {\n * name: \"Eva\",\n * sex: \"Female\",\n * retired: false\n * }\n * );\n * // {\n * // name: {\n * // type: \"updated\",\n * // data: \"Thomas\",\n * // newData: \"Eva\"\n * // },\n * // age: {\n * // type: \"deleted\",\n * // data: 45\n * // },\n * // sex: {\n * // type: \"created\",\n * // data: \"Female\"\n * // },\n * // retired: {\n * // type: \"created\",\n * // data: false\n * // }\n * // }\n * ```\n * @example\n * ```javascript\n * bbn.fn.diffObj(\n * {pupil: \"Agnes Varda\", grade: {year: \"B\", month: \"A\"}},\n * {pupil: \"Luc Besson\", grade: {year: \"C\", month: \"D\"}}\n * );\n * // {\n * // \"pupil\": {\n * // \"type\": \"updated\",\n * // \"data\": \"Agnes Varda\",\n * // \"newData\": \"Luc Besson\"\n * // },\n * // \"grade\": {\n * // \"year\": {\n * // \"type\": \"updated\",\n * // \"data\": \"B\",\n * // \"newData\": \"C\"\n * // },\n * // \"month\": {\n * // \"type\": \"updated\",\n * // \"data\": \"A\",\n * // \"newData\": \"D\"\n * // }\n * // }\n * // }\n * ```\n * @memberof bbn.fn\n * @param {Object} obj1\n * @param {Object} obj2\n * @param {String} unchanged\n * @param {Boolean} notRoot\n * @returns {Object}\n */\nexport default function diffObj(obj1, obj2, unchanged = false, notRoot = false) {\n if (!notRoot) {\n diffObjProcessed = [];\n }\n let VALUE_CREATED = 'created', VALUE_UPDATED = 'updated', VALUE_DELETED = 'deleted', VALUE_UNCHANGED = 'unchanged', _compareValues = function (value1, value2) {\n if (value1 === value2) {\n return VALUE_UNCHANGED;\n }\n if (isDate(value1) && isDate(value2) && value1.getTime() === value2.getTime()) {\n return VALUE_UNCHANGED;\n }\n if ('undefined' == typeof value1) {\n return VALUE_CREATED;\n }\n if ('undefined' == typeof value2) {\n return VALUE_DELETED;\n }\n return VALUE_UPDATED;\n };\n if (notRoot === undefined) {\n notRoot = false;\n }\n let diff = createObject();\n if (!isFunction(obj1) && !isFunction(obj2)) {\n if (isNotObject(obj1) || isNotObject(obj2)) {\n let res = _compareValues(obj1, obj2);\n if (unchanged || res !== VALUE_UNCHANGED) {\n let ret = createObject();\n Object.defineProperty(ret, 'type', {\n value: res,\n enumerable: false,\n });\n Object.defineProperty(ret, 'data', {\n value: obj1 === undefined ? obj2 : obj1,\n enumerable: false,\n });\n Object.defineProperty(ret, '_bbnDiffObjProof', {\n value: true,\n enumerable: false,\n });\n if (obj1 !== undefined) {\n Object.defineProperty(ret, 'newData', {\n value: obj2,\n enumerable: false,\n });\n }\n return ret;\n }\n return false;\n }\n if (isDom(obj1) || isDom(obj2)) {\n return false;\n }\n if (diffObjProcessed.includes(obj1) || diffObjProcessed.includes(obj2)) {\n //error(bbn._(\"Can't compare objects because they contain circular references\"));\n return false;\n }\n diffObjProcessed.push(obj1, obj2);\n for (let key in obj1) {\n if (isFunction(obj1[key])) {\n continue;\n }\n let value2 = undefined;\n if ('undefined' != typeof obj2[key]) {\n value2 = obj2[key];\n }\n let res = diffObj(obj1[key], value2, unchanged, true);\n if (res) {\n diff[key] = res;\n }\n }\n for (let key in obj2) {\n if (isFunction(obj2[key]) || 'undefined' != typeof obj1[key]) {\n continue;\n }\n let res = diffObj(undefined, obj2[key], unchanged, true);\n if (res) {\n diff[key] = res;\n }\n }\n }\n return !notRoot || unchanged || numProperties(diff) ? diff : false;\n}\n;\n","import isString from '../type/isString.js';\nimport substr from './substr.js';\n/**\n * Returns the path of the folder containing the last hierarchical element of the path.\n *\n * @method dirName\n * @global\n *\n * @example\n * ```javascript\n * //\"folder/other_folder\"\n * bbn.fn.dirName('folder/other_folder/file');\n * ```\n * @memberof bbn.fn\n * @param {String} path\n * @returns {String} path of the folder\n */\nexport default function dirName(path) {\n if (isString(path) && path) {\n while (substr(path, path.length - 1) === \"/\") {\n path = substr(path, 0, path.length - 1);\n }\n let pos = path.lastIndexOf(\"/\");\n if (pos > 0) {\n return substr(path, 0, pos);\n }\n if (pos === 0) {\n return \"/\";\n }\n }\n return \"\";\n}\n;\n","/**\n * @method isBlob\n * @todo Add method description for isFunction\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isBlob(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object Blob]\") {\n return false;\n }\n }\n return true;\n}\n;\n","import isString from '../type/isString.js';\n/**\n * Gets the extension from a file's name.\n *\n * The extension is returned in lower case; if the filename has no extension\n * or is not valid it will return an empty string.\n *\n * @method fileExt\n * @global\n *\n * @example\n * ```javascript\n * // \"txt\"\n * bbn.fn.fileExt('my_file.txt')\n * ```\n *\n * @example\n * ```javascript\n * // \"txt\"\n * bbn.fn.fileExt('MY_FILE.TXT')\n * ```\n *\n * @example\n * ```javascript\n * // \"\"\n * bbn.fn.fileExt('MY_FILE')\n * ```\n *\n * @example\n * ```javascript\n * // \"\"\n * bbn.fn.fileExt('.MY_FILE')\n * ```\n *\n * @param {String} filename\n * @returns {String} The file's extension\n */\nexport default function fileExt(filename) {\n if (filename && isString(filename)) {\n let bits = filename.split(\".\");\n if (bits[0] && bits.length > 1) {\n return bits[bits.length - 1].toLowerCase();\n }\n }\n return \"\";\n}\n;\n","/**\n * Returns true if the given argumen is a Canvas.\n *\n * @method isCanvas\n * @global\n * @example\n * ```javascript\n * let myCanvas = document.createElement('canvas');\n * bbn.fn.isCanvas(myCanvas);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isCanvas(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!(a instanceof HTMLCanvasElement)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isCanvas from '../type/isCanvas.js';\nimport isObject from '../type/isObject.js';\nimport isString from '../type/isString.js';\nimport log from '../browser/log.js';\n/**\n * Downloads a file with given filename from the given content.\n *\n * Creates a link putting in href a URL Object Blob made of the given content,\n * which can be a canvas, a file or a blob object, or just a string.\n *\n * @method downloadContent\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * // Download from a string\n * bbn.fn.downloadContent('myTextFile.txt', 'Just a string\\nThat we can save directly in a file', 'text/plain');\n *\n * // Download from a file\n * let file = new File([\"foo\"], \"foo.txt\", {type: \"text/plain\"});\n * bbn.fn.downloadContent('foo.txt', file);\n * ```\n *\n * @param {String} filename The name for the downloaded file\n * @param {HTMLCanvasElement|File|String} content A Canvas, a File object or a String\n * @param {String} type The type of file to be made\n *\n * @returns {undefined}\n */\nexport default function downloadContent(filename, content, type = null) {\n if (isCanvas(content)) {\n content.toBlob((blob) => {\n // blob ready, download it\n let a = document.createElement('a');\n a.download = filename;\n a.href = window.URL.createObjectURL(blob);\n a.className = 'bbn-no';\n a.click();\n // delete the internal blob reference, to let the browser clear memory from it\n window.URL.revokeObjectURL(a.href);\n }, type || 'image/png');\n return;\n }\n if (!type) {\n type = isObject(content) && content.type ? content.type : 'octet/stream';\n }\n else if (type.indexOf('/') === -1) {\n type = 'text/' + type;\n }\n let a = window.document.createElement('a');\n a.className = 'bbn-no';\n let src = null;\n if (isString(content)) {\n src = new Blob([content], { type: type });\n }\n else {\n try {\n src = content;\n }\n catch (e) {\n log(e);\n }\n }\n a.href = window.URL.createObjectURL(src);\n a.download = filename;\n // Append anchor to body.\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(a.href);\n // Remove anchor from body\n document.body.removeChild(a);\n}\n;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n/**\n * Yields execution to the browser to allow it to process pending UI updates.\n * Uses `window.scheduler.yield()` if available, otherwise falls back to `requestAnimationFrame`.\n * @method yieldToBrowser\n * @global\n * @example\n * ``` javascript\n * await bbn.fn.yieldToBrowser();\n * ```\n * @memberof bbn.fn\n * @returns {Promise}\n */\nexport default function yieldToBrowser() {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n if ((_a = window.scheduler) === null || _a === void 0 ? void 0 : _a.yield) {\n yield window.scheduler.yield(); // cooperative yield\n }\n else {\n yield new Promise(requestAnimationFrame);\n }\n });\n}\n;\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport yieldToBrowser from './yieldToBrowser.js';\n/**\n * Executes a function on each element of an array slowly, yielding to the browser in between.\n * @param arr The array to iterate over.\n * @param fn The function to execute on each element. If the function returns false, the iteration stops.\n * @returns A promise that resolves to true if the iteration completed, or false if it was stopped early.\n */\nexport default function executeSlowly(arr, fn) {\n return __awaiter(this, void 0, void 0, function* () {\n for (let i = 0; i < arr.length; i++) {\n yield yieldToBrowser();\n let res = fn(arr[i], i);\n if (res instanceof Promise) {\n res = yield res;\n }\n if (res === false) {\n return false;\n }\n }\n return true;\n });\n}\n","/**\n * Returns the value of a form's input, differenciating between checkboxes, radio and other inputs.\n *\n * @method fieldValue\n * @global\n * @memberof bbn.fn\n * @param {HTMLElement} field The input element\n *\n * @returns {Mixed} The value\n */\nexport default function fieldValue(field) {\n let v;\n if (field.type === 'checkbox') {\n if (field.checked) {\n v = field.value;\n if (!v) {\n v = 1;\n }\n }\n else {\n v = 0;\n }\n }\n else if (field.type === 'radio') {\n if (field.checked) {\n v = field.value;\n }\n }\n else {\n v = field.value;\n }\n return v;\n}\n;\n","import each from '../loop/each.js';\nimport fieldValue from './fieldValue.js';\nimport replaceAll from '../string/replaceAll.js';\nimport substr from '../string/substr.js';\n/**\n * Returns all the data contained in a form as a single object.\n *\n * @method formdata\n * @global\n * @memberof bbn.fn\n * @fires {*}\n *\n * @example\n * ```javascript\n * // <form id=\"myform\">\n * // <input type=\"hidden\" name=\"bbn[name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"bbn[fname]\" value=\"John\">\n * // </form>\n * bbn.fn.formdata(document.getElementById('myform'));\n * // {name: \"Smith\", fname: \"John\"};\n *\n * ```\n *\n * @example\n * ```javascript\n * // <form id=\"myform\">\n * // <input type=\"hidden\" name=\"People[0][name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"People[0][fname]\" value=\"John\">\n * // <input type=\"hidden\" name=\"People[1][name]\" value=\"Smith\">\n * // <input type=\"hidden\" name=\"People[1][fname]\" value=\"Eileen\">\n * // <input type=\"hidden\" name=\"Dates[0]\" value=\"2021-08-25\">\n * // <input type=\"hidden\" name=\"Dates[1]\" value=\"2021-09-06\">\n * // </form>\n * bbn.fn.formdata(document.getElementById('myform'));\n * // {\n * // People: [\n * // {name: \"Smith\", fname: \"John\"},\n * // {name: \"Smith\", fname: \"Eileen\"}\n * // ],\n * // Dates: ['2021-08-25', '2021-09-06']\n * // }\n * ```\n *\n * @param {HTMLElementL} form\n *\n * @returns {Object}\n */\nexport default function formdata(form) {\n let $inputs = form.querySelectorAll('input[name],select[name],textarea[name],button[name]');\n let res = {};\n let n;\n let v;\n each($inputs, (input, i) => {\n v = fieldValue(input);\n if (v !== undefined && !input.disabled) {\n let name = input.name;\n if (name.indexOf('[]') === -1 &&\n name.indexOf('[') > -1 &&\n name.indexOf(']') > -1 &&\n name.lastIndexOf(']') === name.length - 1) {\n name = replaceAll('][', '.', name);\n name = replaceAll('[', '.', name);\n name = replaceAll(']', '', name);\n }\n if (name.length > 2 && name.indexOf('[]') === name.length - 2) {\n n = substr(name, 0, name.length - 2);\n if (res[n] === undefined) {\n res[n] = [];\n }\n res[n].push(v);\n }\n else if (name.indexOf('.') > -1) {\n let tmp, parts = name.split('.');\n tmp = res;\n for (let i = 0; i < parts.length; i++) {\n if (res[parts[i]] === undefined) {\n if (i < parts.length - 1) {\n tmp[parts[i]] = {};\n }\n else {\n tmp[parts[i]] = v;\n }\n }\n tmp = tmp[parts[i]];\n }\n }\n else {\n res[name] = v;\n }\n }\n });\n // return num_changes ? res : false;\n return res;\n}\n;\n","/**\n * Removes duplicate values from an array.\n *\n * Takes an input array and returns a new array without duplicate values.\n *\n * @method unique\n * @global\n * @example\n * ```javascript\n * bbn.fn.unique([\"a\", \"b\", \"a\", \"b\", \"a\", \"b\", \"c\", \"c\", \"d\"]);\n * // [\"a\", \"b\", \"c\", \"d\"]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr\n * @returns {Array}\n */\nexport default function unique(arr) {\n return arr.filter((el, index, ar) => index === ar.indexOf(el));\n}\n;\n","export default function getAncestors(ele, selector = null) {\n let r = [];\n if (typeof ele === 'string') {\n ele = document.querySelector(ele);\n }\n if (ele instanceof HTMLElement) {\n if (ele.parentElement) {\n if (typeof selector === 'string') {\n while ((ele = ele.parentElement.closest(selector))) {\n r.push(ele);\n }\n }\n else {\n if (selector === true) {\n r.push(ele);\n }\n while ((ele = ele.parentElement)) {\n r.push(ele);\n }\n }\n }\n }\n return r;\n}\n;\n","/**\n * Gets a CSS variable value\n * @param {String*} varname\n * @returns\n */\nexport default function getCssVar(varname) {\n if (varname.indexOf(\"--\") !== 0) {\n varname = \"--\" + varname;\n }\n let r = getComputedStyle(document.documentElement).getPropertyValue(varname);\n if (typeof r === \"string\") {\n r = r.trim();\n }\n return r;\n}\n;\n","/**\n * Returns the current device type.\n * @method getDeviceType\n * @global\n * @example\n * ``` javascript\n * bbn.fn.getDeviceType();\n * // mobile\n * ```\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function getDeviceType() {\n const userAgent = navigator.userAgent.toLowerCase();\n if (/iPhone|Android/i.test(navigator.userAgent)) {\n return 'mobile';\n }\n if (/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(userAgent)) {\n return 'tablet';\n }\n return 'desktop';\n}\n;\n","import log from '../browser/log.js';\nexport default function getHTMLOfSelection() {\n let range;\n let selection = window.getSelection();\n if (selection.rangeCount > 0) {\n range = selection.getRangeAt(0);\n log('RANGE', range);\n let clonedSelection = range.cloneContents();\n log('clonedSelection', clonedSelection);\n let div = document.createElement('div');\n div.appendChild(clonedSelection);\n return div.innerHTML;\n }\n else {\n return '';\n }\n}\n;\n","import isString from '../type/isString.js';\nexport default function removeHtmlComments(str) {\n if (!isString(str)) {\n return str;\n }\n return str.replace(/<!--[\\s\\S]*?-->/g, '');\n}\n;\n","/**\n * Convert text in html format to plain text.\n *\n * @method html2text\n * @global\n *\n * @example\n * ```javascript\n * //\"Hello world!\"\n * bbn.fn.html2text(\"<div><p>Hello <b>world!</b></p></div>\");\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {String}\n */\nexport default function html2text(st) {\n let $test = document.createElement(\"div\");\n $test.innerHTML = st;\n st = $test.innerText;\n return st;\n}\n;\n","/**\n * Draws the given html image nto a canvas.\n * @method imageToCanvas\n * @example\n * ``` javascript\n * //<canvas width=\"60\" height=\"32\"></canvas>\n * bbn.fn.imageToCanvas('<img src=\"path/myImage.png\">');\n * ```\n * @global\n * @memberof bbn.fn\n * @param {HTMLElement} img\n * @returns {HTMLCanvasElement}\n */\nexport default function imageToCanvas(img) {\n let canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n canvas.getContext('2d').drawImage(img, 0, 0);\n return canvas;\n}\n;\n","import isObject from '../type/isObject.js';\nimport isFunction from '../type/isFunction.js';\nimport substr from '../string/substr.js';\nimport numProperties from '../object/numProperties.js';\n/**\n * Transforms unordered arguments into a configuratiuon object for Ajax shortcut functions.\n *\n * The final object will have the following arguments: url, obj, datatype, force, successFn,\n * errorFn, abortFn, e, and ele; The rules are:\n * * The first string found is the URL\n * * The second string found is the datatype\n * * The first function is successFn\n * * The second function is errorFn\n * * The third function is abortFn\n * * A boolean true is force\n * * An Event is e\n * * An HTML element is ele\n *\n * If no object is given the _bbn property will be added in order to always post something\n * and let the bbn server scripts know if a whole DOM is requested or a JSON answer\n *\n * @method treatAjaxArguments\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.treatAjaxArguments(['my/script', 'json', {a:1, b:2}, () => bbn.fn.log('Hi'), () => bbn.fn.log('Bye'), () => bbn.fn.log('Argh'), true])\n * // {\n * // \"url\": \"my/script\",\n * // \"datatype\": \"json\",\n * // \"obj\": {\n * // \"a\": 1,\n * // \"b\": 2\n * // },\n * // \"successFn\": () => bbn.fn.log('Hi'),\n * // \"errorFn\": () => bbn.fn.log('Bye'),\n * // \"abortFn\": () => bbn.fn.log('Argh'),\n * // \"force\": true\n * // }\n *\n * bbn.fn.treatAjaxArguments(['my/script?id=1'])\n * // {\n * // \"url\": \"my/script?id=1\",\n * // \"obj\": {\n * // \"_bbn\": \"public\"\n * // },\n * // \"datatype\": \"json\"\n * // }\n * ```\n *\n * @param {*} args\n *\n * @returns {Object} The configuration object\n */\nexport default function treatAjaxArguments(args) {\n let cfg = {};\n let t;\n let i;\n if (isObject(args[0]) && args.length === 1) {\n return args[0];\n }\n for (i = 0; i < args.length; i++) {\n t = typeof args[i];\n t = t.toLowerCase();\n /* Callbacks */\n if (isFunction(args[i])) {\n if (cfg[\"errorFn\"] && !cfg[\"abortFn\"]) {\n cfg[\"abortFn\"] = args[i];\n }\n if (cfg[\"successFn\"] && !cfg[\"errorFn\"]) {\n cfg[\"errorFn\"] = args[i];\n }\n else if (!cfg[\"successFn\"]) {\n cfg[\"successFn\"] = args[i];\n }\n }\n else if (args[i] === 1 || args[i] === true) {\n /* Force */\n cfg[\"force\"] = true;\n }\n else if (t === \"string\") {\n if (!cfg[\"url\"]) {\n /* Hash */\n if (args[i].indexOf(\"#\") === 0 ||\n args[i].indexOf(bbn.env.root + \"#\") === 0) {\n cfg[\"url\"] = substr(args[i], bbn.env.root.length);\n }\n else {\n /* Link */\n cfg[\"url\"] = args[i];\n if (cfg[\"url\"].indexOf(bbn.env.root) === 0) {\n cfg[\"url\"] = substr(cfg[\"url\"], bbn.env.root.length);\n }\n }\n }\n else {\n /* Ajax datatype */\n cfg[\"datatype\"] = args[i];\n }\n }\n else if (args[i] && t === \"object\") {\n /* Event */\n if (args[i] instanceof Event) {\n cfg[\"e\"] = args[i];\n }\n else if (!cfg[\"ele\"] && args[i].nodeType === 1) {\n /* HTML Element */\n cfg[\"ele\"] = args[i];\n }\n else if (t.toLowerCase() === \"object\") {\n /* An object to post */\n cfg[\"obj\"] = args[i];\n }\n }\n }\n if (!cfg[\"url\"] && numProperties(cfg)) {\n cfg[\"url\"] = bbn.env.path;\n }\n if (cfg[\"obj\"] === undefined) {\n cfg[\"obj\"] = { _bbn: \"public\" };\n }\n if (!cfg[\"datatype\"]) {\n cfg[\"datatype\"] = \"json\";\n }\n return cfg;\n}\n;\n","import substr from '../string/substr.js';\nimport extend from '../object/extend.js';\nimport html2text from '../html/html2text.js';\n/**\n * Changes the URL and the associated variables and updates the history.\n *\n * @method setNavigationVars\n * @todo Add method description for setNavigationVars\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * // Changing URL\n * bbn.fn.setNavigationVars('my/page', 'My page');\n * // Replacing the previous state\n * bbn.fn.setNavigationVars('my/page/deeper', 'My deeper page', null, true);\n * ```\n *\n * @param {String} url The URL which will become the location.href\n * @param {String} title The title corresponding to the given URL\n * @param {Object} data The data if any\n * @param {Boolean} repl If true the history state object will replace the current one, will be added otherwise\n *\n * @returns {void}\n */\nexport default function setNavigationVars(url, title, data = null, repl = false) {\n // Current path becomes old path\n bbn.env.old_path = bbn.env.path;\n // URL includes the domain\n bbn.env.url = ['https:/', 'http://'].includes(substr(url, 0, 7)) ? url : bbn.env.root + url;\n // Path does not\n bbn.env.path = substr(bbn.env.url, bbn.env.root.length);\n // Params will include each part of the URL\n bbn.env.params = bbn.env.path.split('/').filter(v => v !== '');\n // Managing history\n let h = window.history;\n if (h) {\n // Current state\n let state = h.state;\n // Future state\n let obj = {\n url: bbn.env.path,\n old_path: bbn.env.old_path || null,\n data: data || {},\n reload: false\n };\n // If same URL we replace\n if (state && state.url === bbn.env.path) {\n if (state.data) {\n extend(obj.data, state.data);\n }\n if (state.title && !title) {\n title = state.title;\n }\n repl = true;\n }\n // If no title the global title\n if (!title) {\n title = bbn.env.siteTitle;\n }\n // Otherwise we add the global title at the end\n else {\n title = html2text(title);\n }\n // Replacing state\n if (repl) {\n obj.reload = true;\n h.replaceState(obj, title, bbn.env.url);\n }\n // Adding state\n else {\n h.pushState(obj, title, bbn.env.url);\n }\n }\n}\n;\n","import treatAjaxArguments from './treatAjaxArguments.js';\nimport getLoader from './getLoader.js';\nimport ajax from './ajax.js';\nimport log from '../browser/log.js';\nimport extend from '../object/extend.js';\nimport isObject from '../type/isObject.js';\nimport callback from './callback.js';\nimport setNavigationVars from './setNavigationVars.js';\n/**\n * Follows a link and if needed by sending the corresponding Ajax request and executing bbn.fn.defaultPreLinkFunction.\n *\n * Once bbn has been initiated this function will be triggered every time a link is clicked.\n * It accepts the same arguments as seen in treatAjaxArguments but will tipically just be called with a URL,\n * the defaultLinkURL functions being in charge of loading the content\n *\n * @method link\n * @todo Manage anchors + returned data unclear\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * // Will open in a new window/tab\n * bbn.fn.link('https://nytimes.com');\n * // Will send an Ajax request\n * bbn.fn.link('my/page');\n * // Will open your default email program\n * bbn.fn.link('mailto:postmaster@test.com');\n * ```\n *\n * @returns\n */\nexport default function link(...args) {\n let cfg = treatAjaxArguments(args);\n let ok = 1;\n if (cfg === true) {\n return true;\n }\n /* If we can't find a correct link we load the current URL */\n if (!cfg) {\n return link(window.location.href);\n }\n /* Just executing the javascript if there is */\n if (cfg.url.indexOf('javascript:') === 0) {\n return true;\n }\n if (cfg.url.indexOf('data:') === 0) {\n return true;\n }\n if (cfg.url.indexOf('#') === 0) {\n location.href = bbn.env.url + cfg.url;\n /*\n if ( window.history ){\n bbn.env.historyDisabled = true;\n let state = h.state;\n window.history.replaceState(null, state.title, bbn.env.url);\n }\n bbn.env.historyDisabled = false;\n */\n return true;\n }\n else if (cfg.url.indexOf('mailto:') === 0) {\n /* Mail link */\n bbn.env.ignoreUnload = true;\n window.location.href = cfg.url;\n setTimeout(() => {\n bbn.env.ignoreUnload = false;\n }, 0);\n return false;\n }\n if (getLoader(cfg.url)) {\n return false;\n }\n /* Opens an external page in a new window */\n if ((cfg.url.indexOf('http://') === 0 || cfg.url.indexOf('https://') === 0) &&\n cfg.url.indexOf(bbn.env.host) !== 0) {\n if (cfg.e) {\n cfg.e.preventDefault();\n }\n window.open(cfg.url);\n return false;\n }\n else if (cfg.url !== bbn.env.params.join('/') || cfg.force === 1) {\n /* The URL is fine so go ahead if something is not already loading */\n /* If a second callback is defined, it is triggered instead of defaultPreLinkFunction */\n if (cfg.successFn) {\n ok = cfg.successFn(cfg.url);\n }\n else if (bbn.fn.defaultPreLinkFunction) {\n let tmp = bbn.fn.defaultPreLinkFunction(cfg.url, cfg.force, cfg.ele);\n if (tmp.data !== undefined) {\n extend(cfg.obj, tmp.data);\n ok = 1;\n }\n else {\n ok = tmp;\n }\n }\n if (ok) {\n if (ok !== 1 && typeof ok === 'string') {\n cfg.url = ok;\n }\n /** todo Do we keep obj in the unique string or do we make that only one concurrent connection to the same address can occur at the same time? */\n let errSt = bbn._('The Ajax call to') + ' ' + cfg.url + ' ';\n return ajax(cfg.url, cfg.datatype, cfg.obj, res => {\n if (!res) {\n log(errSt + bbn._('returned no answer'));\n }\n if (isObject(res)) {\n // If there's nothing in the result, just an empty object, the callback stops here and the URL is not changed\n if (Object.keys(res).length === 0) {\n log(errSt + bbn._('returned an empty object'));\n }\n if (res.new_url) {\n res.old_path = cfg.url;\n cfg.url = res.new_url;\n }\n else if (res.url && cfg.url !== res.url) {\n res.old_path = cfg.url;\n }\n }\n if (callback(cfg.url, res, cfg.successFn, null, cfg.ele) && res.noNav === undefined) {\n // This solution is not very clean (we can't shorten a URL)\n if (bbn.env.path.indexOf(cfg.url) !== 0) {\n setNavigationVars(cfg.url, (res.title ? res.title + ' - ' : '') + bbn.env.siteTitle);\n }\n }\n }, cfg.errorFn || null);\n }\n }\n return true;\n}\n;\n","import getCssVar from './getCssVar.js';\nimport each from '../loop/each.js';\nexport default function resize() {\n let diffW = bbn.env.width !== window.innerWidth;\n let diffH = bbn.env.height !== window.innerHeight;\n if (diffW || diffH) {\n if (diffW) {\n bbn.env.width =\n window.innerWidth || window.document.documentElement.clientWidth || window.document.body.clientWidth;\n document.documentElement.style.setProperty('--vw', bbn.env.width * 0.01 + 'px');\n }\n if (diffH) {\n bbn.env.height =\n window.innerHeight || window.document.documentElement.clientHeight || window.document.body.clientHeight;\n document.documentElement.style.setProperty('--vh', bbn.env.height * 0.01 + 'px');\n }\n let smallWidth = parseInt(getCssVar('mobile-limit')) || 650;\n let newCls = 'bbn-screen-' + (bbn.env.width < smallWidth ? 'small' : 'regular');\n let classes = (document.body.className || '').split(' ');\n let done = false;\n each(classes, (cls, idx) => {\n let bits = cls.split('-');\n if (bits.length === 3 && cls.indexOf('bbn-screen-') === 0) {\n done = true;\n if (cls !== newCls) {\n classes.splice(idx, 1, newCls);\n }\n return false;\n }\n });\n if (!done) {\n classes.push(newCls);\n }\n bbn.fn.defaultResizeFunction();\n document.body.className = classes.join(' ');\n }\n}\n;\n","import getDeviceType from '../browser/getDeviceType.js';\nexport default function isMobileDevice() {\n return getDeviceType() === 'mobile';\n}\n;\n","import getDeviceType from '../browser/getDeviceType.js';\n/**\n * Returns true if the current device type is a tablet.\n * @method isTabletDevice\n * @global\n * @example\n * ``` javascript\n * bbn.fn.isTabletDevice();\n * // false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isTabletDevice() {\n return getDeviceType() === 'tablet';\n}\n;\n","import isMobileDevice from './isMobileDevice.js';\nimport isTabletDevice from './isTabletDevice.js';\n/**\n * Returns true if the current browser is on a mobile device (smartphone or tablet).\n * @method isMobile\n * @global\n * @example\n * ``` javascript\n * bbn.fn.isMobile();\n * // false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isMobile() {\n return isMobileDevice() || isTabletDevice();\n}\n;\n","/**\n * Returns the timestamp of the given seconds if an argument is given, else returns the timestamp of new Date().\n * @method timestamp\n * @global\n * @example\n * ```javascript\n * //1587031047918\n * bbn.fn.timestamp();\n * ```\n * @memberof bbn.fn\n * @param {Boolean} seconds\n * @returns {Number}\n */\nexport default function timestamp(seconds = false) {\n let r = new Date().getTime();\n return seconds ? Math.round(r / 1000) : r;\n}\n;\n","/**\n * Polyfill for:\n * - Intl.Locale (minimal)\n * - Intl.Locale.prototype.getWeekInfo()\n * - Intl.Locale.prototype.weekInfo\n *\n * It does NOT touch DateTimeFormat / RelativeTimeFormat.\n * Those will be handled by FormatJS in setup-intl.ts.\n */\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\nfunction parseLocaleTag(tag) {\n const str = String(tag !== null && tag !== void 0 ? tag : '');\n const parts = str.split('-').filter(Boolean);\n if (!parts.length) {\n return { language: 'und' };\n }\n let language = parts[0].toLowerCase();\n let script;\n let region;\n for (let i = 1; i < parts.length; i++) {\n const part = parts[i];\n if (!script && part.length === 4) {\n script = part[0].toUpperCase() + part.slice(1).toLowerCase();\n }\n else if (!region && (part.length === 2 || part.length === 3)) {\n region = part.toUpperCase();\n }\n }\n return { language, script, region };\n}\nconst REGION_WEEK_INFO = import('../data/weekinfo-overrides.js');\nfunction computeWeekInfo(localeInstance) {\n var _a, _b, _c;\n const tag = (_c = (_a = localeInstance.baseName) !== null && _a !== void 0 ? _a : (_b = localeInstance.toString) === null || _b === void 0 ? void 0 : _b.call(localeInstance)) !== null && _c !== void 0 ? _c : 'und';\n const { region } = parseLocaleTag(tag);\n const info = (region && REGION_WEEK_INFO[region]) || {\n firstDay: 1,\n weekend: [6, 7],\n minimalDays: 4,\n };\n return {\n firstDay: info.firstDay,\n weekend: info.weekend.slice(),\n minimalDays: info.minimalDays,\n };\n}\n/* -------------------------------------------------------------------------- */\n/* Polyfill entry */\n/* -------------------------------------------------------------------------- */\nfunction ensureIntlLocalePolyfill() {\n if (typeof Intl === 'undefined') {\n return;\n }\n const hasNativeLocale = typeof Intl.Locale === 'function';\n if (!hasNativeLocale) {\n class PolyfilledLocale {\n constructor(tag) {\n const t = Array.isArray(tag) ? tag[0] : tag;\n const str = String(t !== null && t !== void 0 ? t : 'und');\n const parsed = parseLocaleTag(str);\n this._tag = str;\n this._language = parsed.language;\n this._script = parsed.script;\n this._region = parsed.region;\n }\n toString() {\n return this._tag;\n }\n get baseName() {\n return this._tag;\n }\n get language() {\n return this._language;\n }\n get script() {\n return this._script;\n }\n get region() {\n return this._region;\n }\n getWeekInfo() {\n return computeWeekInfo(this);\n }\n get weekInfo() {\n return computeWeekInfo(this);\n }\n }\n Intl.Locale = PolyfilledLocale;\n }\n const proto = Intl.Locale.prototype;\n if (typeof proto.getWeekInfo !== 'function') {\n proto.getWeekInfo = function getWeekInfo() {\n return computeWeekInfo(this);\n };\n }\n if (!Object.getOwnPropertyDescriptor(proto, 'weekInfo')) {\n Object.defineProperty(proto, 'weekInfo', {\n configurable: true,\n enumerable: true,\n get() {\n if (typeof this.getWeekInfo === 'function') {\n return this.getWeekInfo();\n }\n return computeWeekInfo(this);\n },\n });\n }\n}\n/**\n * Call this once after loading any Intl polyfills (FormatJS, etc.).\n */\nexport function ensureIntlWeekInfoPolyfill() {\n ensureIntlLocalePolyfill();\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n// setup-intl.ts\nimport { ensureIntlWeekInfoPolyfill } from './intl-weekinfo-polyfill.js';\n// ------------------------------\n// Feature detection\n// ------------------------------\nfunction needsRelativeTimeFormatPolyfill() {\n return typeof Intl === 'undefined' || typeof Intl.RelativeTimeFormat !== 'function';\n}\n/**\n * We ONLY care about style formats (dateStyle/timeStyle).\n * If creating a DateTimeFormat with dateStyle throws, we polyfill.\n */\nfunction needsDateTimeStylePolyfill() {\n if (typeof Intl === 'undefined' || typeof Intl.DateTimeFormat !== 'function') {\n return true;\n }\n try {\n // If this works, the engine supports style formats well enough.\n // Chrome / modern Firefox / modern Safari pass this.\n new Intl.DateTimeFormat('en', { dateStyle: 'medium' });\n return false;\n }\n catch (_a) {\n // Old Safari, old Firefox, old Chrome, etc.\n return true;\n }\n}\n// ------------------------------\n// Conditional polyfill loader\n// ------------------------------\n/**\n * Call this once at startup *before* your app uses Intl.\n *\n * Example:\n * import { setupIntl } from './setup-intl';\n * await setupIntl();\n */\nexport default function setupIntl() {\n return __awaiter(this, void 0, void 0, function* () {\n const tasks = [];\n // Polyfill RelativeTimeFormat only if missing (old Safari, old Firefox, etc.)\n if (needsRelativeTimeFormatPolyfill()) {\n tasks.push((() => __awaiter(this, void 0, void 0, function* () {\n const rtModule = yield import('@formatjs/intl-relativetimeformat/polyfill.js');\n // Ensure module is evaluated (rtModule is unused but import side-effect matters)\n void rtModule;\n // Add the locales you actually use:\n yield import('@formatjs/intl-relativetimeformat/locale-data/en.js');\n // await import('@formatjs/intl-relativetimeformat/locale-data/it');\n // ...more locales if needed\n }))());\n }\n // Polyfill DateTimeFormat only when style formats are not supported\n if (needsDateTimeStylePolyfill()) {\n tasks.push((() => __awaiter(this, void 0, void 0, function* () {\n const dtModule = yield import('@formatjs/intl-datetimeformat/polyfill.js');\n void dtModule;\n // Optional but common: locale data\n yield import('@formatjs/intl-datetimeformat/locale-data/en.js');\n // await import('@formatjs/intl-datetimeformat/locale-data/it');\n // If you need full timezone data (heavy!):\n // await import('@formatjs/intl-datetimeformat/add-all-tz');\n }))());\n }\n // Wait for all FormatJS polyfills that are actually needed\n if (tasks.length > 0) {\n yield Promise.all(tasks);\n }\n // Finally, always patch weekInfo (Intl.Locale) – Firefox, Chrome, etc.\n ensureIntlWeekInfoPolyfill();\n });\n}\n","import substr from './string/substr.js';\nimport each from './loop/each.js';\nimport extend from './object/extend.js';\nimport addColors from './style/addColors.js';\nimport link from './ajax/link.js';\nimport resize from './style/resize.js';\nimport isMobile from './browser/isMobile.js';\nimport isTabletDevice from './browser/isTabletDevice.js';\nimport isFunction from './type/isFunction.js';\nimport log from './browser/log.js';\nimport timestamp from './datetime/timestamp.js';\nimport setupIntl from '../dt/functions/setupIntl.js';\nconst onActivity = (e) => {\n bbn.env.last_focus = bbn.dt().unix();\n if (bbn.env.nav !== \"ajax\") {\n return;\n }\n let target = e.target;\n if (target instanceof HTMLElement && target.tagName !== \"A\") {\n let p = target;\n while (p && p.tagName !== \"A\") {\n if (p.tagName === \"BODY\") {\n break;\n }\n p = p.parentElement;\n }\n if (p && p.tagName === \"A\") {\n target = p;\n }\n else {\n target = null;\n }\n }\n if (target instanceof HTMLElement &&\n target.hasAttribute(\"href\") &&\n !target.hasAttribute(\"target\") &&\n !target.classList.contains(\"bbn-no\")) {\n e.preventDefault();\n e.stopPropagation();\n link(target.getAttribute(\"href\"));\n return false;\n }\n};\n/**\n * Initializes the library bbn basing on the given configuration object.\n * - Gives to the environment the dimension of the window.innerWidth and window.innerHeight\n * - Defines the server's path (difference between the host and the current dir)\n * - Adds the colors contained in bbn.var.colors to define the css classes for background and colors.\n * - Adds the event listener to the document\n * - Activates the history\n * @method init\n * @global\n * @memberof bbn.fn\n * @param {Object} cfg\n * @returns\n */\nexport default function init(cfg, force) {\n let parts;\n if (!bbn.env.isInit) {\n bbn.env.root =\n document.baseURI.length > 0 ? document.baseURI : bbn.env.host;\n if (bbn.env.root.length && substr(bbn.env.root, -1) !== \"/\") {\n bbn.env.root += \"/\";\n }\n /* The server's path (difference between the host and the current dir */\n if (typeof cfg === \"object\") {\n extend(true, bbn, cfg);\n }\n bbn.env.path = substr(bbn.env.url, bbn.env.root.length);\n parts = bbn.env.path.split(\"/\");\n //$.each(parts, function(i, v){\n each(parts, (v, i) => {\n v = decodeURI(v.trim());\n if (v !== \"\") {\n bbn.env.params.push(v);\n }\n });\n if (bbn.var.colors) {\n addColors(bbn.var.colors);\n }\n setupIntl();\n document.addEventListener(\"visibilitychange\", () => {\n if (document.hidden) {\n bbn.env.isVisible = false;\n }\n else {\n bbn.env.isVisible = true;\n }\n });\n document.addEventListener(\"focus\", (e) => {\n if (e.target instanceof HTMLElement &&\n !e.target.classList.contains(\"bbn-no\")) {\n bbn.env.focused = e.target;\n }\n bbn.env.isFocused = true;\n bbn.env.last_focus = timestamp();\n });\n document.addEventListener(\"blur\", (e) => {\n if (e.target instanceof HTMLElement &&\n !e.target.classList.contains(\"bbn-no\")) {\n bbn.env.focused = e.target;\n }\n bbn.env.isFocused = false;\n bbn.env.last_focus = timestamp();\n });\n document.addEventListener(\"click\", onActivity);\n document.addEventListener(\"keydown\", onActivity);\n document.addEventListener(\"focusin\", onActivity);\n document.addEventListener(\"focusout\", onActivity);\n window.addEventListener(\"hashchange\", () => {\n bbn.env.hashChanged = new Date().getTime();\n }, false);\n window.addEventListener(\"resize\", () => {\n resize();\n });\n window.addEventListener(\"orientationchange\", () => {\n resize();\n });\n resize();\n if (isMobile()) {\n document.body.classList.add(\"bbn-mobile\");\n if (isTabletDevice()) {\n document.body.classList.add(\"bbn-tablet\");\n }\n }\n if (window.history) {\n window.onpopstate = function (e) {\n let h = window.history;\n if (!bbn.env.historyDisabled && h) {\n //e.preventDefault();\n if (bbn.fn.defaultHistoryFunction(h.state)) {\n let state = h.state;\n if (state) {\n //link(substr(state.url, bbn.env.root.length), $.extend({title: state.title}, state.data));\n link(state.url, extend({ title: state.title || bbn.env.siteTitle }, state.data || {}));\n }\n else if (state && state.data && isFunction(state.data.script)) {\n state.data.script();\n }\n }\n }\n };\n }\n window.addEventListener('online', () => {\n bbn.env.online = true;\n });\n window.addEventListener('offline', () => {\n bbn.env.online = false;\n });\n bbn.env.isInit = true;\n document.dispatchEvent(new Event(\"bbninit\"));\n if (bbn.env.logging) {\n log(\"Logging in bbn is enabled\");\n }\n }\n}\n;\n","import isNumber from './isNumber.js';\nimport substr from '../string/substr.js';\n/**\n * Returns true if the given value is a valid CSS dimension string, false otherwise.\n *\n * @method isValidDimension\n * @global\n * @memberof bbn.fn\n * @param {String} st\n * @returns\n */\nexport default function isValidDimension(st) {\n if (typeof st === \"string\" &&\n st.length > 0 &&\n (st.indexOf(\"calc\") === 0 || isNumber(substr(st, 0, 1)))) {\n let el = document.createElement(\"div\");\n el.style.width = st;\n let res = !!el.style.width.length;\n el.remove();\n return res;\n }\n return false;\n}\n;\n","import isString from './isString.js';\nexport default function isIP(...args) {\n if (!args.length)\n return false;\n for (let st of args) {\n if (!isString(st) || !bbn.var.regexp.ip.test(st)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a symbol;\n * @method isSymbol\n * @global\n * @example\n * ```javascript\n * const sb = Symbol();\n * bbn.fn.isSymbol(sb);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isSymbol(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object Symbol]\") {\n return false;\n }\n }\n return true;\n}\n;\n","import log from './log.js';\n/**\n * Logs the given argument in the browser's console highlighting it with a yellow background and red color.\n * @method warning\n * @global\n * @example\n * ```javascript\n * bbn.fn.warning('whatever you want to log as a warning');\n * ```\n * @memberof bbn.fn\n * @param {...any} args\n * @returns\n */\nexport default function warning(message) {\n const args = ['BBN: ' + message];\n const obj = {\n _bbn_console_mode: 'warn',\n _bbn_console_level: 2,\n _bbn_console_style: 'color: #E64141; background: #F7E195; font-size: 14px',\n };\n args.unshift(obj);\n log.apply(this, args);\n}\n;\n","import isArray from '../type/isArray.js';\nimport each from '../loop/each.js';\nimport isObject from '../type/isObject.js';\nimport iterate from '../loop/iterate.js';\nimport isNull from '../type/isNull.js';\n/**\n * @method objectToFormData\n * @todo Add method description for objectToFormData\n * @global\n * @memberof bbn.fn\n * @param {Object|Array|File} obj\n * @param {String} key\n * @param {Array} ignoreList\n * @returns\n */\nexport default function objectToFormData(obj, key = '', ignoreList = null) {\n let formData = new FormData();\n let appendFormData = (data, key = '') => {\n if (!ignoreList || (isArray(ignoreList) && !ignoreList.includes(key))) {\n if (data instanceof File) {\n formData.append(key, data);\n }\n else if (isArray(data)) {\n each(data, (v, i) => {\n appendFormData(v, key + '[' + i + ']');\n });\n }\n else if (isObject(data) && Object.keys(data).length) {\n iterate(data, (v, i) => {\n if (i in data) {\n appendFormData(v, !key ? i : key + '[' + i + ']');\n }\n });\n }\n else {\n if (!isNull(data) && data !== undefined) {\n formData.append(key, data);\n }\n }\n }\n };\n appendFormData(obj, key);\n return formData;\n}\n;\n","/**\n * @ignore\n * @method selector\n * @todo Add method description for selector\n * @global\n * @memberof bbn.fn\n * @returns {HTMLElement | undefined}\n */\nexport default function selector(ele) {\n return typeof ele === \"string\" ? document.querySelector(ele) : ele;\n}\n;\n","import treatAjaxArguments from './treatAjaxArguments.js';\nimport ajax from './ajax.js';\nimport callback from './callback.js';\n/**\n * Creates a POST XHR through bbn.fn.ajax then launches bbn.fn.callback with the result.\n *\n * URL is the only mandatory argument (see treatAjaxArguments for the arguments).\n *\n * @method post\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.post('logout').then(() => {\n * document.location.reload();\n * });\n * // With data\n * bbn.fn.post('login', {user: 'tn', pass: 'xxx'}).then((d) => {\n * if (d && d.success) {\n * alert('Welcome!');\n * }\n * });\n * // With the callback as argument\n * bbn.fn.post('login', {user: 'tn', pass: 'xxx'}, (d) => {\n * if (d && d.success) {\n * alert('Welcome!');\n * }\n * }, (err) => {\n * bbn.fn.log(err);\n * mySpecialErrorFunction(err);\n * });\n * ```\n *\n * @returns {undefined|Promise}\n */\nexport default function post(...args) {\n let cfg = treatAjaxArguments(args);\n if (cfg.url) {\n return ajax(cfg.url, cfg.datatype, cfg.obj, (res) => {\n callback(cfg.url, res, cfg.successFn, cfg.errorFn, cfg.ele);\n }, cfg.errorFn, cfg.abortFn);\n }\n}\n;\n","import each from '../loop/each.js';\n/**\n * Returns the value of the given property from the given object.\n *\n * Looks for the given property in the given object, accepting dot (.) separator\n * for deep property access, and returns its value if found and undefined otherwise.\n *\n * @method getProperty\n * @global\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: 2}, 'b');\n * // 2\n * ```\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: {o: {a: 33, h: 5}}}, 'b.o.a');\n * // 33\n * ```\n * @example\n * ```javascript\n * bbn.fn.getProperty({a: 1, b: {o: {a: 33, h: 5}}}, 'b.h.a');\n * // undefined\n * ```\n * @memberof bbn.fn\n * @param {Object} obj\n * @param {String} prop\n * @returns {*} The property's value or undefined\n */\nexport default function setProperty(obj, prop, value, force) {\n if (typeof obj === 'object' && typeof prop === 'string') {\n let o = obj;\n const bits = prop.split('.');\n each(bits, (v, i) => {\n if (!o) {\n if (!force) {\n throw new Error(bbn._('The object is invalid'));\n }\n o = {};\n }\n if (bits.length - 1 === i) {\n o[v] = value;\n }\n else {\n o = o[v];\n }\n });\n }\n}\n;\n","/**\n * Returns a random integer.\n *\n * Generates and returns a random number in a range of numbers defined\n * by passed arguments a minimum and a maximum.\n *\n * @method randomInt\n * @global\n *\n * @example\n * ```javascript\n * //56\n * bbn.fn.randomInt(1,100);\n * ```\n *\n * @memberof bbn.fn\n * @param {Number} min\n * @param {Number} max\n * @returns {Number}\n */\nexport default function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n;\n","import substr from './substr.js';\nexport default function trim(str, hair = ' ') {\n if (hair === ' ') {\n return str.trim();\n }\n if (!hair) {\n return str;\n }\n if (hair === str) {\n return '';\n }\n while (str.indexOf(hair) === 0) {\n str = substr(str, hair.length);\n }\n while (str.lastIndexOf(hair) === str.length - hair.length) {\n str = substr(str, 0, str.length - hair.length);\n }\n return str;\n}\n;\n","import isString from '../type/isString.js';\nimport substr from './substr.js';\n/**\n * Shortens the given string after *len* characters.\n *\n * Provides an abbreviation to the string passed as the first argument,\n * deciding through the second argument the number of characters to keep and the remainder replaced\n * by what is passed as the third argument and if not given a defalut it is: '...'\n *\n * @method shorten\n * @global\n *\n * @example\n * ```javascript\n * //\"test***\"\n * bbn.fn.shorten('testing', 4, '***');\n * ```\n * @example\n * ```javascript\n * //\"test...\"\n * bbn.fn.shorten('testing', 4);\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @param {Number} len\n * @returns {String}\n */\nexport default function shorten(st, len, adj) {\n if (typeof st.toLowerCase() === \"string\") {\n if (!len) {\n len = bbn.var.shortenLen;\n }\n if (adj === undefined || !isString(adj)) {\n adj = \"...\";\n }\n if (st.length > len) {\n st = substr(st, 0, len) + adj;\n }\n }\n return st;\n}\n;\n","import _addLoader from './fn/ajax/_addLoader.js';\nimport _compareValues from './fn/object/_compareValues.js';\nimport _deleteLoader from './fn/ajax/_deleteLoader.js';\nimport abort from './fn/ajax/abort.js';\nimport abortURL from './fn/ajax/abortURL.js';\nimport addColors from './fn/style/addColors.js';\nimport addInputs from './fn/form/addInputs.js';\nimport addStyle from './fn/style/addStyle.js';\nimport adjustHeight from './fn/html/adjustHeight.js';\nimport adjustSize from './fn/html/adjustSize.js';\nimport adjustWidth from './fn/html/adjustWidth.js';\nimport ajax from './fn/ajax/ajax.js';\nimport analyzeFunction from './fn/misc/analyzeFunction.js';\nimport animateCss from './fn/style/animateCss.js';\nimport arrayBuffer2String from './fn/convert/arrayBuffer2String.js';\nimport arrayFromProp from './fn/object/arrayFromProp.js';\nimport autoExtend from './fn/object/autoExtend.js';\nimport baseName from './fn/string/baseName.js';\nimport br2nl from './fn/string/br2nl.js';\nimport calendar from './fn/datetime/calendar.js';\nimport callback from './fn/ajax/callback.js';\nimport camelize from './fn/string/camelize.js';\nimport camelToCss from './fn/string/camelToCss.js';\nimport canvasToImage from './fn/convert/canvasToImage.js';\nimport cast from './fn/string/cast.js';\nimport center from './fn/style/center.js';\nimport checkProps from './fn/object/checkProps.js';\nimport checkPropsDetails from './fn/object/checkPropsDetails.js';\nimport checkPropsOrDie from './fn/object/checkPropsOrDie.js';\nimport checkType from './fn/type/checkType.js';\nimport circularReplacer from './fn/object/circularReplacer.js';\nimport clone from './fn/object/clone.js';\nimport colorToHex from './fn/convert/colorToHex.js';\nimport compare from './fn/object/compare.js';\nimport compareConditions from './fn/object/compareConditions.js';\nimport copy from './fn/browser/copy.js';\nimport correctCase from './fn/string/correctCase.js';\nimport count from './fn/object/count.js';\nimport crc32 from './fn/string/crc32.js';\nimport createObject from './fn/object/createObject.js';\nimport cssExists from './fn/style/cssExists.js';\nimport data2Html from './fn/string/data2Html.js';\nimport date from './fn/datetime/date.js';\nimport dateSQL from './fn/datetime/dateSQL.js';\nimport deepPath from './fn/object/deepPath.js';\nimport defaultAjaxAbortFunction from './fn/default/defaultAjaxAbortFunction.js';\nimport defaultAjaxErrorFunction from './fn/default/defaultAjaxErrorFunction.js';\nimport defaultAlertFunction from './fn/default/defaultAlertFunction.js';\nimport defaultConfirmFunction from './fn/default/defaultConfirmFunction.js';\nimport defaultEndLoadingFunction from './fn/default/defaultEndLoadingFunction.js';\nimport defaultErrorFunction from './fn/default/defaultErrorFunction.js';\nimport defaultHistoryFunction from './fn/default/defaultHistoryFunction.js';\nimport defaultLinkFunction from './fn/default/defaultLinkFunction.js';\nimport defaultPostLinkFunction from './fn/default/defaultPostLinkFunction.js';\nimport defaultPreLinkFunction from './fn/default/defaultPreLinkFunction.js';\nimport defaultResizeFunction from './fn/default/defaultResizeFunction.js';\nimport defaultStartLoadingFunction from './fn/default/defaultStartLoadingFunction.js';\nimport deleteProp from './fn/object/deleteProp.js';\nimport diffObj from './fn/object/diffObj.js';\nimport dirName from './fn/string/dirName.js';\nimport download from './fn/ajax/download.js';\nimport downloadContent from './fn/ajax/downloadContent.js';\nimport each from './fn/loop/each.js';\nimport eraseCookie from './fn/browser/eraseCookie.js';\nimport error from './fn/browser/error.js';\nimport escapeDquotes from './fn/string/escapeDquotes.js';\nimport escapeRegExp from './fn/string/escapeRegExp.js';\nimport escapeSquotes from './fn/string/escapeSquotes.js';\nimport escapeTicks from './fn/string/escapeTicks.js';\nimport escapeUrl from './fn/string/escapeUrl.js';\nimport executeSlowly from './fn/browser/executeSlowly.js';\nimport extend from './fn/object/extend.js';\nimport extendOut from './fn/object/extendOut.js';\nimport fdate from './fn/datetime/fdate.js';\nimport fdatetime from './fn/datetime/fdatetime.js';\nimport fieldValue from './fn/form/fieldValue.js';\nimport fileExt from './fn/string/fileExt.js';\nimport filter from './fn/object/filter.js';\nimport filterToConditions from './fn/object/filterToConditions.js';\nimport firstVarElement from './fn/string/firstVarElement.js';\nimport findAll from './fn/object/findAll.js';\nimport fori from './fn/loop/fori.js';\nimport forir from './fn/loop/forir.js';\nimport format from './fn/string/format.js';\nimport formatBytes from './fn/string/formatBytes.js';\nimport formatDate from './fn/datetime/formatDate.js';\nimport formatSize from './fn/string/formatSize.js';\nimport formdata from './fn/form/formdata.js';\nimport fphone from './fn/phone/fphone.js';\nimport fromXml from './fn/convert/fromXml.js';\nimport ftime from './fn/datetime/ftime.js';\nimport getAllTags from './fn/html/getAllTags.js';\nimport getAncestors from './fn/html/getAncestors.js';\nimport getAttributes from './fn/html/getAttributes.js';\nimport getBrowserName from './fn/browser/getBrowserName.js';\nimport getBrowserVersion from './fn/browser/getBrowserVersion.js';\nimport getChrono from './fn/datetime/getChrono.js';\nimport getCookie from './fn/browser/getCookie.js';\nimport getCssVar from './fn/style/getCssVar.js';\nimport getDay from './fn/datetime/getDay.js';\nimport getDeviceType from './fn/browser/getDeviceType.js';\nimport getEventData from './fn/browser/getEventData.js';\nimport getField from './fn/object/getField.js';\nimport getFieldValues from './fn/object/getFieldValues.js';\nimport getIndex from './fn/html/getIndex.js';\nimport getHtml from './fn/html/getHtml.js';\nimport getHTMLOfSelection from './fn/html/getHTMLOfSelection.js';\nimport getLoader from './fn/ajax/getLoader.js';\nimport getPath from './fn/html/getPath.js';\nimport getProp from './fn/object/getProp.js';\nimport getProperty from './fn/object/getProperty.js';\nimport getRequestId from './fn/ajax/getRequestId.js';\nimport getRow from './fn/object/getRow.js';\nimport getScrollBarSize from './fn/style/getScrollBarSize.js';\nimport getSortingMoves from './fn/object/getSortingMoves.js';\nimport getText from './fn/html/getText.js';\nimport getTimeoff from './fn/misc/getTimeoff.js';\nimport happy from './fn/browser/happy.js';\nimport hash from './fn/string/hash.js';\nimport hex2rgb from './fn/convert/hex2rgb.js';\nimport history from './fn/browser/history.js';\nimport html2text from './fn/html/html2text.js';\nimport imageToCanvas from './fn/convert/imageToCanvas.js';\nimport imgToBase64 from './fn/convert/imgToBase64.js';\nimport info from './fn/browser/info.js';\nimport init from './fn/init.js';\nimport isActiveInterface from './fn/browser/isActiveInterface.js';\nimport isArray from './fn/type/isArray.js';\nimport isBlob from './fn/type/isBlob.js';\nimport isBoolean from './fn/type/isBoolean.js';\nimport isCanvas from './fn/type/isCanvas.js';\nimport isColor from './fn/type/isColor.js';\nimport isComment from './fn/type/isComment.js';\nimport isCp from './fn/type/isCp.js';\nimport isDataURL from './fn/type/isDataURL.js';\nimport isDate from './fn/type/isDate.js';\nimport isDesktopDevice from './fn/browser/isDesktopDevice.js';\nimport isDimension from './fn/type/isDimension.js';\nimport isDom from './fn/type/isDom.js';\nimport isEmail from './fn/type/isEmail.js';\nimport isEmpty from './fn/type/isEmpty.js';\nimport isEvent from './fn/type/isEvent.js';\nimport isFocused from './fn/browser/isFocused.js';\nimport isFunction from './fn/type/isFunction.js';\nimport isHex from './fn/type/isHex.js';\nimport isHostname from './fn/type/isHostname.js';\nimport isInside from './fn/html/isInside.js';\nimport isInt from './fn/type/isInt.js';\nimport isInViewport from './fn/html/isInViewport.js';\nimport isIP from './fn/type/isIP.js';\nimport isIterable from './fn/type/isIterable.js';\nimport isMobile from './fn/browser/isMobile.js';\nimport isMobileDevice from './fn/browser/isMobileDevice.js';\nimport isNotObject from './fn/type/isNotObject.js';\nimport isNull from './fn/type/isNull.js';\nimport isNumber from './fn/type/isNumber.js';\nimport isObject from './fn/type/isObject.js';\nimport isPercent from './fn/type/isPercent.js';\nimport isPrimitive from './fn/type/isPrimitive.js';\nimport isPromise from './fn/type/isPromise.js';\nimport isPropSize from './fn/type/isPropSize.js';\nimport isSame from './fn/type/isSame.js';\nimport isSQLDate from './fn/type/isSQLDate.js';\nimport isString from './fn/type/isString.js';\nimport isSymbol from './fn/type/isSymbol.js';\nimport isTabletDevice from './fn/browser/isTabletDevice.js';\nimport isUid from './fn/type/isUid.js';\nimport isURL from './fn/type/isURL.js';\nimport isValidDimension from './fn/type/isValidDimension.js';\nimport isValidName from './fn/type/isValidName.js';\nimport isVue from './fn/type/isVue.js';\nimport isWritable from './fn/object/isWritable.js';\nimport iterate from './fn/loop/iterate.js';\nimport lightenDarkenHex from './fn/style/lightenDarkenHex.js';\nimport link from './fn/ajax/link.js';\nimport log from './fn/browser/log.js';\nimport makeReactive from './fn/html/makeReactive.js';\nimport map from './fn/object/map.js';\nimport md5 from './fn/string/md5.js';\nimport microtimestamp from './fn/datetime/microtimestamp.js';\nimport money from './fn/misc/money.js';\nimport move from './fn/object/move.js';\nimport multiorder from './fn/object/multiorder.js';\nimport mutateArray from './fn/object/mutateArray.js';\nimport mutateObject from './fn/object/mutateObject.js';\nimport nl2br from './fn/string/nl2br.js';\nimport numProperties from './fn/object/numProperties.js';\nimport objectToFormData from './fn/form/objectToFormData.js';\nimport order from './fn/object/order.js';\nimport outerHeight from './fn/style/outerHeight.js';\nimport outerWidth from './fn/style/outerWidth.js';\nimport percent from './fn/misc/percent.js';\nimport pickValue from './fn/object/pickValue.js';\nimport post from './fn/ajax/post.js';\nimport postOut from './fn/ajax/postOut.js';\nimport printf from './fn/string/printf.js';\nimport quotes2html from './fn/string/quotes2html.js';\nimport randomInt from './fn/misc/randomInt.js';\nimport randomString from './fn/string/randomString.js';\nimport range from './fn/object/range.js';\nimport removeAccents from './fn/string/removeAccents.js';\nimport removeEmpty from './fn/object/removeEmpty.js';\nimport removeExtraSpaces from './fn/string/removeExtraSpaces.js';\nimport removeHtmlComments from './fn/string/removeHtmlComments.js';\nimport removePrivateProp from './fn/object/removePrivateProp.js';\nimport removeTrailingChars from './fn/string/removeTrailingChars.js';\nimport repeat from './fn/string/repeat.js';\nimport replaceAll from './fn/string/replaceAll.js';\nimport replaceSelection from './fn/browser/replaceSelection.js';\nimport resize from './fn/style/resize.js';\nimport rgb2hex from './fn/convert/rgb2hex.js';\nimport riterate from './fn/loop/riterate.js';\nimport roundDecimal from './fn/misc/roundDecimal.js';\nimport sanitize from './fn/string/sanitize.js';\nimport search from './fn/object/search.js';\nimport selectElementText from './fn/browser/selectElementText.js';\nimport selector from './fn/html/selector.js';\nimport setCookie from './fn/browser/setCookie.js';\nimport setCssVar from './fn/style/setCssVar.js';\nimport setNavigationVars from './fn/ajax/setNavigationVars.js';\nimport setProp from './fn/object/setProp.js';\nimport setProperty from './fn/object/setProperty.js';\nimport shorten from './fn/string/shorten.js';\nimport shortenObj from './fn/object/shortenObj.js';\nimport shuffle from './fn/object/shuffle.js';\nimport simpleHash from './fn/string/simpleHash.js';\nimport simpleHash1 from './fn/string/simpleHash1.js';\nimport simpleHash2 from './fn/string/simpleHash2.js';\nimport startChrono from './fn/datetime/startChrono.js';\nimport stopChrono from './fn/datetime/stopChrono.js';\nimport stream from './fn/ajax/stream.js';\nimport string2ArrayBuffer from './fn/convert/string2ArrayBuffer.js';\nimport submit from './fn/form/submit.js';\nimport substr from './fn/string/substr.js';\nimport sum from './fn/object/sum.js';\nimport timestamp from './fn/datetime/timestamp.js';\nimport toCSV from './fn/convert/toCSV.js';\nimport toggleFullScreen from './fn/browser/toggleFullScreen.js';\nimport translate from './fn/misc/translate.js';\nimport treatAjaxArguments from './fn/ajax/treatAjaxArguments.js';\nimport treatForHash from './fn/string/treatForHash.js';\nimport trim from './fn/string/trim.js';\nimport uniqString from './fn/string/uniqString.js';\nimport unique from './fn/object/unique.js';\nimport upload from './fn/ajax/upload.js';\nimport warning from './fn/browser/warning.js';\nimport yieldToBrowser from './fn/browser/yieldToBrowser.js';\nexport default {\n _addLoader,\n _compareValues,\n _deleteLoader,\n abort,\n abortURL,\n addColors,\n addInputs,\n addStyle,\n adjustHeight,\n adjustSize,\n adjustWidth,\n ajax,\n analyzeFunction,\n animateCss,\n arrayBuffer2String,\n arrayFromProp,\n autoExtend,\n baseName,\n br2nl,\n calendar,\n callback,\n camelize,\n camelToCss,\n canvasToImage,\n cast,\n center,\n checkProps,\n checkPropsDetails,\n checkPropsOrDie,\n checkType,\n circularReplacer,\n clone,\n colorToHex,\n compare,\n compareConditions,\n copy,\n correctCase,\n count,\n crc32,\n createObject,\n cssExists,\n data2Html,\n date,\n dateSQL,\n deepPath,\n defaultAjaxAbortFunction,\n defaultAjaxErrorFunction,\n defaultAlertFunction,\n defaultConfirmFunction,\n defaultEndLoadingFunction,\n defaultErrorFunction,\n defaultHistoryFunction,\n defaultLinkFunction,\n defaultPostLinkFunction,\n defaultPreLinkFunction,\n defaultResizeFunction,\n defaultStartLoadingFunction,\n deleteProp,\n diffObj,\n dirName,\n download,\n downloadContent,\n each,\n eraseCookie,\n error,\n escapeDquotes,\n escapeRegExp,\n escapeSquotes,\n escapeTicks,\n escapeUrl,\n executeSlowly,\n extend,\n extendOut,\n fdate,\n fdatetime,\n fieldValue,\n fileExt,\n filter,\n filterToConditions,\n findAll,\n firstVarElement,\n fori,\n forir,\n format,\n formatBytes,\n formatDate,\n formatSize,\n formdata,\n fphone,\n fromXml,\n ftime,\n getAllTags,\n getAncestors,\n getAttributes,\n getBrowserName,\n getBrowserVersion,\n getChrono,\n getCookie,\n getCssVar,\n getDay,\n getDeviceType,\n getEventData,\n getField,\n getFieldValues,\n getIndex,\n getHtml,\n getHTMLOfSelection,\n getLoader,\n getPath,\n getProp,\n getProperty,\n getRequestId,\n getRow,\n getScrollBarSize,\n getSortingMoves,\n getText,\n getTimeoff,\n happy,\n hash,\n hex2rgb,\n history,\n html2text,\n imageToCanvas,\n imgToBase64,\n info,\n init,\n isActiveInterface,\n isArray,\n isBlob,\n isBoolean,\n isCanvas,\n isColor,\n isComment,\n isCp,\n isDataURL,\n isDate,\n isDesktopDevice,\n isDimension,\n isDom,\n isEmail,\n isEmpty,\n isEvent,\n isFocused,\n isFunction,\n isHex,\n isHostname,\n isInside,\n isInt,\n isInViewport,\n isIP,\n isIterable,\n isMobile,\n isMobileDevice,\n isNotObject,\n isNull,\n isNumber,\n isObject,\n isPercent,\n isPrimitive,\n isPromise,\n isPropSize,\n isSame,\n isSQLDate,\n isString,\n isSymbol,\n isTabletDevice,\n isURL,\n isUid,\n isValidDimension,\n isValidName,\n isVue,\n isWritable,\n iterate,\n lightenDarkenHex,\n link,\n log,\n makeReactive,\n map,\n md5,\n microtimestamp,\n money,\n move,\n multiorder,\n mutateArray,\n mutateObject,\n nl2br,\n numProperties,\n objectToFormData,\n order,\n outerHeight,\n outerWidth,\n percent,\n pickValue,\n post,\n postOut,\n printf,\n quotes2html,\n randomInt,\n randomString,\n range,\n removeAccents,\n removeEmpty,\n removeExtraSpaces,\n removeHtmlComments,\n removePrivateProp,\n removeTrailingChars,\n repeat,\n replaceAll,\n replaceSelection,\n resize,\n rgb2hex,\n riterate,\n roundDecimal,\n sanitize,\n search,\n selectElementText,\n selector,\n setCookie,\n setCssVar,\n setNavigationVars,\n setProp,\n setProperty,\n shorten,\n shortenObj,\n shuffle,\n simpleHash,\n simpleHash1,\n simpleHash2,\n startChrono,\n stopChrono,\n stream,\n string2ArrayBuffer,\n submit,\n substr,\n sum,\n timestamp,\n toCSV,\n toggleFullScreen,\n translate,\n treatAjaxArguments,\n treatForHash,\n trim,\n uniqString,\n unique,\n upload,\n warning,\n yieldToBrowser\n};\n","import getLoader from './getLoader.js';\n/**\n * Aborts (client side) the XHR corresponding to the given ID if it still exists.\n *\n * This will throw an error if the loader can't be found.\n *\n * @method abort\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.post('my/script', {a: 1, b: 2});\n * let requestId = bbn.fn.getRequestId('my/script', {a: 1, b: 2});\n * if (requestId) {\n * bbn.fn.abort(requestId);\n * }\n * ```\n *\n * @param {String} requestId An ID generated by getRequestId\n *\n * @returns {undefined}\n */\nexport default function abort(requestId) {\n let loader = getLoader(requestId);\n if (loader === null || loader === void 0 ? void 0 : loader.aborter) {\n loader.aborter.abort('Operation canceled by the user.');\n }\n /*\n else {\n throw new Error(\"Impossible to find the loader \" + requestId);\n }*/\n}\n;\n","import each from '../loop/each.js';\nimport _filter from '../object/_filter.js';\n/**\n * Aborts (client side) all the XHR using the given URL if it still exists.\n *\n * This will throw an error if the loader can't be found.\n *\n * @method abortURL\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.post('my/script', {a: 1, b: 2});\n * bbn.fn.post('my/script', {c: 1, d: 2});\n * bbn.fn.abortURL('my/script');\n * ```\n *\n * @param {String} requestId An ID generated by getRequestId\n *\n * @returns {undefined}\n */\nexport default function abortURL(url) {\n each(_filter(bbn.env.loaders, { url: url }), (a) => {\n if (a && a.source) {\n a.source.cancel('Operation canceled by the user.');\n }\n else {\n throw new Error('Impossible to find the loader with URL ' + url);\n }\n });\n}\n;\n","import isObject from '../type/isObject.js';\nimport iterate from '../loop/iterate.js';\n/**\n * @ignore\n * @method addStyle\n * @todo Add method description for addStyle\n * @global\n * @memberof bbn.fn\n * @param {HTMLElement} ele\n * @param {Object} o\n * @returns {*}\n */\nexport default function addStyle(ele, o) {\n if (isObject(o)) {\n iterate(o, (v, k) => {\n ele.style[k] = v;\n });\n }\n}\n;\n","import isIterable from '../type/isIterable.js';\nimport adjustSize from './adjustSize.js';\nexport default function adjustHeight() {\n let args = arguments;\n if (args.length === 1 && isIterable(args[0])) {\n args = args[0];\n }\n return adjustSize('height', args);\n}\n;\n","import isIterable from '../type/isIterable.js';\nimport adjustSize from './adjustSize.js';\nexport default function adjustWidth() {\n let args = arguments;\n if (args.length === 1 && isIterable(args[0])) {\n args = args[0];\n }\n return adjustSize('width', args);\n}\n;\n","/**\n * @ignore\n * @method animateCss\n * @todo Add method description for animateCss\n * @global\n * @memberof bbn.fn\n * @param {HTMLElement} ele\n * @param {String} animationName\n * @param {Function} callback\n * @returns {*}\n */\nexport default function animateCss(ele, animationName, callback) {\n let animationEnd = \"webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend\";\n /*$(ele).addClass('animated ' + animationName).one(animationEnd, function(){\n if ( typeof callback == 'function' ){ // make sure the callback is a function\n callback.call(this); // brings the scope to the callback\n }\n $(this).removeClass('animated ' + animationName);\n })*/\n ele.classList.add(\"animated\");\n ele.classList.add(animationName);\n ele.addEventListener(animationEnd, function animationEndHandler(e) {\n e.target.removeEventListener(e.type, animationEndHandler);\n if (typeof callback == \"function\") {\n // make sure the callback is a function\n callback.call(this); // brings the scope to the callback\n }\n e.target.classList.remove(animationName);\n });\n}\n;\n","import each from '../loop/each.js';\nimport getProperty from './getProperty.js';\n/**\n * Creates and returns a new array made of the given property's values from the given array of objects.\n *\n * The returned array will always have the same length of the given array, even if the property is not found.\n *\n * @method arrayFromProp\n * @global\n * @example\n * ```javascript\n * bbn.fn.arrayFromProp([\n * {movie: \"Brazil\", year: 1985},\n * {movie: \"Donnie Darko\", year: 2001},\n * {movie: \"Barry Lindon\", year: 1976}\n * ], \"year\");\n * // [1985, 2001, 1976]\n * ```\n * @example\n * ```javascript\n * bbn.fn.arrayFromProp([\n * {pupil: \"Agnes Varda\", grade: {year: \"B\", month: \"A\"}},\n * {pupil: \"Jacques Rivette\"},\n * {pupil: \"Luc Besson\", grade: {year: \"C\", month: \"D\"}},\n * {pupil: \"Nicole Garcia\", grade: {year: \"B\", month: \"B\"}}\n * ], \"grade.month\");\n * // [\"A\", undefined, \"D\", \"B\"]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr\n * @param {String} prop\n * @returns {Array} The new array\n */\nexport default function arrayFromProp(arr, prop) {\n let r = [];\n each(arr, (a, i) => {\n r.push(getProperty(a, prop));\n });\n return r;\n}\n;\n","import extend from './extend.js';\n/**\n * Extends the bbn object by passing the namespace and the object it will merge with.\n *\n * This function is a self-centric shortcut for adding functions or proerties\n * to the bbn object itself.\n *\n * @method autoExtend\n * @global\n * @example\n * ```javascript\n * bbn.fn.autoExtend(\"fn\", {myOwnFunction: () => \"Result of my own function\"});\n * bbn.fn.myOwnFunction();\n * // Result of my own function\n * ```\n * @example\n * ```javascript\n * bbn.fn.autoExtend(\"env\", {serverLanguage: \"php\"});\n * bbn.env.sercerLanguage\n * // php\n * ```\n * @example\n * ```javascript\n * bbn.fn.autoExtend(\"myProject\", {name: \"My Project\"});\n * bbn.myProject.name\n * // Project\n * ```\n * @memberof bbn.fn\n * @param {String} namespace The bbn property, existing or not, in which the object will be merged\n * @param {Object} obj The object to merge\n * @returns {undefined} No return value\n */\nexport default function autoExtend(namespace, obj) {\n if (!bbn[namespace]) {\n bbn[namespace] = {};\n //$.extend(true, bbn[namespace], obj);\n extend(bbn[namespace], obj);\n }\n else {\n // $.extend(true, bbn[namespace], obj);\n extend(bbn[namespace], obj);\n }\n}\n;\n","import replaceAll from './replaceAll.js';\n/**\n * Replaces the html <br> tag with new line characters '\\ n' if present in the string.\n *\n * @method br2nl\n * @global\n *\n * @example\n * ```javascript\n * //\"hello\n * //world!\"\n * bbn.fn.br2nl('hello <br> world!')\n * ```\n *\n * @memberof bbn.fn\n * @param string st\n * @returns {String}\n */\nexport default function br2nl(st) {\n return replaceAll(\"<br />\", \"\\n\", replaceAll(\"<br/>\", \"\\n\", replaceAll(\"<br>\", \"\\n\", st)));\n}\n;\n","import dt from '../../dt.js';\nimport isString from '../type/isString.js';\nconst bbn = {\n _: st => st\n};\n/**\n * Returns a date relative to the current day.\n *\n * @method calendar\n * @global\n *\n * @example\n * ``` javascript\n * //\"2020-04-16 16:15:23\"\n * let date = new Date();\n * bbn.fn.dateSQL(date,false);\n * ```\n *\n * @memberof bbn.fn\n * @param {Date|String} d\n * @param {String | Boolean} wrong_result Whether or not include the time in the date\n * @returns {String}\n */\nexport default function calendar(d, wrong_result = false) {\n let r = dt(d);\n if (!r.isValid) {\n return wrong_result && isString(wrong_result) ? wrong_result : '';\n }\n return r.calendar();\n}\n;\n","/**\n * Returns the string passed as an argument in camelize mode.\n *\n * A string can be separated for example by a underscore, a dash or space;\n * so the camelize function will automatically convert them to a single string.\n *\n * @method camelize\n * @global\n *\n * @example\n * ```javascript\n * //\"thisIsATest\"\n * bbn.fn.camelize(\"this_is-a test\");\n * ```\n * @memberof bbn.fn\n * @param {String} str\n * @returns {String}\n */\nexport default function camelize(str) {\n return str.replace(/^([A-Z])|[\\s-](\\w)/g, function (match, p1, p2, offset) {\n if (p2) {\n return p2.toUpperCase();\n }\n return p1.toLowerCase();\n });\n}\n;\n","/**\n * Returns the string passed as an argument in camelize mode for css.\n *\n * @method camelToCss\n * @global\n *\n * @example\n * ```javascript\n * //\"this-is-a-test\"\n * bbn.fn.camelToCss(\"thisIsATest\");\n * ```\n *\n * @memberof bbn.fn\n * @param {String} str\n * @returns {String}\n */\nexport default function camelToCss(str) {\n return str\n .replace(/([A-Z])/g, function (st) {\n return \"-\" + st.toLowerCase();\n })\n .replace(\"/^./\", function (st) {\n return st.toLowerCase();\n });\n}\n;\n","/**\n * Returns a canvas in a HTML element img\n * @method canvasToImage\n * @global\n * ``` javascript\n * //<img src=\"data:image/png;base64,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\">\n * let a = '<canvas width=\"60\" height=\"32\"></canvas>';\n * bbn.fn.canvasToImage(a);\n * ```\n *\n * @memberof bbn.fn\n * @param {canvas} canvas\n * @returns {HTMLElement}\n */\nexport default function canvasToImage(canvas) {\n let img = new Image();\n img.src = canvas.toDataURL('image/png');\n return img;\n}\n;\n","/**\n * Returns a string from whatever value.\n *\n * @method cast\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.nl2br('hello \\n world!');\n * //\"hello <br> world!\"\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {String}\n */\nexport default function cast(st) {\n var _a;\n if (!st) {\n return '';\n }\n if (typeof st === 'object') {\n if (bbn.fn.isArray(st)) {\n return 'Array (' + st.length + ')';\n }\n return ((_a = st.constructor) === null || _a === void 0 ? void 0 : _a.name) || '{}';\n }\n if (st.toString) {\n return st.toString();\n }\n return typeof st === 'string' ? st : '';\n}\n;\n","/**\n * Centers the given element by giving it a position absolute.\n *\n * @method center\n * @global\n * @example\n * ```javascript\n * //<div style=\"position: absolute; top: 73px; left: 0px;\">Documentation</div>\n * bbn.fn.center('<div>Documentation</div>')\n * ```\n * @memberof bbn.fn\n * @param {HTMLElement} ele\n * @returns {HTMLElement} The dom element with the new style.\n */\nexport default function center(ele) {\n //ele = $(ele);\n let parent = ele.parentNode, \n //w = parent.width(),\n w = parent.clientWidth, \n //h = parent.height();\n h = parent.clientHeight;\n while (parent && (!w || !h)) {\n /*parent = parent.parent(),\n w = parent.width(),\n h = parent.height();*/\n parent = ele.parentNode;\n w = parent.clientWidth;\n h = parent.clientHeight;\n }\n //ele.css(\"position\",\"absolute\");\n ele.style.position = \"absolute\";\n //ele.css(\"top\", Math.max(0, ((h - ele.outerHeight()) / 2) + parent.scrollTop()) + \"px\");\n ele.style.top =\n Math.max(0, (h - ele.offsetHeight) / 2 + parent.scrollTop) + \"px\";\n //ele.css(\"left\", Math.max(0, ((w - ele.outerWidth()) / 2) + parent.scrollLeft()) + \"px\");\n ele.style.left =\n Math.max(0, (h - ele.offsetWidth) / 2 + parent.scrollLeft) + \"px\";\n return ele;\n}\n;\n","import checkPropsDetails from './checkPropsDetails.js';\nexport default function checkProps(obj, props, checkEmpty = false) {\n return checkPropsDetails(obj, props, checkEmpty).result;\n}\n;\n","import checkPropsDetails from './checkPropsDetails.js';\nexport default function checkPropsOrDie(obj, props, checkEmpty = false) {\n let res = checkPropsDetails(obj, props, checkEmpty);\n if (res.error) {\n throw new Error(res.error);\n }\n return true;\n}\n;\n","import isDom from '../type/isDom.js';\nimport isCp from '../type/isCp.js';\n/**\n * Returns a function to give to JSON.stringify in order to avoid circular values.\n *\n * @returns Function\n */\nexport default function circularReplacer() {\n const visited = new WeakSet();\n return (key, value) => {\n if (typeof value === \"object\" && value !== null) {\n if (visited.has(value)) {\n return;\n }\n visited.add(value);\n if (![undefined, Object, Array, null].includes(value.constructor)) {\n if (isDom(value)) {\n if (value.bbnId) {\n value =\n \"__BBN_DOM__\" + value.tagName + \"/\" + value.bbnId + value.bbnHash;\n }\n else {\n value = \"__BBN_DOM__\" + value.tagName + \"/\" + value.className;\n }\n }\n else if (isCp(value)) {\n value = \"__BBN_CP__\" + value.$options.name + \"/\" + value.$cid;\n }\n else {\n value = value.constructor.toString();\n }\n }\n }\n return value;\n };\n}\n;\n","/**\n * Returns the hex color of the given rgb or color name.\n * @method colorToHex\n * @global\n * @example\n * ```javascript\n * //\"#ff0000\"\n * bbn.fn.colorToHex('red');\n * ```\n *\n * @example\n * ```javascript\n * //\"#ff0000\"\n * bbn.fn.colorToHex('rgb(255,0,0)');\n * ```\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function colorToHex(color) {\n let canvas = document.createElement(\"canvas\").getContext(\"2d\");\n canvas.fillStyle = color;\n return canvas.fillStyle;\n}\n;\n","import filter from './filter.js';\n/**\n * Counts the number of objects matching the given filter in the given array.\n *\n * The arguments follow the same scheme as bbn.fn.search.\n *\n * @method count\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.count(ar, \"id\", 256);\n * // 1\n * bbn.fn.count(ar, {director: \"Steven Spielberg\"});\n * // 2\n * bbn.fn.search(ar, \"year\", 1975, \">\");\n * // 3\n * // Complex filters: all the movies from Spielberg between 1974 and 1980\n * bbn.fn.search(ar, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"director\",\n * operator: \"eq\",\n * value: \"Steven Spielberg\"\n * }, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"year\",\n * operator: \">=\",\n * value: 1974\n * }, {\n * field: \"year\",\n * operator: \"<=\",\n * value: 1980\n * }\n * ]\n * }\n * ]\n * });\n * // 1\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Number} The number of items\n */\nexport default function count(arr, prop, val = null, operator = '=') {\n return filter(arr, prop, val, operator).length || 0;\n}\n;\n","//import log from './log.js' ;\nimport escapeRegExp from '../string/escapeRegExp.js';\n/**\n * not used\n * @ignore\n * @method cssExists\n * @todo Add method description for cssExists\n * @global\n * @memberof bbn.fn\n * @param {String} f\n * @returns\n */\nexport default function cssExists(f) {\n let ok;\n let rules;\n let css = document.styleSheets;\n for (let sx = 0; sx < css.length; sx++) {\n ok = 1;\n try {\n rules = css[sx].rules || css[sx].cssRules;\n }\n catch (e) {\n ok = false;\n if (e.name !== \"SecurityError\") {\n throw e;\n }\n }\n if (ok) {\n //log(rules);\n for (let cx = 0; cx < rules.length; cx++) {\n //log(rules[cx].selectorText);\n if (new RegExp(\"(^|\\\\s)\" + escapeRegExp(f) + \"(\\\\{|\\\\s)\", \"g\").test(rules[cx].selectorText)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n;\n","import isArray from '../type/isArray.js';\nimport isObject from '../type/isObject.js';\n/**\n * Replaces all new line characters '\\ n' with html tag '<br>'.\n *\n * @method nl2br\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.nl2br('hello \\n world!');\n * //\"hello <br> world!\"\n * ```\n * @memberof bbn.fn\n * @param {Array!Object} st\n * @param {String} [clsName]\n * @returns {String}\n */\nexport default function data2Html(data, clsName = '') {\n const isAssoc = !isArray(data);\n let st = '<ul class=\"bbn-bottom-xspadding ' + (clsName || 'bbn-ul') + '\">';\n for (let n in data) {\n st += '<li>';\n if (isAssoc) {\n st += '<em>' + n + '</em>: ';\n }\n if (data[n] && (isArray(data[n]) || isObject(data[n]))) {\n st += data2Html(data[n], clsName);\n }\n else {\n st += data[n] === null ? '<em>null</em>' : (data[n].toString ? data[n].toString() : data[n]);\n }\n st += '</li>';\n }\n st += '</ul><div class=\"bbn-bottom-xspadding ' + (clsName || 'bbn-div') + '\"></div>';\n return st;\n}\n;\n","import dt from '../../dt.js';\n/**\n * Returns a date with SQL format.\n *\n * @method dateSQL\n * @global\n *\n * @example\n * ``` javascript\n * //\"2020-04-16 16:15:23\"\n * let date = new Date();\n * bbn.fn.dateSQL(date,false);\n * ```\n *\n * @memberof bbn.fn\n * @param {Date|String} v\n * @param {Boolean} dayOnly Whether or not include the time in the date\n * @returns {String}\n */\nexport default function dateSQL(v, dayOnly) {\n let value = dt(v);\n if (value) {\n return value.format('YYYY-MM-DD' + (dayOnly ? '' : ' HH:mm:ss'));\n }\n}\n;\n","import search from './search.js';\nimport each from '../loop/each.js';\nimport isArray from '../type/isArray.js';\n/**\n * Retrieves all elements of a hierarchical array corresponding to the filter.\n *\n * The arguments follow the same scheme as bbn.fn.search.\n *\n * @method findAll\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.count(ar, \"id\", 256);\n * // 1\n * bbn.fn.count(ar, {director: \"Steven Spielberg\"});\n * // 2\n * bbn.fn.search(ar, \"year\", 1975, \">\");\n * // 3\n * // Complex filters: all the movies from Spielberg between 1974 and 1980\n * bbn.fn.search(ar, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"director\",\n * operator: \"eq\",\n * value: \"Steven Spielberg\"\n * }, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"year\",\n * operator: \">=\",\n * value: 1974\n * }, {\n * field: \"year\",\n * operator: \"<=\",\n * value: 1980\n * }\n * ]\n * }\n * ]\n * });\n * // 1\n * ```\n * @memberof bbn.fn\n * @todo Do the doc!\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Number} The number of items\n */\nexport default function deepPath(arr, filter, deepProperty, res = []) {\n let idx;\n let start = 0;\n if ((idx = search(arr, filter, start)) > -1) {\n res.push(idx);\n return res;\n }\n each(arr, (it, i) => {\n if (isArray(it[deepProperty])) {\n let r = res.slice();\n r.push(i);\n let tmp = deepPath(it[deepProperty], filter, deepProperty, r);\n if (tmp !== false) {\n return tmp;\n }\n }\n });\n return false;\n}\n;\n","export default function defaultAlertFunction(msg, title = null) {\n /** @todo */\n alert(msg);\n}\n;\n","import isFunction from '../type/isFunction.js';\nexport default function defaultConfirmFunction(text, yesFn, noFn = null) {\n let ok = 0;\n if (confirm(text)) {\n if (isFunction(yesFn)) {\n yesFn();\n ok = 1;\n }\n }\n if (!ok && isFunction(noFn)) {\n noFn();\n }\n}\n;\n","import log from '../browser/log.js';\nexport default function defaultErrorFunction(message) {\n log(message);\n}\n;\n","export default function defaultHistoryFunction(obj) {\n return true;\n}\n;\n","export default function defaultLinkFunction(responseObj, ele) {\n return true;\n}\n;\n","export default function defaultPostLinkFunction(r, ele = null) {\n return true;\n}\n;\n","import log from '../browser/log.js';\nexport default function defaultPreLinkFunction(url, force = false, ele = null) {\n log(\"defaultPreLinkFunction\", url, force, ele);\n return true;\n}\n;\n","export default function defaultResizeFunction() {\n return true;\n}\n;\n","/**\n * Default function to start loading\n *\n * @param {String} url\n * @param {Number} tst\n * @param {Object} data\n * @param {String} requestId\n *\n * @returns {Boolean}\n */\nexport default function defaultStartLoadingFunction(url, tst, data, requestId) {\n return true;\n}\n;\nexport { defaultStartLoadingFunction };\n","import checkType from '../type/checkType.js';\n/**\n * Gets the given property from the given object\n * @param {Object} obj\n * @param {String} prop\n * @returns\n */\nexport default function deleteProp(obj, prop) {\n checkType(obj, \"object\", bbn._(\"The obj must be an object in setProp\"));\n checkType(prop, \"string\", bbn._(\"The prop must be a string in setProp\"));\n delete obj[prop];\n}\n;\n","import ajax from './ajax.js';\nimport substr from '../string/substr.js';\nimport baseName from '../string/baseName.js';\nimport isBlob from '../type/isBlob.js';\nimport fileExt from '../string/fileExt.js';\nimport downloadContent from './downloadContent.js';\n/**\n * Downloads a file with given filename from a URL.\n *\n * Gets the file's content as Blob through XHR, then sends it to bbn.fn.downloadContent.\n * __Attention__ The CORS policy applies\n *\n * @method download\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * // Forcing the download of an image\n * bbn.fn.download('/bbn/js-title-black.png');\n *\n * // Forcing the download of a PDF\n * bbn.fn.download('/files/my-document.pdf');\n *\n * // Changing the name as it is downloaded\n * bbn.fn.download('/files/f4b1092d71aefd96458feaa71d170f69.pdf', 'myDocument_' + bbn.fn.dateSQL() + '.pdf');\n * ```\n *\n * @param {String} url The URL from which the file will be requested\n * @param {String} filename The name for the downloaded file (otherwise it will take the basename of the url)\n * @param {Object} params A data object to send with the request\n *\n * @returns {undefined}\n */\nexport default function download(url, filename = '', params = null) {\n // We can intervert the arguments\n if (filename && typeof filename === \"object\") {\n params = filename;\n filename = \"\";\n }\n return ajax(url, \"blob\", params || { _bbn_download: 1 }, (d, headers) => {\n if (!filename) {\n let prop = \"content-disposition\";\n let cd = \"attachment; filename=\";\n if ((headers === null || headers === void 0 ? void 0 : headers[prop]) && headers[prop].indexOf(cd) === 0) {\n filename = substr(headers[prop], cd.length + 1, headers[prop].length - cd.length - 2);\n }\n else {\n filename = baseName(url);\n }\n }\n if (isBlob(d)) {\n let extension = fileExt(filename);\n let htmlExtensions = [\"php\", \"html\"];\n if (typeof filename === \"string\" &&\n ((\"type\" in d && d.type !== \"text/html\") ||\n htmlExtensions.includes(extension))) {\n downloadContent(filename, d);\n return;\n }\n }\n }, (e) => {\n bbn.fn.defaultAjaxErrorFunction(e);\n });\n}\n;\n","/**\n * Erase the cookie corresponding to the given name;\n *\n * @method eraseCookie\n * @global\n * @example\n * ``` javascript\n * // 'en'\n * bbn.fn.erase('lang');\n * ```\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function eraseCookie(name) {\n document.cookie = name + '=; Max-Age=-99999999;';\n}\n;\n","import isString from '../type/isString.js';\nexport default function escapeDquotes(str) {\n if (!isString(str)) {\n return str;\n }\n return str.replace(/\"/g, '\\\\\"');\n}\n;\n","import isString from '../type/isString.js';\nexport default function escapeSquotes(str) {\n if (!isString(str)) {\n return str;\n }\n return str.replace(/'/g, \"\\\\'\");\n}\n;\n","import isString from '../type/isString.js';\nexport default function escapeTicks(str) {\n if (!isString(str)) {\n return str;\n }\n return str.replace(/`/g, '\\\\`');\n}\n;\n","import each from '../loop/each.js';\nimport dirName from './dirName.js';\nimport baseName from './baseName.js';\nimport isString from '../type/isString.js';\n/**\n * Escapes a URL or a file path, optionally adding parameters (get type, to append to the URL without the first separator).\n *\n * @param {*} url\n * @param {*} params\n * @returns\n */\nexport default function escapeUrl(url, params) {\n let st = \"\";\n if (url.match(\"^(http|https)://\")) {\n st += \"http\";\n url = url.substring(4);\n if (url.substr(0, 1) === \"s\") {\n st += \"s\";\n url = url.substring(1);\n }\n st += \"://\";\n url = url.substring(3);\n }\n each(dirName(url).split(\"/\"), (a) => {\n st += encodeURIComponent(a) + \"/\";\n });\n let base = baseName(url);\n let sep = \"?\";\n let existingParams = \"\";\n if (base.indexOf(sep)) {\n let tmp = base.split(\"?\");\n sep = \"&\";\n existingParams = \"?\" + tmp[1];\n base = tmp[0];\n }\n if (params && isString(params)) {\n if (params.match(\"^(\\\\&|\\\\?)\")) {\n params = params.substring(1);\n }\n params = sep + params;\n }\n else {\n params = \"\";\n }\n return st + encodeURIComponent(base) + existingParams + params;\n}\n;\n","import isObject from '../type/isObject.js';\n/**\n * Returns a new object made of the properties from all the given objects.\n *\n * Compared to bbn.fn.extend this still treats the arguments from left to right\n * but without overwriting existing properties, and returning a new object.\n *\n * @method extendOut\n * @global\n * @example\n * ```javascript\n * //{field1: 1, field2: 2, field3: 3, items: {item: 0, item1: 1, item2: 2}, field4: 4}\n * bbn.fn.extendOut({field1: 1, field2: 2, field3: 3, items: {item: 0}}, {field4: 4, items: {item1: 1, item2: 2}});\n * ```\n * @memberof bbn.fn\n * @returns {Object}\n */\nexport default function extendOut(...args) {\n let r = null;\n for (let a of args) {\n if (!isObject(a)) {\n throw new Error(\"Each argument for extendOut must be an object, \" + typeof a + \" given\");\n }\n if (r === null) {\n r = a;\n }\n else {\n for (let n in a) {\n if (isObject(r[n], a[n])) {\n extendOut(r[n], a[n]);\n }\n else if (r[n] === undefined) {\n r[n] = a[n];\n }\n }\n }\n }\n return r;\n}\n;\n","import dt from '../../dt.js';\nimport isString from '../type/isString.js';\n/**\n * @method fdate\n * @todo Add method description for fdate\n * @global\n * @memberof bbn.fn\n * @param {String|Date} d\n * @param {String} wrong_result\n * @returns\n */\nexport default function fdate(d, wrong_result = false) {\n let r = dt(d);\n let time = false;\n // Retro compatibility\n if (wrong_result === true) {\n time = true;\n }\n if (!r.isValid) {\n return wrong_result && isString(wrong_result) ? wrong_result : '';\n }\n return r.fdate(false, time);\n}\n;\n","import dt from '../../dt.js';\nimport isString from '../type/isString.js';\n/**\n * @method fdatetime\n * @todo Add method description for fdatetime\n * @global\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function fdatetime(d, wrong_result = false) {\n let r = dt(d);\n if (!r.isValid) {\n return wrong_result && isString(wrong_result) ? wrong_result : '';\n }\n return r.fdate(false, true);\n}\n;\n","import search from './search.js';\nimport each from '../loop/each.js';\nimport isArray from '../type/isArray.js';\n/**\n * Retrieves all elements of a hierarchical array corresponding to the filter.\n *\n * The arguments follow the same scheme as bbn.fn.search.\n *\n * @method findAll\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.count(ar, \"id\", 256);\n * // 1\n * bbn.fn.count(ar, {director: \"Steven Spielberg\"});\n * // 2\n * bbn.fn.search(ar, \"year\", 1975, \">\");\n * // 3\n * // Complex filters: all the movies from Spielberg between 1974 and 1980\n * bbn.fn.search(ar, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"director\",\n * operator: \"eq\",\n * value: \"Steven Spielberg\"\n * }, {\n * logic: \"AND\",\n * conditions: [\n * {\n * field: \"year\",\n * operator: \">=\",\n * value: 1974\n * }, {\n * field: \"year\",\n * operator: \"<=\",\n * value: 1980\n * }\n * ]\n * }\n * ]\n * });\n * // 1\n * ```\n * @memberof bbn.fn\n * @todo Do the doc!\n * @param {Array} arr The subject array\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Number} The number of items\n */\nexport default function findAll(arr, filter, deepProperty, res = []) {\n let idx;\n let start = 0;\n while ((idx = search(arr, filter, start)) > -1) {\n res.push(arr[idx]);\n start = idx + 1;\n }\n each(arr, (it) => {\n if (isArray(it[deepProperty])) {\n findAll(it[deepProperty], filter, deepProperty, res);\n }\n });\n return res;\n}\n;\n","/**\n *\n * @param {String} varName\n * @returns {String}\n */\nexport default function firstVarElement(varName) {\n const firstBracket = varName.indexOf('[');\n const firstDot = varName.indexOf('.');\n if (firstBracket === -1 && firstDot === -1) {\n return varName;\n }\n if (firstBracket === -1) {\n return varName.substring(0, firstDot);\n }\n if (firstDot === -1) {\n return varName.substring(0, firstBracket);\n }\n return varName.substring(0, Math.min(firstBracket, firstDot));\n}\n","import isArray from '../type/isArray.js';\nimport isNumber from '../type/isNumber.js';\n/**\n * Executes the provided function on each element of the given array.\n *\n * A minimum and a maximum value can be provided, within the boundaries of the\n * array's indexes. Returning false will stop the loop.\n *\n * @method fori\n * @global\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.fori([4, 5, 5, 10, 1, 2], d => {\n * res += d;\n * }, 3);\n * // res = 24\n * ```\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.fori([4, 5, 5, 10, 1, 2], d => {\n * if (res >= 20) {\n * return false;\n * }\n * res += d;\n * }, 4, 1);\n * // res = 20\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array to loop on\n * @param {Function} fn The function, gets the array's element and the index as arguments\n * @param {Number} max The index to which the loop will stop\n * @param {Number} min The index at which the loop will start\n * @returns {undefined}\n */\nexport default function fori(arr, fn, max = arr.length - 1, min = 0) {\n if (isArray(arr)) {\n let realMax = arr.length - 1;\n if (!isNumber(max) || !(0 < max && max <= realMax)) {\n max = realMax;\n }\n if (!isNumber(min) || !(0 <= min && min < realMax) || min > max) {\n min = 0;\n }\n for (let i = min; i <= max; i++) {\n if (fn(arr[i], i) === false) {\n return;\n }\n }\n }\n}\n;\n","import isArray from '../type/isArray.js';\nimport isNumber from '../type/isNumber.js';\n/**\n * Executes the provided function on each element of the given array, going backward.\n *\n * A maximum and a minimum value can be provided, within the boundaries of the\n * array's indexes. Returning false will stop the loop.\n *\n * @method forir\n * @global\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.forir([4, 5, 5, 10, 1, 2], d => {\n * res += d;\n * }, 4, 2);\n * // res = 16\n * ```\n * @example\n * ```javascript\n * let res = 0;\n * bbn.fn.forir([4, 5, 5, 10, 1, 2], d => {\n * if (res >= 20) {\n * return false;\n * }\n * res += d;\n * });\n * // res = 23\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array to loop on\n * @param {Function} fn The function, gets the array's element and the index as arguments\n * @param {Number} max The index to which the loop will stop\n * @param {Number} min The index at which the loop will start\n * @returns {undefined}\n */\nexport default function forir(arr, fn, max = arr.length - 1, min = 0) {\n if (isArray(arr)) {\n let realMax = arr.length - 1;\n if (!isNumber(max) || !(0 < max && max <= realMax)) {\n max = realMax;\n }\n if (!isNumber(min) || !(0 <= min && min < realMax) || min > max) {\n min = 0;\n }\n for (let i = max; i >= min; i--) {\n if (fn(arr[i], i) === false) {\n return;\n }\n }\n }\n}\n;\n","import checkType from '../type/checkType.js';\nexport default function format(str) {\n let args = Array.prototype.slice.call(arguments, 1);\n if (args.length) {\n let i = 0;\n return str.replace(/\\%([d|s])/g, (match, type) => {\n let tmp = args[i++];\n checkType(tmp, type === 'd' ? 'number' : 'string', bbn._(\"The value doesn't correspond to the format\"));\n return tmp;\n });\n }\n return str;\n}\n;\n","/**\n * Formats the value given in bytes.\n * @method formatBytes\n * @global\n * @example\n * //\"52.23 MB\"\n * ``` javascript\n * bbn.fn.formatBytes(54764654);\n * ```\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function formatBytes(bytes, decimals = 2) {\n if (!bytes) {\n return '0 B';\n }\n const k = 1024, s = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(decimals < 0 ? 0 : decimals)) + ' ' + s[i];\n}\n;\n","import dt from '../../dt.js';\nexport default function formatDate(dateToFormat, format) {\n const d = dt(dateToFormat);\n if (!d.isValid) {\n return '';\n }\n return d.format(format);\n}\n;\n","import isNumber from '../type/isNumber.js';\nimport isString from '../type/isString.js';\nexport default function formatSize(st, noValid) {\n if (isNumber(st)) {\n return st + 'px';\n }\n if (isString(st)) {\n return st;\n }\n return noValid ? false : 'auto';\n}\n;\n","import isNumber from '../type/isNumber.js';\nimport isString from '../type/isString.js';\nimport each from '../loop/each.js';\nexport default function fphone(st) {\n var _a;\n if (isNumber(st)) {\n st = st.toString();\n }\n if (isString(st)) {\n const phoneCodes = ((_a = bbn.var) === null || _a === void 0 ? void 0 : _a.phoneCodes) || [];\n let res = '';\n let prefix = '';\n let mask = '';\n if (phoneCodes.length) {\n // Get phone prefix and mask\n each(phoneCodes, c => {\n if (st.startsWith(c.prefix) && (c.prefix.length > prefix.length)) {\n prefix = c.prefix;\n mask = c.mask || '';\n }\n });\n }\n if (!mask.length) {\n if (st.startsWith('+')) {\n if (!prefix.length) {\n prefix = st.substr(0, 3);\n }\n const tmpSt = st.slice(prefix.length);\n for (let i = 0; i < tmpSt.length; i++) {\n if (((i + 1) <= tmpSt.length) && ((i % 2) === 0)) {\n mask += '0' + (tmpSt[i + 1] ? '0' : '') + ' ';\n }\n }\n mask = mask.trim();\n }\n }\n if (mask.length) {\n if (prefix.length) {\n res = prefix + ' ';\n st = st.slice(prefix.length);\n }\n let i = 0;\n res += mask.replace(/[0-9]/g, () => {\n return st[i++] || '';\n });\n return res;\n }\n }\n return st;\n}\n;\n","/**\n * Parses XML and returns an object.\n *\n * Picked from https://stackoverflow.com/questions/4200913/xml-to-javascript-object\n *\n * @memberof bbn.fn\n * @param {String} xml The XML to be parsed\n * @param {Array} arrayTags An array of tag names which should always be returned as array (even if single)\n * @returns {Object}\n */\nexport default function fromXml(xml, arrayTags) {\n let dom = null;\n if (window.DOMParser)\n dom = new DOMParser().parseFromString(xml, \"text/xml\");\n else if (window[\"ActiveXObject\"]) {\n dom = new window[\"ActiveXObject\"](\"Microsoft.XMLDOM\");\n dom.async = false;\n if (!dom.loadXML(xml))\n throw dom.parseError.reason + \" \" + dom.parseError.srcText;\n }\n else\n throw new Error(\"cannot parse xml string!\");\n function parseNode(xmlNode, result) {\n if (xmlNode.nodeName == \"#text\") {\n let v = xmlNode.nodeValue;\n if (v.trim())\n result[\"#text\"] = v;\n return;\n }\n let jsonNode = {}, existing = result[xmlNode.nodeName];\n if (existing) {\n if (!Array.isArray(existing))\n result[xmlNode.nodeName] = [existing, jsonNode];\n else\n result[xmlNode.nodeName].push(jsonNode);\n }\n else {\n if (arrayTags && arrayTags.indexOf(xmlNode.nodeName) != -1)\n result[xmlNode.nodeName] = [jsonNode];\n else\n result[xmlNode.nodeName] = jsonNode;\n }\n if (xmlNode.attributes)\n for (let attribute of xmlNode.attributes)\n jsonNode[attribute.nodeName] = attribute.nodeValue;\n for (let node of xmlNode.childNodes)\n parseNode(node, jsonNode);\n }\n let result = {};\n for (let node of dom.childNodes)\n parseNode(node, result);\n return result;\n}\n;\n","import dt from '../../dt.js';\nimport isString from '../type/isString.js';\n/**\n * @method ftime\n * @todo Add method description for ftime\n * @global\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function ftime(d, wrong_result) {\n let r = dt(d);\n if (!r.isValid) {\n return wrong_result && isString(wrong_result) ? wrong_result : '';\n }\n return r.ftime();\n}\n;\n","import unique from '../object/unique.js';\n/**\n * Gets all the tag names present in the DOM\n * @returns array\n */\nexport default function getAllTags() {\n return unique(Array.prototype.map.apply(document.all, [(a) => a.tagName.toLowerCase()]));\n}\n;\n","import error from '../browser/error.js';\n/**\n * Check if the property contain sizing\n * @return {Boolean}\n */\nexport default function getAttributes(ele) {\n if (!ele.getAttributeNames) {\n error('The element is not a proper HTML Element');\n }\n let res = Object.create(null);\n ele.getAttributeNames().forEach((name) => {\n res[name] = ele.getAttribute(name);\n });\n return res;\n}\n;\n","/**\n * Gets the browser's name\n * @method getBrowserName\n * @global\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function getBrowserName() {\n const userAgent = navigator.userAgent.toLowerCase();\n switch (true) {\n case userAgent.includes('edge'):\n case userAgent.includes('edg/'):\n return 'Edge';\n case userAgent.includes('opr') && !!window['opr']:\n return 'Opera';\n case userAgent.includes('chrome') && !!window['chrome']:\n return 'Chrome';\n case userAgent.includes('trident'):\n return 'Internet Explorer';\n case userAgent.includes('firefox'):\n return 'Firefox';\n case userAgent.includes('safari'):\n return 'Safari';\n default:\n return 'Other';\n }\n}\n;\n","/**\n * Gets the browser's version\n * @method getBrowserVersion\n * @global\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function getBrowserVersion() {\n const userAgent = navigator.userAgent.toLowerCase();\n switch (true) {\n case userAgent.includes('edge/'):\n return userAgent.split('edge/')[1].split(' ')[0];\n case userAgent.includes('edg/'):\n return userAgent.split('edg/')[1].split(' ')[0];\n case userAgent.includes('opr/') && !!window['opr']:\n return userAgent.split('opr/')[1].split(' ')[0];\n case userAgent.includes('chrome/') && !!window['chrome']:\n return userAgent.split('chrome/')[1].split(' ')[0];\n case userAgent.includes('trident/'):\n return userAgent.split('trident/')[1].split(' ')[0];\n case userAgent.includes('firefox/'):\n return userAgent.split('firefox/')[1].split(' ')[0];\n case userAgent.includes('safari/'):\n return userAgent.split('version/')[1].split(' ')[0];\n default:\n return '';\n }\n}\n;\n","/**\n * Starts a timer and gives it a name.\n * @method getChrono\n * @global\n * ``` javascript\n * bbn.fn.getChrono('myChrono');\n * ```\n * @memberof bbn.fn\n *\n * @returns {Number} The elapsed time in milliseconds since the timer was started\n */\nexport default function getChrono(name = 'default') {\n let now = bbn.fn.microtimestamp();\n return now - this.constructor.chronos[name];\n}\n;\n","/**\n * If it exsists returns the cookie corresponding to the given name.\n *\n * @method getCookie\n * @example\n * ``` javascript\n * // 'en'\n * bbn.fn.getCookie('lang');\n * ```\n * @global\n * @memberof bbn.fn\n * @param {String} name\n * @returns\n */\nexport default function getCookie(name) {\n let nameEqual = name + '=';\n let ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEqual) == 0) {\n let st = c.substring(nameEqual.length, c.length);\n if (st) {\n return JSON.parse(unescape(st)).value;\n }\n }\n }\n return null;\n}\n;\n","import date from './date.js';\n/**\n * @method getDay\n * @ignore\n * @todo Add method description for getDay\n * @global\n * @memberof bbn.fn\n * @param {String|Date} v\n * @returns\n */\nexport default function getDay(v) {\n const biss = 1972;\n let d = date(v);\n if (d) {\n let t = d.getTime(), y = d.getYear(), m = d.getMonth(), days = (y - 1970) * 365;\n if (m < 2) {\n y--;\n }\n for (var i = biss; i <= y; i += 4) {\n days++;\n }\n return days + Math.floor(t / (24 * 3600000));\n }\n return false;\n}\n;\n","import getHTMLOfSelection from '../html/getHTMLOfSelection.js';\nimport each from '../loop/each.js';\n/**\n * Returns a promise having the event's data as argument.\n * @method getEventData\n * @global\n * @example\n * ``` javascript\n * let type = e.type;\n * bbn.fn.getEventData(e).then((data) => {\n * bbn.fn.log(\"DATA FROM \" + type, data);\n * });\n * ```\n * @memberof bbn.fn\n * @returns {Promise}\n */\nexport default function getEventData(e) {\n let dt = e.dataTransfer || e.clipboardData;\n let t = dt.getData('Text');\n let res = { raw: t, files: [], str: [] };\n let p = new Promise((ok, err) => {\n let done = !(dt instanceof DataTransfer);\n if (!t && e.type === 'copy') {\n let sel = window.getSelection();\n res.raw = sel.toString();\n let html = getHTMLOfSelection();\n res.str.push({\n type: 'text/plain',\n data: res.raw,\n });\n if (html !== res.raw) {\n res.str.push({\n type: 'text/html',\n data: html,\n });\n }\n else if (res.raw.trim().indexOf('<') === 0) {\n res.str.push({\n type: 'text/html',\n data: \"<meta charset='utf-8'><code style=\\\"white-space: pre; font-family: 'Courier New', sans-serif\\\">\\n\" +\n res.raw +\n '\\n</code>',\n });\n }\n done = true;\n ok(res);\n }\n if (!done) {\n let strings = [];\n let num = dt.items.length;\n each(dt.items, (item, idx) => {\n let kind = item.kind;\n let type = item.type;\n if (kind === 'file') {\n let cp = dt.files[idx];\n if (!type && cp.name) {\n let bits = cp.name.split('.');\n type = bits[bits.length - 1];\n }\n let name = cp ? cp.name : bbn._('untitled');\n let size = cp ? cp.size : null;\n let lastModified = cp ? cp.lastModified : null;\n let blob = item.getAsFile();\n if (blob) {\n done = true;\n num--;\n res.files.push({\n type: type,\n data: blob,\n name: name,\n size: size,\n mdate: lastModified,\n });\n strings.push(name);\n if (!num) {\n if (!res.raw) {\n res.raw = strings.join(', ');\n }\n ok(res);\n }\n }\n else {\n bbn.fn.defaultErrorFunction(bbn._('Impossible to read the file') + ' ' + name);\n }\n }\n else {\n done = true;\n item.getAsString((data) => {\n num--;\n res.str.push({\n type: type,\n data: data,\n });\n if (type === 'text/plain') {\n strings.push(name);\n }\n if (!num) {\n if (!res.raw) {\n res.raw = strings.join(', ');\n }\n ok(res);\n }\n });\n }\n });\n }\n if (!done) {\n setTimeout(() => {\n ok(res);\n });\n }\n });\n return p;\n}\n;\n","import getRow from './getRow.js';\n/**\n * Returns the value of the given field (property) from the first object matching the given filter in an array of objects.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method getField\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Goonies\", director: \"Richard Donner\", year: 1985, id: 689},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * ];\n * bbn.fn.getField(ar, \"name\", {id: 256});\n * // Star wars\n * bbn.fn.getField(ar, \"name\", \"id\", 689);\n * // Goonies\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {String} field The property from which the value is returned\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @param {Number|false} from The index to start from, if false the search starts from the end\n * @param {Boolean} backward Searches backward\n * @returns {*}\n */\nexport default function getField(arr, field, prop = '', val = null, operator = '=', from = 0, backward = false, notFound = undefined) {\n let r;\n if (prop && ['object', 'function'].includes(typeof prop) && (6 in arguments)) {\n notFound = backward;\n }\n if (field) {\n r = getRow(arr, prop, val, operator, from, backward, undefined);\n if (r === undefined) {\n return notFound;\n }\n return r[field];\n }\n return notFound;\n}\n;\n","import checkType from '../type/checkType.js';\nimport _filter from './_filter.js';\nimport each from '../loop/each.js';\n/**\n * Returns all the unique values of the given field (property) from the first object matching the given filter in an array.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method getFieldValues\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {name: \"Raiders of the lost ark\", director: \"Steven Spielberg\", year: 1981, id: 589},\n * {name: \"Star wars\", director: \"George Lucas\", year: 1977, id: 256},\n * {name: \"Jaws\", director: \"Steven Spielberg\", year: 1975, id: 423}\n * {name: \"Barry Lindon\", director: \"Stanley Kubrick\", year: 1975, id: 802}\n * ];\n * bbn.fn.getFieldValues(ar, \"director\");\n * // [\"Steven Spielberg\", \"George Lucas\", \"Stanley Kubrick\"]\n * bbn.fn.getFieldValues(ar, \"name\", {year: 1975});\n * // [\"Jaws\", \"Barry Lindon\"]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {String} field The property from which the values are returned\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {*}\n */\nexport default function getFieldValues(arr, field, prop, val, operator) {\n checkType(field, 'string');\n if (prop) {\n arr = _filter(arr, prop, val, operator);\n }\n let res = [];\n each(arr, (a) => (res.indexOf(a[field]) === -1 ? res.push(a[field]) : null));\n return res;\n}\n;\n","/**\n * Gets all the tag names present in the DOM\n * @returns array\n */\nexport default function getIndex(element, selector = '') {\n if (!element.parentElement) {\n return -1; // Element has no parent, return -1\n }\n if (!selector) {\n Array.from(element.parentElement.children).indexOf(element);\n }\n const siblings = Array.from(element.parentElement.children);\n const filteredSiblings = siblings.filter((el) => el.matches(selector));\n return filteredSiblings.indexOf(element);\n}\n;\n","import removeHtmlComments from '../string/removeHtmlComments.js';\nexport default function getHtml(ele, stripComments = false) {\n let st = ele.innerHTML();\n if (stripComments) {\n st = removeHtmlComments(st);\n }\n return st.trim();\n}\n;\n","import checkType from '../type/checkType.js';\n/**\n * Gets the given property from the given object\n * @param {Object} obj\n * @param {String} prop\n * @returns\n */\nexport default function getProp(obj, prop) {\n checkType(obj, \"object\", bbn._(\"The obj must be an object in setProp\"));\n checkType(prop, \"string\", bbn._(\"The prop must be a string in setProp\"));\n return obj[prop];\n}\n;\n","export default function getScrollBarSize() {\n if (bbn.env.scrollBarSize === undefined) {\n let outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n if ('msOverflowStyle' in outer.style) {\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n }\n document.body.appendChild(outer);\n let widthNoScroll = outer.offsetWidth;\n // force scrollbars\n outer.style.overflow = 'scroll';\n // add innerdiv\n let inner = document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n let widthWithScroll = inner.offsetWidth;\n // remove divs\n outer.parentNode.removeChild(outer);\n let sz = widthNoScroll - widthWithScroll;\n bbn.env.scrollBarSize = sz ? sz + 1 : 0;\n }\n return bbn.env.scrollBarSize;\n}\n;\n","/**\n * Minimal \"move i -> j\" plan to transform src into dst.\n * One allowed op: arr.splice(to, 0, arr.splice(from, 1)[0])\n * Assumes: same length, same set of UNIQUE primitive values.\n *\n * @method getSortingMoves\n * @global\n * @example\n * ```javascript\n * const a = ['a','b','c','d','e'];\n * const b = ['b','a','e','c','d'];\n * const plan = bbn.fn.getSortingMoves(a, b);\n * console.log(plan);\n * // [{from:0, to:1, value: \"a\"}, {from:4, to:2, value: \"e\"}]\n * ```\n * @memberof bbn.fn\n * @param {Array} src The array\n * @param {Array} dst The index of the element to move\n * @returns {Array} The same array, with elements repositionned.\n */\n// LIS indices on `pos` (strictly increasing)\nconst lisIndices = (arr) => {\n const n = arr.length, tails = [], prev = Array(n).fill(-1);\n for (let i = 0; i < n; i++) {\n let x = arr[i], lo = 0, hi = tails.length;\n while (lo < hi) {\n const mid = (lo + hi) >> 1;\n if (arr[tails[mid]] < x)\n lo = mid + 1;\n else\n hi = mid;\n }\n if (lo > 0)\n prev[i] = tails[lo - 1];\n tails[lo] = i;\n }\n const res = [];\n for (let k = tails.length ? tails[tails.length - 1] : -1; k !== -1; k = prev[k])\n res.push(k);\n return res.reverse();\n};\nexport default function getSortingMoves(src, dst) {\n if (src.length !== dst.length)\n throw new Error(\"Lengths must match.\");\n // Validate same unique set\n const setDst = new Set(dst);\n if (setDst.size !== dst.length)\n throw new Error(\"dst has duplicates.\");\n const setSrc = new Set(src);\n if (setSrc.size !== src.length)\n throw new Error(\"src has duplicates.\");\n if (src.length !== setDst.size || Array.from(setSrc).some(v => !setDst.has(v))) {\n throw new Error(\"Arrays must contain the same unique values.\");\n }\n // Map each value to its index in dst\n const posInDst = new Map(dst.map((v, i) => [v, i]));\n // Convert src into positions-in-dst\n const pos = src.map(v => posInDst.get(v));\n const lisIdx = lisIndices(pos);\n const keepSet = new Set(lisIdx.map(i => src[i])); // values we won't move\n // Next kept anchor to the right for each dst index\n const nextKeptAfter = Array(dst.length).fill(-1);\n for (let i = dst.length - 2; i >= 0; i--) {\n nextKeptAfter[i] = nextKeptAfter[i + 1];\n if (keepSet.has(dst[i + 1]))\n nextKeptAfter[i] = i + 1;\n }\n // Simulate moves on a working copy\n const work = src.slice();\n const indexOf = new Map(work.map((v, i) => [v, i]));\n const moves = [];\n for (let i = 0; i < dst.length; i++) {\n const v = dst[i];\n if (keepSet.has(v))\n continue; // leave in place\n const from = indexOf.get(v);\n if (from === undefined) {\n throw new Error(\"Inconsistent state\");\n }\n const j = nextKeptAfter[i];\n const to = (j !== -1) ? indexOf.get(dst[j]) : work.length;\n if (to === undefined) {\n throw new Error(\"Inconsistent state\");\n }\n const adjustedTo = from < to ? to - 1 : to;\n if (from !== adjustedTo) {\n const [moved] = work.splice(from, 1);\n work.splice(adjustedTo, 0, moved);\n moves.push({ from, to: adjustedTo, value: v });\n // refresh indices (simple & reliable)\n indexOf.clear();\n for (let p = 0; p < work.length; p++)\n indexOf.set(work[p], p);\n }\n }\n return moves;\n}\n;\n","export default function getText(ele) {\n return ele.innerText().trim();\n}\n;\n","/**\n * Returns the length of time the window has not been focused in seconds.\n * @method getTimeoff\n * @global\n * @example\n * ``` javascript\n * bbn.fn.getTimeoff();\n * // 0\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function getTimeoff() {\n if (!bbn.env.isFocused) {\n return Math.round(new Date().getTime() / 1000 - bbn.env.timeoff);\n }\n return 0;\n}\n;\n","import log from './log.js';\n/**\n * Logs the given argument in the browser's console highlighting it with a green background.\n * @method happy\n * @global\n * @example\n * ``` javascript\n * bbn.fn.happy('I want to log the success of my function');\n * ```\n * @memberof bbn.fn\n * @param {...any} args\n * @returns\n */\nexport default function happy(...args) {\n args.unshift({\n _bbn_console_level: 3,\n _bbn_console_style: 'color: white; background: green; font-size: 18px;',\n });\n log.apply(this, args);\n return this;\n}\n;\n","/**\n * Convert an hexadecimmal string to RGB.\n *\n * Converts a string that expresses a color in hexadecimal format into an object with\n * the properties that define the color and the corresponding value.\n *\n * @method hex2rgb\n * @global\n *\n * @example\n * ```javascript\n * //{r:255, g:0, b:0}\n * bbn.fn.hex2rgb(\"#FF0000\");\n * ```\n *\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function hex2rgb(hex) {\n if (hex.charAt(0) !== \"#\") {\n hex = \"#\" + hex;\n }\n if (hex.length === 4) {\n hex = \"#\" + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3];\n }\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n } : null;\n}\n;\n","export default function history() {\n return window.history || false;\n}\n;\n","import imageToCanvas from './imageToCanvas.js';\nexport default function imgToBase64(img, type = 'image/png') {\n let canvas = imageToCanvas(img);\n return canvas.toDataURL(type);\n}\n;\n","import log from './log.js';\n/**\n * Logs the given argument in the browser's console highlighting it with a blue background.\n * @method info\n * @global\n * @memberof bbn.fn\n * @param {...any} args\n * @returns {*}\n */\nexport default function info(...args) {\n args.unshift({\n //_bbn_console_mode: \"info\",\n _bbn_console_level: 4,\n _bbn_console_style: 'color: #EEE; background: blue; font-size: 12px;',\n });\n log.apply(this, args);\n return this;\n}\n;\n","/**\n * Tells if the interface is beeing active for the past x seconds.\n * @method isActiveInterface\n * @global\n * @example\n * // true\n * ``` javascript\n * bbn.fn.isActiveInterface(54764654);\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isActiveInterface(secs = 600) {\n if (!bbn.env.last_focus) {\n return false;\n }\n let t = new Date().getTime();\n return t - bbn.env.last_focus < secs * 1000;\n}\n;\n","/**\n * Returns true if the given argument is a boolean\n * @method isBoolean\n * @global\n * @example\n * ```javascript\n * const sb = true;\n * bbn.fn.isBoolean(sb); // true\n * const sb = 1;\n * bbn.fn.isBoolean(sb); // false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isBoolean(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (![true, false].includes(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isString from './isString.js';\n/**\n * Intended to check if the argument provided is a color.\n *\n * It is possible to pass as argument a string with hexadecimal value in rgb or the name of the color.\n *\n * @method isColor\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.isColor(\"#FF0000\")\n * //true\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.isColor(\"rgb 255, 0, 0\");\n * //true\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.isColor(\"red\");\n * //true\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {Boolean}\n */\nexport default function isColor(...args) {\n if (!args.length)\n return false;\n var reg = new RegExp(\"^(#[a-f0-9]{6}|#[a-f0-9]{3}|rgb *( *[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *)|rgba *( *[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *, *[0-9]{1,3}%? *)|black|green|silver|gray|olive|white|yellow|maroon|navy|red|blue|purple|teal|fuchsia|aqua)$\", \"i\");\n for (let st of args) {\n if (!isString(st)) {\n return false;\n }\n if (!reg.test(st)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a dom comment;\n * @method isComment\n * @example\n * ```javascript\n * bbn.fn.isComment(node.childNodes[0]);\n * //true\n * ```\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isComment(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!(a instanceof Comment)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a date object.\n * @method isDataURL\n * @global\n * @example\n * ```javascript\n * console.log(isDataURL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...\")); // true\n * console.log(isDataURL(\"data:text/plain,HelloWorld\")); // true\n * console.log(isDataURL(\"https://example.com/image.png\")); // false\n * console.log(isDataURL(\"data:,Hello%2C%20World!\")); // true\n * console.log(isDataURL(\"data:image/png;xyz,\")); // false\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isDataURL(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!/^data:([a-z]+\\/[a-z0-9\\-\\+\\.]+(;[a-z\\-]+\\=[a-z0-9\\-\\.]+)?)?(;base64)?,/i.test(a)) {\n return false;\n }\n }\n return true;\n}\n;\n","import getDeviceType from '../browser/getDeviceType.js';\n/**\n * Returns true if the current device type is a desktop.\n * @method isDesktopDevice\n * @global\n * @example\n * ``` javascript\n * bbn.fn.isDesktopDevice();\n * // true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isDesktopDevice() {\n return getDeviceType() === 'desktop';\n}\n;\n","import isValidDimension from './isValidDimension.js';\n/**\n * Returns true if the given value is a valid CSS dimension string or a number, false otherwise.\n *\n * @method isDimension\n * @global\n * @memberof bbn.fn\n * @param {String} st\n * @returns\n */\nexport default function isDimension(...args) {\n if (!args.length)\n return false;\n for (let st of args) {\n if (typeof st !== \"number\" || st < 0) {\n return false;\n }\n if (!isValidDimension(st)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isString from './isString.js';\n/**\n * Intended to check if the argument provided is an e-mail address written correctly\n *\n * @method isEmail\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.isEmail('test@testorg');\n * //false\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.isEmail('test@test.org');\n * //true\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {Boolean}\n */\nexport default function isEmail(...args) {\n if (!args.length)\n return false;\n let regex = /^([a-zA-Z0-9_.+-])+\\@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$/;\n for (let st of args) {\n if (!isString(st)) {\n return false;\n }\n if (!regex.test(st)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is an event.\n * @method isEvent\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isEvent(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (!(a instanceof Event)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Checks whether the given elemet is focused or not.\n *\n * @method isFocused\n * @global\n * @example\n * ``` javascript\n * bbn.fn.isFocused(document.getElementById('input_name'));\n * // false\n * bbn.fn.isFocused(bbn.sel('.container'));\n * // true\n * ```\n * @memberof bbn.fn\n *\n * @param {Element} ele The element to be checked for focus\n * @param {Boolean} contain If true will check if the focused element is contained in the given element\n *\n * @returns {Boolean} True if focused\n */\nexport default function isFocused(ele, contain = false) {\n return ele === document.activeElement || (contain && ele.contains && ele.contains(document.activeElement));\n}\n;\n","/**\n * @method isHex\n * @todo Add method description for isFunction\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isHex(num) {\n return Boolean(num.match(/^(0x)?[0-9a-f]+$/i));\n}\n;\n","import isString from './isString.js';\nimport isIP from './isIP.js';\nexport default function isHostname(...args) {\n if (!args.length)\n return false;\n for (let st of args) {\n if (!isString(st)) {\n return false;\n }\n if (!isIP(st) && !bbn.var.regexp.hostname.test(st)) {\n return false;\n }\n }\n return true;\n}\n;\n","import getAncestors from './getAncestors.js';\nimport isString from '../type/isString.js';\nimport each from '../loop/each.js';\nexport default function isInside(ele, ancestor) {\n let ancestors = getAncestors(ele);\n if (ancestors.length) {\n if (isString(ancestor)) {\n let ok = false;\n each(ancestors, (a) => {\n if (a.matches && a.matches(ancestor)) {\n ok = true;\n return false;\n }\n });\n return ok;\n }\n if (ancestor instanceof HTMLElement) {\n return ancestors.indexOf(ancestor) > -1;\n }\n }\n return false;\n}\n;\n","export default function isInViewport(ele, fully = false) {\n const bounding = ele.getBoundingClientRect();\n if (fully) {\n return (bounding.top >= 0\n && bounding.left >= 0\n && bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\n && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight));\n }\n const eleHeight = ele.offsetHeight;\n const eleWidth = ele.offsetWidth;\n return (bounding.top >= -eleHeight\n && bounding.left >= -eleWidth\n && bounding.right <= (window.innerWidth || document.documentElement.clientWidth) + eleWidth\n && bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) + eleHeight);\n}\n;\n","/**\n * Returns true if the given argument is a percentage.\n * @method isPercent\n * @global\n * @example\n * ```javascript\n * bbn.fn.isPercent('5%');\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isPercent(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (typeof a !== \"string\" || !a.match(/^\\d+(?:\\.\\d+)?%$/)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is a promise.\n * @global\n * @example\n * ```javascript\n * bbn.fn.isPromise(bbn.fn.post('myUrl'));\n * // true\n * bbn.fn.isPromise(setTimeout(() => {}))\n * // false\n * bbn.fn.isPromise(myVueObject.$nextTick());\n * // true\n * ```\n * @method isFunction\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isPromise(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ({}.toString.apply(a) !== \"[object Promise]\") {\n return false;\n }\n }\n return true;\n}\n;\n","import each from '../loop/each.js';\nexport default function isPropSize(name) {\n let isTrue = false;\n each(['width', 'height', 'gap', 'margin', 'padding', 'top', 'left', 'right', 'bottom'], (a) => {\n if (name.indexOf(a) !== -1) {\n isTrue = true;\n return false;\n }\n });\n return isTrue;\n}\n;\n","/**\n * @ignore\n * @method isSQLDate\n * @todo Add method description for isSQLDate\n * @global\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isSQLDate(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if (typeof a !== \"string\" ||\n !a.match(/^([1-2]\\d{3})-((0\\d)|(1[12]))-(([0-2]\\d)|(3[01]))(?:( [0-2]\\d):([0-5]\\d):([0-5]\\d))?$/)) {\n return false;\n }\n }\n return true;\n}\n;\n","export default function isURL(...args) {\n if (!args.length)\n return false;\n for (let str of args) {\n if (!bbn.var.regexp.url.test(str)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argument is array.\n * @method isArray\n * @global\n * @example\n * ```javascript\n * bbn.fn.isArray([5,2,6]);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isUid(...args) {\n if (!args.length)\n return false;\n for (let a of args) {\n if ((typeof a !== 'string') || !a.match(/^[0-9a-f]{32}$/i)) {\n return false;\n }\n }\n return true;\n}\n;\n","import isString from './isString.js';\n/**\n * Returns true if the given value is a valid name for a function without checking in reserved words, false otherwise\n * @method isValidName\n * @global\n * @example\n * ```javascript\n * bbn.fn.isValidName('$myFunc_tion')\n * // true\n * ```\n * @example\n * ```javascript\n * bbn.fn.isValidName('7Y')\n * // false\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.isValidName('function')\n * // true\n * ```\n *\n * @memberof bbn.fn\n * @param {String} st\n * @returns {Boolean}\n */\nexport default function isValidName(...args) {\n if (!args.length) {\n return false;\n }\n for (let arg of args) {\n if (!isString(arg) || !/^[$A-Z_][0-9A-Z_$]*$/i.test(arg)) {\n return false;\n }\n }\n return true;\n}\n;\n","/**\n * Returns true if the given argumen is a VueJS object.\n *\n * @method isVue\n * @global\n * @example\n * ```javascript\n * let myObj = new Vue({});\n * bbn.fn.isVue(myObj);\n * //true\n * ```\n * @memberof bbn.fn\n * @returns {Boolean}\n */\nexport default function isVue(...args) {\n if (!args.length) {\n return false;\n }\n if (\"vue\" in bbn && window[\"Vue\"]) {\n if (\"app\" in bbn.vue) {\n for (let a of args) {\n if (!a || typeof a.render !== \"function\") {\n return false;\n }\n }\n }\n else {\n for (let a of args) {\n if (!(a instanceof window[\"Vue\"])) {\n return false;\n }\n }\n }\n }\n if (\"cp\" in bbn &&\n \"isComponent\" in bbn[\"cp\"] &&\n typeof bbn[\"cp\"].isComponent === \"function\") {\n return bbn.cp.isComponent(...args);\n }\n return true;\n}\n;\n","/**\n * Returns the value of the given field (property) from the first object matching the given filter in an array of objects.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method isWritable\n * @global\n * @example\n * ```javascript\n * class Foo {\n * readonly a = 1\n * b = 2\n * }\n * const foo = new Foo();\n * bbn.fn.isWritable(foo, 'a');\n * // false\n * bbn.fn.isWritable(foo, 'b');\n * // true\n * ```\n *\n * @example\n * ```javascript\n * class Zoo {\n * get a () { return 1; }\n * b = 2\n * }\n * const zoo = new Zoo();\n * bbn.fn.isWritable(zoo, 'a');\n * // false\n * bbn.fn.isWritable(zoo, 'b');\n * // true\n * ```\n * @memberof bbn.fn\n * @param {Object} obj The subject object\n * @param {keyof Object} key The property from which the value is returned\n * @returns {Boolean}\n */\nexport default function isWritable(obj, key) {\n let desc;\n while (obj) {\n desc = Object.getOwnPropertyDescriptor(obj, key);\n if (desc) {\n break;\n }\n obj = Object.getPrototypeOf(obj);\n }\n return desc ? Boolean(desc.writable || desc.set) : true;\n}\n;\n","/**\n * Takes color in hex format and lightens or darkens it with the given value.\n * @method lightenDarkenHex\n * @global\n * @example\n * ```javascript\n * //\"#eccb28\"\n * bbn.fn.lightenDarkenHex('#c4a300', 40);\n * ```\n *\n * @example\n * ```javascript\n * //\"#9c7b00\"\n * bbn.fn.lightenDarkenHex(#c4a300', -40);\n * ```\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function lightenDarkenHex(hex, amt) {\n if (hex && amt) {\n let ht = hex[0] === \"#\";\n hex = ht ? hex.slice(1) : hex;\n let num = parseInt(hex, 16), r = (num >> 16) + amt, b = ((num >> 8) & 0x00ff) + amt, g = (num & 0x0000ff) + amt;\n if (r > 255) {\n r = 255;\n }\n else if (r < 0) {\n r = 0;\n }\n if (b > 255) {\n b = 255;\n }\n else if (b < 0) {\n b = 0;\n }\n if (g > 255) {\n g = 255;\n }\n else if (g < 0) {\n g = 0;\n }\n return (ht ? \"#\" : \"\") + (g | (b << 8) | (r << 16)).toString(16);\n }\n}\n;\n","import log from '../browser/log.js';\nimport createObject from '../object/createObject.js';\nimport isSymbol from '../type/isSymbol.js';\nimport isNumber from '../type/isNumber.js';\nimport isArray from '../type/isArray.js';\nimport warning from '../browser/warning.js';\nimport isFunction from '../type/isFunction.js';\nimport isSame from '../type/isSame.js';\nexport default function makeReactive(obj, onSet, parent, parentProp) {\n const parentString = (parent === null || parent === void 0 ? void 0 : parent.$cid) || '';\n const prefix = '__bbn_' + (parentString ? parentString + '_' : '');\n if (obj && typeof obj === 'object' && [undefined, Object, Array].includes(obj.constructor)) {\n if (obj.__bbnIsProxy && obj.__bbnParent === parent) {\n return obj;\n }\n if (parent && parent.$options && parent.$options.name === 'bbn-loadbar') {\n log(['MAKING bbn-loadbar', obj]);\n }\n if (!obj.__bbnWatchers) {\n Reflect.defineProperty(obj, '__bbnWatchers', {\n value: createObject(),\n writable: true,\n configurable: true,\n enumerable: false,\n });\n }\n const handler = {\n get(target, key) {\n const realValue = Reflect.get(target, key);\n const realTarget = target.__bbnRoot || target;\n if (isSymbol(key)) {\n return Reflect.get(realTarget, key);\n }\n const propName = parentProp ? parentProp + '.' + key : key;\n const hiddenKey = prefix + (isNumber(key) ? key.toString() : key);\n if (['fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'].includes(key) &&\n isArray(target)) {\n return function (...args) {\n let res = realTarget[key](...args);\n warning('DOING ARRAY STUFF');\n log(target.__bbnParent);\n onSet(target, 'length', parent);\n return res;\n };\n }\n if (isFunction(realValue)) {\n return realValue;\n }\n if (key === '__bbnRoot') {\n let root = obj;\n while (root && (root === null || root === void 0 ? void 0 : root.__bbnTarget)) {\n root = root.__bbnTarget;\n }\n return root;\n }\n if (key === '__bbnIsProxy') {\n return true;\n }\n if (key === '__bbnTarget') {\n return target;\n }\n if (key === '__bbnParent') {\n return parent;\n }\n if (key === '__bbnWatchers') {\n return target.__bbnWatchers;\n }\n if (key.indexOf('__bbn_') === 0) {\n return Reflect.get(target, key);\n }\n if (key === 'length' && isArray(target.__bbnRoot || target)) {\n return realTarget.length;\n }\n if (!(key in target)) {\n return realValue;\n }\n if (realValue &&\n typeof realValue === 'object' &&\n [undefined, Object, Array].includes(realValue.constructor)) {\n if (realValue.__bbnIsProxy && realValue.__bbnParent === parent) {\n return realTarget[hiddenKey];\n }\n if (!(hiddenKey in realTarget)) {\n Reflect.defineProperty(realTarget, hiddenKey, {\n value: makeReactive(realValue, onSet, parent, propName),\n writable: true,\n configurable: true,\n enumerable: false,\n });\n }\n if (realTarget[hiddenKey].__bbnIsProxy && !realTarget.__bbnWatchers[parentString]) {\n realTarget.__bbnWatchers[parentString] = propName;\n }\n return realTarget[hiddenKey];\n }\n return realValue;\n },\n set(target, key, value) {\n if (isSymbol(key)) {\n return Reflect.get(target, key, value);\n }\n const realTarget = target.__bbnRoot || target;\n const propName = parentProp ? parentProp + '.' + key : key;\n if (isSymbol(key)) {\n return Reflect.get(target, key);\n }\n if (parent && parent.$options && parent.$options.name === 'bbn-loadbar') {\n log(['Setting proxy prop in ' + parent.$options.name, target, key, value]);\n }\n if (!isSame(realTarget[key], value)) {\n if (key.indexOf('__bbn_') === 0) {\n Reflect.defineProperty(realTarget, key, {\n value: makeReactive(value, onSet, parent, propName),\n writable: true,\n configurable: true,\n enumerable: false,\n });\n }\n else {\n if (value &&\n typeof value === 'object' &&\n [undefined, Object, Array].includes(value.constructor)) {\n const hiddenKey = prefix + (isNumber(key) ? key.toString() : key);\n Reflect.defineProperty(realTarget, hiddenKey, {\n value: makeReactive(value, onSet, parent, propName),\n writable: true,\n configurable: true,\n enumerable: false,\n });\n if (realTarget[hiddenKey].__bbnIsProxy && !realTarget.__bbnWatchers[parentString]) {\n realTarget.__bbnWatchers[parentString] = propName;\n }\n }\n }\n if (parent && parent.$options && parent.$options.name === 'bbn-loadbar') {\n log([\n 'Setting proxy prop in ' +\n parent.$options.name +\n ' ' +\n (isNumber(key) ? key.toString() : key),\n value,\n target,\n ]);\n }\n Reflect.set(realTarget, key, value);\n onSet(target, key, parent);\n }\n return true;\n },\n defineProperty(target, key, description) {\n const realTarget = target;\n const propName = parentProp ? parentProp + '.' + key : key;\n if (key === '__bbnWatchers' || isSymbol(key) || key.indexOf('__bbn_') === 0) {\n Reflect.defineProperty(realTarget, key, description);\n }\n else {\n const hiddenKey = prefix + (isNumber(key) ? key.toString() : key);\n Reflect.defineProperty(realTarget, hiddenKey, {\n value: makeReactive(description.value, onSet, parent, propName),\n writable: true,\n configurable: true,\n enumerable: false,\n });\n }\n onSet(target, key, parent);\n return true;\n },\n deleteProperty(target, key) {\n const realTarget = target;\n if (key.indexOf('__bbn_') === 0) {\n Reflect.deleteProperty(realTarget, key);\n }\n else {\n const hiddenKey = prefix + (isNumber(key) ? key.toString() : key);\n Reflect.deleteProperty(realTarget, hiddenKey);\n Reflect.deleteProperty(target, key);\n }\n return true;\n },\n };\n return new Proxy(obj, handler);\n }\n return obj;\n}\n;\n","import isArray from '../type/isArray.js';\n/**\n * Returns a new array generated by the execution of a function for each item of the given array.\n *\n * The deepProp argument is the name of property which should contain a nested array on which\n * the function should also be applied recursively.\n *\n * @method map\n * @global\n * @example\n * ```javascript\n * bbn.fn.map([1, 2, 3, 4], a => {\n * return a + 1;\n * });\n * // [2, 3, 4, 5]\n * ```\n * @example\n * ```javascript\n * bbn.fn.map(\n * [{\n * name: \"tools\",\n * items: [\n * {\n * name: \"hammers\"\n * }, {\n * name: \"screwdrivers\",\n * items: [\n * {name: \"flat screwdrivers\"},\n * {name: \"slotted screwdrivers\"},\n * {name: \"Hex screwdrivers\"},\n * ]\n * }\n * ]\n * }, {\n * name: \"Kitchenware\"\n * }],\n * d => {\n * d.warranty = d.name === \"Hex screwdrivers\" ? \"10 years\" : \"1 year\";\n * return d;\n * },\n * \"items\"\n * );\n * // [\n * // {\n * // name: \"tools\",\n * // warranty: \"1 year\",\n * // items: [\n * // {\n * // name: \"hammers\",\n * // warranty: \"1 year\",\n * // }, {\n * // name: \"screwdrivers\",\n * // warranty: \"1 year\",\n * // items: [\n * // {name: \"flat screwdrivers\", warranty: \"1 year\"},\n * // {name: \"slotted screwdrivers\", warranty: \"1 year\"},\n * // {name: \"Hex screwdrivers\", warranty: \"10 year\"},\n * // ]\n * // }\n * // ]\n * // }, {\n * // name: \"Kitchenware\",\n * // warranty: \"1 year\"\n * // }\n * // ]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr\n * @param {Function} fn\n * @param {Boolean} deepProp\n * @param {Number} level\n * @returns {Array}\n */\nexport default function map(arr, fn, deepProp, level = 0) {\n return arr.map((a, i) => {\n a = fn(a, i, level);\n if (deepProp && a[deepProp] && isArray(a[deepProp])) {\n a[deepProp] = map(a[deepProp], fn, deepProp, level + 1);\n }\n return a;\n });\n}\n;\n","/**\n * Returns the timestamp of the given seconds if an argument is given, else returns the timestamp of new Date().\n * @method microtimestamp\n * @global\n * @example\n * ```javascript\n * //1587031047918\n * bbn.fn.timestamp();\n * ```\n * @memberof bbn.fn\n * @returns {Number}\n */\nexport default function microtimestamp() {\n return window.performance.now() + performance.timeOrigin;\n}\n;\n","import isNumber from '../type/isNumber.js';\n/**\n * Returns the given value to money format basing on the given configuration.\n *\n * @method money\n * @global\n *\n * @example\n * ``` javascript\n * // \"5 856.0 $\"\n * bbn.fn.money(5856, false, '$', false, '.' ,false, 1);\n * ```\n *\n * @memberof bbn.fn\n * @param {String|Number} val The value.\n * @param {Boolean} kilo If the value has to be rendered in kilo.\n * @param {String} currency The currency.\n * @param {String} novalue The string to return if no valid value is given.\n * @param {String} decimal The character to use separate decimals.\n * @param {String} thousands The character to use to separate thounsands.\n * @param {Number} precision The number of decimals places.\n */\nexport default function money(val, kilo, currency, novalue, decimal, thousands, precision) {\n /*\n money(val, kilo){\n let decimal = ',',\n currency = '€',\n thousands = ' ';\n if ( (isNaN(val) || !val) ){\n return '-';\n }\n if ( isNaN(val) || !val ){\n return 0;\n }\n if ( kilo && val ){\n val = val / 1000;\n if ( currency ){\n currency = 'K' + currency;\n }\n }\n return parseFloat(val).toFixed(0).replace(/./g, function(c, i, a) {\n if ( c === '.' ){\n return decimal;\n }\n return i && ((a.length - i) % 3 === 0) ? thousands + c : c;\n }) + ( currency ? ' ' + currency : '');\n },\n\n */\n if (!decimal) {\n decimal =\n decimal === undefined && bbn.env.money && bbn.env.money.decimal !== undefined ? bbn.env.money.decimal : '.';\n }\n if (!currency) {\n currency =\n currency === undefined && bbn.env.money && bbn.env.money.currency !== undefined\n ? bbn.env.money.currency\n : '';\n }\n if (!thousands) {\n thousands =\n thousands === undefined && bbn.env.money && bbn.env.money.thousands !== undefined\n ? bbn.env.money.thousands\n : ' ';\n }\n if (!precision) {\n precision =\n precision === undefined && bbn.env.money && bbn.env.money.precision !== undefined\n ? bbn.env.money.precision\n : 0;\n }\n if (!kilo) {\n kilo = kilo === undefined && bbn.env.money && bbn.env.money.kilo !== undefined ? bbn.env.money.kilo : false;\n }\n if (!novalue) {\n novalue =\n novalue === undefined && bbn.env.money && bbn.env.money.novalue !== undefined\n ? bbn.env.money.novalue\n : false;\n }\n if (!isNumber(precision)) {\n precision = kilo ? 3 : 0;\n }\n if ((val === 0) && (typeof precision === 'number') && (precision > 0)) {\n let res = val.toFixed(precision).replace('.', decimal);\n if (currency) {\n res += ' ' + (kilo ? 'K' + currency : currency);\n }\n return res;\n }\n if ((isNaN(val) || !val) && novalue) {\n return novalue;\n }\n if (isNaN(val) || !val) {\n return 0 + (currency ? ' ' + currency : '');\n }\n if (typeof val === 'string') {\n val = Number(val);\n }\n if (typeof val !== 'number') {\n throw new Error('The value must be a number');\n }\n if (kilo && val) {\n val = val / 1000;\n if (currency) {\n currency = 'K' + currency;\n }\n }\n let v = val.toFixed(precision);\n let decimalPosition = 0;\n let decimalIdx = 10000;\n if (v) {\n decimalIdx = v.indexOf('.');\n if (decimalIdx <= 0) {\n decimalIdx = 10000;\n }\n else {\n decimalPosition = v.length - decimalIdx;\n }\n }\n return (v.replace(/./g, function (c, i, a) {\n if (c === '.') {\n return decimal;\n }\n return i && (a.length - i - decimalPosition) % 3 === 0 && i < decimalIdx ? thousands + c : c;\n }) + (currency ? ' ' + currency : ''));\n}\n;\n","/**\n * Moves an element to a different position within the given array.\n *\n * The same array is returned, with its elements reordered according to the executed movement.\n *\n * @method move\n * @global\n * @todo Finish doc\n * @example\n * ```javascript\n * bbn.fn.move([\n * {movie: \"Brazil\", year: 1985},\n * {movie: \"Donnie Darko\", year: 2001},\n * {movie: \"Out of Africa\", year: 1985}\n * ], 1, 2);\n * // [\n * // {movie: \"Brazil\", year: 1985},\n * // {movie: \"Out of Africa\", year: 1985},\n * // {movie: \"Donnie Darko\", year: 2001}\n * // ]\n * ```\n * @example\n * ```javascript\n * bbn.fn.move([1, 2, 3, 4], 3, 0);\n * // [4, 1, 2, 3]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array\n * @param {Number} fromIndex The index of the element to move\n * @param {Number} toIndex The future index of the element\n * @returns {Array} The same array, with elements repositionned.\n */\nexport default function move(arr, fromIndex, toIndex) {\n if (toIndex >= arr.length) {\n let k = toIndex - arr.length;\n while (k-- + 1) {\n arr.push(undefined);\n }\n }\n arr.splice(toIndex, 0, arr.splice(fromIndex, 1)[0]);\n return arr;\n}\n;\n","import _compareValues from './_compareValues.js';\n/**\n * Sorts an array of objects based on a set of properties.\n *\n * The resulting array is the same object, the order is based on _compareValues function\n * applied for each given properties in orders argument.\n *\n * @method multiorder\n * @global\n * @example\n * ```javascript\n * let ar = [\n * {movie: \"Brazil\", year: 1985},\n * {movie: \"Donnie Darko\", year: 2001},\n * {movie: \"Out of Africa\", year: 1985},\n * {movie: \"Ran\", year: 1985},\n * {movie: \"Back to the future\", year: 1985},\n * {movie: \"Barry Lindon\", year: 1976}\n * ];\n * bbn.fn.multiorder(ar, [\n * {field: \"year\", dir: \"desc\"},\n * {field: \"movie\", dir: \"asc\"}\n * ]);\n * // [\n * // {movie: \"Donnie Darko\", year: 2001},\n * // {movie: \"Back to the future\", year: 1985},\n * // {movie: \"Brazil\", year: 1985},\n * // {movie: \"Out of Africa\", year: 1985},\n * // {movie: \"Ran\", year: 1985},\n * // {movie: \"Barry Lindon\", year: 1976}\n * // ]\n * bbn.fn.multiorder(ar, {year: \"desc\", movie: \"asc\"});\n * // Same result with object shortcut\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array to order\n * @param {Array|Object} orders The properties and directions (asc, desc) to order by\n * @returns {Array} The same array (arr), ordered differently\n */\nexport default function multiorder(arr, orders) {\n if (!orders) {\n return arr;\n }\n let currentOrders;\n if (!Array.isArray(orders) && typeof orders === 'object') {\n currentOrders = [];\n for (var n in orders) {\n currentOrders.push({ field: n, dir: orders[n] });\n }\n }\n else {\n currentOrders = orders;\n }\n if (!Array.isArray(currentOrders)) {\n throw new Error('The orders argument must be an array');\n }\n let r = arr.slice();\n return r.sort((a, b) => {\n let res;\n for (let order of currentOrders) {\n res = _compareValues(a, b, order.field, order.dir);\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n });\n}\n;\n","import isArray from '../type/isArray.js';\nimport hash from '../string/hash.js';\nimport isSame from '../type/isSame.js';\nimport search from './search.js';\nimport checkType from '../type/checkType.js';\nexport default function mutateArray(a1, a2, hashFn = null) {\n if (!isArray(a1, a2)) {\n throw new TypeError('mutateArray can only be called with arrays');\n }\n if (!hashFn) {\n hashFn = hash;\n }\n else {\n checkType(hashFn, 'function', 'The hash function must be a function');\n }\n const mapA2 = new Map(a2.map(item => [hashFn(item), item]));\n let a1Ordered = [];\n // Build a1Ordered to have the same order and contents as a2\n a2.forEach(item => {\n a1Ordered.push(item);\n });\n // Remove items from a1 that are not in a2\n let i = a1.length;\n while (i--) {\n if (!mapA2.has(hashFn(a1[i]))) {\n a1.splice(i, 1);\n }\n }\n // Insert or move items to match the order of a2\n for (let j = 0; j < a1Ordered.length; j++) {\n if ((j >= a1.length) || !isSame(a1[j], a1Ordered[j])) {\n // Find the index of the item in a1, if it exists\n const indexInA1 = search(a1, a1Ordered[j]);\n if (indexInA1 !== -1) {\n // Move the item to the correct position if it already exists in a1\n const [itemToMove] = a1.splice(indexInA1, 1);\n a1.splice(j, 0, itemToMove);\n }\n else {\n // Insert the new item from a2 into a1\n a1.splice(j, 0, a1Ordered[j]);\n }\n }\n }\n // If a1 has extra items at the end (not present in a2), remove them\n if (a1.length > a1Ordered.length) {\n a1.splice(a1Ordered.length, a1.length - a1Ordered.length);\n }\n return a1;\n}\n","import isObject from '../type/isObject.js';\nimport hash from '../string/hash.js';\nimport isSame from '../type/isSame.js';\nimport checkType from '../type/checkType.js';\nexport default function mutateObject(a1, a2, hashFn) {\n if (!isObject(a1, a2)) {\n throw new TypeError('mutateObject can only be called with arrays');\n }\n if (hashFn) {\n checkType(hashFn, 'function', 'The hash function must be a function');\n }\n else {\n hashFn = hash;\n }\n const mapA2 = Object.keys(a2);\n // Remove items from a1 that are not in a2\n for (let n in a1) {\n if (!mapA2.includes(n)) {\n delete a1[n];\n }\n }\n mapA2.forEach(n => {\n if (!isSame(a1[n], a2[n])) {\n a1[n] = a2[n];\n }\n });\n return a1;\n}\n","import replaceAll from './replaceAll.js';\n/**\n * Replaces all new line characters '\\ n' with html tag '<br>'.\n *\n * @method nl2br\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.nl2br('hello \\n world!');\n * //\"hello <br> world!\"\n * ```\n * @memberof bbn.fn\n * @param {String} st\n * @returns {String}\n */\nexport default function nl2br(st, keepNl) {\n return replaceAll(\"\\n\", \"<br>\" + (keepNl ? \"\\n\" : \"\"), st);\n}\n;\n","import _compareValues from './_compareValues.js';\n/**\n * Sorts an array of objects based on the given property.\n *\n * The resulting array is the same object, the order is based on _compareValues function.\n *\n * @method order\n * @global\n * @example\n * ```javascript\n * bbn.fn.order([\n * {movie: \"Brazil\", year: 1985},\n * {movie: \"Donnie Darko\", year: 2001},\n * {movie: \"Barry Lindon\", year: 1976}\n * ], 'year', 'DESC')\n * // [\n * // {movie: \"Donnie Darko\", year: 2001},\n * // {movie: \"Brazil\", year: 1985},\n * // {movie: \"Barry Lindon\", year: 1976}\n * // ]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array to order\n * @param {String} prop The property on which the order is based\n * @param {String} [dir=asc] The direction of the order (desc or asc by default)\n * @returns {Array}\n */\nexport default function order(arr, prop, dir = 'asc') {\n if (arr) {\n return arr.sort(function (a, b) {\n return _compareValues(a, b, prop, dir);\n });\n }\n return arr;\n}\n;\n","import selector from '../html/selector.js';\n/**\n *\n * @ignore\n * @method outerHeight\n * @todo Add method description for outerHeight\n * @global\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function outerHeight(ele) {\n ele = selector(ele);\n if (ele && \"offsetHeight\" in ele) {\n let styles = window.getComputedStyle(ele);\n let margin = parseFloat(styles[\"marginTop\"]) + parseFloat(styles[\"marginBottom\"]);\n return Math.ceil(ele.offsetHeight + margin);\n }\n}\n;\n","import selector from '../html/selector.js';\n/**\n * @ignore\n * @method outerWidth\n * @todo Add method description for outerWidth\n * @global\n * @memberof bbn.fn\n * @returns {*}\n */\nexport default function outerWidth(ele) {\n ele = selector(ele);\n let styles = window.getComputedStyle(ele);\n let margin = parseFloat(styles[\"marginLeft\"]) + parseFloat(styles[\"marginRight\"]);\n return Math.ceil(ele.offsetWidth + margin);\n}\n;\n","/**\n * Returns the value of the proportion giving the percentage and the total from where to be calculated.\n * @method percent\n * @global\n *\n * @example\n * ```javascript\n * //150\n * bbn.fn.percent('15',1000);\n * ```\n *\n * @example\n * ```javascript\n * //75\n * bbn.fn.percent(15,500);\n * ```\n * @memberof bbn.fn\n * @param {Number|String} percent\n * @param {Number|String} cent\n * @returns {Number}\n */\nexport default function percent(percent, cent) {\n return (cent / 100) * percent;\n}\n;\n","export default function pickValue(arr) {\n if (Array.isArray(arr) && arr.length) {\n return arr[Math.floor(Math.random() * arr.length)];\n }\n}\n;\n","import createObject from '../object/createObject.js';\nimport addInputs from '../form/addInputs.js';\nimport setProperty from '../object/setProperty.js';\n/**\n * Posts a request in a new window.\n *\n * @method postOut\n * @global\n * @memberof bbn.fn\n *\n * @example\n * ```javascript\n * bbn.fn.postOut('https://external-service.com/download/account-2019-06.pdf', {clientId: 547912, token: xxx});\n * ```\n *\n * @param {String} url The url to which the request should be sent\n * @param {Object} data The data to be sent\n * @param {Function} success A function to execute in case of success\n * @param {String} target The target attribute of the form\n *\n * @returns {void}\n */\nexport default function postOut(url, data, success = null, target = \"\") {\n let form = document.body.querySelector(\"form#bbn-form_out\");\n if (!form) {\n form = document.createElement(\"form\");\n form.classList.add(\"bbn-no\");\n form.setAttribute(\"id\", \"bbn-form_out\");\n form.setAttribute(\"method\", \"post\");\n form.setAttribute(\"enctype\", \"multipart/form-data-encoded\");\n setProperty(form, \"style.display\", \"none\");\n document.body.appendChild(form);\n }\n if (form instanceof HTMLFormElement) {\n form.innerHTML = \"\";\n form.setAttribute(\"action\", url);\n form.setAttribute(\"target\", target || \"_blank\");\n if (!data) {\n data = {};\n }\n data = createObject(data);\n if (!data.bbn) {\n data.bbn = \"public\";\n }\n addInputs(form, data);\n form.submit();\n if (success) {\n success();\n }\n }\n}\n;\n","/**\n * @method printf\n * @todo Add method description for printf\n * @global\n * @memberof bbn.fn\n * @param String format\n * @returns {*}\n */\nexport default function printf(format) {\n var args = Array.prototype.slice.call(arguments, 1);\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != \"undefined\" ? args[number] : match;\n });\n}\n;\n","import replaceAll from './replaceAll.js';\n/**\n * Replace quotes in ASCII code\n *\n * @method quotes2html\n * @global\n *\n * @example\n * ```javascript\n * bbn.fn.quotes2html(\"hello 'world'!\", 's');\n * // hello 'world'!\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.quotes2html('hello \"world\\'s\"!', 'd');\n * // hello "world'sd"!\n * ```\n *\n * @example\n * ```javascript\n * bbn.fn.quotes2html('hello \"world\\'s\"!');\n * // hello "world'sd"!\n * ```\n *\n * @memberof bbn.fn\n * @param {String} st\n * @returns {String}\n */\nexport default function quotes2html(st, type) {\n if (!type || type.toLowerCase().indexOf(\"s\") === 0) {\n st = replaceAll(\"'\", \"'\", st);\n }\n if (!type || type.toLowerCase().indexOf(\"d\") === 0) {\n st = replaceAll('\"', \""\", st);\n }\n return st;\n}\n;\n","import randomInt from '../misc/randomInt.js';\n/**\n * Returns a random String with random lenght,\n *\n * Generates a random string from the length of the random number,\n * taken from a range of numbers providing either only the minimum or also the maximum as arguments.\n *\n * @method randomString\n * @global\n *\n * @example\n * ```javascript\n * //\"U7xXO0Xb\"\n * bbn.fn.randomString(3,10);\n * ```\n *\n * @example\n * ```javascript\n * //\"H8F\"\n * bbn.fn.randomString(3);\n * ```\n *\n * @memberof bbn.fn\n * @param {Number} length\n * @param {String} chars\n * @returns {String}\n */\nexport default function randomString(min, max, types) {\n let length;\n let type;\n let chars = {\n n: \"0123456789\",\n l: \"abcdefghijklmnopqrstuvwxyz\",\n u: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\",\n };\n if (!types) {\n types = \"nlu\";\n }\n if (!min) {\n length = randomInt(8, 14);\n }\n if (typeof max === \"string\") {\n types = \"n\";\n delete chars.l;\n delete chars.u;\n chars.n = max;\n if (!length) {\n length = min;\n }\n }\n else if (typeof max === \"number\" && min < max) {\n length = randomInt(min, max);\n }\n else if (min) {\n length = min;\n }\n let result = \"\";\n for (let i = 0; i < length; i++) {\n // Not a number for the first char\n if (i === 0) {\n if (types !== \"n\") {\n type = types.indexOf(\"u\") === -1 ? \"l\" : \"u\";\n }\n }\n else {\n type = types[Math.floor(Math.random() * types.length)];\n }\n result += chars[type][Math.floor(Math.random() * chars[type].length)];\n }\n return result;\n}\n;\n","/**\n * Returns a new array generated by the execution of a function for each item of the given array.\n *\n * The deepProp argument is the name of property which should contain a nested array on which\n * the function should also be applied recursively.\n *\n * @method map\n * @global\n * @example\n * ```javascript\n * const hours = bbn.fn.range(0, 23, 1);\n * // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]\n * ```\n * @example\n * ```javascript\n * const minsec = bbn.fn.range(0, 59, 1).map(h => ({text: h, value: h}));\n * // [{text: 0, value: 0}, {text: 1, value: 1}, ..., {text: 59, value: 59}]\n * ```\n *\n * @memberof bbn.fn\n * @param {Number} start\n * @param {Number} stop\n * @param {Number} step\n * @returns {Array}\n */\nexport default function range(start, stop, step) {\n return Array.from({ length: (stop - start) / step + 1 }, (value, index) => start + index * step);\n}\n","import isArray from '../type/isArray.js';\nimport isObject from '../type/isObject.js';\nimport numProperties from './numProperties.js';\n/**\n * Returns a new array, having removed all elements deemed empty from the given array.\n *\n * Removes all the elements which are empty, i.e. false, 0, null, '', NaN, or undefined.\n *\n * @method removeEmpty\n * @global\n * @example\n * ```javascript\n * bbn.fn.removeEmpty([{prop1: 10, prop2: 20}, '', {}, null, 1, undefined, 0, false, 25]);\n * // [{prop1: 10, prop2: 20}, 1, 25]\n * ```\n * @memberof bbn.fn\n * @param {Array} arr\n * @returns {Array}\n */\nexport default function removeEmpty(arr) {\n var tmp = [];\n if (isArray(arr)) {\n for (let i = 0; i < arr.length; i++) {\n let ok = false;\n if (arr[i]) {\n if (isArray(arr[i])) {\n if (arr[i].length) {\n ok = true;\n }\n }\n else if (isObject(arr[i])) {\n if (numProperties(arr[i])) {\n ok = true;\n }\n }\n else {\n ok = true;\n }\n }\n if (ok) {\n tmp.push(arr[i]);\n }\n }\n }\n return tmp;\n}\n;\n","/**\n * Removes all group of spaces by one single space.\n * @param {String} str\n * @returns\n */\nexport default function removeExtraSpaces(str) {\n return str.replace(/\\s+/g, \" \").trim();\n}\n;\n","import substr from './substr.js';\n/**\n * @method removeTrailingChars\n * @todo Add method description for removeTrailingChars\n * @global\n * @memberof bbn.fn\n * @param {String} st\n * @param {String} char\n * @returns {*}\n */\nexport default function removeTrailingChars(st, char) {\n if (!char) {\n char = \" \";\n }\n if (char.length) {\n while (substr(st, -char.length) === char) {\n st = substr(st, 0, st.length - char.length);\n }\n while (substr(st, 0, char.length) === char) {\n st = substr(st, char.length);\n }\n }\n return st;\n}\n;\n","/**\n * Returns a string which is the repetition of the first argument for the number passed in the second argument.\n *\n * @method repeat\n * @global\n *\n * @example\n * ```javascript\n * //\"HelloHelloHello\"\n * bbn.fn.repeat('Hello', 3);\n * ```\n * @memberof bbn.fn\n * @returns {String}\n */\nexport default function repeat(st, num) {\n return st.repeat(num);\n}\n;\n","export default function replaceSelection(html, selectInserted) {\n let sel, range, fragment;\n sel = window.getSelection();\n // Test that the Selection object contains at least one Range\n if (sel.getRangeAt && sel.rangeCount) {\n // Get the first Range (only Firefox supports more than one)\n range = window.getSelection().getRangeAt(0);\n range.deleteContents();\n // Create a DocumentFragment to insert and populate it with HTML\n // Need to test for the existence of range.createContextualFragment\n // because it's non-standard and IE 9 does not support it\n if (range.createContextualFragment) {\n fragment = range.createContextualFragment(html);\n }\n else {\n // In IE 9 we need to use innerHTML of a temporary element\n const div = document.createElement('div');\n let child;\n div.innerHTML = html;\n fragment = document.createDocumentFragment();\n while ((child = div.firstChild)) {\n fragment.appendChild(child);\n }\n }\n const firstInsertedNode = fragment.firstChild;\n const lastInsertedNode = fragment.lastChild;\n range.insertNode(fragment);\n sel.removeAllRanges();\n if (selectInserted) {\n if (firstInsertedNode) {\n range.setStartBefore(firstInsertedNode);\n range.setEndAfter(lastInsertedNode);\n }\n sel.addRange(range);\n }\n else {\n range.setStartAfter(lastInsertedNode);\n sel.addRange(range);\n }\n }\n}\n;\n","/**\n * Convert an RGB string to hexadecimal.\n *\n * Passing a string with the format that defines the rgb value as an argument,\n * it will return the corresponding string in hexadecimal format.\n *\n * @method rgb2hex\n * @global\n *\n * @example\n * ```javascript\n * //\"#ff0000\"\n * bbn.fn.rgb2hex(\"rgb(255, 0, 0)\");\n * ```\n * @memberof bbn.fn\n * @param {String} rgb\n * @returns {String}\n */\nexport default function rgb2hex(rgb) {\n rgb = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n return rgb && rgb.length === 4\n ? \"#\" +\n (\"0\" + parseInt(rgb[1], 10).toString(16)).slice(-2) +\n (\"0\" + parseInt(rgb[2], 10).toString(16)).slice(-2) +\n (\"0\" + parseInt(rgb[3], 10).toString(16)).slice(-2)\n : \"\";\n}\n;\n","import iterate from './iterate.js';\n/**\n * Executes the provided function on each property of the given object.\n *\n * @method riterate\n * @global\n * @example\n * ```javascript\n * //[\"value1\", 2]\n * let arr = [];\n * bbn.fn.iterate({field1: \"value1\", field2: 2}, (val, idx) => {\n * arr.push(value);\n * });\n * ```\n * @memberof bbn.fn\n * @param {(Object|Number)} obj The object to loop on\n * @param {Function} fn The function, gets the array's element and the index as arguments\n * @param {Boolean} noPrivate If set to true the _private_ properties won't be included\n * @returns {Object}\n */\nexport default function riterate(obj, fn, noPrivate = false) {\n return iterate(obj, fn, noPrivate, true);\n}\n;\n","/**\n * @method roundDecimal\n * @todo Add method description for roundDecimal\n * @global\n * @memberof bbn.fn\n * @param {Number} value\n * @param {Number} decimals\n * @returns {}\n */\nexport default function roundDecimal(value, decimals) {\n return Number(Math.round(parseFloat((value + 'e' + decimals) + 'e-' + decimals)));\n}\n;\n","import removeAccents from './removeAccents.js';\nimport trim from './trim.js';\n/**\n * Removes all unacceptable characters in a DOM node.\n *\n * @method sanitize\n * @global\n *\n * @example\n * ```javascript\n * //\"this_is_a_test\"\n * bbn.fn.sanitize(\"this&is_$a^test\");\n * ```\n *\n * @memberof bbn.fn\n * @returns {String} str\n */\nexport default function sanitize(str, separator = \"_\") {\n let escaped = [\"[\", \"]\", \"{\", \"}\", \"(\", \")\", \"-\", \"+\", \"*\", \"/\"];\n let exp = \"[\";\n for (let i = 0; i < separator.length; i++) {\n if (escaped.includes(separator[i])) {\n exp += \"\\\\\";\n }\n exp += separator[i];\n }\n exp += \"]+\";\n let re = new RegExp(exp, \"g\");\n let res = removeAccents(str)\n .replace(/[^a-z0-9]/gi, separator)\n .replace(re, separator);\n return trim(res, separator);\n}\n;\n","/**\n * Selects the content of an element.\n *\n * @method selectElementText\n * @global\n * @example\n * ``` javascript\n * bbn.fn.selectElementText(document.getElementById('my_input_id'));\n * // false\n * bbn.fn.selectElementText(bbn.$('#my_span_id'));\n * // true\n * ```\n * @memberof bbn.fn\n *\n * @param {Element} ele The element in which the text should be selected\n * @param {Boolean} win The window object\n *\n * @returns {Boolean} True if focused\n */\nexport default function selectElementText(ele, win = null) {\n win = win || window;\n if (ele instanceof HTMLInputElement) {\n ele.select();\n return;\n }\n let doc = win.document;\n let sel;\n let range;\n if (win.getSelection && doc.createRange) {\n sel = win.getSelection();\n range = doc.createRange();\n range.selectNodeContents(ele);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (('createTextRange' in doc.body) && (typeof doc.body.createTextRange === 'function')) {\n range = doc.body.createTextRange();\n range.moveToElementText(ele);\n range.select();\n }\n}\n;\n","/**\n * Creates a cookie and assigns it to document.cookie.\n * @method setCookie\n * @global\n * @example\n * ``` javascript\n * bbn.fn.setCookie('lang', 'en', 2);\n * ```\n * @memberof bbn.fn\n * @param {String} name The name of the cookie.\n * @param {String} value The value of the cookie.\n * @param {Number} days The days before expiration of the cookie.\n * @returns\n */\nexport default function setCookie(name, value, days) {\n let expires = '';\n if (days) {\n let date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toUTCString();\n }\n let st = escape(JSON.stringify({ value: value }));\n document.cookie = name + '=' + st + expires + '; path=/';\n}\n;\n","/**\n * Creates a CSS variable\n * @param {String*} varname\n * @param {String*} value\n * @returns\n */\nexport default function setCssVar(varname, value) {\n if (varname.indexOf(\"--\") !== 0) {\n varname = \"--\" + varname;\n }\n /** @todo To Fix */\n document.documentElement.style.setProperty(varname, value);\n}\n;\n","/**\n * Sets a given property on the given object\n *\n * @param {Object} obj\n * @param {String} prop\n * @param {*} value\n * @param {Boolean} writable\n * @param {Boolean} configurable\n */\nexport default function setProp(obj, prop, value, writable = true, configurable = true) {\n Object.defineProperty(obj, prop, {\n value: value,\n writable: writable,\n configurable: configurable,\n });\n}\n;\n","import clone from './clone.js';\nimport each from '../loop/each.js';\nimport isString from '../type/isString.js';\nimport shorten from '../string/shorten.js';\n/**\n * Shortens all the strings contained in the object properties or element in a array.\n *\n * Modifies directly the given object by cuttin all its too long strings, and adding ellipsis (...) in this case.\n *\n * @method shortenObj\n * @global\n * @example\n * ```javascript\n * bbn.fn.shortenObj({\n * title: \"Once upon a time in the west\",\n * synopsis: \"There's a single piece of land around Flagstone with water on it, and rail baron Morton (Gabriele Ferzetti) aims to have it, knowing the new railroad will have to stop there. He sends his henchman Frank (Henry Fonda) to scare the land's owner, McBain (Frank Wolff), but Frank kills him instead and pins it on a known bandit, Cheyenne (Jason Robards). Meanwhile, a mysterious gunslinger with a score to settle (Charles Bronson) and McBain's new wife, Jill (Claudia Cardinale), arrive in town.\"\n * }, 50)\n * // {\n * // \"title\": \"Once upon a time in the west\",\n * // \"synopsis\": \"There's a single piece of land around Flagstone wi...\"\n * // }\n * ```\n * @memberof bbn.fn\n * @param {(Object|Array)} obj\n * @param {Number} [max=100]\n * @returns {(Object|Array)} The same object, modified\n */\nexport default function shortenObj(obj, max = 100) {\n let o = clone(obj);\n each(o, (a, n) => {\n if (isString(a) && a.length > max) {\n o[n] = shorten(a, max);\n }\n else if (a && typeof a === \"object\") {\n o[n] = shortenObj(a);\n }\n });\n return o;\n}\n;\n","export default function shuffle(array) {\n let currentIndex = array.length, randomIndex;\n // While there remain elements to shuffle.\n while (currentIndex != 0) {\n // Pick a remaining element.\n randomIndex = Math.floor(Math.random() * currentIndex);\n currentIndex--;\n // And swap it with the current element.\n [array[currentIndex], array[randomIndex]] = [array[randomIndex], array[currentIndex]];\n }\n return array;\n}\n;\n","/**\n * Starts a timer and gives it a name.\n * @method startChrono\n * @global\n * ``` javascript\n * bbn.fn.startChrono('myChrono');\n * ```\n * @memberof bbn.fn\n * @returns\n */\nexport default function startChrono(name) {\n let now = bbn.fn.microtimestamp();\n if (!this.constructor.chronos) {\n Object.defineProperty(this.constructor, 'chronos', {\n value: Object.create(null),\n writable: false,\n configurable: false,\n });\n }\n this.constructor.chronos[name || 'default'] = now;\n return name;\n}\n;\n","/**\n * @method stopChrono\n * @global\n * @example\n * ``` javascript\n * bbn.fn.stopChrono('myChrono');\n * // 20162\n * ```\n * @memberof bbn.fn\n * @param {String} name\n * @param {Boolean} secs\n * @returns {Number}\n */\nexport default function stopChrono(name, secs) {\n if (this.constructor.chronos[name || 'default']) {\n let now = bbn.fn.microtimestamp();\n let diff = now - this.constructor.chronos[name || 'default'];\n delete this.constructor.chronos[name || 'default'];\n if (secs) {\n diff = Math.round(diff) / 1000;\n }\n return diff;\n }\n throw Error(\"No chrono with name \" + (name || 'default'));\n}\n;\n","import getRequestId from './getRequestId.js';\nimport getLoader from './getLoader.js';\nimport _deleteLoader from './_deleteLoader.js';\nimport isFunction from '../type/isFunction.js';\nimport _addLoader from './_addLoader.js';\nimport defaultStartLoadingFunction from '../default/defaultStartLoadingFunction.js';\nimport defaultEndLoadingFunction from '../default/defaultEndLoadingFunction.js';\nimport defaultAjaxAbortFunction from '../default/defaultAjaxAbortFunction.js';\nimport defaultAjaxErrorFunction from '../default/defaultAjaxErrorFunction.js';\nimport arrayBuffer2String from '../convert/arrayBuffer2String.js';\n/**\n * @method stream\n * @global\n * @memberof bbn.fn\n *\n * @param {String} url The URL to be requested by XHR\n * @param {Function} success The function to execute if the request goes well (200)\n * @param {Object} data The data to send through POST\n * @param {Function} failure The function to execute if the request goes bad\n * @param {Function} abort The function to execute if the request is aborted\n * @param {Function} done The function to execute if the request is finished\n *\n * @returns {Promise} The Promise created by the generated XHR.\n */\nconst boundary = '\\n';\nconst isCancel = function (value) {\n return !!(value && value.__BBN_CANCEL__ === true);\n};\nexport default function stream(url, success, data, failure, abort, finished) {\n const requestId = getRequestId(url, data, 'json');\n const loaderObj = getLoader(requestId);\n //log(\"IN AJAX\", loaderObj? loaderObj.loader : \"NO LOADER\")\n if (loaderObj === null || loaderObj === void 0 ? void 0 : loaderObj.loader) {\n return loaderObj.loader;\n }\n if (!data) {\n data = {};\n }\n if (bbn.env.token) {\n data._bbn_token = bbn.env.token;\n }\n const aborter = new AbortController();\n let json = '';\n const treatJSON = (json) => {\n if (json.length) {\n if (json.indexOf(boundary) > -1) {\n json = bbn.fn.removeEmpty(json.split(boundary));\n }\n else {\n json = [json];\n }\n for (let i in json) {\n try {\n success(JSON.parse(json[i]));\n }\n catch (e) {\n throw e;\n }\n }\n }\n };\n const chrono = bbn.fn.startChrono();\n const loader = fetch(url, {\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\n mode: 'cors', // no-cors, *cors, same-origin\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\n credentials: 'same-origin', // include, *same-origin, omit\n headers: {\n 'Content-Type': 'application/json'\n // 'Content-Type': 'application/x-www-form-urlencoded',\n },\n redirect: 'follow', // manual, *follow, error\n referrerPolicy: 'no-referrer', // no-referrer, *client\n signal: aborter.signal,\n body: JSON.stringify(data || {}) // body data type must match \"Content-Type\" header\n })\n .then(response => {\n bbn.fn.log(\"RESPONSE IN \" + bbn.fn.stopChrono(chrono, true) + \" SECS\");\n if (response.body) {\n const reader = response.body.getReader();\n const isFn = isFunction(success);\n reader.read().then(function pump({ done, value }) {\n if (done) {\n // Do something with last chunk of data then exit reader\n _deleteLoader(requestId, data);\n if (json) {\n treatJSON(json);\n }\n if (finished) {\n finished();\n }\n return;\n }\n if (isFn) {\n json += arrayBuffer2String(value).trim();\n bbn.fn.log([\"STREAM RESULT\", json.length, json]);\n if (json) {\n try {\n treatJSON(json);\n json = '';\n }\n catch (e) { }\n }\n else {\n success();\n }\n }\n else {\n bbn.fn.log([\"STREAM SUCCESS IS FN? \" + isFn]);\n }\n // Read some more, and call this function again\n return reader.read().then(pump);\n });\n }\n })\n .catch((err) => {\n let isAbort = isCancel(err);\n _deleteLoader(requestId, data, isAbort);\n defaultEndLoadingFunction(url, tst, data, err);\n if (isAbort) {\n let ok = 1;\n if (isFunction(abort)) {\n ok = abort(err.message, url);\n }\n if (ok) {\n defaultAjaxAbortFunction(err.message, url);\n }\n }\n else {\n let ok = 1;\n if (isFunction(failure)) {\n ok = failure(err.request, err);\n }\n if (ok) {\n defaultAjaxErrorFunction(err.request, err.response ? err.response.data : \"\", err.response ? err.response.status : err);\n }\n }\n });\n let tst = _addLoader(requestId, loader, aborter);\n defaultStartLoadingFunction(url, tst, data, requestId);\n return loader;\n}\n;\n","export default function string2ArrayBuffer(str) {\n var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char\n var bufView = new Uint16Array(buf);\n for (var i = 0, strLen = str.length; i < strLen; i++) {\n bufView[i] = str.charCodeAt(i);\n }\n return buf;\n}\n;\n","import formdata from './formdata.js';\nimport post from '../ajax/post.js';\n/**\n * Submit a form's data through an Ajax request.\n *\n * It will also prevent the event if given, and execute the given callback,\n * or look for one in the data-script attribute.\n *\n * @method submit\n * @global\n * @memberof bbn.fn\n * @fires {*}\n * @fires {*}\n *\n * @param {HTMLElement} form The form to submit\n * @param {Event} e The optional submit event - which will be prevented\n * @param {Function} fn An optional callback function\n *\n * @returns {*}\n */\nexport default function submit(form, e, fn) {\n let url = form.getAttribute('action') || bbn.env.path;\n let data;\n if (url === '') {\n url = '.';\n }\n //if ( (typeof(url) === 'string') && (url.indexOf(\"http\") !== 0 || url.indexOf(window.document.location.hostname) !== -1) && !form.is(\"[target]\") ){\n if (typeof url === 'string' &&\n (url.indexOf('http') !== 0 || url.indexOf(window.document.location.hostname) !== -1) &&\n !form.getAttribute('target')) {\n if (e) {\n e.preventDefault();\n }\n data = formdata(form);\n if (data) {\n //$form.attr(\"action\", null);\n form.setAttribute('action', null);\n //$form.data(\"bbnSubmit\", 1);\n const args = [url, data];\n if (!fn && form.getAttribute('data-script')) {\n fn = new Function(form.getAttribute('data-script'));\n fn = fn();\n }\n if (fn) {\n args.push(fn);\n }\n post(...args);\n }\n }\n}\n;\n","import each from '../loop/each.js';\nimport filter from './filter.js';\n/**\n * Returns the sum of the given property or function for the array's elements matching the filter.\n *\n * The filtering arguments follow the same scheme as bbn.fn.search.\n *\n * @method sum\n * @global\n * @example\n * ```javascript\n * let invited = [\n * {name: \"Robert De Niro\", attendees: 2, confirmed: true},\n * {name: \"Al Pacino\", attendees: 1, confirmed: false},\n * {name: \"James Caan\", attendees: 4, confirmed: false},\n * {name: \"Harvey Keitel\", attendees: 5, confirmed: true}\n * ];\n * // No filter\n * bbn.fn.sum(invited, \"attendees\");\n * // 12\n * // Filter\n * bbn.fn.sum(invited, \"attendees\", {confirmed: true});\n * // 7\n * ```\n * @example\n * ```javascript\n * let cart = [\n * {article: \"Toothpaste\", price: 2.50, quantity: 1},\n * {article: \"Toothbrush\", price: 6, quantity: 2},\n * {article: \"Banana\", price: 0.50, quantity: 3},\n * {article: \"T-shirt\", price: 14, quantity: 3}\n * ];\n * bbn.fn.sum(cart, a => a.price * a.quantity);\n * // 58\n * // Only the items with a quantity equal to 3\n * bbn.fn.sum(cart, a => a.price * a.quantity, {quantity: 3});\n * // 43.5\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The subject array\n * @param {(String|Function)} numberProp The property's name for which the value should be added to the sum, or a function returning the number.\n * @param {(String|Object|Function)} prop A property's name or a filter object or function\n * @param {*} val The value with which comparing the given property\n * @param {String} operator The operator to use for comparison with the value as used in bbn.fn.compare\n * @returns {Number} The sum\n */\nexport default function sum(arr, numberProp, prop, val, operator) {\n let r = 0;\n each(filter(arr, prop, val, operator), (a) => {\n let tmp = typeof numberProp === 'function' ? numberProp(a) : a[numberProp];\n if (tmp) {\n r += parseFloat(tmp) || 0;\n }\n });\n return r;\n}\n;\n","import each from '../loop/each.js';\nimport isArray from '../type/isArray.js';\nimport replaceAll from '../string/replaceAll.js';\n/**\n * Returns a CSV string from the given array of arrays or objects.\n *\n * @method toCSV\n * @global\n * @example\n * ```javascript\n * bbn.fn.toCSV([['a', 'b', 'c'], ['d', 'e', 'f']]);\n * // \"a\",\"b\",\"c\";\n * // \"d\",\"e\",\"f\"\n * ```\n * @example\n * ```javascript\n * bbn.fn.toCSV([{name: \"Capuche\", fname: \"Marc-Antoine\"}, {name: \"Orfin\", fname: \"Louis\"}]);\n * // \"Capuche\",\"Marc-Antoine\";\n * // \"Orfin\",\"Louis\"\n * ```\n * @memberof bbn.fn\n * @param {Array} arr The array to convert\n * @param {String} [valSep=,] The value separator character\n * @param {String} [rowSep=;] The row separator character\n * @param {String} [valEsc=\"] The string escaper character\n * @returns {String} A CSV string\n */\nexport default function toCSV(arr, valSep = \",\", rowSep = \"\", valEsc = '\"') {\n if (!valSep) {\n valSep = \",\";\n }\n if (!valEsc) {\n valEsc = '\"';\n }\n let csvContent = \"\";\n let total = arr.length;\n each(arr, (a, i) => {\n let num = isArray(a) ? a.length : Object.values(a).length;\n let j = 0;\n each(a, (b) => {\n if (typeof b === \"string\") {\n csvContent += valEsc + replaceAll(valEsc, \"\\\\\" + valEsc, b) + valEsc;\n }\n else if (b === 0) {\n csvContent += \"0\";\n }\n else if (!b) {\n csvContent += valEsc + valEsc;\n }\n else {\n csvContent += b.toString ? b.toString() : valEsc + valEsc;\n }\n j++;\n if (j < num) {\n csvContent += valSep;\n }\n });\n if (i < total - 1) {\n csvContent += rowSep + \"\\n\";\n }\n });\n return csvContent;\n}\n;\n","import resize from '../style/resize.js';\nexport default function toggleFullScreen() {\n if ('mozRequestFullScreen' in window.document.documentElement) {\n if (window.document['mozFullScreen']) {\n window.document['mozCancelFullScreen']();\n }\n else if (typeof window.document.documentElement.mozRequestFullScreen === 'function') {\n window.document.documentElement.mozRequestFullScreen();\n }\n }\n else if ('webkitRequestFullScreen' in window.document.documentElement) {\n if (window.document['webkitIsFullScreen']) {\n window.document['webkitCancelFullScreen']();\n }\n else if (typeof window.document.documentElement.webkitRequestFullScreen === 'function') {\n window.document.documentElement.webkitRequestFullScreen();\n }\n }\n else if ('msRequestFullScreen' in window.document.documentElement) {\n if (window.document['msFullscreenEnabled']) {\n window.document['msExitFullscreen']();\n }\n else if (typeof window.document.documentElement.msRequestFullScreen === 'function') {\n window.document.documentElement.msRequestFullScreen();\n }\n }\n else if ('requestFullscreen' in window.document) {\n if (window.document.fullscreenEnabled) {\n window.document.exitFullscreen();\n }\n else {\n window.document.documentElement.requestFullscreen();\n }\n }\n setTimeout(function () {\n resize();\n }, 0);\n}\n;\n","import iterate from '../loop/iterate.js';\nexport default function translate(o, namespace) {\n let lng = namespace ? bbn.lng[namespace.indexOf('_') === 0 ? namespace : '_' + namespace] : bbn.lng;\n iterate(o, (v, k) => {\n lng[k] = v;\n });\n}\n;\n","import isArray from '../type/isArray.js';\nimport each from '../loop/each.js';\nimport md5 from './md5.js';\n/**\n * Create a unique string in md5 format.\n *\n * Converts and return all the arguments inserted in a unique string in md5 format.\n *\n * @method uniqString\n * @global\n *\n * @example\n * ```javascript\n * //\"6cb083da4d4987af9b4fa4ad8ca23bb1\"\n * bbn.fn.uniqString('test',['test'],{id:1, test:2},4);\n * ```\n * @memberof bbn.fn\n * @returns {String} The unique string in md5 format\n */\nexport default function uniqString(...args) {\n var st = \"\";\n for (var i = 0; i < args.length; i++) {\n if (!args[i]) {\n st += \"__bbn_empty__\";\n }\n else if (typeof args[i] === \"object\") {\n if (isArray(args[i])) {\n st += JSON.stringify(args[i]);\n }\n else {\n // An object with the same properties, even in different order, should produce the same answer\n let tmp = {};\n let ks = Object.keys(args[i]).sort();\n each(ks, (k) => {\n tmp[k] = args[i][k];\n });\n st += JSON.stringify(tmp);\n }\n }\n else if (typeof args[i] !== \"string\") {\n st += args[i].toString();\n }\n else {\n st += args[i];\n }\n }\n return md5(st);\n}\n;\n","import objectToFormData from '../form/objectToFormData.js';\nimport log from '../browser/log.js';\nimport com from '../../com.js';\n/**\n * Uploads a file synchronously through an XHR indicating progress.\n *\n * @method upload\n * @todo examples\n * @global\n * @memberof bbn.fn\n *\n * @param {String} url The URL to which the file should be uploaded\n * @param {File} file A File object or an array of data\n * @param {Function} success A function to execute after success\n * @param {Function} failure A function to execute after failure\n * @param {Function} progress A function to execute during progress\n *\n * @returns {Promise}\n */\nexport default function upload(url, file, success = null, failure = null, progress = null) {\n const fn = () => {\n return com.run('post', url || bbn.env.path, {\n data: objectToFormData(file),\n headers: {},\n onUploadProgress(progressEvent) {\n if (progress) {\n let percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);\n progress(percentCompleted, progressEvent.loaded, progressEvent.total);\n }\n },\n });\n };\n if (!success && !failure) {\n return fn();\n }\n else {\n return fn()\n .then((res) => {\n if (success) {\n log('SUCCESS', res);\n success(res);\n }\n })\n .catch((err) => {\n if (failure) {\n log('ERROR', err);\n failure(err);\n }\n });\n }\n}\n;\n","import { Temporal } from 'temporal-polyfill';\nimport _ from './_.js';\nimport $ from './$.js';\nimport lng from './lng.js';\nimport vars from './vars.js';\nimport env from './env.js';\nimport com from './com.js';\nimport db from './db.js';\nimport fn from './fn.js';\nimport dt from './dt.js';\nconst bbn = {\n version: \"1.0.1\",\n opt: {\n _cat: {}\n },\n app: {},\n _,\n $,\n lng,\n var: vars,\n dt,\n com,\n env,\n db,\n fn,\n info: [\n {\n value: 'ajax',\n label: 'Loading and streaming',\n description: 'Functions related to Ajax requests',\n icon: 'nf nf-fa-rocket',\n }, {\n value: 'browser',\n label: 'Browser-only',\n description: 'Functions that can only be run in the browser',\n icon: 'nf nf-fa-desktop',\n }, {\n value: 'convert',\n label: 'Conversion',\n description: 'Functions related to data conversion',\n icon: 'nf nf-fa-exchange',\n }, {\n value: 'datetime',\n label: 'Date and time',\n description: 'Functions related to dates and times',\n icon: 'nf nf-fa-calendar',\n }, {\n value: 'form',\n label: 'Form manipulation',\n description: 'Functions related to form manipulation and validation',\n icon: 'nf nf-fa-edit',\n }, {\n value: 'html',\n label: 'HTML manipulation',\n description: 'Functions related to HTML manipulation and DOM interaction',\n icon: 'nf nf-fa-html5',\n }, {\n value: 'loop',\n label: 'Looping',\n description: 'Functions related to looping through arrays and objects',\n icon: 'nf nf-fa-repeat',\n }, {\n value: 'misc',\n label: 'Miscellaneous',\n description: 'Miscellaneous functions that do not fit into other categories',\n icon: 'nf nf-fa-cubes',\n }, {\n value: 'object',\n label: 'Object manipulation',\n description: 'Functions related to object manipulation and inspection',\n icon: 'nf nf-fa-object_group',\n }, {\n value: 'phone',\n label: 'Phone and contact',\n description: 'Functions related to phone numbers and contact information',\n icon: 'nf nf-fa-phone',\n }, {\n value: 'string',\n label: 'String manipulation',\n description: 'Functions related to string manipulation and formatting',\n icon: 'nf nf-fa-text_height'\n }, {\n value: 'style',\n label: 'Styling and layout',\n description: 'Functions related to styling and layout management',\n icon: 'nf nf-fa-paint_brush',\n }, {\n value: 'type',\n label: 'Type checking',\n description: 'Functions related to type checking and validation',\n icon: 'nf nf-fa-check_square',\n }\n ]\n};\nif ('undefined' !== typeof window) {\n window.bbn = bbn;\n if (!window.Temporal) {\n window.Temporal = Temporal;\n }\n}\nexport { bbn as default, bbn, Temporal };\n","export default function (selector, context) {\n if (context === null || context === void 0 ? void 0 : context.querySelectorAll) {\n return context.querySelectorAll(selector);\n }\n if (context) {\n throw new Error('Invalid context');\n }\n return document.body.querySelectorAll(selector);\n}\n;\n","export default {\n AE: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AF: { firstDay: 6, weekend: [4, 5], minimalDays: 1 },\n AG: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n AI: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AL: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AM: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AR: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AS: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n AU: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n AZ: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n BA: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n BD: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n BH: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n BM: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n BN: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n BR: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n BS: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n BT: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n BW: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n BY: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n BZ: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n CA: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n CL: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n CM: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n CN: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n CO: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n CR: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n CY: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n DJ: { firstDay: 6, weekend: [6, 7], minimalDays: 1 },\n DM: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n DO: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n DZ: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n EC: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n EG: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n ET: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n \"GB-alt-variant\": { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n GE: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n GT: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n GU: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n HK: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n HN: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n HR: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n ID: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n IL: { firstDay: 7, weekend: [5, 6], minimalDays: 1 },\n IN: { firstDay: 7, weekend: [7], minimalDays: 1 },\n IQ: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n IR: { firstDay: 6, weekend: [5], minimalDays: 1 },\n IS: { firstDay: 7, weekend: [6, 7], minimalDays: 4 },\n JM: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n JO: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n JP: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n KE: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n KG: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n KH: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n KR: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n KW: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n KZ: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n LA: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n LB: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n LK: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n LV: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n LY: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n MD: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n ME: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n MH: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n MK: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n MM: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n MN: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n MO: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n MT: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n MV: { firstDay: 5, weekend: [6, 7], minimalDays: 1 },\n MX: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n MY: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n MZ: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n NI: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n NP: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n NZ: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n OM: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n PA: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n PE: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n PH: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n PK: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n PR: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n PT: { firstDay: 7, weekend: [6, 7], minimalDays: 4 },\n PY: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n QA: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n RO: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n RS: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n SA: { firstDay: 7, weekend: [5, 6], minimalDays: 1 },\n SD: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n SG: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n SI: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n SV: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n SY: { firstDay: 6, weekend: [5, 6], minimalDays: 1 },\n TH: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n TJ: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n TM: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n TR: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n TT: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n TW: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n UA: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n UG: { firstDay: 1, weekend: [7], minimalDays: 1 },\n UM: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n US: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n UY: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n UZ: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n VE: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n VI: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n VN: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n WS: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n XK: { firstDay: 1, weekend: [6, 7], minimalDays: 1 },\n YE: { firstDay: 7, weekend: [5, 6], minimalDays: 1 },\n ZA: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n ZW: { firstDay: 7, weekend: [6, 7], minimalDays: 1 },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar _1 = tslib_1.__importDefault(require(\"./\"));\nvar should_polyfill_1 = require(\"./should-polyfill\");\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n Object.defineProperty(Intl, 'RelativeTimeFormat', {\n value: _1.default,\n writable: true,\n enumerable: false,\n configurable: true,\n });\n}\n","/* @generated */\n// prettier-ignore\nif (Intl.RelativeTimeFormat && typeof Intl.RelativeTimeFormat.__addLocaleData === 'function') {\n Intl.RelativeTimeFormat.__addLocaleData({\n \"data\": {\n \"day\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0} day\",\n \"other\": \"in {0} days\"\n },\n \"past\": {\n \"one\": \"{0} day ago\",\n \"other\": \"{0} days ago\"\n }\n },\n \"day-narrow\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0}d\",\n \"other\": \"in {0}d\"\n },\n \"past\": {\n \"one\": \"{0}d ago\",\n \"other\": \"{0}d ago\"\n }\n },\n \"day-short\": {\n \"-1\": \"yesterday\",\n \"0\": \"today\",\n \"1\": \"tomorrow\",\n \"future\": {\n \"one\": \"in {0} day\",\n \"other\": \"in {0} days\"\n },\n \"past\": {\n \"one\": \"{0} day ago\",\n \"other\": \"{0} days ago\"\n }\n },\n \"hour\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0} hour\",\n \"other\": \"in {0} hours\"\n },\n \"past\": {\n \"one\": \"{0} hour ago\",\n \"other\": \"{0} hours ago\"\n }\n },\n \"hour-narrow\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0}h\",\n \"other\": \"in {0}h\"\n },\n \"past\": {\n \"one\": \"{0}h ago\",\n \"other\": \"{0}h ago\"\n }\n },\n \"hour-short\": {\n \"0\": \"this hour\",\n \"future\": {\n \"one\": \"in {0} hr.\",\n \"other\": \"in {0} hr.\"\n },\n \"past\": {\n \"one\": \"{0} hr. ago\",\n \"other\": \"{0} hr. ago\"\n }\n },\n \"minute\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0} minute\",\n \"other\": \"in {0} minutes\"\n },\n \"past\": {\n \"one\": \"{0} minute ago\",\n \"other\": \"{0} minutes ago\"\n }\n },\n \"minute-narrow\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0}m\",\n \"other\": \"in {0}m\"\n },\n \"past\": {\n \"one\": \"{0}m ago\",\n \"other\": \"{0}m ago\"\n }\n },\n \"minute-short\": {\n \"0\": \"this minute\",\n \"future\": {\n \"one\": \"in {0} min.\",\n \"other\": \"in {0} min.\"\n },\n \"past\": {\n \"one\": \"{0} min. ago\",\n \"other\": \"{0} min. ago\"\n }\n },\n \"month\": {\n \"-1\": \"last month\",\n \"0\": \"this month\",\n \"1\": \"next month\",\n \"future\": {\n \"one\": \"in {0} month\",\n \"other\": \"in {0} months\"\n },\n \"past\": {\n \"one\": \"{0} month ago\",\n \"other\": \"{0} months ago\"\n }\n },\n \"month-narrow\": {\n \"-1\": \"last mo.\",\n \"0\": \"this mo.\",\n \"1\": \"next mo.\",\n \"future\": {\n \"one\": \"in {0}mo\",\n \"other\": \"in {0}mo\"\n },\n \"past\": {\n \"one\": \"{0}mo ago\",\n \"other\": \"{0}mo ago\"\n }\n },\n \"month-short\": {\n \"-1\": \"last mo.\",\n \"0\": \"this mo.\",\n \"1\": \"next mo.\",\n \"future\": {\n \"one\": \"in {0} mo.\",\n \"other\": \"in {0} mo.\"\n },\n \"past\": {\n \"one\": \"{0} mo. ago\",\n \"other\": \"{0} mo. ago\"\n }\n },\n \"nu\": [\n \"latn\"\n ],\n \"quarter\": {\n \"-1\": \"last quarter\",\n \"0\": \"this quarter\",\n \"1\": \"next quarter\",\n \"future\": {\n \"one\": \"in {0} quarter\",\n \"other\": \"in {0} quarters\"\n },\n \"past\": {\n \"one\": \"{0} quarter ago\",\n \"other\": \"{0} quarters ago\"\n }\n },\n \"quarter-narrow\": {\n \"-1\": \"last qtr.\",\n \"0\": \"this qtr.\",\n \"1\": \"next qtr.\",\n \"future\": {\n \"one\": \"in {0}q\",\n \"other\": \"in {0}q\"\n },\n \"past\": {\n \"one\": \"{0}q ago\",\n \"other\": \"{0}q ago\"\n }\n },\n \"quarter-short\": {\n \"-1\": \"last qtr.\",\n \"0\": \"this qtr.\",\n \"1\": \"next qtr.\",\n \"future\": {\n \"one\": \"in {0} qtr.\",\n \"other\": \"in {0} qtrs.\"\n },\n \"past\": {\n \"one\": \"{0} qtr. ago\",\n \"other\": \"{0} qtrs. ago\"\n }\n },\n \"second\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0} second\",\n \"other\": \"in {0} seconds\"\n },\n \"past\": {\n \"one\": \"{0} second ago\",\n \"other\": \"{0} seconds ago\"\n }\n },\n \"second-narrow\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0}s\",\n \"other\": \"in {0}s\"\n },\n \"past\": {\n \"one\": \"{0}s ago\",\n \"other\": \"{0}s ago\"\n }\n },\n \"second-short\": {\n \"0\": \"now\",\n \"future\": {\n \"one\": \"in {0} sec.\",\n \"other\": \"in {0} sec.\"\n },\n \"past\": {\n \"one\": \"{0} sec. ago\",\n \"other\": \"{0} sec. ago\"\n }\n },\n \"week\": {\n \"-1\": \"last week\",\n \"0\": \"this week\",\n \"1\": \"next week\",\n \"future\": {\n \"one\": \"in {0} week\",\n \"other\": \"in {0} weeks\"\n },\n \"past\": {\n \"one\": \"{0} week ago\",\n \"other\": \"{0} weeks ago\"\n }\n },\n \"week-narrow\": {\n \"-1\": \"last wk.\",\n \"0\": \"this wk.\",\n \"1\": \"next wk.\",\n \"future\": {\n \"one\": \"in {0}w\",\n \"other\": \"in {0}w\"\n },\n \"past\": {\n \"one\": \"{0}w ago\",\n \"other\": \"{0}w ago\"\n }\n },\n \"week-short\": {\n \"-1\": \"last wk.\",\n \"0\": \"this wk.\",\n \"1\": \"next wk.\",\n \"future\": {\n \"one\": \"in {0} wk.\",\n \"other\": \"in {0} wk.\"\n },\n \"past\": {\n \"one\": \"{0} wk. ago\",\n \"other\": \"{0} wk. ago\"\n }\n },\n \"year\": {\n \"-1\": \"last year\",\n \"0\": \"this year\",\n \"1\": \"next year\",\n \"future\": {\n \"one\": \"in {0} year\",\n \"other\": \"in {0} years\"\n },\n \"past\": {\n \"one\": \"{0} year ago\",\n \"other\": \"{0} years ago\"\n }\n },\n \"year-narrow\": {\n \"-1\": \"last yr.\",\n \"0\": \"this yr.\",\n \"1\": \"next yr.\",\n \"future\": {\n \"one\": \"in {0}y\",\n \"other\": \"in {0}y\"\n },\n \"past\": {\n \"one\": \"{0}y ago\",\n \"other\": \"{0}y ago\"\n }\n },\n \"year-short\": {\n \"-1\": \"last yr.\",\n \"0\": \"this yr.\",\n \"1\": \"next yr.\",\n \"future\": {\n \"one\": \"in {0} yr.\",\n \"other\": \"in {0} yr.\"\n },\n \"past\": {\n \"one\": \"{0} yr. ago\",\n \"other\": \"{0} yr. ago\"\n }\n }\n },\n \"locale\": \"en\"\n})\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _1 = require(\"./\");\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar should_polyfill_1 = require(\"./should-polyfill\");\nvar to_locale_string_1 = require(\"./src/to_locale_string\");\nif ((0, should_polyfill_1.shouldPolyfill)()) {\n (0, ecma402_abstract_1.defineProperty)(Intl, 'DateTimeFormat', { value: _1.DateTimeFormat });\n (0, ecma402_abstract_1.defineProperty)(Date.prototype, 'toLocaleString', {\n value: function toLocaleString(locales, options) {\n if (options === void 0) { options = {\n dateStyle: 'short',\n timeStyle: 'medium',\n }; }\n try {\n return (0, to_locale_string_1.toLocaleString)(this, locales, options);\n }\n catch (error) {\n return 'Invalid Date';\n }\n },\n });\n (0, ecma402_abstract_1.defineProperty)(Date.prototype, 'toLocaleDateString', {\n value: function toLocaleDateString(locales, options) {\n if (options === void 0) { options = {\n dateStyle: 'short',\n }; }\n try {\n return (0, to_locale_string_1.toLocaleDateString)(this, locales, options);\n }\n catch (error) {\n return 'Invalid Date';\n }\n },\n });\n (0, ecma402_abstract_1.defineProperty)(Date.prototype, 'toLocaleTimeString', {\n value: function toLocaleTimeString(locales, options) {\n if (options === void 0) { options = {\n timeStyle: 'medium',\n }; }\n try {\n return (0, to_locale_string_1.toLocaleTimeString)(this, locales, options);\n }\n catch (error) {\n return 'Invalid Date';\n }\n },\n });\n}\n","/* @generated */\t\n// prettier-ignore\nif (Intl.DateTimeFormat && typeof Intl.DateTimeFormat.__addLocaleData === 'function') {\n Intl.DateTimeFormat.__addLocaleData({\n \"data\": {\n \"am\": \"AM\",\n \"pm\": \"PM\",\n \"weekday\": {\n \"narrow\": [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n \"short\": [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n \"long\": [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"era\": {\n \"narrow\": {\n \"BC\": \"B\",\n \"AD\": \"A\"\n },\n \"short\": {\n \"BC\": \"BC\",\n \"AD\": \"AD\"\n },\n \"long\": {\n \"BC\": \"Before Christ\",\n \"AD\": \"Anno Domini\"\n }\n },\n \"month\": {\n \"narrow\": [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n \"short\": [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n \"long\": [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n },\n \"timeZoneName\": {\n \"America/Rio_Branco\": {\n \"long\": [\n \"Acre Standard Time\",\n \"Acre Summer Time\"\n ]\n },\n \"Asia/Kabul\": {\n \"long\": [\n \"Afghanistan Time\",\n \"Afghanistan Time\"\n ]\n },\n \"Africa/Maputo\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Bujumbura\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Gaborone\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Lubumbashi\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Blantyre\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Kigali\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Lusaka\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Harare\": {\n \"long\": [\n \"Central Africa Time\",\n \"Central Africa Time\"\n ]\n },\n \"Africa/Nairobi\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Djibouti\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Asmera\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Addis_Ababa\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Indian/Comoro\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Indian/Antananarivo\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Mogadishu\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Dar_es_Salaam\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Kampala\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Indian/Mayotte\": {\n \"long\": [\n \"East Africa Time\",\n \"East Africa Time\"\n ]\n },\n \"Africa/Johannesburg\": {\n \"long\": [\n \"South Africa Standard Time\",\n \"South Africa Standard Time\"\n ]\n },\n \"Africa/Maseru\": {\n \"long\": [\n \"South Africa Standard Time\",\n \"South Africa Standard Time\"\n ]\n },\n \"Africa/Mbabane\": {\n \"long\": [\n \"South Africa Standard Time\",\n \"South Africa Standard Time\"\n ]\n },\n \"Africa/Lagos\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Luanda\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Porto-Novo\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Kinshasa\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Bangui\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Brazzaville\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Douala\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Libreville\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Malabo\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Niamey\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Africa/Ndjamena\": {\n \"long\": [\n \"West Africa Standard Time\",\n \"West Africa Summer Time\"\n ]\n },\n \"Asia/Aqtobe\": {\n \"long\": [\n \"West Kazakhstan Time\",\n \"West Kazakhstan Time\"\n ]\n },\n \"America/Juneau\": {\n \"long\": [\n \"Alaska Standard Time\",\n \"Alaska Daylight Time\"\n ],\n \"short\": [\n \"AKST\",\n \"AKDT\"\n ]\n },\n \"Asia/Almaty\": {\n \"long\": [\n \"East Kazakhstan Time\",\n \"East Kazakhstan Time\"\n ]\n },\n \"America/Manaus\": {\n \"long\": [\n \"Amazon Standard Time\",\n \"Amazon Summer Time\"\n ]\n },\n \"America/Chicago\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Belize\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Winnipeg\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Costa_Rica\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Guatemala\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Tegucigalpa\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/Mexico_City\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/El_Salvador\": {\n \"long\": [\n \"Central Standard Time\",\n \"Central Daylight Time\"\n ],\n \"short\": [\n \"CST\",\n \"CDT\"\n ]\n },\n \"America/New_York\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Nassau\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Toronto\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Port-au-Prince\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Jamaica\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Cayman\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Panama\": {\n \"long\": [\n \"Eastern Standard Time\",\n \"Eastern Daylight Time\"\n ],\n \"short\": [\n \"EST\",\n \"EDT\"\n ]\n },\n \"America/Denver\": {\n \"long\": [\n \"Mountain Standard Time\",\n \"Mountain Daylight Time\"\n ],\n \"short\": [\n \"MST\",\n \"MDT\"\n ]\n },\n \"America/Edmonton\": {\n \"long\": [\n \"Mountain Standard Time\",\n \"Mountain Daylight Time\"\n ],\n \"short\": [\n \"MST\",\n \"MDT\"\n ]\n },\n \"America/Los_Angeles\": {\n \"long\": [\n \"Pacific Standard Time\",\n \"Pacific Daylight Time\"\n ],\n \"short\": [\n \"PST\",\n \"PDT\"\n ]\n },\n \"America/Vancouver\": {\n \"long\": [\n \"Pacific Standard Time\",\n \"Pacific Daylight Time\"\n ],\n \"short\": [\n \"PST\",\n \"PDT\"\n ]\n },\n \"America/Tijuana\": {\n \"long\": [\n \"Pacific Standard Time\",\n \"Pacific Daylight Time\"\n ],\n \"short\": [\n \"PST\",\n \"PDT\"\n ]\n },\n \"Asia/Anadyr\": {\n \"long\": [\n \"Anadyr Standard Time\",\n \"Anadyr Summer Time\"\n ]\n },\n \"Pacific/Apia\": {\n \"long\": [\n \"Apia Standard Time\",\n \"Apia Daylight Time\"\n ]\n },\n \"Asia/Riyadh\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"Asia/Bahrain\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"Asia/Baghdad\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"Asia/Kuwait\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"Asia/Qatar\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"Asia/Aden\": {\n \"long\": [\n \"Arabian Standard Time\",\n \"Arabian Daylight Time\"\n ]\n },\n \"America/Buenos_Aires\": {\n \"long\": [\n \"Argentina Standard Time\",\n \"Argentina Summer Time\"\n ]\n },\n \"America/Argentina/San_Luis\": {\n \"long\": [\n \"Western Argentina Standard Time\",\n \"Western Argentina Summer Time\"\n ]\n },\n \"Asia/Ashgabat\": {\n \"long\": [\n \"Turkmenistan Standard Time\",\n \"Turkmenistan Summer Time\"\n ]\n },\n \"America/Halifax\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Antigua\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Anguilla\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Aruba\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Barbados\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"Atlantic/Bermuda\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Kralendijk\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Curacao\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Dominica\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Grenada\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Thule\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Guadeloupe\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/St_Kitts\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/St_Lucia\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Marigot\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Martinique\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Montserrat\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Puerto_Rico\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Lower_Princes\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Port_of_Spain\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/St_Vincent\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/Tortola\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"America/St_Thomas\": {\n \"long\": [\n \"Atlantic Standard Time\",\n \"Atlantic Daylight Time\"\n ],\n \"short\": [\n \"AST\",\n \"ADT\"\n ]\n },\n \"Australia/Adelaide\": {\n \"long\": [\n \"Australian Central Standard Time\",\n \"Australian Central Daylight Time\"\n ]\n },\n \"Australia/Eucla\": {\n \"long\": [\n \"Australian Central Western Standard Time\",\n \"Australian Central Western Daylight Time\"\n ]\n },\n \"Australia/Sydney\": {\n \"long\": [\n \"Australian Eastern Standard Time\",\n \"Australian Eastern Daylight Time\"\n ]\n },\n \"Australia/Perth\": {\n \"long\": [\n \"Australian Western Standard Time\",\n \"Australian Western Daylight Time\"\n ]\n },\n \"Atlantic/Azores\": {\n \"long\": [\n \"Azores Standard Time\",\n \"Azores Summer Time\"\n ]\n },\n \"Asia/Thimphu\": {\n \"long\": [\n \"Bhutan Time\",\n \"Bhutan Time\"\n ]\n },\n \"America/La_Paz\": {\n \"long\": [\n \"Bolivia Time\",\n \"Bolivia Time\"\n ]\n },\n \"Asia/Kuching\": {\n \"long\": [\n \"Malaysia Time\",\n \"Malaysia Time\"\n ]\n },\n \"America/Sao_Paulo\": {\n \"long\": [\n \"Brasilia Standard Time\",\n \"Brasilia Summer Time\"\n ]\n },\n \"Europe/London\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Asia/Brunei\": {\n \"long\": [\n \"Brunei Darussalam Time\",\n \"Brunei Darussalam Time\"\n ]\n },\n \"Atlantic/Cape_Verde\": {\n \"long\": [\n \"Cape Verde Standard Time\",\n \"Cape Verde Summer Time\"\n ]\n },\n \"Antarctica/Casey\": {\n \"long\": [\n \"Casey Time\",\n \"Casey Time\"\n ]\n },\n \"Pacific/Saipan\": {\n \"long\": [\n \"North Mariana Islands Time\",\n \"North Mariana Islands Time\"\n ]\n },\n \"Pacific/Guam\": {\n \"long\": [\n \"Guam Standard Time\",\n \"Guam Standard Time\"\n ]\n },\n \"Pacific/Chatham\": {\n \"long\": [\n \"Chatham Standard Time\",\n \"Chatham Daylight Time\"\n ]\n },\n \"America/Santiago\": {\n \"long\": [\n \"Chile Standard Time\",\n \"Chile Summer Time\"\n ]\n },\n \"Asia/Shanghai\": {\n \"long\": [\n \"China Standard Time\",\n \"China Daylight Time\"\n ]\n },\n \"Indian/Christmas\": {\n \"long\": [\n \"Christmas Island Time\",\n \"Christmas Island Time\"\n ]\n },\n \"Indian/Cocos\": {\n \"long\": [\n \"Cocos Islands Time\",\n \"Cocos Islands Time\"\n ]\n },\n \"America/Bogota\": {\n \"long\": [\n \"Colombia Standard Time\",\n \"Colombia Summer Time\"\n ]\n },\n \"Pacific/Rarotonga\": {\n \"long\": [\n \"Cook Islands Standard Time\",\n \"Cook Islands Half Summer Time\"\n ]\n },\n \"America/Havana\": {\n \"long\": [\n \"Cuba Standard Time\",\n \"Cuba Daylight Time\"\n ]\n },\n \"Antarctica/Davis\": {\n \"long\": [\n \"Davis Time\",\n \"Davis Time\"\n ]\n },\n \"Antarctica/DumontDUrville\": {\n \"long\": [\n \"Dumont-d’Urville Time\",\n \"Dumont-d’Urville Time\"\n ]\n },\n \"Asia/Dushanbe\": {\n \"long\": [\n \"Tajikistan Time\",\n \"Tajikistan Time\"\n ]\n },\n \"America/Paramaribo\": {\n \"long\": [\n \"Suriname Time\",\n \"Suriname Time\"\n ]\n },\n \"Asia/Dili\": {\n \"long\": [\n \"East Timor Time\",\n \"East Timor Time\"\n ]\n },\n \"Pacific/Easter\": {\n \"long\": [\n \"Easter Island Standard Time\",\n \"Easter Island Summer Time\"\n ]\n },\n \"America/Guayaquil\": {\n \"long\": [\n \"Ecuador Time\",\n \"Ecuador Time\"\n ]\n },\n \"Europe/Paris\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Andorra\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Tirane\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Vienna\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Sarajevo\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Brussels\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Zurich\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Prague\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Berlin\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Copenhagen\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Madrid\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Gibraltar\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Zagreb\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Budapest\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Rome\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Vaduz\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Luxembourg\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Monaco\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Podgorica\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Skopje\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Malta\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Amsterdam\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Oslo\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Warsaw\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Belgrade\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Stockholm\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Ljubljana\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Arctic/Longyearbyen\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Bratislava\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/San_Marino\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Africa/Tunis\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Vatican\": {\n \"long\": [\n \"Central European Standard Time\",\n \"Central European Summer Time\"\n ]\n },\n \"Europe/Bucharest\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Europe/Mariehamn\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Europe/Sofia\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Asia/Nicosia\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Africa/Cairo\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Europe/Helsinki\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Europe/Athens\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Asia/Beirut\": {\n \"long\": [\n \"Eastern European Standard Time\",\n \"Eastern European Summer Time\"\n ]\n },\n \"Europe/Minsk\": {\n \"long\": [\n \"Further-eastern European Time\",\n \"Further-eastern European Time\"\n ]\n },\n \"Europe/Kaliningrad\": {\n \"long\": [\n \"Further-eastern European Time\",\n \"Further-eastern European Time\"\n ]\n },\n \"Atlantic/Canary\": {\n \"long\": [\n \"Western European Standard Time\",\n \"Western European Summer Time\"\n ]\n },\n \"Atlantic/Faeroe\": {\n \"long\": [\n \"Western European Standard Time\",\n \"Western European Summer Time\"\n ]\n },\n \"Atlantic/Stanley\": {\n \"long\": [\n \"Falkland Islands Standard Time\",\n \"Falkland Islands Summer Time\"\n ]\n },\n \"Pacific/Fiji\": {\n \"long\": [\n \"Fiji Standard Time\",\n \"Fiji Summer Time\"\n ]\n },\n \"America/Cayenne\": {\n \"long\": [\n \"French Guiana Time\",\n \"French Guiana Time\"\n ]\n },\n \"Indian/Kerguelen\": {\n \"long\": [\n \"French Southern & Antarctic Time\",\n \"French Southern & Antarctic Time\"\n ]\n },\n \"Asia/Bishkek\": {\n \"long\": [\n \"Kyrgyzstan Time\",\n \"Kyrgyzstan Time\"\n ]\n },\n \"Pacific/Galapagos\": {\n \"long\": [\n \"Galapagos Time\",\n \"Galapagos Time\"\n ]\n },\n \"Pacific/Gambier\": {\n \"long\": [\n \"Gambier Time\",\n \"Gambier Time\"\n ]\n },\n \"Pacific/Tarawa\": {\n \"long\": [\n \"Gilbert Islands Time\",\n \"Gilbert Islands Time\"\n ]\n },\n \"Atlantic/Reykjavik\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Ouagadougou\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Abidjan\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Accra\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Banjul\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Conakry\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Bamako\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Nouakchott\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Atlantic/St_Helena\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Freetown\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Dakar\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"Africa/Lome\": {\n \"long\": [\n \"Greenwich Mean Time\",\n \"Greenwich Mean Time\"\n ],\n \"short\": [\n \"GMT\",\n \"GMT\"\n ]\n },\n \"America/Godthab\": {\n \"long\": [\n \"West Greenland Standard Time\",\n \"West Greenland Summer Time\"\n ]\n },\n \"America/Scoresbysund\": {\n \"long\": [\n \"East Greenland Standard Time\",\n \"East Greenland Summer Time\"\n ]\n },\n \"Asia/Dubai\": {\n \"long\": [\n \"Gulf Standard Time\",\n \"Gulf Standard Time\"\n ]\n },\n \"Asia/Muscat\": {\n \"long\": [\n \"Gulf Standard Time\",\n \"Gulf Standard Time\"\n ]\n },\n \"America/Guyana\": {\n \"long\": [\n \"Guyana Time\",\n \"Guyana Time\"\n ]\n },\n \"Pacific/Honolulu\": {\n \"long\": [\n \"Hawaii-Aleutian Standard Time\",\n \"Hawaii-Aleutian Daylight Time\"\n ],\n \"short\": [\n \"HAST\",\n \"HADT\"\n ]\n },\n \"Asia/Hong_Kong\": {\n \"long\": [\n \"Hong Kong Standard Time\",\n \"Hong Kong Summer Time\"\n ]\n },\n \"Asia/Hovd\": {\n \"long\": [\n \"Hovd Standard Time\",\n \"Hovd Summer Time\"\n ]\n },\n \"Asia/Calcutta\": {\n \"long\": [\n \"India Standard Time\",\n \"India Standard Time\"\n ]\n },\n \"Asia/Colombo\": {\n \"long\": [\n \"Lanka Time\",\n \"Lanka Time\"\n ]\n },\n \"Indian/Chagos\": {\n \"long\": [\n \"Indian Ocean Time\",\n \"Indian Ocean Time\"\n ]\n },\n \"Asia/Bangkok\": {\n \"long\": [\n \"Indochina Time\",\n \"Indochina Time\"\n ]\n },\n \"Asia/Phnom_Penh\": {\n \"long\": [\n \"Indochina Time\",\n \"Indochina Time\"\n ]\n },\n \"Asia/Vientiane\": {\n \"long\": [\n \"Indochina Time\",\n \"Indochina Time\"\n ]\n },\n \"Asia/Makassar\": {\n \"long\": [\n \"Central Indonesia Time\",\n \"Central Indonesia Time\"\n ]\n },\n \"Asia/Jayapura\": {\n \"long\": [\n \"Eastern Indonesia Time\",\n \"Eastern Indonesia Time\"\n ]\n },\n \"Asia/Jakarta\": {\n \"long\": [\n \"Western Indonesia Time\",\n \"Western Indonesia Time\"\n ]\n },\n \"Asia/Tehran\": {\n \"long\": [\n \"Iran Standard Time\",\n \"Iran Daylight Time\"\n ]\n },\n \"Asia/Irkutsk\": {\n \"long\": [\n \"Irkutsk Standard Time\",\n \"Irkutsk Summer Time\"\n ]\n },\n \"Asia/Jerusalem\": {\n \"long\": [\n \"Israel Standard Time\",\n \"Israel Daylight Time\"\n ]\n },\n \"Asia/Tokyo\": {\n \"long\": [\n \"Japan Standard Time\",\n \"Japan Daylight Time\"\n ]\n },\n \"Asia/Kamchatka\": {\n \"long\": [\n \"Petropavlovsk-Kamchatski Standard Time\",\n \"Petropavlovsk-Kamchatski Summer Time\"\n ]\n },\n \"Asia/Karachi\": {\n \"long\": [\n \"Pakistan Standard Time\",\n \"Pakistan Summer Time\"\n ]\n },\n \"Asia/Qyzylorda\": {\n \"long\": [\n \"Qyzylorda Standard Time\",\n \"Qyzylorda Summer Time\"\n ]\n },\n \"Asia/Seoul\": {\n \"long\": [\n \"Korean Standard Time\",\n \"Korean Daylight Time\"\n ]\n },\n \"Pacific/Kosrae\": {\n \"long\": [\n \"Kosrae Time\",\n \"Kosrae Time\"\n ]\n },\n \"Asia/Krasnoyarsk\": {\n \"long\": [\n \"Krasnoyarsk Standard Time\",\n \"Krasnoyarsk Summer Time\"\n ]\n },\n \"Europe/Samara\": {\n \"long\": [\n \"Samara Standard Time\",\n \"Samara Summer Time\"\n ]\n },\n \"Pacific/Kiritimati\": {\n \"long\": [\n \"Line Islands Time\",\n \"Line Islands Time\"\n ]\n },\n \"Australia/Lord_Howe\": {\n \"long\": [\n \"Lord Howe Standard Time\",\n \"Lord Howe Daylight Time\"\n ]\n },\n \"Asia/Macau\": {\n \"long\": [\n \"Macao Standard Time\",\n \"Macao Summer Time\"\n ]\n },\n \"Asia/Magadan\": {\n \"long\": [\n \"Magadan Standard Time\",\n \"Magadan Summer Time\"\n ]\n },\n \"Indian/Maldives\": {\n \"long\": [\n \"Maldives Time\",\n \"Maldives Time\"\n ]\n },\n \"Pacific/Marquesas\": {\n \"long\": [\n \"Marquesas Time\",\n \"Marquesas Time\"\n ]\n },\n \"Pacific/Majuro\": {\n \"long\": [\n \"Marshall Islands Time\",\n \"Marshall Islands Time\"\n ]\n },\n \"Indian/Mauritius\": {\n \"long\": [\n \"Mauritius Standard Time\",\n \"Mauritius Summer Time\"\n ]\n },\n \"Antarctica/Mawson\": {\n \"long\": [\n \"Mawson Time\",\n \"Mawson Time\"\n ]\n },\n \"America/Mazatlan\": {\n \"long\": [\n \"Mexican Pacific Standard Time\",\n \"Mexican Pacific Daylight Time\"\n ]\n },\n \"Asia/Ulaanbaatar\": {\n \"long\": [\n \"Ulaanbaatar Standard Time\",\n \"Ulaanbaatar Summer Time\"\n ]\n },\n \"Europe/Moscow\": {\n \"long\": [\n \"Moscow Standard Time\",\n \"Moscow Summer Time\"\n ]\n },\n \"Asia/Rangoon\": {\n \"long\": [\n \"Myanmar Time\",\n \"Myanmar Time\"\n ]\n },\n \"Pacific/Nauru\": {\n \"long\": [\n \"Nauru Time\",\n \"Nauru Time\"\n ]\n },\n \"Asia/Katmandu\": {\n \"long\": [\n \"Nepal Time\",\n \"Nepal Time\"\n ]\n },\n \"Pacific/Noumea\": {\n \"long\": [\n \"New Caledonia Standard Time\",\n \"New Caledonia Summer Time\"\n ]\n },\n \"Pacific/Auckland\": {\n \"long\": [\n \"New Zealand Standard Time\",\n \"New Zealand Daylight Time\"\n ]\n },\n \"Antarctica/McMurdo\": {\n \"long\": [\n \"New Zealand Standard Time\",\n \"New Zealand Daylight Time\"\n ]\n },\n \"America/St_Johns\": {\n \"long\": [\n \"Newfoundland Standard Time\",\n \"Newfoundland Daylight Time\"\n ]\n },\n \"Pacific/Niue\": {\n \"long\": [\n \"Niue Time\",\n \"Niue Time\"\n ]\n },\n \"Pacific/Norfolk\": {\n \"long\": [\n \"Norfolk Island Standard Time\",\n \"Norfolk Island Daylight Time\"\n ]\n },\n \"America/Noronha\": {\n \"long\": [\n \"Fernando de Noronha Standard Time\",\n \"Fernando de Noronha Summer Time\"\n ]\n },\n \"Asia/Novosibirsk\": {\n \"long\": [\n \"Novosibirsk Standard Time\",\n \"Novosibirsk Summer Time\"\n ]\n },\n \"Asia/Omsk\": {\n \"long\": [\n \"Omsk Standard Time\",\n \"Omsk Summer Time\"\n ]\n },\n \"Pacific/Palau\": {\n \"long\": [\n \"Palau Time\",\n \"Palau Time\"\n ]\n },\n \"Pacific/Port_Moresby\": {\n \"long\": [\n \"Papua New Guinea Time\",\n \"Papua New Guinea Time\"\n ]\n },\n \"America/Asuncion\": {\n \"long\": [\n \"Paraguay Standard Time\",\n \"Paraguay Summer Time\"\n ]\n },\n \"America/Lima\": {\n \"long\": [\n \"Peru Standard Time\",\n \"Peru Summer Time\"\n ]\n },\n \"Asia/Manila\": {\n \"long\": [\n \"Philippine Standard Time\",\n \"Philippine Summer Time\"\n ]\n },\n \"Pacific/Enderbury\": {\n \"long\": [\n \"Phoenix Islands Time\",\n \"Phoenix Islands Time\"\n ]\n },\n \"America/Miquelon\": {\n \"long\": [\n \"St. Pierre & Miquelon Standard Time\",\n \"St. Pierre & Miquelon Daylight Time\"\n ]\n },\n \"Pacific/Pitcairn\": {\n \"long\": [\n \"Pitcairn Time\",\n \"Pitcairn Time\"\n ]\n },\n \"Pacific/Ponape\": {\n \"long\": [\n \"Ponape Time\",\n \"Ponape Time\"\n ]\n },\n \"Asia/Pyongyang\": {\n \"long\": [\n \"Pyongyang Time\",\n \"Pyongyang Time\"\n ]\n },\n \"Indian/Reunion\": {\n \"long\": [\n \"Réunion Time\",\n \"Réunion Time\"\n ]\n },\n \"Antarctica/Rothera\": {\n \"long\": [\n \"Rothera Time\",\n \"Rothera Time\"\n ]\n },\n \"Asia/Sakhalin\": {\n \"long\": [\n \"Sakhalin Standard Time\",\n \"Sakhalin Summer Time\"\n ]\n },\n \"Pacific/Pago_Pago\": {\n \"long\": [\n \"Samoa Standard Time\",\n \"Samoa Daylight Time\"\n ]\n },\n \"Indian/Mahe\": {\n \"long\": [\n \"Seychelles Time\",\n \"Seychelles Time\"\n ]\n },\n \"Asia/Singapore\": {\n \"long\": [\n \"Singapore Standard Time\",\n \"Singapore Standard Time\"\n ]\n },\n \"Pacific/Guadalcanal\": {\n \"long\": [\n \"Solomon Islands Time\",\n \"Solomon Islands Time\"\n ]\n },\n \"Atlantic/South_Georgia\": {\n \"long\": [\n \"South Georgia Time\",\n \"South Georgia Time\"\n ]\n },\n \"Asia/Yekaterinburg\": {\n \"long\": [\n \"Yekaterinburg Standard Time\",\n \"Yekaterinburg Summer Time\"\n ]\n },\n \"Antarctica/Syowa\": {\n \"long\": [\n \"Syowa Time\",\n \"Syowa Time\"\n ]\n },\n \"Pacific/Tahiti\": {\n \"long\": [\n \"Tahiti Time\",\n \"Tahiti Time\"\n ]\n },\n \"Asia/Taipei\": {\n \"long\": [\n \"Taipei Standard Time\",\n \"Taipei Daylight Time\"\n ]\n },\n \"Asia/Tashkent\": {\n \"long\": [\n \"Uzbekistan Standard Time\",\n \"Uzbekistan Summer Time\"\n ]\n },\n \"Pacific/Fakaofo\": {\n \"long\": [\n \"Tokelau Time\",\n \"Tokelau Time\"\n ]\n },\n \"Pacific/Tongatapu\": {\n \"long\": [\n \"Tonga Standard Time\",\n \"Tonga Summer Time\"\n ]\n },\n \"Pacific/Truk\": {\n \"long\": [\n \"Chuuk Time\",\n \"Chuuk Time\"\n ]\n },\n \"Pacific/Funafuti\": {\n \"long\": [\n \"Tuvalu Time\",\n \"Tuvalu Time\"\n ]\n },\n \"America/Montevideo\": {\n \"long\": [\n \"Uruguay Standard Time\",\n \"Uruguay Summer Time\"\n ]\n },\n \"Pacific/Efate\": {\n \"long\": [\n \"Vanuatu Standard Time\",\n \"Vanuatu Summer Time\"\n ]\n },\n \"America/Caracas\": {\n \"long\": [\n \"Venezuela Time\",\n \"Venezuela Time\"\n ]\n },\n \"Asia/Vladivostok\": {\n \"long\": [\n \"Vladivostok Standard Time\",\n \"Vladivostok Summer Time\"\n ]\n },\n \"Europe/Volgograd\": {\n \"long\": [\n \"Volgograd Standard Time\",\n \"Volgograd Summer Time\"\n ]\n },\n \"Antarctica/Vostok\": {\n \"long\": [\n \"Vostok Time\",\n \"Vostok Time\"\n ]\n },\n \"Pacific/Wake\": {\n \"long\": [\n \"Wake Island Time\",\n \"Wake Island Time\"\n ]\n },\n \"Pacific/Wallis\": {\n \"long\": [\n \"Wallis & Futuna Time\",\n \"Wallis & Futuna Time\"\n ]\n },\n \"Asia/Yakutsk\": {\n \"long\": [\n \"Yakutsk Standard Time\",\n \"Yakutsk Summer Time\"\n ]\n },\n \"America/Whitehorse\": {\n \"long\": [\n \"Yukon Time\",\n \"Yukon Time\"\n ]\n },\n \"UTC\": {\n \"long\": [\n \"Coordinated Universal Time\",\n \"Coordinated Universal Time\"\n ],\n \"short\": [\n \"UTC\",\n \"UTC\"\n ]\n }\n },\n \"gmtFormat\": \"GMT{0}\",\n \"hourFormat\": \"+HH:mm;-HH:mm\",\n \"dateFormat\": {\n \"full\": \"EEEE, MMMM d, y\",\n \"long\": \"MMMM d, y\",\n \"medium\": \"MMM d, y\",\n \"short\": \"M/d/yy\"\n },\n \"timeFormat\": {\n \"full\": \"h:mm:ss a zzzz\",\n \"long\": \"h:mm:ss a z\",\n \"medium\": \"h:mm:ss a\",\n \"short\": \"h:mm a\"\n },\n \"dateTimeFormat\": {\n \"full\": \"{1}, {0}\",\n \"long\": \"{1}, {0}\",\n \"medium\": \"{1}, {0}\",\n \"short\": \"{1}, {0}\"\n },\n \"formats\": {\n \"gregory\": {\n \"Bh\": \"h B\",\n \"Bhm\": \"h:mm B\",\n \"Bhms\": \"h:mm:ss B\",\n \"d\": \"d\",\n \"E\": \"ccc\",\n \"EBhm\": \"E h:mm B\",\n \"EBhms\": \"E h:mm:ss B\",\n \"Ed\": \"d E\",\n \"Ehm\": \"E h:mm a\",\n \"Ehm-alt-ascii\": \"E h:mm a\",\n \"EHm\": \"E HH:mm\",\n \"Ehms\": \"E h:mm:ss a\",\n \"Ehms-alt-ascii\": \"E h:mm:ss a\",\n \"EHms\": \"E HH:mm:ss\",\n \"Gy\": \"y G\",\n \"GyMd\": \"M/d/y G\",\n \"GyMMM\": \"MMM y G\",\n \"GyMMMd\": \"MMM d, y G\",\n \"GyMMMEd\": \"E, MMM d, y G\",\n \"h\": \"h a\",\n \"h-alt-ascii\": \"h a\",\n \"H\": \"HH\",\n \"hm\": \"h:mm a\",\n \"hm-alt-ascii\": \"h:mm a\",\n \"Hm\": \"HH:mm\",\n \"hms\": \"h:mm:ss a\",\n \"hms-alt-ascii\": \"h:mm:ss a\",\n \"Hms\": \"HH:mm:ss\",\n \"hmsv\": \"h:mm:ss a v\",\n \"hmsv-alt-ascii\": \"h:mm:ss a v\",\n \"Hmsv\": \"HH:mm:ss v\",\n \"hmv\": \"h:mm a v\",\n \"hmv-alt-ascii\": \"h:mm a v\",\n \"Hmv\": \"HH:mm v\",\n \"M\": \"L\",\n \"Md\": \"M/d\",\n \"MEd\": \"E, M/d\",\n \"MMM\": \"LLL\",\n \"MMMd\": \"MMM d\",\n \"MMMEd\": \"E, MMM d\",\n \"MMMMd\": \"MMMM d\",\n \"ms\": \"mm:ss\",\n \"y\": \"y\",\n \"yM\": \"M/y\",\n \"yMd\": \"M/d/y\",\n \"yMEd\": \"E, M/d/y\",\n \"yMMM\": \"MMM y\",\n \"yMMMd\": \"MMM d, y\",\n \"yMMMEd\": \"E, MMM d, y\",\n \"yMMMM\": \"MMMM y\",\n \"EEEE, MMMM d, y\": \"EEEE, MMMM d, y\",\n \"MMMM d, y\": \"MMMM d, y\",\n \"MMM d, y\": \"MMM d, y\",\n \"M/d/yy\": \"M/d/yy\",\n \"h:mm:ss a zzzz\": \"h:mm:ss a zzzz\",\n \"h:mm:ss a zzzz\": \"h:mm:ss a zzzz\",\n \"h:mm:ss a z\": \"h:mm:ss a z\",\n \"h:mm:ss a z\": \"h:mm:ss a z\",\n \"h:mm:ss a\": \"h:mm:ss a\",\n \"h:mm:ss a\": \"h:mm:ss a\",\n \"h:mm a\": \"h:mm a\",\n \"h:mm a\": \"h:mm a\",\n \"EEEE, MMMM d, y, h:mm:ss a zzzz\": \"EEEE, MMMM d, y, h:mm:ss a zzzz\",\n \"MMMM d, y, h:mm:ss a zzzz\": \"MMMM d, y, h:mm:ss a zzzz\",\n \"MMM d, y, h:mm:ss a zzzz\": \"MMM d, y, h:mm:ss a zzzz\",\n \"M/d/yy, h:mm:ss a zzzz\": \"M/d/yy, h:mm:ss a zzzz\",\n \"d, h:mm:ss a zzzz\": \"d, h:mm:ss a zzzz\",\n \"E, h:mm:ss a zzzz\": \"ccc, h:mm:ss a zzzz\",\n \"Ed, h:mm:ss a zzzz\": \"d E, h:mm:ss a zzzz\",\n \"Gy, h:mm:ss a zzzz\": \"y G, h:mm:ss a zzzz\",\n \"GyMd, h:mm:ss a zzzz\": \"M/d/y G, h:mm:ss a zzzz\",\n \"GyMMM, h:mm:ss a zzzz\": \"MMM y G, h:mm:ss a zzzz\",\n \"GyMMMd, h:mm:ss a zzzz\": \"MMM d, y G, h:mm:ss a zzzz\",\n \"GyMMMEd, h:mm:ss a zzzz\": \"E, MMM d, y G, h:mm:ss a zzzz\",\n \"M, h:mm:ss a zzzz\": \"L, h:mm:ss a zzzz\",\n \"Md, h:mm:ss a zzzz\": \"M/d, h:mm:ss a zzzz\",\n \"MEd, h:mm:ss a zzzz\": \"E, M/d, h:mm:ss a zzzz\",\n \"MMM, h:mm:ss a zzzz\": \"LLL, h:mm:ss a zzzz\",\n \"MMMd, h:mm:ss a zzzz\": \"MMM d, h:mm:ss a zzzz\",\n \"MMMEd, h:mm:ss a zzzz\": \"E, MMM d, h:mm:ss a zzzz\",\n \"MMMMd, h:mm:ss a zzzz\": \"MMMM d, h:mm:ss a zzzz\",\n \"y, h:mm:ss a zzzz\": \"y, h:mm:ss a zzzz\",\n \"yM, h:mm:ss a zzzz\": \"M/y, h:mm:ss a zzzz\",\n \"yMd, h:mm:ss a zzzz\": \"M/d/y, h:mm:ss a zzzz\",\n \"yMEd, h:mm:ss a zzzz\": \"E, M/d/y, h:mm:ss a zzzz\",\n \"yMMM, h:mm:ss a zzzz\": \"MMM y, h:mm:ss a zzzz\",\n \"yMMMd, h:mm:ss a zzzz\": \"MMM d, y, h:mm:ss a zzzz\",\n \"yMMMEd, h:mm:ss a zzzz\": \"E, MMM d, y, h:mm:ss a zzzz\",\n \"yMMMM, h:mm:ss a zzzz\": \"MMMM y, h:mm:ss a zzzz\",\n \"EEEE, MMMM d, y, h:mm:ss a zzzz\": \"EEEE, MMMM d, y, h:mm:ss a zzzz\",\n \"MMMM d, y, h:mm:ss a zzzz\": \"MMMM d, y, h:mm:ss a zzzz\",\n \"MMM d, y, h:mm:ss a zzzz\": \"MMM d, y, h:mm:ss a zzzz\",\n \"M/d/yy, h:mm:ss a zzzz\": \"M/d/yy, h:mm:ss a zzzz\",\n \"d, h:mm:ss a zzzz\": \"d, h:mm:ss a zzzz\",\n \"E, h:mm:ss a zzzz\": \"ccc, h:mm:ss a zzzz\",\n \"Ed, h:mm:ss a zzzz\": \"d E, h:mm:ss a zzzz\",\n \"Gy, h:mm:ss a zzzz\": \"y G, h:mm:ss a zzzz\",\n \"GyMd, h:mm:ss a zzzz\": \"M/d/y G, h:mm:ss a zzzz\",\n \"GyMMM, h:mm:ss a zzzz\": \"MMM y G, h:mm:ss a zzzz\",\n \"GyMMMd, h:mm:ss a zzzz\": \"MMM d, y G, h:mm:ss a zzzz\",\n \"GyMMMEd, h:mm:ss a zzzz\": \"E, MMM d, y G, h:mm:ss a zzzz\",\n \"M, h:mm:ss a zzzz\": \"L, h:mm:ss a zzzz\",\n \"Md, h:mm:ss a zzzz\": \"M/d, h:mm:ss a zzzz\",\n \"MEd, h:mm:ss a zzzz\": \"E, M/d, h:mm:ss a zzzz\",\n \"MMM, h:mm:ss a zzzz\": \"LLL, h:mm:ss a zzzz\",\n \"MMMd, h:mm:ss a zzzz\": \"MMM d, h:mm:ss a zzzz\",\n \"MMMEd, h:mm:ss a zzzz\": \"E, MMM d, h:mm:ss a zzzz\",\n \"MMMMd, h:mm:ss a zzzz\": \"MMMM d, h:mm:ss a zzzz\",\n \"y, h:mm:ss a zzzz\": \"y, h:mm:ss a zzzz\",\n \"yM, h:mm:ss a zzzz\": \"M/y, h:mm:ss a zzzz\",\n \"yMd, h:mm:ss a zzzz\": \"M/d/y, h:mm:ss a zzzz\",\n \"yMEd, h:mm:ss a zzzz\": \"E, M/d/y, h:mm:ss a zzzz\",\n \"yMMM, h:mm:ss a zzzz\": \"MMM y, h:mm:ss a zzzz\",\n \"yMMMd, h:mm:ss a zzzz\": \"MMM d, y, h:mm:ss a zzzz\",\n \"yMMMEd, h:mm:ss a zzzz\": \"E, MMM d, y, h:mm:ss a zzzz\",\n \"yMMMM, h:mm:ss a zzzz\": \"MMMM y, h:mm:ss a zzzz\",\n \"EEEE, MMMM d, y, h:mm:ss a z\": \"EEEE, MMMM d, y, h:mm:ss a z\",\n \"MMMM d, y, h:mm:ss a z\": \"MMMM d, y, h:mm:ss a z\",\n \"MMM d, y, h:mm:ss a z\": \"MMM d, y, h:mm:ss a z\",\n \"M/d/yy, h:mm:ss a z\": \"M/d/yy, h:mm:ss a z\",\n \"d, h:mm:ss a z\": \"d, h:mm:ss a z\",\n \"E, h:mm:ss a z\": \"ccc, h:mm:ss a z\",\n \"Ed, h:mm:ss a z\": \"d E, h:mm:ss a z\",\n \"Gy, h:mm:ss a z\": \"y G, h:mm:ss a z\",\n \"GyMd, h:mm:ss a z\": \"M/d/y G, h:mm:ss a z\",\n \"GyMMM, h:mm:ss a z\": \"MMM y G, h:mm:ss a z\",\n \"GyMMMd, h:mm:ss a z\": \"MMM d, y G, h:mm:ss a z\",\n \"GyMMMEd, h:mm:ss a z\": \"E, MMM d, y G, h:mm:ss a z\",\n \"M, h:mm:ss a z\": \"L, h:mm:ss a z\",\n \"Md, h:mm:ss a z\": \"M/d, h:mm:ss a z\",\n \"MEd, h:mm:ss a z\": \"E, M/d, h:mm:ss a z\",\n \"MMM, h:mm:ss a z\": \"LLL, h:mm:ss a z\",\n \"MMMd, h:mm:ss a z\": \"MMM d, h:mm:ss a z\",\n \"MMMEd, h:mm:ss a z\": \"E, MMM d, h:mm:ss a z\",\n \"MMMMd, h:mm:ss a z\": \"MMMM d, h:mm:ss a z\",\n \"y, h:mm:ss a z\": \"y, h:mm:ss a z\",\n \"yM, h:mm:ss a z\": \"M/y, h:mm:ss a z\",\n \"yMd, h:mm:ss a z\": \"M/d/y, h:mm:ss a z\",\n \"yMEd, h:mm:ss a z\": \"E, M/d/y, h:mm:ss a z\",\n \"yMMM, h:mm:ss a z\": \"MMM y, h:mm:ss a z\",\n \"yMMMd, h:mm:ss a z\": \"MMM d, y, h:mm:ss a z\",\n \"yMMMEd, h:mm:ss a z\": \"E, MMM d, y, h:mm:ss a z\",\n \"yMMMM, h:mm:ss a z\": \"MMMM y, h:mm:ss a z\",\n \"EEEE, MMMM d, y, h:mm:ss a z\": \"EEEE, MMMM d, y, h:mm:ss a z\",\n \"MMMM d, y, h:mm:ss a z\": \"MMMM d, y, h:mm:ss a z\",\n \"MMM d, y, h:mm:ss a z\": \"MMM d, y, h:mm:ss a z\",\n \"M/d/yy, h:mm:ss a z\": \"M/d/yy, h:mm:ss a z\",\n \"d, h:mm:ss a z\": \"d, h:mm:ss a z\",\n \"E, h:mm:ss a z\": \"ccc, h:mm:ss a z\",\n \"Ed, h:mm:ss a z\": \"d E, h:mm:ss a z\",\n \"Gy, h:mm:ss a z\": \"y G, h:mm:ss a z\",\n \"GyMd, h:mm:ss a z\": \"M/d/y G, h:mm:ss a z\",\n \"GyMMM, h:mm:ss a z\": \"MMM y G, h:mm:ss a z\",\n \"GyMMMd, h:mm:ss a z\": \"MMM d, y G, h:mm:ss a z\",\n \"GyMMMEd, h:mm:ss a z\": \"E, MMM d, y G, h:mm:ss a z\",\n \"M, h:mm:ss a z\": \"L, h:mm:ss a z\",\n \"Md, h:mm:ss a z\": \"M/d, h:mm:ss a z\",\n \"MEd, h:mm:ss a z\": \"E, M/d, h:mm:ss a z\",\n \"MMM, h:mm:ss a z\": \"LLL, h:mm:ss a z\",\n \"MMMd, h:mm:ss a z\": \"MMM d, h:mm:ss a z\",\n \"MMMEd, h:mm:ss a z\": \"E, MMM d, h:mm:ss a z\",\n \"MMMMd, h:mm:ss a z\": \"MMMM d, h:mm:ss a z\",\n \"y, h:mm:ss a z\": \"y, h:mm:ss a z\",\n \"yM, h:mm:ss a z\": \"M/y, h:mm:ss a z\",\n \"yMd, h:mm:ss a z\": \"M/d/y, h:mm:ss a z\",\n \"yMEd, h:mm:ss a z\": \"E, M/d/y, h:mm:ss a z\",\n \"yMMM, h:mm:ss a z\": \"MMM y, h:mm:ss a z\",\n \"yMMMd, h:mm:ss a z\": \"MMM d, y, h:mm:ss a z\",\n \"yMMMEd, h:mm:ss a z\": \"E, MMM d, y, h:mm:ss a z\",\n \"yMMMM, h:mm:ss a z\": \"MMMM y, h:mm:ss a z\",\n \"EEEE, MMMM d, y, h:mm:ss a\": \"EEEE, MMMM d, y, h:mm:ss a\",\n \"MMMM d, y, h:mm:ss a\": \"MMMM d, y, h:mm:ss a\",\n \"MMM d, y, h:mm:ss a\": \"MMM d, y, h:mm:ss a\",\n \"M/d/yy, h:mm:ss a\": \"M/d/yy, h:mm:ss a\",\n \"d, h:mm:ss a\": \"d, h:mm:ss a\",\n \"E, h:mm:ss a\": \"ccc, h:mm:ss a\",\n \"Ed, h:mm:ss a\": \"d E, h:mm:ss a\",\n \"Gy, h:mm:ss a\": \"y G, h:mm:ss a\",\n \"GyMd, h:mm:ss a\": \"M/d/y G, h:mm:ss a\",\n \"GyMMM, h:mm:ss a\": \"MMM y G, h:mm:ss a\",\n \"GyMMMd, h:mm:ss a\": \"MMM d, y G, h:mm:ss a\",\n \"GyMMMEd, h:mm:ss a\": \"E, MMM d, y G, h:mm:ss a\",\n \"M, h:mm:ss a\": \"L, h:mm:ss a\",\n \"Md, h:mm:ss a\": \"M/d, h:mm:ss a\",\n \"MEd, h:mm:ss a\": \"E, M/d, h:mm:ss a\",\n \"MMM, h:mm:ss a\": \"LLL, h:mm:ss a\",\n \"MMMd, h:mm:ss a\": \"MMM d, h:mm:ss a\",\n \"MMMEd, h:mm:ss a\": \"E, MMM d, h:mm:ss a\",\n \"MMMMd, h:mm:ss a\": \"MMMM d, h:mm:ss a\",\n \"y, h:mm:ss a\": \"y, h:mm:ss a\",\n \"yM, h:mm:ss a\": \"M/y, h:mm:ss a\",\n \"yMd, h:mm:ss a\": \"M/d/y, h:mm:ss a\",\n \"yMEd, h:mm:ss a\": \"E, M/d/y, h:mm:ss a\",\n \"yMMM, h:mm:ss a\": \"MMM y, h:mm:ss a\",\n \"yMMMd, h:mm:ss a\": \"MMM d, y, h:mm:ss a\",\n \"yMMMEd, h:mm:ss a\": \"E, MMM d, y, h:mm:ss a\",\n \"yMMMM, h:mm:ss a\": \"MMMM y, h:mm:ss a\",\n \"EEEE, MMMM d, y, h:mm:ss a\": \"EEEE, MMMM d, y, h:mm:ss a\",\n \"MMMM d, y, h:mm:ss a\": \"MMMM d, y, h:mm:ss a\",\n \"MMM d, y, h:mm:ss a\": \"MMM d, y, h:mm:ss a\",\n \"M/d/yy, h:mm:ss a\": \"M/d/yy, h:mm:ss a\",\n \"d, h:mm:ss a\": \"d, h:mm:ss a\",\n \"E, h:mm:ss a\": \"ccc, h:mm:ss a\",\n \"Ed, h:mm:ss a\": \"d E, h:mm:ss a\",\n \"Gy, h:mm:ss a\": \"y G, h:mm:ss a\",\n \"GyMd, h:mm:ss a\": \"M/d/y G, h:mm:ss a\",\n \"GyMMM, h:mm:ss a\": \"MMM y G, h:mm:ss a\",\n \"GyMMMd, h:mm:ss a\": \"MMM d, y G, h:mm:ss a\",\n \"GyMMMEd, h:mm:ss a\": \"E, MMM d, y G, h:mm:ss a\",\n \"M, h:mm:ss a\": \"L, h:mm:ss a\",\n \"Md, h:mm:ss a\": \"M/d, h:mm:ss a\",\n \"MEd, h:mm:ss a\": \"E, M/d, h:mm:ss a\",\n \"MMM, h:mm:ss a\": \"LLL, h:mm:ss a\",\n \"MMMd, h:mm:ss a\": \"MMM d, h:mm:ss a\",\n \"MMMEd, h:mm:ss a\": \"E, MMM d, h:mm:ss a\",\n \"MMMMd, h:mm:ss a\": \"MMMM d, h:mm:ss a\",\n \"y, h:mm:ss a\": \"y, h:mm:ss a\",\n \"yM, h:mm:ss a\": \"M/y, h:mm:ss a\",\n \"yMd, h:mm:ss a\": \"M/d/y, h:mm:ss a\",\n \"yMEd, h:mm:ss a\": \"E, M/d/y, h:mm:ss a\",\n \"yMMM, h:mm:ss a\": \"MMM y, h:mm:ss a\",\n \"yMMMd, h:mm:ss a\": \"MMM d, y, h:mm:ss a\",\n \"yMMMEd, h:mm:ss a\": \"E, MMM d, y, h:mm:ss a\",\n \"yMMMM, h:mm:ss a\": \"MMMM y, h:mm:ss a\",\n \"EEEE, MMMM d, y, h:mm a\": \"EEEE, MMMM d, y, h:mm a\",\n \"MMMM d, y, h:mm a\": \"MMMM d, y, h:mm a\",\n \"MMM d, y, h:mm a\": \"MMM d, y, h:mm a\",\n \"M/d/yy, h:mm a\": \"M/d/yy, h:mm a\",\n \"d, h:mm a\": \"d, h:mm a\",\n \"E, h:mm a\": \"ccc, h:mm a\",\n \"Ed, h:mm a\": \"d E, h:mm a\",\n \"Gy, h:mm a\": \"y G, h:mm a\",\n \"GyMd, h:mm a\": \"M/d/y G, h:mm a\",\n \"GyMMM, h:mm a\": \"MMM y G, h:mm a\",\n \"GyMMMd, h:mm a\": \"MMM d, y G, h:mm a\",\n \"GyMMMEd, h:mm a\": \"E, MMM d, y G, h:mm a\",\n \"M, h:mm a\": \"L, h:mm a\",\n \"Md, h:mm a\": \"M/d, h:mm a\",\n \"MEd, h:mm a\": \"E, M/d, h:mm a\",\n \"MMM, h:mm a\": \"LLL, h:mm a\",\n \"MMMd, h:mm a\": \"MMM d, h:mm a\",\n \"MMMEd, h:mm a\": \"E, MMM d, h:mm a\",\n \"MMMMd, h:mm a\": \"MMMM d, h:mm a\",\n \"y, h:mm a\": \"y, h:mm a\",\n \"yM, h:mm a\": \"M/y, h:mm a\",\n \"yMd, h:mm a\": \"M/d/y, h:mm a\",\n \"yMEd, h:mm a\": \"E, M/d/y, h:mm a\",\n \"yMMM, h:mm a\": \"MMM y, h:mm a\",\n \"yMMMd, h:mm a\": \"MMM d, y, h:mm a\",\n \"yMMMEd, h:mm a\": \"E, MMM d, y, h:mm a\",\n \"yMMMM, h:mm a\": \"MMMM y, h:mm a\",\n \"EEEE, MMMM d, y, h:mm a\": \"EEEE, MMMM d, y, h:mm a\",\n \"MMMM d, y, h:mm a\": \"MMMM d, y, h:mm a\",\n \"MMM d, y, h:mm a\": \"MMM d, y, h:mm a\",\n \"M/d/yy, h:mm a\": \"M/d/yy, h:mm a\",\n \"d, h:mm a\": \"d, h:mm a\",\n \"E, h:mm a\": \"ccc, h:mm a\",\n \"Ed, h:mm a\": \"d E, h:mm a\",\n \"Gy, h:mm a\": \"y G, h:mm a\",\n \"GyMd, h:mm a\": \"M/d/y G, h:mm a\",\n \"GyMMM, h:mm a\": \"MMM y G, h:mm a\",\n \"GyMMMd, h:mm a\": \"MMM d, y G, h:mm a\",\n \"GyMMMEd, h:mm a\": \"E, MMM d, y G, h:mm a\",\n \"M, h:mm a\": \"L, h:mm a\",\n \"Md, h:mm a\": \"M/d, h:mm a\",\n \"MEd, h:mm a\": \"E, M/d, h:mm a\",\n \"MMM, h:mm a\": \"LLL, h:mm a\",\n \"MMMd, h:mm a\": \"MMM d, h:mm a\",\n \"MMMEd, h:mm a\": \"E, MMM d, h:mm a\",\n \"MMMMd, h:mm a\": \"MMMM d, h:mm a\",\n \"y, h:mm a\": \"y, h:mm a\",\n \"yM, h:mm a\": \"M/y, h:mm a\",\n \"yMd, h:mm a\": \"M/d/y, h:mm a\",\n \"yMEd, h:mm a\": \"E, M/d/y, h:mm a\",\n \"yMMM, h:mm a\": \"MMM y, h:mm a\",\n \"yMMMd, h:mm a\": \"MMM d, y, h:mm a\",\n \"yMMMEd, h:mm a\": \"E, MMM d, y, h:mm a\",\n \"yMMMM, h:mm a\": \"MMMM y, h:mm a\",\n \"EEEE, MMMM d, y, Bh\": \"EEEE, MMMM d, y, h B\",\n \"MMMM d, y, Bh\": \"MMMM d, y, h B\",\n \"MMM d, y, Bh\": \"MMM d, y, h B\",\n \"M/d/yy, Bh\": \"M/d/yy, h B\",\n \"d, Bh\": \"d, h B\",\n \"E, Bh\": \"ccc, h B\",\n \"Ed, Bh\": \"d E, h B\",\n \"Gy, Bh\": \"y G, h B\",\n \"GyMd, Bh\": \"M/d/y G, h B\",\n \"GyMMM, Bh\": \"MMM y G, h B\",\n \"GyMMMd, Bh\": \"MMM d, y G, h B\",\n \"GyMMMEd, Bh\": \"E, MMM d, y G, h B\",\n \"M, Bh\": \"L, h B\",\n \"Md, Bh\": \"M/d, h B\",\n \"MEd, Bh\": \"E, M/d, h B\",\n \"MMM, Bh\": \"LLL, h B\",\n \"MMMd, Bh\": \"MMM d, h B\",\n \"MMMEd, Bh\": \"E, MMM d, h B\",\n \"MMMMd, Bh\": \"MMMM d, h B\",\n \"y, Bh\": \"y, h B\",\n \"yM, Bh\": \"M/y, h B\",\n \"yMd, Bh\": \"M/d/y, h B\",\n \"yMEd, Bh\": \"E, M/d/y, h B\",\n \"yMMM, Bh\": \"MMM y, h B\",\n \"yMMMd, Bh\": \"MMM d, y, h B\",\n \"yMMMEd, Bh\": \"E, MMM d, y, h B\",\n \"yMMMM, Bh\": \"MMMM y, h B\",\n \"EEEE, MMMM d, y, Bhm\": \"EEEE, MMMM d, y, h:mm B\",\n \"MMMM d, y, Bhm\": \"MMMM d, y, h:mm B\",\n \"MMM d, y, Bhm\": \"MMM d, y, h:mm B\",\n \"M/d/yy, Bhm\": \"M/d/yy, h:mm B\",\n \"d, Bhm\": \"d, h:mm B\",\n \"E, Bhm\": \"ccc, h:mm B\",\n \"Ed, Bhm\": \"d E, h:mm B\",\n \"Gy, Bhm\": \"y G, h:mm B\",\n \"GyMd, Bhm\": \"M/d/y G, h:mm B\",\n \"GyMMM, Bhm\": \"MMM y G, h:mm B\",\n \"GyMMMd, Bhm\": \"MMM d, y G, h:mm B\",\n \"GyMMMEd, Bhm\": \"E, MMM d, y G, h:mm B\",\n \"M, Bhm\": \"L, h:mm B\",\n \"Md, Bhm\": \"M/d, h:mm B\",\n \"MEd, Bhm\": \"E, M/d, h:mm B\",\n \"MMM, Bhm\": \"LLL, h:mm B\",\n \"MMMd, Bhm\": \"MMM d, h:mm B\",\n \"MMMEd, Bhm\": \"E, MMM d, h:mm B\",\n \"MMMMd, Bhm\": \"MMMM d, h:mm B\",\n \"y, Bhm\": \"y, h:mm B\",\n \"yM, Bhm\": \"M/y, h:mm B\",\n \"yMd, Bhm\": \"M/d/y, h:mm B\",\n \"yMEd, Bhm\": \"E, M/d/y, h:mm B\",\n \"yMMM, Bhm\": \"MMM y, h:mm B\",\n \"yMMMd, Bhm\": \"MMM d, y, h:mm B\",\n \"yMMMEd, Bhm\": \"E, MMM d, y, h:mm B\",\n \"yMMMM, Bhm\": \"MMMM y, h:mm B\",\n \"EEEE, MMMM d, y, Bhms\": \"EEEE, MMMM d, y, h:mm:ss B\",\n \"MMMM d, y, Bhms\": \"MMMM d, y, h:mm:ss B\",\n \"MMM d, y, Bhms\": \"MMM d, y, h:mm:ss B\",\n \"M/d/yy, Bhms\": \"M/d/yy, h:mm:ss B\",\n \"d, Bhms\": \"d, h:mm:ss B\",\n \"E, Bhms\": \"ccc, h:mm:ss B\",\n \"Ed, Bhms\": \"d E, h:mm:ss B\",\n \"Gy, Bhms\": \"y G, h:mm:ss B\",\n \"GyMd, Bhms\": \"M/d/y G, h:mm:ss B\",\n \"GyMMM, Bhms\": \"MMM y G, h:mm:ss B\",\n \"GyMMMd, Bhms\": \"MMM d, y G, h:mm:ss B\",\n \"GyMMMEd, Bhms\": \"E, MMM d, y G, h:mm:ss B\",\n \"M, Bhms\": \"L, h:mm:ss B\",\n \"Md, Bhms\": \"M/d, h:mm:ss B\",\n \"MEd, Bhms\": \"E, M/d, h:mm:ss B\",\n \"MMM, Bhms\": \"LLL, h:mm:ss B\",\n \"MMMd, Bhms\": \"MMM d, h:mm:ss B\",\n \"MMMEd, Bhms\": \"E, MMM d, h:mm:ss B\",\n \"MMMMd, Bhms\": \"MMMM d, h:mm:ss B\",\n \"y, Bhms\": \"y, h:mm:ss B\",\n \"yM, Bhms\": \"M/y, h:mm:ss B\",\n \"yMd, Bhms\": \"M/d/y, h:mm:ss B\",\n \"yMEd, Bhms\": \"E, M/d/y, h:mm:ss B\",\n \"yMMM, Bhms\": \"MMM y, h:mm:ss B\",\n \"yMMMd, Bhms\": \"MMM d, y, h:mm:ss B\",\n \"yMMMEd, Bhms\": \"E, MMM d, y, h:mm:ss B\",\n \"yMMMM, Bhms\": \"MMMM y, h:mm:ss B\",\n \"EEEE, MMMM d, y, h\": \"EEEE, MMMM d, y, h a\",\n \"MMMM d, y, h\": \"MMMM d, y, h a\",\n \"MMM d, y, h\": \"MMM d, y, h a\",\n \"M/d/yy, h\": \"M/d/yy, h a\",\n \"d, h\": \"d, h a\",\n \"E, h\": \"ccc, h a\",\n \"Ed, h\": \"d E, h a\",\n \"Gy, h\": \"y G, h a\",\n \"GyMd, h\": \"M/d/y G, h a\",\n \"GyMMM, h\": \"MMM y G, h a\",\n \"GyMMMd, h\": \"MMM d, y G, h a\",\n \"GyMMMEd, h\": \"E, MMM d, y G, h a\",\n \"M, h\": \"L, h a\",\n \"Md, h\": \"M/d, h a\",\n \"MEd, h\": \"E, M/d, h a\",\n \"MMM, h\": \"LLL, h a\",\n \"MMMd, h\": \"MMM d, h a\",\n \"MMMEd, h\": \"E, MMM d, h a\",\n \"MMMMd, h\": \"MMMM d, h a\",\n \"y, h\": \"y, h a\",\n \"yM, h\": \"M/y, h a\",\n \"yMd, h\": \"M/d/y, h a\",\n \"yMEd, h\": \"E, M/d/y, h a\",\n \"yMMM, h\": \"MMM y, h a\",\n \"yMMMd, h\": \"MMM d, y, h a\",\n \"yMMMEd, h\": \"E, MMM d, y, h a\",\n \"yMMMM, h\": \"MMMM y, h a\",\n \"EEEE, MMMM d, y, H\": \"EEEE, MMMM d, y, HH\",\n \"MMMM d, y, H\": \"MMMM d, y, HH\",\n \"MMM d, y, H\": \"MMM d, y, HH\",\n \"M/d/yy, H\": \"M/d/yy, HH\",\n \"d, H\": \"d, HH\",\n \"E, H\": \"ccc, HH\",\n \"Ed, H\": \"d E, HH\",\n \"Gy, H\": \"y G, HH\",\n \"GyMd, H\": \"M/d/y G, HH\",\n \"GyMMM, H\": \"MMM y G, HH\",\n \"GyMMMd, H\": \"MMM d, y G, HH\",\n \"GyMMMEd, H\": \"E, MMM d, y G, HH\",\n \"M, H\": \"L, HH\",\n \"Md, H\": \"M/d, HH\",\n \"MEd, H\": \"E, M/d, HH\",\n \"MMM, H\": \"LLL, HH\",\n \"MMMd, H\": \"MMM d, HH\",\n \"MMMEd, H\": \"E, MMM d, HH\",\n \"MMMMd, H\": \"MMMM d, HH\",\n \"y, H\": \"y, HH\",\n \"yM, H\": \"M/y, HH\",\n \"yMd, H\": \"M/d/y, HH\",\n \"yMEd, H\": \"E, M/d/y, HH\",\n \"yMMM, H\": \"MMM y, HH\",\n \"yMMMd, H\": \"MMM d, y, HH\",\n \"yMMMEd, H\": \"E, MMM d, y, HH\",\n \"yMMMM, H\": \"MMMM y, HH\",\n \"EEEE, MMMM d, y, hm\": \"EEEE, MMMM d, y, h:mm a\",\n \"MMMM d, y, hm\": \"MMMM d, y, h:mm a\",\n \"MMM d, y, hm\": \"MMM d, y, h:mm a\",\n \"M/d/yy, hm\": \"M/d/yy, h:mm a\",\n \"d, hm\": \"d, h:mm a\",\n \"E, hm\": \"ccc, h:mm a\",\n \"Ed, hm\": \"d E, h:mm a\",\n \"Gy, hm\": \"y G, h:mm a\",\n \"GyMd, hm\": \"M/d/y G, h:mm a\",\n \"GyMMM, hm\": \"MMM y G, h:mm a\",\n \"GyMMMd, hm\": \"MMM d, y G, h:mm a\",\n \"GyMMMEd, hm\": \"E, MMM d, y G, h:mm a\",\n \"M, hm\": \"L, h:mm a\",\n \"Md, hm\": \"M/d, h:mm a\",\n \"MEd, hm\": \"E, M/d, h:mm a\",\n \"MMM, hm\": \"LLL, h:mm a\",\n \"MMMd, hm\": \"MMM d, h:mm a\",\n \"MMMEd, hm\": \"E, MMM d, h:mm a\",\n \"MMMMd, hm\": \"MMMM d, h:mm a\",\n \"y, hm\": \"y, h:mm a\",\n \"yM, hm\": \"M/y, h:mm a\",\n \"yMd, hm\": \"M/d/y, h:mm a\",\n \"yMEd, hm\": \"E, M/d/y, h:mm a\",\n \"yMMM, hm\": \"MMM y, h:mm a\",\n \"yMMMd, hm\": \"MMM d, y, h:mm a\",\n \"yMMMEd, hm\": \"E, MMM d, y, h:mm a\",\n \"yMMMM, hm\": \"MMMM y, h:mm a\",\n \"EEEE, MMMM d, y, Hm\": \"EEEE, MMMM d, y, HH:mm\",\n \"MMMM d, y, Hm\": \"MMMM d, y, HH:mm\",\n \"MMM d, y, Hm\": \"MMM d, y, HH:mm\",\n \"M/d/yy, Hm\": \"M/d/yy, HH:mm\",\n \"d, Hm\": \"d, HH:mm\",\n \"E, Hm\": \"ccc, HH:mm\",\n \"Ed, Hm\": \"d E, HH:mm\",\n \"Gy, Hm\": \"y G, HH:mm\",\n \"GyMd, Hm\": \"M/d/y G, HH:mm\",\n \"GyMMM, Hm\": \"MMM y G, HH:mm\",\n \"GyMMMd, Hm\": \"MMM d, y G, HH:mm\",\n \"GyMMMEd, Hm\": \"E, MMM d, y G, HH:mm\",\n \"M, Hm\": \"L, HH:mm\",\n \"Md, Hm\": \"M/d, HH:mm\",\n \"MEd, Hm\": \"E, M/d, HH:mm\",\n \"MMM, Hm\": \"LLL, HH:mm\",\n \"MMMd, Hm\": \"MMM d, HH:mm\",\n \"MMMEd, Hm\": \"E, MMM d, HH:mm\",\n \"MMMMd, Hm\": \"MMMM d, HH:mm\",\n \"y, Hm\": \"y, HH:mm\",\n \"yM, Hm\": \"M/y, HH:mm\",\n \"yMd, Hm\": \"M/d/y, HH:mm\",\n \"yMEd, Hm\": \"E, M/d/y, HH:mm\",\n \"yMMM, Hm\": \"MMM y, HH:mm\",\n \"yMMMd, Hm\": \"MMM d, y, HH:mm\",\n \"yMMMEd, Hm\": \"E, MMM d, y, HH:mm\",\n \"yMMMM, Hm\": \"MMMM y, HH:mm\",\n \"EEEE, MMMM d, y, hms\": \"EEEE, MMMM d, y, h:mm:ss a\",\n \"MMMM d, y, hms\": \"MMMM d, y, h:mm:ss a\",\n \"MMM d, y, hms\": \"MMM d, y, h:mm:ss a\",\n \"M/d/yy, hms\": \"M/d/yy, h:mm:ss a\",\n \"d, hms\": \"d, h:mm:ss a\",\n \"E, hms\": \"ccc, h:mm:ss a\",\n \"Ed, hms\": \"d E, h:mm:ss a\",\n \"Gy, hms\": \"y G, h:mm:ss a\",\n \"GyMd, hms\": \"M/d/y G, h:mm:ss a\",\n \"GyMMM, hms\": \"MMM y G, h:mm:ss a\",\n \"GyMMMd, hms\": \"MMM d, y G, h:mm:ss a\",\n \"GyMMMEd, hms\": \"E, MMM d, y G, h:mm:ss a\",\n \"M, hms\": \"L, h:mm:ss a\",\n \"Md, hms\": \"M/d, h:mm:ss a\",\n \"MEd, hms\": \"E, M/d, h:mm:ss a\",\n \"MMM, hms\": \"LLL, h:mm:ss a\",\n \"MMMd, hms\": \"MMM d, h:mm:ss a\",\n \"MMMEd, hms\": \"E, MMM d, h:mm:ss a\",\n \"MMMMd, hms\": \"MMMM d, h:mm:ss a\",\n \"y, hms\": \"y, h:mm:ss a\",\n \"yM, hms\": \"M/y, h:mm:ss a\",\n \"yMd, hms\": \"M/d/y, h:mm:ss a\",\n \"yMEd, hms\": \"E, M/d/y, h:mm:ss a\",\n \"yMMM, hms\": \"MMM y, h:mm:ss a\",\n \"yMMMd, hms\": \"MMM d, y, h:mm:ss a\",\n \"yMMMEd, hms\": \"E, MMM d, y, h:mm:ss a\",\n \"yMMMM, hms\": \"MMMM y, h:mm:ss a\",\n \"EEEE, MMMM d, y, Hms\": \"EEEE, MMMM d, y, HH:mm:ss\",\n \"MMMM d, y, Hms\": \"MMMM d, y, HH:mm:ss\",\n \"MMM d, y, Hms\": \"MMM d, y, HH:mm:ss\",\n \"M/d/yy, Hms\": \"M/d/yy, HH:mm:ss\",\n \"d, Hms\": \"d, HH:mm:ss\",\n \"E, Hms\": \"ccc, HH:mm:ss\",\n \"Ed, Hms\": \"d E, HH:mm:ss\",\n \"Gy, Hms\": \"y G, HH:mm:ss\",\n \"GyMd, Hms\": \"M/d/y G, HH:mm:ss\",\n \"GyMMM, Hms\": \"MMM y G, HH:mm:ss\",\n \"GyMMMd, Hms\": \"MMM d, y G, HH:mm:ss\",\n \"GyMMMEd, Hms\": \"E, MMM d, y G, HH:mm:ss\",\n \"M, Hms\": \"L, HH:mm:ss\",\n \"Md, Hms\": \"M/d, HH:mm:ss\",\n \"MEd, Hms\": \"E, M/d, HH:mm:ss\",\n \"MMM, Hms\": \"LLL, HH:mm:ss\",\n \"MMMd, Hms\": \"MMM d, HH:mm:ss\",\n \"MMMEd, Hms\": \"E, MMM d, HH:mm:ss\",\n \"MMMMd, Hms\": \"MMMM d, HH:mm:ss\",\n \"y, Hms\": \"y, HH:mm:ss\",\n \"yM, Hms\": \"M/y, HH:mm:ss\",\n \"yMd, Hms\": \"M/d/y, HH:mm:ss\",\n \"yMEd, Hms\": \"E, M/d/y, HH:mm:ss\",\n \"yMMM, Hms\": \"MMM y, HH:mm:ss\",\n \"yMMMd, Hms\": \"MMM d, y, HH:mm:ss\",\n \"yMMMEd, Hms\": \"E, MMM d, y, HH:mm:ss\",\n \"yMMMM, Hms\": \"MMMM y, HH:mm:ss\",\n \"EEEE, MMMM d, y, hmsv\": \"EEEE, MMMM d, y, h:mm:ss a v\",\n \"MMMM d, y, hmsv\": \"MMMM d, y, h:mm:ss a v\",\n \"MMM d, y, hmsv\": \"MMM d, y, h:mm:ss a v\",\n \"M/d/yy, hmsv\": \"M/d/yy, h:mm:ss a v\",\n \"d, hmsv\": \"d, h:mm:ss a v\",\n \"E, hmsv\": \"ccc, h:mm:ss a v\",\n \"Ed, hmsv\": \"d E, h:mm:ss a v\",\n \"Gy, hmsv\": \"y G, h:mm:ss a v\",\n \"GyMd, hmsv\": \"M/d/y G, h:mm:ss a v\",\n \"GyMMM, hmsv\": \"MMM y G, h:mm:ss a v\",\n \"GyMMMd, hmsv\": \"MMM d, y G, h:mm:ss a v\",\n \"GyMMMEd, hmsv\": \"E, MMM d, y G, h:mm:ss a v\",\n \"M, hmsv\": \"L, h:mm:ss a v\",\n \"Md, hmsv\": \"M/d, h:mm:ss a v\",\n \"MEd, hmsv\": \"E, M/d, h:mm:ss a v\",\n \"MMM, hmsv\": \"LLL, h:mm:ss a v\",\n \"MMMd, hmsv\": \"MMM d, h:mm:ss a v\",\n \"MMMEd, hmsv\": \"E, MMM d, h:mm:ss a v\",\n \"MMMMd, hmsv\": \"MMMM d, h:mm:ss a v\",\n \"y, hmsv\": \"y, h:mm:ss a v\",\n \"yM, hmsv\": \"M/y, h:mm:ss a v\",\n \"yMd, hmsv\": \"M/d/y, h:mm:ss a v\",\n \"yMEd, hmsv\": \"E, M/d/y, h:mm:ss a v\",\n \"yMMM, hmsv\": \"MMM y, h:mm:ss a v\",\n \"yMMMd, hmsv\": \"MMM d, y, h:mm:ss a v\",\n \"yMMMEd, hmsv\": \"E, MMM d, y, h:mm:ss a v\",\n \"yMMMM, hmsv\": \"MMMM y, h:mm:ss a v\",\n \"EEEE, MMMM d, y, Hmsv\": \"EEEE, MMMM d, y, HH:mm:ss v\",\n \"MMMM d, y, Hmsv\": \"MMMM d, y, HH:mm:ss v\",\n \"MMM d, y, Hmsv\": \"MMM d, y, HH:mm:ss v\",\n \"M/d/yy, Hmsv\": \"M/d/yy, HH:mm:ss v\",\n \"d, Hmsv\": \"d, HH:mm:ss v\",\n \"E, Hmsv\": \"ccc, HH:mm:ss v\",\n \"Ed, Hmsv\": \"d E, HH:mm:ss v\",\n \"Gy, Hmsv\": \"y G, HH:mm:ss v\",\n \"GyMd, Hmsv\": \"M/d/y G, HH:mm:ss v\",\n \"GyMMM, Hmsv\": \"MMM y G, HH:mm:ss v\",\n \"GyMMMd, Hmsv\": \"MMM d, y G, HH:mm:ss v\",\n \"GyMMMEd, Hmsv\": \"E, MMM d, y G, HH:mm:ss v\",\n \"M, Hmsv\": \"L, HH:mm:ss v\",\n \"Md, Hmsv\": \"M/d, HH:mm:ss v\",\n \"MEd, Hmsv\": \"E, M/d, HH:mm:ss v\",\n \"MMM, Hmsv\": \"LLL, HH:mm:ss v\",\n \"MMMd, Hmsv\": \"MMM d, HH:mm:ss v\",\n \"MMMEd, Hmsv\": \"E, MMM d, HH:mm:ss v\",\n \"MMMMd, Hmsv\": \"MMMM d, HH:mm:ss v\",\n \"y, Hmsv\": \"y, HH:mm:ss v\",\n \"yM, Hmsv\": \"M/y, HH:mm:ss v\",\n \"yMd, Hmsv\": \"M/d/y, HH:mm:ss v\",\n \"yMEd, Hmsv\": \"E, M/d/y, HH:mm:ss v\",\n \"yMMM, Hmsv\": \"MMM y, HH:mm:ss v\",\n \"yMMMd, Hmsv\": \"MMM d, y, HH:mm:ss v\",\n \"yMMMEd, Hmsv\": \"E, MMM d, y, HH:mm:ss v\",\n \"yMMMM, Hmsv\": \"MMMM y, HH:mm:ss v\",\n \"EEEE, MMMM d, y, hmv\": \"EEEE, MMMM d, y, h:mm a v\",\n \"MMMM d, y, hmv\": \"MMMM d, y, h:mm a v\",\n \"MMM d, y, hmv\": \"MMM d, y, h:mm a v\",\n \"M/d/yy, hmv\": \"M/d/yy, h:mm a v\",\n \"d, hmv\": \"d, h:mm a v\",\n \"E, hmv\": \"ccc, h:mm a v\",\n \"Ed, hmv\": \"d E, h:mm a v\",\n \"Gy, hmv\": \"y G, h:mm a v\",\n \"GyMd, hmv\": \"M/d/y G, h:mm a v\",\n \"GyMMM, hmv\": \"MMM y G, h:mm a v\",\n \"GyMMMd, hmv\": \"MMM d, y G, h:mm a v\",\n \"GyMMMEd, hmv\": \"E, MMM d, y G, h:mm a v\",\n \"M, hmv\": \"L, h:mm a v\",\n \"Md, hmv\": \"M/d, h:mm a v\",\n \"MEd, hmv\": \"E, M/d, h:mm a v\",\n \"MMM, hmv\": \"LLL, h:mm a v\",\n \"MMMd, hmv\": \"MMM d, h:mm a v\",\n \"MMMEd, hmv\": \"E, MMM d, h:mm a v\",\n \"MMMMd, hmv\": \"MMMM d, h:mm a v\",\n \"y, hmv\": \"y, h:mm a v\",\n \"yM, hmv\": \"M/y, h:mm a v\",\n \"yMd, hmv\": \"M/d/y, h:mm a v\",\n \"yMEd, hmv\": \"E, M/d/y, h:mm a v\",\n \"yMMM, hmv\": \"MMM y, h:mm a v\",\n \"yMMMd, hmv\": \"MMM d, y, h:mm a v\",\n \"yMMMEd, hmv\": \"E, MMM d, y, h:mm a v\",\n \"yMMMM, hmv\": \"MMMM y, h:mm a v\",\n \"EEEE, MMMM d, y, Hmv\": \"EEEE, MMMM d, y, HH:mm v\",\n \"MMMM d, y, Hmv\": \"MMMM d, y, HH:mm v\",\n \"MMM d, y, Hmv\": \"MMM d, y, HH:mm v\",\n \"M/d/yy, Hmv\": \"M/d/yy, HH:mm v\",\n \"d, Hmv\": \"d, HH:mm v\",\n \"E, Hmv\": \"ccc, HH:mm v\",\n \"Ed, Hmv\": \"d E, HH:mm v\",\n \"Gy, Hmv\": \"y G, HH:mm v\",\n \"GyMd, Hmv\": \"M/d/y G, HH:mm v\",\n \"GyMMM, Hmv\": \"MMM y G, HH:mm v\",\n \"GyMMMd, Hmv\": \"MMM d, y G, HH:mm v\",\n \"GyMMMEd, Hmv\": \"E, MMM d, y G, HH:mm v\",\n \"M, Hmv\": \"L, HH:mm v\",\n \"Md, Hmv\": \"M/d, HH:mm v\",\n \"MEd, Hmv\": \"E, M/d, HH:mm v\",\n \"MMM, Hmv\": \"LLL, HH:mm v\",\n \"MMMd, Hmv\": \"MMM d, HH:mm v\",\n \"MMMEd, Hmv\": \"E, MMM d, HH:mm v\",\n \"MMMMd, Hmv\": \"MMMM d, HH:mm v\",\n \"y, Hmv\": \"y, HH:mm v\",\n \"yM, Hmv\": \"M/y, HH:mm v\",\n \"yMd, Hmv\": \"M/d/y, HH:mm v\",\n \"yMEd, Hmv\": \"E, M/d/y, HH:mm v\",\n \"yMMM, Hmv\": \"MMM y, HH:mm v\",\n \"yMMMd, Hmv\": \"MMM d, y, HH:mm v\",\n \"yMMMEd, Hmv\": \"E, MMM d, y, HH:mm v\",\n \"yMMMM, Hmv\": \"MMMM y, HH:mm v\",\n \"EEEE, MMMM d, y, ms\": \"EEEE, MMMM d, y, mm:ss\",\n \"MMMM d, y, ms\": \"MMMM d, y, mm:ss\",\n \"MMM d, y, ms\": \"MMM d, y, mm:ss\",\n \"M/d/yy, ms\": \"M/d/yy, mm:ss\",\n \"d, ms\": \"d, mm:ss\",\n \"E, ms\": \"ccc, mm:ss\",\n \"Ed, ms\": \"d E, mm:ss\",\n \"Gy, ms\": \"y G, mm:ss\",\n \"GyMd, ms\": \"M/d/y G, mm:ss\",\n \"GyMMM, ms\": \"MMM y G, mm:ss\",\n \"GyMMMd, ms\": \"MMM d, y G, mm:ss\",\n \"GyMMMEd, ms\": \"E, MMM d, y G, mm:ss\",\n \"M, ms\": \"L, mm:ss\",\n \"Md, ms\": \"M/d, mm:ss\",\n \"MEd, ms\": \"E, M/d, mm:ss\",\n \"MMM, ms\": \"LLL, mm:ss\",\n \"MMMd, ms\": \"MMM d, mm:ss\",\n \"MMMEd, ms\": \"E, MMM d, mm:ss\",\n \"MMMMd, ms\": \"MMMM d, mm:ss\",\n \"y, ms\": \"y, mm:ss\",\n \"yM, ms\": \"M/y, mm:ss\",\n \"yMd, ms\": \"M/d/y, mm:ss\",\n \"yMEd, ms\": \"E, M/d/y, mm:ss\",\n \"yMMM, ms\": \"MMM y, mm:ss\",\n \"yMMMd, ms\": \"MMM d, y, mm:ss\",\n \"yMMMEd, ms\": \"E, MMM d, y, mm:ss\",\n \"yMMMM, ms\": \"MMMM y, mm:ss\"\n }\n },\n \"intervalFormats\": {\n \"intervalFormatFallback\": \"{0} – {1}\",\n \"Bh\": {\n \"B\": \"h B – h B\",\n \"h\": \"h – h B\"\n },\n \"Bhm\": {\n \"B\": \"h:mm B – h:mm B\",\n \"h\": \"h:mm – h:mm B\",\n \"m\": \"h:mm – h:mm B\"\n },\n \"d\": {\n \"d\": \"d – d\"\n },\n \"Gy\": {\n \"G\": \"y G – y G\",\n \"y\": \"y – y G\"\n },\n \"GyM\": {\n \"G\": \"M/y G – M/y G\",\n \"M\": \"M/y – M/y G\",\n \"y\": \"M/y – M/y G\"\n },\n \"GyMd\": {\n \"d\": \"M/d/y – M/d/y G\",\n \"G\": \"M/d/y G – M/d/y G\",\n \"M\": \"M/d/y – M/d/y G\",\n \"y\": \"M/d/y – M/d/y G\"\n },\n \"GyMEd\": {\n \"d\": \"E, M/d/y – E, M/d/y G\",\n \"G\": \"E, M/d/y G – E, M/d/y G\",\n \"M\": \"E, M/d/y – E, M/d/y G\",\n \"y\": \"E, M/d/y – E, M/d/y G\"\n },\n \"GyMMM\": {\n \"G\": \"MMM y G – MMM y G\",\n \"M\": \"MMM – MMM y G\",\n \"y\": \"MMM y – MMM y G\"\n },\n \"GyMMMd\": {\n \"d\": \"MMM d – d, y G\",\n \"G\": \"MMM d, y G – MMM d, y G\",\n \"M\": \"MMM d – MMM d, y G\",\n \"y\": \"MMM d, y – MMM d, y G\"\n },\n \"GyMMMEd\": {\n \"d\": \"E, MMM d – E, MMM d, y G\",\n \"G\": \"E, MMM d, y G – E, MMM d, y G\",\n \"M\": \"E, MMM d – E, MMM d, y G\",\n \"y\": \"E, MMM d, y – E, MMM d, y G\"\n },\n \"h\": {\n \"a\": \"h a – h a\",\n \"h\": \"h – h a\"\n },\n \"H\": {\n \"H\": \"HH – HH\"\n },\n \"hm\": {\n \"a\": \"h:mm a – h:mm a\",\n \"h\": \"h:mm – h:mm a\",\n \"m\": \"h:mm – h:mm a\"\n },\n \"Hm\": {\n \"H\": \"HH:mm – HH:mm\",\n \"m\": \"HH:mm – HH:mm\"\n },\n \"hmv\": {\n \"a\": \"h:mm a – h:mm a v\",\n \"h\": \"h:mm – h:mm a v\",\n \"m\": \"h:mm – h:mm a v\"\n },\n \"Hmv\": {\n \"H\": \"HH:mm – HH:mm v\",\n \"m\": \"HH:mm – HH:mm v\"\n },\n \"hv\": {\n \"a\": \"h a – h a v\",\n \"h\": \"h – h a v\"\n },\n \"Hv\": {\n \"H\": \"HH – HH v\"\n },\n \"M\": {\n \"M\": \"M – M\"\n },\n \"Md\": {\n \"d\": \"M/d – M/d\",\n \"M\": \"M/d – M/d\"\n },\n \"MEd\": {\n \"d\": \"E, M/d – E, M/d\",\n \"M\": \"E, M/d – E, M/d\"\n },\n \"MMM\": {\n \"M\": \"MMM – MMM\"\n },\n \"MMMd\": {\n \"d\": \"MMM d – d\",\n \"M\": \"MMM d – MMM d\"\n },\n \"MMMEd\": {\n \"d\": \"E, MMM d – E, MMM d\",\n \"M\": \"E, MMM d – E, MMM d\"\n },\n \"y\": {\n \"y\": \"y – y\"\n },\n \"yM\": {\n \"M\": \"M/y – M/y\",\n \"y\": \"M/y – M/y\"\n },\n \"yMd\": {\n \"d\": \"M/d/y – M/d/y\",\n \"M\": \"M/d/y – M/d/y\",\n \"y\": \"M/d/y – M/d/y\"\n },\n \"yMEd\": {\n \"d\": \"E, M/d/y – E, M/d/y\",\n \"M\": \"E, M/d/y – E, M/d/y\",\n \"y\": \"E, M/d/y – E, M/d/y\"\n },\n \"yMMM\": {\n \"M\": \"MMM – MMM y\",\n \"y\": \"MMM y – MMM y\"\n },\n \"yMMMd\": {\n \"d\": \"MMM d – d, y\",\n \"M\": \"MMM d – MMM d, y\",\n \"y\": \"MMM d, y – MMM d, y\"\n },\n \"yMMMEd\": {\n \"d\": \"E, MMM d – E, MMM d, y\",\n \"M\": \"E, MMM d – E, MMM d, y\",\n \"y\": \"E, MMM d, y – E, MMM d, y\"\n },\n \"yMMMM\": {\n \"M\": \"MMMM – MMMM y\",\n \"y\": \"MMMM y – MMMM y\"\n }\n },\n \"hourCycle\": \"h12\",\n \"nu\": [\n \"latn\"\n ],\n \"ca\": [\n \"gregory\"\n ],\n \"hc\": [\n \"h12\",\n \"\",\n \"h23\",\n \"\"\n ]\n },\n \"locale\": \"en\"\n}\n)\n}\n"],"names":["clampProp","e","n","t","o","r","clampEntity","TypeError","missingField","i","a","clampNumber","RangeError","numberOutOfRange","s","test","on","Map","has","get","set","name","value","configurable","writable","Symbol","toStringTag","zipProps","length","g","remapProps","nn","Object","create","hasAnyPropsByName","allPropsEqual","zeroOutProps","Pt","capitalize","toUpperCase","substring","sortStrings","slice","sort","padNumber","String","padStart","compareNumbers","Math","sign","min","max","divModFloor","floor","modFloor","divModTrunc","divTrunc","modTrunc","trunc","hasHalf","abs","givenFieldsToBigNano","Ao","Uo","c","u","nanoToGivenFields","S","T","h","requireNumberIsPositive","ze","cr","requirePropDefined","requireObjectLike","oo","requireType","invalidEntity","Number","isInteger","expectedInteger","expectedPositive","toString","no","toStringViaPrimitive","m","toBigInt","BigInt","invalidBigInt","toNumber","forbiddenBigIntToNumber","isFinite","expectedFinite","toInteger","toStrictInteger","toPositiveInteger","createBigNano","addBigNanos","moveBigNano","diffBigNanos","compareBigNanos","bigNanoOutside","bigIntToBigNano","Ge","bigNanoToNumber","divModBigNano","checkIsoYearMonthInBounds","wr","Fr","isoYear","checkIsoDateInBounds","checkIsoDateTimeInBounds","Nt","isoHour","checkEpochNanoInBounds","isoToEpochNano","isoDay","isoNanosecond","Sr","Er","Io","isoTimeFieldsToNano","w","nanoToIsoTimeAndDay","epochNanoToSecMod","Ro","isoToEpochMilli","isoArgsToEpochMilli","isoMonth","isoMinute","isoSecond","isoMillisecond","ko","Qe","isoMicrosecond","Yo","isoToEpochNanoWithOffset","isoArgsToEpochSec","Co","isoToLegacyDate","valueOf","isNaN","Date","setUTCHours","setUTCFullYear","epochNanoToIso","epochMilliToIso","ceil","Pr","Tr","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","hashIntlFormatParts","formatToParts","type","computeIsoDateParts","computeIsoMonthCodeParts","computeIsoMonthsInYear","kr","computeIsoDaysInMonth","computeIsoInLeapYear","computeIsoDaysInYear","computeIsoDayOfWeek","getUTCDay","computeIsoEraParts","this","id","or","rr","Yr","computeJapaneseEraParts","Cr","Ci","era","eraYear","parseIntlYear","checkIsoDateTimeFields","checkIsoDateFields","constrainIsoTimeFields","constrainIsoDateFields","isIsoDateFieldsValid","Dr","mt","Xr","je","normalizeOptions","ei","ni","refineDiffOptions","Kr","parseRoundingIncInteger","ii","Jr","checkLargestSmallestUnit","refineRoundingInc","refineRoundingOptions","normalizeOptionsOrString","Rr","refineDateDisplayOptions","ti","refineTimeDisplayOptions","refineTimeDisplayTuple","refineSubsecDigits","refineSmallestUnitAndSubsecDigits","zr","Ur","fabricateOverflowOptions","overflow","jr","refineUnitOption","Oo","mr","invalidChoice","Bo","refineChoiceOption","Eo","xe","branding","Re","epochNanoseconds","_e","z","calendar","timeZone","jt","x","Nr","W","G","Ir","createPlainYearMonthSlots","Ut","createPlainMonthDaySlots","qt","St","ft","Mr","Oe","N","computeDurationSign","ur","I","extractEpochNano","totalDayTimeDuration","durationFieldsToBigNano","clampRelativeDuration","p","f","computeEpochNanoFrac","fo","roundDateTime","roundDateTimeToNano","computeNanoInc","roundTimeToNano","moveByDays","roundByInc","roundToMinute","Zo","computeDayInterval","computeDayFloor","yr","roundDayTimeDurationByInc","getMaxDurationUnit","nanoToDurationDayTimeFields","roundBigNanoByInc","roundRelativeDuration","isUniformUnit","isZonedEpochSlots","nudgeZonedTimeDuration","nudgeDayTimeDuration","nudgeRelativeDuration","l","d","gr","roundBigNano","roundWithMode","ai","hr","D","nanoToDurationTimeFields","days","Boolean","weeks","ke","R","formatIsoDateTimeFields","Se","si","Fe","ri","oi","formatCalendar","Ft","ce","formatIsoDateFields","Kt","formatDateLikeIso","formatIsoYearMonthFields","Jt","formatIsoMonthDayFields","ct","formatIsoTimeFields","k","checkDurationUnits","negateDurationFields","hours","minutes","checkDurationTimeUnit","formatSubsecNano","formatDurationFragments","Y","formatDurationNumber","years","M","months","H","formatCalendarId","push","join","bo","getSignStr","zo","replace","li","toLocaleString","useGrouping","_zonedEpochSlotsToIso","offsetNanoseconds","getMatchingInstantFor","Do","getSingleInstantFor","To","go","getStartOfDayInstantFor","O","Ye","durationHasDateParts","vo","pe","moveZonedEpochs","wt","moveDateTime","ne","moveDate","Gt","moveToDayOfMonthUnsafe","B","P","pr","at","moveTime","he","day","createMarkerSystem","createMarkerToEpochNano","createMoveMarker","createDiffMarkers","diffZonedEpochsExact","diffDateTimesExact","E","relativeTo","yo","No","dr","di","isSafeInteger","Mo","lr","createSplitTuple","computePeriod","ci","parseOffsetNano","parseOffsetNanoMaybe","failedParse","de","parseDateTimeLike","j","Br","C","finalizeDateTime","finalizeDate","requireIsoCalendar","invalidSubstring","finalizeZonedDateTime","L","$","resolveSlotsCalendar","vi","exec","organizeIsoYearParts","parseInt","organizeTimeParts","organizeAnnotationParts","offset","parseYearMonthOnly","Ni","parseMonthDayOnly","yi","Ei","ho","parseInt0","parseSubsecNano","parseSign","Si","split","reverse","padEnd","createRegExp","RegExp","getTimeZoneEssence","Oi","F","bi","po","toLowerCase","map","getTimeZoneAtomic","resolvedOptions","wi","Ke","Be","Yt","te","Dt","isTimeZoneIdsEqual","Ee","diffEpochNanos","we","getCommonCalendarId","mo","diffZonedEpochsBig","It","diffDateTimesBig","oe","diffDateLike","zt","it","diffTimes","diffEpochNanosExact","updateMid","diffDays","diffEpochMilliByDay","lo","computeNativeWeekOfYear","computeNativeYearOfWeek","computeNativeDayOfYear","v","parseMonthCode","Bi","invalidMonthCode","formatMonthCode","monthCodeNumberToMonth","monthToMonthCodeNumber","eraYearToYear","getCalendarEraOrigins","ir","getCalendarIdBase","getCalendarLeapMonthMeta","sr","computeCalendarIdBase","createIntlCalendar","epochMilliToIntlFields","month","createIntlFieldCache","createIntlYearDataCache","WeakMap","year","Or","Fo","parseIntlPartsYear","ar","normalize","relatedYear","computeIntlDateParts","computeIntlEpochMilli","computeIntlMonthCodeParts","computeIntlLeapMonth","call","queryMonthStrings","computeIntlDaysInYear","computeIntlDaysInMonth","computeIntlMonthsInYear","computeIntlEraParts","keys","Mt","createNativeOpsCreator","assign","ki","refineCalendarFields","Xo","xo","refineTimeBag","refineFields","fields","duplicateFields","forbiddenField","Li","includes","tr","noValidFields","xi","convertToIso","refineYear","io","ro","invalidEra","ao","missingYear","refineMonth","monthCode","uo","so","co","refineDay","U","spliceFields","computeDateEssentials","ji","q","yt","fe","dt","createOptionsTransformer","Set","J","Q","an","Na","toEpochMillis","So","en","pt","tn","Xe","now","Ue","va","Po","ln","wo","nanosecond","microsecond","millisecond","second","minute","hour","week","qo","Wo","jo","Lo","concat","$o","Ho","Go","Vo","_o","Jo","Ko","Qo","er","nr","gregory","japanese","meiji","taisho","showa","heisei","reiwa","ethiopic","ethioaa","coptic","roc","buddhist","be","islamic","ah","indian","saka","persian","ap","bce","era0","era1","broc","minguo","chinese","dangi","hebrew","fr","vr","Intl","DateTimeFormat","br","Zr","Ar","qr","Wr","constrain","reject","Lr","compatible","earlier","later","xr","use","prefer","ignore","$r","auto","never","critical","always","Hr","Gr","Vr","halfFloor","halfCeil","halfTrunc","expand","halfExpand","halfEven","_r","previous","next","Qr","round","ui","fi","IntlTimeZone","FixedTimeZone","constructor","getOffsetSec","pinch","rn","mi","pi","hi","gi","Di","Ti","Ii","Mi","Pi","Fi","Yi","un","cn","V","K","_","inLeapYear","sn","monthsInYear","daysInMonth","daysInYear","fn","dayOfYear","hn","dayOfWeek","daysInWeek","Ri","Zi","zi","weekOfYear","yearOfWeek","computeWeekShift","computeWeeksInYear","Ui","Ai","qi","Wi","$i","Hi","Gi","Vi","_i","Ji","Ki","Qi","Xi","timeZoneName","ea","na","ta","oa","ra","ia","aa","sa","ca","ua","fa","la","da","ma","pa","ha","ga","Da","Ta","Ia","Ma","ya","ot","X","tt","et","nt","createSlotClass","Class","bindMethod","defineProperties","getSpecificSlots","prototype","rejectInvalidBag","getCalendarIdFromBag","extractCalendarIdFromBag","refineCalendarArg","createCalendarGetters","neverValueOf","refineTimeZoneArg","Z","toDurationSlots","parseUnit","refinePublicRelativeTo","toPlainTimeSlots","Tt","ht","optionalToPlainTimeFields","toPlainDateTimeSlots","At","Bt","toPlainMonthDaySlots","Rt","xt","toPlainYearMonthSlots","Xt","_t","toPlainDateSlots","me","toZonedDateTimeSlots","Ne","Ae","adaptDateMethods","slotsToIso","toInstantSlots","We","createDateTimeFormatClass","DateTimeFormatFunc","DateTimeFormatNew","to","locale","createFormatPrepperForBranding","prepFormat","getOwnPropertyDescriptors","startsWith","createFormatMethod","createProxiedMethod","apply","Cn","bind","mn","dn","Sn","Tn","Dn","Pn","calendarId","gn","pn","On","epochMilliseconds","wn","In","blank","with","A","negated","add","subtract","total","DurationFormat","format","toJSON","from","compare","Instant","PlainDateTime","PlainDate","PlainTime","PlainYearMonth","PlainMonthDay","bn","Fn","Mn","Zn","yn","jn","Nn","An","Bn","rt","until","since","lt","equals","st","Yn","En","gt","withCalendar","withPlainTime","Ot","vt","Ct","toZonedDateTime","$n","bt","toPlainDate","Wn","toPlainTime","Ln","Vn","Et","Lt","Vt","kn","qn","Wt","$t","Ht","xn","ee","re","plainTime","ae","toPlainDateTime","ie","toPlainYearMonth","le","toPlainMonthDay","se","zn","timeZoneId","hoursInDay","Te","De","withTimeZone","Pe","ge","Ie","startOfDay","ve","Ce","toInstant","Kn","getTimeZoneTransition","Me","Hn","Le","Ve","toZonedDateTimeISO","Je","fromEpochMilliseconds","$e","fromEpochNanoseconds","He","Un","instant","zonedDateTimeISO","plainDateTimeISO","plainDateISO","plainTimeISO","Xn","ZonedDateTime","Duration","Now","_n","args","res","bbn","lng","match","tmp","curType","parseFloat","vars","loggers","_num","datatypes","shortenLen","upDown","leftRight","dels","confirm","alt","numbers","numsigns","comparators","operators","tags","colors","darkgrey","black","anthracite","grey","white","beige","lightgrey","pastelblue","cyan","blue","indigo","navy","webblue","teal","turquoise","pastelgreen","palegreen","green","olive","pastelorange","yellow","orange","pink","purple","red","brown","reserved","mockText","regexp","url","ip","hostname","env","siteTitle","window","document","title","logging","cdn","lang","host","location","protocol","href","old_path","loading","_enumerated","isEnumerating","width","height","focused","last_focus","getTime","sleep","theme","loaders","loadersHistory","maxLoadersHistory","resizeTimer","hashChanged","params","isInit","isFocused","isVisible","hidden","timeoff","loggingLevel","ignoreUnload","historyDisabled","nav","online","navigator","onLine","__awaiter","thisArg","_arguments","generator","Promise","resolve","fulfilled","step","rejected","result","done","then","Cancel","Error","message","super","__BBN_CANCEL__","methodsWithBody","xhrRequest","method","config","aborter","xhr","XMLHttpRequest","hasBody","promise","open","body","headers","data","headersObj","Headers","FormData","JSON","stringify","normalizeDataAndHeaders","forEach","key","setRequestHeader","onUploadProgress","upload","addEventListener","event","lengthComputable","undefined","loaded","progress","onreadystatechange","readyState","raw","trim","line","parts","shift","parseXhrHeaders","getAllResponseHeaders","status","statusText","responseText","parse","response","request","err","onerror","onabort","send","cancel","abort","com","isCancel","run","baseURL","usp","URLSearchParams","buildURL","fetchConfig","signal","log","fetchPromise","fetch","contentType","json","text","arrayBuffer","blob","_a","fromEntries","entries","ok","error","catch","fetchRequest","isNumber","isIterable","iterator","isString","isInt","isFunction","obj","_b","_c","isDev","console","cfg","level","_bbn_console_style","_bbn_console_mode","_bbn_console_level","consoleArguments","unshift","substr","str","arguments","removePrivateProp","deep","iterate","noPrivate","iter","prop","each","arr","isObject","isArray","Array","extend","originalArgs","hasNoData","out","b","getPrototypeOf","hasOwnProperty","__bbnNoData","__bbnData","unset","defineProperty","enumerable","idb","transformResult","indexOf","dbObject","dbName","conn","db","_connections","structure","_structures","lastError","onError","req","getStore","table","mode","tx","transaction","objectStore","insert","store","put","oncomplete","update","where","selectAll","rows","arch","primary","PRIMARY","columns","newData","onsuccess","delete","selectOne","field","order","start","limit","select","search","results","getter","openCursor","cursor","target","continue","getColumnValues","copyTable","objectStoreNames","contains","deleteTable","deleteObjectStore","_stores","updateStructure","storeName","createObjectStore","keyPath","createIndex","unique","num","onupgradeneeded","database","_addLoader","requestId","prom","tst","loader","errorMessage","success","idx","splice","getProperty","props","reduce","removeAccents","isDate","_compareValues","dir","vb","tb","numProperties","isEmpty","isNull","simpleHash1","hash","charCodeAt","simpleHash2","simpleHash","isDom","HTMLElement","getPath","element","path","node","realNode","localName","parent","parentNode","sameTagSiblings","children","filter","val","tagName","index","isCp","isComponent","cp","$el","bbnCid","treatForHash","depth","visited","WeakSet","$cid","bbnId","bbnHash","md5","hc","rh","charAt","ad","y","cm","rl","ff","gg","hh","olda","oldb","oldc","oldd","nblk","blks","sb","analyzeFunction","all","exp","isArrow","isAsync","hasFunction","parOpened","parClosed","currentArg","currentQuote","escapable","isEscaped","settingDefault","isComment","isCommentLine","isDestructuring","isBinary","returnType","matches","argString","arg","default","isSame","obj1","obj2","tmp1","tmp2","v1","v2","operator","lastIndexOf","compareConditions","conditions","logic","comparator","bits","pop","filterToConditions","startFrom","backward","isFn","subfilter","ele","getRow","notFound","_deleteLoader","isAbort","history","duration","getLoader","_filter","addColors","var","createElement","head","appendChild","sheet","insertRule","addInputs","form","prefix","appendToForm","input","setAttribute","param","toISOString","tempName","File","adjustSize","eles","el","style","rect","getBoundingClientRect","escapeRegExp","replaceAll","find","flags","getRequestId","datatype","ajax","failure","loaderObj","token","_bbn_token","AbortController","options","responseType","accept","defaultEndLoadingFunction","defaultAjaxErrorFunction","defaultAjaxAbortFunction","defaultStartLoadingFunction","decoder","TextDecoder","arrayBuffer2String","buf","decode","baseName","suffix","len","units","unitsCorrespondence","YEARS","YEAR","Years","Year","YYYY","YY","yyyy","yy","Months","Month","MONTHS","MONTH","MMMM","MMM","MM","weekday","WEEKDAY","EE","ddd","Days","Day","DAYS","DAY","DD","dd","Hours","Hour","HOURS","HOUR","HH","Minutes","Minute","MINUTES","MINUTE","II","mm","ms","SSS","sss","SS","ss","seconds","Seconds","Second","SECONDS","SECOND","sec","WW","ZZ","formatsMap","isPrimitive","_bbnDtDuration_instances","_bbnDtDuration_value","_bbnDtDuration_unit","_bbnDtDuration_getUnitValue","__classPrivateFieldSet","receiver","state","kind","__classPrivateFieldGet","DURATION_RELATIVE_TO","Temporal","bbnDtDuration","fromUnit","unit","realUnit","ctx","dur","milliseconds","setValid","isValid","remaining","asYears","asMonths","asWeeks","asDays","asHours","asMinutes","asSeconds","targetUnit","delta","newDuration","toMilliseconds","_bbnDt_value","bbnDt","__isBbnDt","getWeekdayIndex","loc","langs","languages","formatter","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","hasFullDate","toEpochMs","tz","systemTimeZoneId","iso","defaultValue","md","today","nowForKind","withValue","newValue","Ctor","isBbnDt","unwrap","toZdt","rawA","rawB","smallestUnit","largestUnit","roundingMode","convertibleKinds","za","zb","cls","other","amount","isBefore","isBeforeOrSame","isAfter","isAfterOrSame","zdt2","timezone","newZdt","zdt","Event","past","setWeekday","datetime","time","fdate","long","withTime","locales","formatters","ftime","withSeconds","UTC","jan1","jan1Dow","firstDayOfWeek","firstWeekLength","remainingDays","monthsLong","monthsShort","dddd","getWeekday","unix","reg","opened","part","short","startThis","startOf","startNow","diff","numeric","rtf","RelativeTimeFormat","phrase","matchFormat","letter","abbr","full","narrow","toLocaleDateString","targetDay","currentDay","targetMs","guessUnit","valueInMs","absDiff","shortUnit","rtfUnit","fromNow","temp","rawDiffMs","chosenUnit","zeroTime","change","diffToMonday","newDate","endOf","end","clone","isLeapYear","bbnDtDateTime","pattern","opt","bbnDtDate","compareSameKind","cmp","bbnDtZoned","hasZone","fromJsDate","bbnDtYearMonth","bbnDtMonthDay","partsToPattern","hourCycle","opts","hasDayPeriod","some","is12h","hasWeekday","hasTextMonth","requestedPureNumericYMD","buildLocaleFromIntl","fmtMonthLong","fmtMonthShort","fmtWeekLong","fmtWeekShort","fmtShort","dateStyle","timeStyle","fmtLong","fmtNum","Locale","baseSunday","weekdaysLong","weekdaysShort","sample","seenDatePatterns","seenTimePatterns","seenDateTimePatterns","dateOptionsList","fullDateOptions","fmt","timeOptionsList","dOpts","tOpts","getCommonFormatsForLocale","weekInfo","getWeekInfo","firstDay","relative","bbnDtTime","lc","localeCode","toLocaleLowerCase","force","_d","_f","_g","escapeRegex","parseWithFormat","currentDate","hasYear","hasMonth","hasDay","hasHour","hasMinute","hasSecond","hasMs","isClsAuto","isClsZoned","isClsDateTime","isClsDate","isClsTime","isClsYearMonth","isClsMonthDay","tokenSpecs","regex","findIndex","uses12Hour","offsetMinutes","rest","isPM","hasAmPm","tokensByLength","applyFns","lastPositionMatch","rawLiteral","literal","matchedToken","spec","fullRegex","inputDate","hasDate","hasYearMonthOnly","hasMonthDayOnly","hasTime","dtObj","pdt","TimeZone","epochMs","MYSQL_AND_NATIVE_FORMATS","guessFormat","formats","tryFormats","fmts","seen","mysqlNativeCandidates","localeCandidates","inputFormat","errorMsg","callback","fn2","errTitle","isObj","prescript","Function","preFn","defaultLinkFunction","content","innerHTML","script","fnScript","getMessage","defaultPostLinkFunction","postscript","fnPost","errorTitle","server_response","defaultErrorFunction","errorText","checkPropsDetails","checkEmpty","check","varName","correctCase","checkType","msg","logs","typesList","dateTime","zoned","monthDay","yearMonth","fire","transfer","DataTransfer","setData","copyEvent","ClipboardEvent","bubbles","cancelable","clipboardData","dispatchEvent","crc32Table","createObject","jqXHR","textStatus","errorThrown","timestamp","isNotObject","diffObjProcessed","dirName","pos","isBlob","fileExt","filename","isCanvas","HTMLCanvasElement","downloadContent","toBlob","download","URL","createObjectURL","className","click","revokeObjectURL","src","Blob","removeChild","yieldToBrowser","scheduler","yield","requestAnimationFrame","fieldValue","checked","formdata","$inputs","querySelectorAll","disabled","getAncestors","selector","querySelector","parentElement","closest","getCssVar","varname","getComputedStyle","documentElement","getPropertyValue","getDeviceType","userAgent","getHTMLOfSelection","range","selection","getSelection","rangeCount","getRangeAt","clonedSelection","cloneContents","div","removeHtmlComments","html2text","$test","innerText","imageToCanvas","img","canvas","getContext","drawImage","treatAjaxArguments","root","nodeType","_bbn","setNavigationVars","repl","reload","replaceState","pushState","link","setTimeout","preventDefault","successFn","defaultPreLinkFunction","errSt","new_url","noNav","errorFn","resize","diffW","innerWidth","diffH","innerHeight","clientWidth","setProperty","clientHeight","smallWidth","newCls","classes","defaultResizeFunction","isMobileDevice","isTabletDevice","isMobile","parseLocaleTag","tag","language","region","REGION_WEEK_INFO","weekinfoOverrides$1","computeWeekInfo","localeInstance","info","weekend","minimalDays","ensureIntlWeekInfoPolyfill","PolyfilledLocale","parsed","_tag","_language","_script","_region","proto","getOwnPropertyDescriptor","ensureIntlLocalePolyfill","setupIntl","tasks","polyfill$1","en$1","needsDateTimeStylePolyfill","polyfill","onActivity","hasAttribute","classList","stopPropagation","getAttribute","isValidDimension","remove","isIP","isSymbol","warning","objectToFormData","ignoreList","formData","appendFormData","append","post","abortFn","randomInt","random","hair","shorten","adj","abortURL","source","addStyle","adjustHeight","adjustWidth","animateCss","animationName","animationEndHandler","removeEventListener","arrayFromProp","autoExtend","namespace","br2nl","wrong_result","camelize","p1","p2","camelToCss","canvasToImage","Image","toDataURL","cast","center","position","top","offsetHeight","scrollTop","left","offsetWidth","scrollLeft","checkProps","checkPropsOrDie","circularReplacer","$options","colorToHex","color","fillStyle","copy","noDispatch","clipboard","write","ClipboardItem","item","writeText","opacity","execCommand","count","crc32","crc","charCode","cssExists","rules","css","styleSheets","sx","cssRules","cx","selectorText","data2Html","clsName","isAssoc","dateSQL","dayOnly","deepPath","deepProperty","defaultAlertFunction","alert","defaultConfirmFunction","yesFn","noFn","defaultHistoryFunction","responseObj","deleteProp","diffObj","unchanged","notRoot","VALUE_UNCHANGED","value1","value2","ret","_bbn_download","cd","extension","htmlExtensions","eraseCookie","cookie","escapeDquotes","escapeSquotes","escapeTicks","escapeUrl","encodeURIComponent","base","sep","existingParams","executeSlowly","extendOut","fdatetime","findAll","firstVarElement","firstBracket","firstDot","fori","realMax","forir","formatBytes","bytes","decimals","pow","toFixed","formatDate","dateToFormat","formatSize","noValid","fphone","phoneCodes","mask","tmpSt","fromXml","xml","arrayTags","dom","DOMParser","parseFromString","async","loadXML","parseError","reason","srcText","parseNode","xmlNode","nodeName","nodeValue","jsonNode","existing","attributes","attribute","childNodes","getAllTags","getAttributes","getAttributeNames","getBrowserName","getBrowserVersion","getChrono","microtimestamp","chronos","getCookie","nameEqual","unescape","getDay","getYear","getEventData","dataTransfer","getData","files","sel","html","strings","items","size","lastModified","getAsFile","mdate","getAsString","getField","getFieldValues","getIndex","getHtml","stripComments","getProp","getScrollBarSize","scrollBarSize","outer","visibility","msOverflowStyle","widthNoScroll","inner","widthWithScroll","sz","getSortingMoves","dst","setDst","setSrc","posInDst","lisIdx","tails","prev","fill","mid","lisIndices","keepSet","nextKeptAfter","work","moves","adjustedTo","moved","clear","getText","getTimeoff","happy","hex2rgb","hex","imgToBase64","init","baseURI","decodeURI","onpopstate","isActiveInterface","secs","isBoolean","isColor","Comment","isDataURL","isDesktopDevice","isDimension","isEmail","isEvent","contain","activeElement","isHex","isHostname","isInside","ancestor","ancestors","isInViewport","fully","bounding","right","bottom","eleHeight","eleWidth","isPercent","isPromise","isPropSize","isTrue","isSQLDate","isURL","isUid","isValidName","isVue","vue","render","isWritable","desc","lightenDarkenHex","amt","makeReactive","onSet","parentProp","parentString","__bbnIsProxy","__bbnParent","__bbnWatchers","Reflect","Proxy","realValue","realTarget","__bbnRoot","propName","hiddenKey","__bbnTarget","description","deleteProperty","deepProp","performance","timeOrigin","money","kilo","currency","novalue","decimal","thousands","precision","decimalPosition","decimalIdx","move","fromIndex","toIndex","multiorder","orders","currentOrders","mutateArray","a1","a2","hashFn","mapA2","a1Ordered","indexInA1","itemToMove","mutateObject","nl2br","keepNl","outerHeight","styles","margin","outerWidth","percent","cent","pickValue","postOut","HTMLFormElement","submit","printf","number","quotes2html","randomString","types","chars","stop","removeEmpty","removeExtraSpaces","removeTrailingChars","char","repeat","replaceSelection","selectInserted","fragment","deleteContents","createContextualFragment","child","createDocumentFragment","firstChild","firstInsertedNode","lastInsertedNode","lastChild","insertNode","removeAllRanges","setStartBefore","setEndAfter","addRange","setStartAfter","rgb2hex","rgb","riterate","roundDecimal","sanitize","separator","escaped","selectElementText","win","HTMLInputElement","doc","createRange","selectNodeContents","createTextRange","moveToElementText","setCookie","expires","setTime","toUTCString","escape","setCssVar","setProp","shortenObj","shuffle","array","randomIndex","currentIndex","startChrono","stopChrono","stream","finished","treatJSON","chrono","cache","credentials","redirect","referrerPolicy","reader","getReader","read","pump","string2ArrayBuffer","ArrayBuffer","bufView","Uint16Array","strLen","sum","numberProp","toCSV","valSep","rowSep","valEsc","csvContent","values","toggleFullScreen","mozRequestFullScreen","webkitRequestFullScreen","msRequestFullScreen","fullscreenEnabled","exitFullscreen","requestFullscreen","translate","uniqString","file","progressEvent","percentCompleted","version","_cat","app","context","select_unselect_all","select_all","choose","closeAll","closeOthers","pin","arrange","unpin","yes","unknown","untitled","confirmation","Today","Tomorrow","Yesterday","label","icon","AE","AF","AG","AI","AL","AM","AR","AS","AU","AZ","BA","BD","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CL","CM","CN","CO","CR","CY","DJ","DM","DO","DZ","EC","EG","ET","GE","GT","GU","HK","HN","HR","ID","IL","IN","IQ","IR","IS","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LK","LV","LY","MD","ME","MH","MK","MN","MO","MT","MV","MX","MY","MZ","NI","NP","NZ","OM","PA","PE","PH","PK","PR","PT","PY","QA","RO","RS","SA","SD","SG","SI","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UG","UM","US","UY","UZ","VE","VI","VN","WS","XK","YE","ZA","ZW","exports","_1","require","__importDefault","shouldPolyfill","__addLocaleData","future","one","nu","quarter","ecma402_abstract_1","should_polyfill_1","to_locale_string_1","toLocaleTimeString","am","pm","BC","AD","gmtFormat","hourFormat","dateFormat","medium","timeFormat","dateTimeFormat","Bh","Bhm","Bhms","EBhm","EBhms","Ed","Ehm","EHm","Ehms","EHms","Gy","GyMd","GyMMM","GyMMMd","GyMMMEd","hm","Hm","hms","Hms","hmsv","Hmsv","hmv","Hmv","Md","MEd","MMMd","MMMEd","MMMMd","yM","yMd","yMEd","yMMM","yMMMd","yMMMEd","yMMMM","intervalFormats","intervalFormatFallback","GyM","GyMEd","hv","Hv"],"mappings":"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","x_google_ignoreList":[0,1,276,277,278,279]}
|