{"version":3,"file":"static/js/main.7e1a89e9.js","mappings":"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sR,IAAVtR,GAAwBotE,EAAQg5I,iBAGtD,OAAOJ,GAAOhmN,EAAOotE,EACzB,CC7CA,IAAMi5I,GAAc,WACE,IAAlB,IAAMvsM,EAAS,CAAC,EAAE5d,EAAAC,UAAAC,OADEu4E,EAAK,IAAAt4E,MAAAH,GAAAI,EAAA,EAAAA,EAAAJ,EAAAI,IAALq4E,EAAKr4E,GAAAH,UAAAG,GAEzB,IAAK,IAALmhC,EAAA,EAAAi8C,EAAmB/E,EAAKl3C,EAAAi8C,EAAAt9E,OAAAqhC,IAAC,CAApB,IAEqBrd,EAFf+kD,EAAIuU,EAAAj8C,GACL9+B,EAAOtC,MAAM0hB,QAAQonD,GAAQA,EAAOjoE,OAAOyB,KAAKwmE,GAAM9kD,GAAAC,EAAAA,EAAAA,GAC1C3hB,GAAI,IAAtB,IAAA0hB,EAAApkB,MAAAmkB,EAAAC,EAAAroB,KAAAuoB,MAAuB,CACnBzG,EADUsG,EAAApgB,OACI,CAClB,CAAC,OAAAwgB,GAAAH,EAAA5oB,EAAA+oB,EAAA,SAAAH,EAAA3oB,GAAA,CACL,CACA,OAAOoiB,CACX,EAKiBwsM,GAAoBD,GAAY,CAC7C,aACA,iBACA,mBACA,SACA,QACA,UACA,mBACA,qBACA,sBACA,UACA,iBACA,SACA,gBACA,WACA,UACA,WACA,SACA,UACA,YACA,mBACA,aACA,UACA,UACA,YACA,mBACA,mBACA,YACA,cACA,UACA,eACA,mBACA,cACA,UACA,SACA,YACA,aACA,eACA,WACA,YACA,YACA,YACA,eACA,iBACA,YACA,UACA,iBACA,gBACA,gBACA,SACA,YACA,cACA,aACA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAMaE,GAAwBF,GAAY,CACjD,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAMaG,GAAsBH,GAAY,CAC/C,SACA,WA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CA,cACA,aACA,cACA,SACA,cACA,qBACA,eACA,eACA,cACA,aACA,cACA,YACA,mBACA,WACA,gBACA,aACA,cACA,eACA,WACA,UACA,kBACA,gBACA,iBACA,iBACA,gBACA,eACA,gBACA,cACA,sBACA,yBAQWE,GAAwBF,GAAY,CAC/C,YACA,WACA,YACA,kBACA,MACA,YACA,SACA,UACA,KACA,OACA,MACA,OACA,QACA,WACA,QACA,YACA,aACA,SAQWI,GAAwBJ,GAAYE,GAAuBD,IAgB3DK,IATkBN,GAAYI,GAAuB,CAChE,SAQ6BJ,GAAYI,GAAuB,CAChE,SACA,OACA,QACA,UACA,MACA,WAmCWM,IA3BkBV,GAAYM,GAAiB,CAC1D,WAQ0BN,GAAYI,GAAuB,CAC7D,UAQ0BJ,GAAYI,GAAuB,CAC7D,UAQ8BJ,GAAYI,GAAuB,CACjE,WACA,OACA,WACA,QACA,MACA,SACA,UAQWQ,GAAmBZ,GAAYI,GAAuB,CACjE,YACA,WACA,OACA,aACA,cACA,aACA,iBACA,aACA,OACA,UAQW07I,GAAkB97I,GAAYY,GAAkB,CAC3D,SACA,MACA,iBACA,eACA,UACA,UACA,OACA,SACA,YACA,OACA,MACA,YACA,MACA,YACA,WACA,UACA,cACA,WACA,WACA,MACA,OACA,OACA,OACA,QACA,UAQWm7I,GAAqB/7I,GAAYY,GAAkB,CAC9D,iBACA,OACA,UACA,OACA,YACA,YACA,cACA,WACA,WACA,OACA,SA0GWo7I,IAlGmBh8I,GAAYY,GAAkB,CAC5D,OACA,WACA,aAG8BZ,GAAYI,GAAuB,CACjE,WACA,UAQ6BJ,GAAYI,GAAuB,CAChE,cACA,gBAe0BJ,GAAYI,GAAuB,CAC7D,UACA,UAQ0BJ,GAAYI,GAAuB,CAC7D,UACA,UACA,UACA,UAGgCJ,GAAYI,GAAuB,CACnE,SAG2BJ,GAAYI,GAAuB,CAC9D,SAQ4BJ,GAAYI,GAAuB,CAC/D,gBACA,SACA,UACA,UACA,SACA,aACA,WAQ8BJ,GAAYI,GAAuB,CACjE,QACA,kBACA,sBACA,oBACA,MACA,SACA,aACA,iBACA,UACA,MACA,SA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","sources":["../node_modules/@fluentui/react-jsx-runtime/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@fluentui/react-jsx-runtime/node_modules/react-is/index.js","../microsoftTeams/webpack/universalModuleDefinition","../microsoftTeams/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/browser.js","../microsoftTeams/node_modules/.pnpm/debug@4.3.4/node_modules/debug/src/common.js","../microsoftTeams/node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js","../microsoftTeams/webpack/bootstrap","../microsoftTeams/webpack/runtime/create fake namespace object","../microsoftTeams/webpack/runtime/define property getters","../microsoftTeams/webpack/runtime/hasOwnProperty shorthand","../microsoftTeams/webpack/runtime/make namespace object","../microsoftTeams/src/internal/telemetry.ts","../microsoftTeams/src/internal/constants.ts","../microsoftTeams/src/internal/globalVars.ts","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/native.js","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/rng.js","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/stringify.js","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/v4.js","../microsoftTeams/src/public/interfaces.ts","../microsoftTeams/src/public/constants.ts","../microsoftTeams/src/internal/utils.ts","../microsoftTeams/src/public/runtime.ts","../microsoftTeams/src/public/version.ts","../microsoftTeams/src/internal/internalAPIs.ts","../microsoftTeams/src/internal/typeCheckUtilities.ts","../microsoftTeams/src/public/authentication.ts","../microsoftTeams/src/internal/validOrigins.ts","../microsoftTeams/src/public/dialog.ts","../microsoftTeams/src/public/menus.ts","../microsoftTeams/src/public/app.ts","../microsoftTeams/src/public/pages.ts","../microsoftTeams/src/internal/handlers.ts","../microsoftTeams/src/internal/nestedAppAuth.ts","../microsoftTeams/src/internal/communication.ts","../microsoftTeams/src/private/logs.ts","../microsoftTeams/src/private/interfaces.ts","../microsoftTeams/src/private/privateAPIs.ts","../microsoftTeams/src/private/conversations.ts","../microsoftTeams/src/internal/deepLinkConstants.ts","../microsoftTeams/src/internal/deepLinkUtilities.ts","../microsoftTeams/src/public/appInstallDialog.ts","../microsoftTeams/src/public/media.ts","../microsoftTeams/src/internal/mediaUtil.ts","../microsoftTeams/src/public/barCode.ts","../microsoftTeams/src/public/chat.ts","../microsoftTeams/src/public/clipboard.ts","../microsoftTeams/src/public/geoLocation.ts","../microsoftTeams/src/public/adaptiveCards.ts","../microsoftTeams/src/public/appWindow.ts","../microsoftTeams/src/public/secondaryBrowser.ts","../microsoftTeams/src/public/location.ts","../microsoftTeams/src/public/meeting.ts","../microsoftTeams/src/public/monetization.ts","../microsoftTeams/src/public/calendar.ts","../microsoftTeams/src/public/mail.ts","../microsoftTeams/src/public/teamsAPIs.ts","../microsoftTeams/src/public/people.ts","../microsoftTeams/src/internal/profileUtil.ts","../microsoftTeams/src/public/profile.ts","../microsoftTeams/src/internal/videoEffectsUtils.ts","../microsoftTeams/src/internal/videoFrameTick.ts","../microsoftTeams/src/internal/videoPerformanceStatistics.ts","../microsoftTeams/src/internal/videoPerformanceMonitor.ts","../microsoftTeams/src/public/videoEffects.ts","../microsoftTeams/src/public/search.ts","../microsoftTeams/src/public/sharing.ts","../microsoftTeams/src/public/stageView.ts","../microsoftTeams/src/public/visualMedia.ts","../microsoftTeams/src/public/webStorage.ts","../microsoftTeams/src/public/call.ts","../microsoftTeams/src/public/appInitialization.ts","../microsoftTeams/src/public/thirdPartyCloudStorage.ts","../microsoftTeams/src/public/publicAPIs.ts","../microsoftTeams/src/public/navigation.ts","../microsoftTeams/src/public/settings.ts","../microsoftTeams/src/public/tasks.ts","../microsoftTeams/src/public/liveShareHost.ts","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/regex.js","../microsoftTeams/node_modules/.pnpm/uuid@9.0.0/node_modules/uuid/dist/esm-browser/validate.js","../microsoftTeams/src/internal/marketplaceUtils.ts","../microsoftTeams/src/public/marketplace.ts","../microsoftTeams/src/private/externalAppAuthentication.ts","../microsoftTeams/src/private/externalAppCardActions.ts","../microsoftTeams/src/private/files.ts","../microsoftTeams/src/private/meetingRoom.ts","../microsoftTeams/src/private/messageChannels.ts","../microsoftTeams/src/private/notifications.ts","../microsoftTeams/src/private/remoteCamera.ts","../microsoftTeams/src/private/appEntity.ts","../microsoftTeams/src/private/teams.ts","../microsoftTeams/src/private/videoEffectsEx.ts","../node_modules/adaptivecards/src/adaptivecards.ts","../node_modules/adaptivecards/src/card-elements.ts","../node_modules/adaptivecards/src/enums.ts","../node_modules/adaptivecards/src/host-config.ts","../node_modules/adaptivecards/src/shared.ts","../node_modules/adaptivecards/src/text-formatters.ts","../node_modules/adaptivecards/src/utils.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/linkify-it/index.js","../node_modules/linkify-it/lib/re.js","../node_modules/markdown-it/index.js","../node_modules/markdown-it/lib/common/entities.js","../node_modules/markdown-it/lib/common/html_blocks.js","../node_modules/markdown-it/lib/common/html_re.js","../node_modules/markdown-it/lib/common/utils.js","../node_modules/markdown-it/lib/helpers/index.js","../node_modules/markdown-it/lib/helpers/parse_link_destination.js","../node_modules/markdown-it/lib/helpers/parse_link_label.js","../node_modules/markdown-it/lib/helpers/parse_link_title.js","../node_modules/markdown-it/lib/index.js","../node_modules/markdown-it/lib/parser_block.js","../node_modules/markdown-it/lib/parser_core.js","../node_modules/markdown-it/lib/parser_inline.js","../node_modules/markdown-it/lib/presets/commonmark.js","../node_modules/markdown-it/lib/presets/default.js","../node_modules/markdown-it/lib/presets/zero.js","../node_modules/markdown-it/lib/renderer.js","../node_modules/markdown-it/lib/ruler.js","../node_modules/markdown-it/lib/rules_block/blockquote.js","../node_modules/markdown-it/lib/rules_block/code.js","../node_modules/markdown-it/lib/rules_block/fence.js","../node_modules/markdown-it/lib/rules_block/heading.js","../node_modules/markdown-it/lib/rules_block/hr.js","../node_modules/markdown-it/lib/rules_block/html_block.js","../node_modules/markdown-it/lib/rules_block/lheading.js","../node_modules/markdown-it/lib/rules_block/list.js","../node_modules/markdown-it/lib/rules_block/paragraph.js","../node_modules/markdown-it/lib/rules_block/reference.js","../node_modules/markdown-it/lib/rules_block/state_block.js","../node_modules/markdown-it/lib/rules_block/table.js","../node_modules/markdown-it/lib/rules_core/block.js","../node_modules/markdown-it/lib/rules_core/inline.js","../node_modules/markdown-it/lib/rules_core/linkify.js","../node_modules/markdown-it/lib/rules_core/normalize.js","../node_modules/markdown-it/lib/rules_core/replacements.js","../node_modules/markdown-it/lib/rules_core/smartquotes.js","../node_modules/markdown-it/lib/rules_core/state_core.js","../node_modules/markdown-it/lib/rules_core/text_join.js","../node_modules/markdown-it/lib/rules_inline/autolink.js","../node_modules/markdown-it/lib/rules_inline/backticks.js","../node_modules/markdown-it/lib/rules_inline/balance_pairs.js","../node_modules/markdown-it/lib/rules_inline/emphasis.js","../node_modules/markdown-it/lib/rules_inline/entity.js","../node_modules/markdown-it/lib/rules_inline/escape.js","../node_modules/markdown-it/lib/rules_inline/fragments_join.js","../node_modules/markdown-it/lib/rules_inline/html_inline.js","../node_modules/markdown-it/lib/rules_inline/image.js","../node_modules/markdown-it/lib/rules_inline/link.js","../node_modules/markdown-it/lib/rules_inline/linkify.js","../node_modules/markdown-it/lib/rules_inline/newline.js","../node_modules/markdown-it/lib/rules_inline/state_inline.js","../node_modules/markdown-it/lib/rules_inline/strikethrough.js","../node_modules/markdown-it/lib/rules_inline/text.js","../node_modules/markdown-it/lib/token.js","../node_modules/mdurl/decode.js","../node_modules/mdurl/encode.js","../node_modules/mdurl/format.js","../node_modules/mdurl/index.js","../node_modules/mdurl/parse.js","../node_modules/moment/min/locales.js","../node_modules/moment/moment.js","../node_modules/punycode/punycode.es6.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-dom/node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react-dom/node_modules/scheduler/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-redux/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/uc.micro/categories/Cc/regex.js","../node_modules/uc.micro/categories/Cf/regex.js","../node_modules/uc.micro/categories/P/regex.js","../node_modules/uc.micro/categories/Z/regex.js","../node_modules/uc.micro/index.js","../node_modules/uc.micro/properties/Any/regex.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/validator/index.js","../node_modules/validator/lib/alpha.js","../node_modules/validator/lib/blacklist.js","../node_modules/validator/lib/contains.js","../node_modules/validator/lib/equals.js","../node_modules/validator/lib/escape.js","../node_modules/validator/lib/isAfter.js","../node_modules/validator/lib/isAlpha.js","../node_modules/validator/lib/isAlphanumeric.js","../node_modules/validator/lib/isAscii.js","../node_modules/validator/lib/isBIC.js","../node_modules/validator/lib/isBase32.js","../node_modules/validator/lib/isBase58.js","../node_modules/validator/lib/isBase64.js","../node_modules/validator/lib/isBefore.js","../node_modules/validator/lib/isBoolean.js","../node_modules/validator/lib/isBtcAddress.js","../node_modules/validator/lib/isByteLength.js","../node_modules/validator/lib/isCreditCard.js","../node_modules/validator/lib/isCurrency.js","../node_modules/validator/lib/isDataURI.js","../node_modules/validator/lib/isDate.js","../node_modules/validator/lib/isDecimal.js","../node_modules/validator/lib/isDivisibleBy.js","../node_modules/validator/lib/isEAN.js","../node_modules/validator/lib/isEmail.js","../node_modules/validator/lib/isEmpty.js","../node_modules/validator/lib/isEthereumAddress.js","../node_modules/validator/lib/isFQDN.js","../node_modules/validator/lib/isFloat.js","../node_modules/validator/lib/isFullWidth.js","../node_modules/validator/lib/isHSL.js","../node_modules/validator/lib/isHalfWidth.js","../node_modules/validator/lib/isHash.js","../node_modules/validator/lib/isHexColor.js","../node_modules/validator/lib/isHexadecimal.js","../node_modules/validator/lib/isIBAN.js","../node_modules/validator/lib/isIMEI.js","../node_modules/validator/lib/isIP.js","../node_modules/validator/lib/isIPRange.js","../node_modules/validator/lib/isISBN.js","../node_modules/validator/lib/isISIN.js","../node_modules/validator/lib/isISO31661Alpha2.js","../node_modules/validator/lib/isISO31661Alpha3.js","../node_modules/validator/lib/isISO4217.js","../node_modules/validator/lib/isISO6391.js","../node_modules/validator/lib/isISO8601.js","../node_modules/validator/lib/isISRC.js","../node_modules/validator/lib/isISSN.js","../node_modules/validator/lib/isIdentityCard.js","../node_modules/validator/lib/isIn.js","../node_modules/validator/lib/isInt.js","../node_modules/validator/lib/isJSON.js","../node_modules/validator/lib/isJWT.js","../node_modules/validator/lib/isLatLong.js","../node_modules/validator/lib/isLength.js","../node_modules/validator/lib/isLicensePlate.js","../node_modules/validator/lib/isLocale.js","../node_modules/validator/lib/isLowercase.js","../node_modules/validator/lib/isLuhnNumber.js","../node_modules/validator/lib/isMACAddress.js","../node_modules/validator/lib/isMD5.js","../node_modules/validator/lib/isMagnetURI.js","../node_modules/validator/lib/isMimeType.js","../node_modules/validator/lib/isMobilePhone.js","../node_modules/validator/lib/isMongoId.js","../node_modules/validator/lib/isMultibyte.js","../node_modules/validator/lib/isNumeric.js","../node_modules/validator/lib/isOctal.js","../node_modules/validator/lib/isPassportNumber.js","../node_modules/validator/lib/isPort.js","../node_modules/validator/lib/isPostalCode.js","../node_modules/validator/lib/isRFC3339.js","../node_modules/validator/lib/isRgbColor.js","../node_modules/validator/lib/isSemVer.js","../node_modules/validator/lib/isSlug.js","../node_modules/validator/lib/isStrongPassword.js","../node_modules/validator/lib/isSurrogatePair.js","../node_modules/validator/lib/isTaxID.js","../node_modules/validator/lib/isTime.js","../node_modules/validator/lib/isURL.js","../node_modules/validator/lib/isUUID.js","../node_modules/validator/lib/isUppercase.js","../node_modules/validator/lib/isVAT.js","../node_modules/validator/lib/isVariableWidth.js","../node_modules/validator/lib/isWhitelisted.js","../node_modules/validator/lib/ltrim.js","../node_modules/validator/lib/matches.js","../node_modules/validator/lib/normalizeEmail.js","../node_modules/validator/lib/rtrim.js","../node_modules/validator/lib/stripLow.js","../node_modules/validator/lib/toBoolean.js","../node_modules/validator/lib/toDate.js","../node_modules/validator/lib/toFloat.js","../node_modules/validator/lib/toInt.js","../node_modules/validator/lib/trim.js","../node_modules/validator/lib/unescape.js","../node_modules/validator/lib/util/algorithms.js","../node_modules/validator/lib/util/assertString.js","../node_modules/validator/lib/util/includes.js","../node_modules/validator/lib/util/merge.js","../node_modules/validator/lib/util/multilineRegex.js","../node_modules/validator/lib/util/toString.js","../node_modules/validator/lib/whitelist.js","../node_modules/void-elements/index.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/react-redux/es/index.js","../node_modules/react-redux/es/components/connect.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@fluentui/tokens/lib/global/colors.js","../node_modules/@fluentui/tokens/lib/global/colorPalette.js","../node_modules/@fluentui/tokens/lib/sharedColorNames.js","../node_modules/@fluentui/tokens/lib/statusColorMapping.js","../node_modules/@fluentui/tokens/lib/alias/lightColorPalette.js","../node_modules/@fluentui/tokens/lib/alias/lightColor.js","../node_modules/@fluentui/tokens/lib/global/borderRadius.js","../node_modules/@fluentui/tokens/lib/global/fonts.js","../node_modules/@fluentui/tokens/lib/global/strokeWidths.js","../node_modules/@fluentui/tokens/lib/utils/shadows.js","../node_modules/@fluentui/tokens/lib/global/durations.js","../node_modules/@fluentui/tokens/lib/global/curves.js","../node_modules/@fluentui/tokens/lib/global/spacings.js","../node_modules/@fluentui/tokens/lib/global/brandColors.js","../node_modules/@fluentui/tokens/lib/themes/teams/lightTheme.js","../node_modules/@fluentui/tokens/lib/utils/createLightTheme.js","../node_modules/@fluentui/tokens/lib/alias/darkColorPalette.js","../node_modules/@fluentui/tokens/lib/alias/teamsDarkColor.js","../node_modules/@fluentui/tokens/lib/themes/teams/darkTheme.js","../node_modules/@fluentui/tokens/lib/utils/createTeamsDarkTheme.js","../node_modules/@fluentui/tokens/lib/alias/highContrastColorPalette.js","../node_modules/@fluentui/tokens/lib/themes/teams/highContrastTheme.js","../node_modules/@fluentui/tokens/lib/utils/createHighContrastTheme.js","../node_modules/@fluentui/tokens/lib/alias/highContrastColor.js","../node_modules/@fluentui/react-utilities/lib/compose/constants.js","../node_modules/@fluentui/react-utilities/lib/compose/isSlot.js","../node_modules/@fluentui/react-jsx-runtime/lib/jsx/createJSX.js","../node_modules/@fluentui/react-jsx-runtime/lib/utils/createCompatSlotComponent.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@fluentui/react-jsx-runtime/lib/utils/getMetadataFromSlotComponent.js","../node_modules/@fluentui/react-jsx-runtime/lib/utils/Runtime.js","../node_modules/@fluentui/react-jsx-runtime/lib/jsx-runtime.js","../node_modules/@fluentui/react-jsx-runtime/lib/jsx/jsxSlot.js","../node_modules/@fluentui/react-jsx-runtime/lib/jsx/jsxsSlot.js","../node_modules/@fluentui/react-utilities/lib/ssr/canUseDOM.js","../packages/react/src/TextDirectionContext.tsx","../node_modules/@fluentui/react-shared-contexts/lib/ProviderContext/ProviderContext.js","../node_modules/@fluentui/react-shared-contexts/lib/ThemeContext/ThemeContext.js","../node_modules/@fluentui/react-shared-contexts/lib/ThemeClassNameContext/ThemeClassNameContext.js","../node_modules/@fluentui/react-shared-contexts/lib/CustomStyleHooksContext/CustomStyleHooksContext.js","../node_modules/@fluentui/react-shared-contexts/lib/TooltipVisibilityContext/TooltipContext.js","../node_modules/@fluentui/react-shared-contexts/lib/OverridesContext/OverridesContext.js","../node_modules/@fluentui/react-icons/lib/contexts/IconDirectionContext.js","../packages/core/src/constants.ts","../packages/core/src/renderer/createIsomorphicStyleSheet.ts","../packages/core/src/renderer/getStyleSheetForBucket.ts","../packages/core/src/renderer/safeInsertRule.ts","../packages/core/src/renderer/createDOMRenderer.ts","../packages/core/src/runtime/utils/normalizeCSSBucketEntry.ts","../packages/react/src/RendererContext.tsx","../node_modules/@fluentui/react-utilities/lib/utils/isHTMLElement.js","../node_modules/keyborg/src/WeakRefInstance.ts","../node_modules/keyborg/src/FocusEvent.ts","../node_modules/keyborg/src/Keyborg.ts","../node_modules/@fluentui/react-tabster/lib/focus/constants.js","../node_modules/keyborg/src/index.ts","../node_modules/@fluentui/react-tabster/lib/focus/focusVisiblePolyfill.js","../node_modules/@fluentui/react-tabster/lib/hooks/useFocusVisible.js","../node_modules/@fluentui/react-utilities/lib/compose/slot.js","../node_modules/@fluentui/react-utilities/lib/utils/properties.js","../node_modules/@fluentui/react-utilities/lib/utils/getNativeElementProps.js","../node_modules/@fluentui/react-utilities/lib/compose/getIntrinsicElementProps.js","../node_modules/@fluentui/react-utilities/lib/hooks/useMergedRefs.js","../node_modules/@fluentui/react-utilities/lib/hooks/useIsomorphicLayoutEffect.js","../node_modules/@fluentui/react-utilities/lib/ssr/SSRContext.js","../node_modules/@fluentui/react-utilities/lib/hooks/useId.js","../packages/core/src/insertionFactory.ts","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../packages/core/src/runtime/utils/hashSequence.ts","../packages/core/src/runtime/reduceToClassNameForSlots.ts","../packages/core/src/__styles.ts","../packages/core/src/mergeClasses.ts","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderStyles.styles.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderThemeStyleTag.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/createCSSRuleFromTheme.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProvider.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/FluentProvider.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/useFluentProviderContextValues.js","../node_modules/@fluentui/react-provider/lib/components/FluentProvider/renderFluentProvider.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/TransWithoutContext.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","i18n.ts","configVariables.ts","components/config.tsx","../node_modules/@fluentui/react-text/lib/components/Text/useText.js","../node_modules/@fluentui/react-text/lib/components/Text/renderText.js","../packages/react/src/useInsertionEffect.ts","../packages/react/src/insertionFactory.ts","../packages/react/src/utils/canUseDOM.ts","../packages/react/src/__styles.ts","../node_modules/@fluentui/react-text/lib/components/Text/useTextStyles.styles.js","../node_modules/@fluentui/react-text/lib/components/Text/Text.js","components/ErrorPage/errorPage.tsx","../node_modules/@fluentui/keyboard-keys/lib/keys.js","../node_modules/@fluentui/react-utilities/lib/hooks/useEventCallback.js","../node_modules/@fluentui/react-aria/lib/button/useARIAButtonProps.js","../node_modules/@fluentui/react-button/lib/contexts/ButtonContext.js","../node_modules/@fluentui/react-button/lib/components/Button/useButton.js","../node_modules/@fluentui/tokens/lib/tokens.js","../packages/react/src/__resetStyles.ts","../packages/core/src/__resetStyles.ts","../node_modules/@fluentui/react-button/lib/components/Button/useButtonStyles.styles.js","../node_modules/@fluentui/react-button/lib/components/Button/Button.js","../node_modules/@fluentui/react-button/lib/components/Button/renderButton.js","../node_modules/@fluentui/react-context-selector/lib/createContext.js","../node_modules/@fluentui/react-context-selector/lib/useContextSelector.js","../node_modules/@fluentui/react-accordion/lib/contexts/accordion.js","../node_modules/@fluentui/react-utilities/lib/hooks/useControllableState.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/tabster/src/Types.ts","../node_modules/tabster/src/Instance.ts","../node_modules/tabster/src/DOMAPI.ts","../node_modules/tabster/src/Utils.ts","../node_modules/tabster/src/AttributeHelpers.ts","../node_modules/tabster/src/Root.ts","../node_modules/tabster/src/EventTarget.ts","../node_modules/tabster/src/Deloser.ts","../node_modules/tabster/src/State/Subscribable.ts","../node_modules/tabster/src/Focusable.ts","../node_modules/tabster/src/Keys.ts","../node_modules/tabster/src/State/FocusedElement.ts","../node_modules/tabster/src/State/KeyboardNavigation.ts","../node_modules/tabster/src/Modalizer.ts","../node_modules/tabster/src/Mover.ts","../node_modules/tabster/src/Uncontrolled.ts","../node_modules/tabster/src/Restorer.ts","../node_modules/tabster/src/Shadowdomize/DOMFunctions.ts","../node_modules/tabster/src/Shadowdomize/ShadowMutationObserver.ts","../node_modules/tabster/src/Tabster.ts","../node_modules/tabster/src/MutationEvent.ts","../node_modules/@fluentui/react-utilities/lib/virtualParent/getParent.js","../node_modules/@fluentui/react-utilities/lib/virtualParent/isVirtualElement.js","../node_modules/@fluentui/react-tabster/lib/hooks/useTabster.js","../node_modules/@fluentui/react-tabster/lib/hooks/useTabsterAttributes.js","../node_modules/@fluentui/react-tabster/lib/hooks/useArrowNavigationGroup.js","../node_modules/@fluentui/react-accordion/lib/components/Accordion/useAccordion.js","../node_modules/@fluentui/react-accordion/lib/components/Accordion/useAccordionStyles.styles.js","../node_modules/@fluentui/react-accordion/lib/components/Accordion/Accordion.js","../node_modules/@fluentui/react-accordion/lib/components/Accordion/useAccordionContextValues.js","../node_modules/@fluentui/react-accordion/lib/components/Accordion/renderAccordion.js","../node_modules/@fluentui/react-accordion/lib/contexts/accordionItem.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionItem/useAccordionItemStyles.styles.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionItem/AccordionItem.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionItem/useAccordionItem.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionItem/useAccordionItemContextValues.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionItem/renderAccordionItem.js","../node_modules/@fluentui/react-utilities/lib/compose/isResolvedShorthand.js","../node_modules/@fluentui/react-icons/lib/utils/useIconState.js","../node_modules/@fluentui/react-icons/lib/utils/createFluentIcon.js","../node_modules/@fluentui/react-icons/lib/icons/chunk-1.js","../node_modules/@fluentui/react-accordion/lib/contexts/accordionHeader.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionHeader/useAccordionHeaderStyles.styles.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionHeader/AccordionHeader.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionHeader/useAccordionHeader.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionHeader/useAccordionHeaderContextValues.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionHeader/renderAccordionHeader.js","../node_modules/@fluentui/react-text/lib/components/presets/createPreset.js","../node_modules/@fluentui/react-text/lib/components/presets/Body1Stronger/useBody1StrongerStyles.styles.js","../node_modules/@fluentui/react-text/lib/components/presets/Body1Stronger/Body1Stronger.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionPanel/useAccordionPanelStyles.styles.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionPanel/AccordionPanel.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionPanel/useAccordionPanel.js","../node_modules/@fluentui/react-accordion/lib/components/AccordionPanel/renderAccordionPanel.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-12.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-4.js","routes.ts","apis/apiDecorator.ts","apis/messageListApi.ts","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux/es/redux.js","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","messagesSlice.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","actions.ts","store.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@fluentui/react-utilities/lib/hooks/useTimeout.js","../node_modules/@fluentui/react-utilities/lib/hooks/useBrowserTimer.js","../node_modules/@fluentui/react-label/lib/components/Label/useLabel.js","../node_modules/@fluentui/react-label/lib/components/Label/useLabelStyles.styles.js","../node_modules/@fluentui/react-label/lib/components/Label/Label.js","../node_modules/@fluentui/react-label/lib/components/Label/renderLabel.js","../node_modules/@fluentui/react-spinner/lib/components/Spinner/DefaultSvg.js","../node_modules/@fluentui/react-spinner/lib/contexts/SpinnerContext.js","../node_modules/@fluentui/react-spinner/lib/components/Spinner/useSpinner.js","../node_modules/@fluentui/react-spinner/lib/components/Spinner/useSpinnerStyles.styles.js","../node_modules/@fluentui/react-spinner/lib/components/Spinner/Spinner.js","../node_modules/@fluentui/react-spinner/lib/components/Spinner/renderSpinner.js","../node_modules/@fluentui/react-table/lib/components/Table/useTable.js","../node_modules/@fluentui/react-table/lib/contexts/tableContext.js","../node_modules/@fluentui/react-table/lib/components/Table/useTableStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/Table/Table.js","../node_modules/@fluentui/react-table/lib/components/Table/renderTable.js","../node_modules/@fluentui/react-table/lib/components/Table/useTableContextValues.js","../node_modules/@fluentui/react-table/lib/components/TableHeader/useTableHeader.js","../node_modules/@fluentui/react-table/lib/contexts/tableHeaderContext.js","../node_modules/@fluentui/react-table/lib/components/TableHeader/useTableHeaderStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableHeader/TableHeader.js","../node_modules/@fluentui/react-table/lib/components/TableHeader/renderTableHeader.js","../node_modules/@fluentui/react-tabster/lib/focus/focusWithinPolyfill.js","../node_modules/@fluentui/react-tabster/lib/hooks/useFocusWithin.js","../node_modules/@fluentui/react-table/lib/components/TableRow/useTableRow.js","../node_modules/@fluentui/react-table/lib/components/TableRow/useTableRowStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableRow/TableRow.js","../node_modules/@fluentui/react-table/lib/components/TableRow/renderTableRow.js","../node_modules/@fluentui/react-icons/lib/icons/chunk-0.js","../node_modules/@fluentui/react-table/lib/components/TableHeaderCell/useTableHeaderCell.js","../node_modules/@fluentui/react-table/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableHeaderCell/TableHeaderCell.js","../node_modules/@fluentui/react-table/lib/components/TableHeaderCell/renderTableHeaderCell.js","../node_modules/@fluentui/react-text/lib/components/presets/Body1Strong/useBody1StrongStyles.styles.js","../node_modules/@fluentui/react-text/lib/components/presets/Body1Strong/Body1Strong.js","../node_modules/@fluentui/react-table/lib/components/TableBody/useTableBodyStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableBody/TableBody.js","../node_modules/@fluentui/react-table/lib/components/TableBody/useTableBody.js","../node_modules/@fluentui/react-table/lib/components/TableBody/renderTableBody.js","../node_modules/@fluentui/react-table/lib/components/TableCell/useTableCell.js","../node_modules/@fluentui/react-table/lib/components/TableCell/useTableCellStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableCell/TableCell.js","../node_modules/@fluentui/react-table/lib/components/TableCell/renderTableCell.js","../node_modules/@fluentui/react-table/lib/components/TableCellLayout/useTableCellLayout.js","../node_modules/@fluentui/react-avatar/lib/contexts/AvatarContext.js","../node_modules/@fluentui/react-table/lib/components/TableCellLayout/useTableCellLayoutStyles.styles.js","../node_modules/@fluentui/react-table/lib/components/TableCellLayout/TableCellLayout.js","../node_modules/@fluentui/react-table/lib/components/TableCellLayout/renderTableCellLayout.js","../node_modules/@fluentui/react-table/lib/components/TableCellLayout/useTableCellLayoutContextValues.js","../node_modules/@fluentui/react-positioning/lib/usePositioningMouseTarget.js","../node_modules/@fluentui/react-positioning/lib/createVirtualElementFromClick.js","../node_modules/@fluentui/react-positioning/lib/utils/resolvePositioningShorthand.js","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@fluentui/react-positioning/lib/utils/useCallbackRef.js","../node_modules/@fluentui/react-positioning/lib/utils/normalizeAutoSize.js","../node_modules/@fluentui/react-positioning/lib/utils/getScrollParent.js","../node_modules/@fluentui/react-positioning/lib/utils/toFloatingUIPlacement.js","../node_modules/@fluentui/react-positioning/lib/utils/getBoundary.js","../node_modules/@fluentui/react-positioning/lib/middleware/maxSize.js","../node_modules/@fluentui/react-positioning/lib/middleware/matchTargetSize.js","../node_modules/@fluentui/react-positioning/lib/utils/parseFloatingUIPlacement.js","../node_modules/@fluentui/react-positioning/lib/utils/fromFloatingUIPlacement.js","../node_modules/@fluentui/react-positioning/lib/middleware/offset.js","../node_modules/@fluentui/react-positioning/lib/utils/getFloatingUIOffset.js","../node_modules/@fluentui/react-positioning/lib/middleware/coverTarget.js","../node_modules/@fluentui/react-positioning/lib/middleware/flip.js","../node_modules/@fluentui/react-positioning/lib/utils/toFloatingUIPadding.js","../node_modules/@fluentui/react-positioning/lib/middleware/shift.js","../node_modules/@fluentui/react-positioning/lib/middleware/intersecting.js","../node_modules/@fluentui/react-positioning/lib/constants.js","../node_modules/@fluentui/react-positioning/lib/utils/listScrollParents.js","../node_modules/@fluentui/react-positioning/lib/createPositionManager.js","../node_modules/@fluentui/react-positioning/lib/utils/createResizeObserver.js","../node_modules/@fluentui/react-positioning/lib/utils/writeArrowUpdates.js","../node_modules/@fluentui/react-positioning/lib/utils/writeContainerupdates.js","../node_modules/@fluentui/react-positioning/lib/utils/debounce.js","../node_modules/@fluentui/react-positioning/lib/usePositioning.js","../node_modules/@fluentui/react-utilities/lib/hooks/useOnClickOutside.js","../node_modules/@fluentui/react-utilities/lib/virtualParent/elementContains.js","../node_modules/@fluentui/react-utilities/lib/hooks/useOnScrollOutside.js","../node_modules/@fluentui/react-tabster/lib/hooks/useFocusFinders.js","../node_modules/@fluentui/react-menu/lib/contexts/menuContext.js","../node_modules/@fluentui/react-menu/lib/utils/useOnMenuEnter.js","../node_modules/@fluentui/react-context-selector/lib/useHasParentContext.js","../node_modules/@fluentui/react-menu/lib/contexts/menuListContext.js","../node_modules/@fluentui/react-menu/lib/utils/useIsSubmenu.js","../node_modules/@fluentui/react-menu/lib/components/Menu/useMenu.js","../node_modules/@fluentui/react-menu/lib/components/Menu/renderMenu.js","../node_modules/@fluentui/react-menu/lib/components/Menu/Menu.js","../node_modules/@fluentui/react-menu/lib/components/Menu/useMenuContextValues.js","../node_modules/@fluentui/react-utilities/lib/trigger/isFluentTrigger.js","../node_modules/@fluentui/react-utilities/lib/trigger/getTriggerChild.js","../node_modules/@fluentui/react-utilities/lib/utils/mergeCallbacks.js","../node_modules/@fluentui/react-utilities/lib/trigger/applyTriggerPropsToChildren.js","../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/useMenuTrigger.js","../node_modules/@fluentui/react-tabster/lib/hooks/useRestoreFocus.js","../node_modules/@fluentui/react-menu/lib/contexts/menuTriggerContext.js","../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/MenuTrigger.js","../node_modules/@fluentui/react-menu/lib/components/MenuTrigger/renderMenuTrigger.js","../node_modules/@fluentui/react-menu/lib/components/MenuPopover/useMenuPopover.js","../node_modules/@fluentui/react-menu/lib/components/MenuPopover/useMenuPopoverStyles.styles.js","../node_modules/@fluentui/react-utilities/lib/virtualParent/setVirtualParent.js","../node_modules/@fluentui/react-shared-contexts/lib/PortalMountNodeContext.js","../node_modules/@fluentui/react-portal/lib/components/Portal/usePortalMountNodeStyles.styles.js","../node_modules/@fluentui/react-portal/lib/components/Portal/usePortalMountNode.js","../node_modules/use-disposable/src/useDisposable.ts","../node_modules/@fluentui/react-portal/lib/components/Portal/usePortal.js","../node_modules/@fluentui/react-portal/lib/utils/toMountNodeProps.js","../node_modules/@fluentui/react-portal/lib/components/Portal/Portal.js","../node_modules/@fluentui/react-portal/lib/components/Portal/renderPortal.js","../node_modules/@fluentui/react-menu/lib/components/MenuPopover/renderMenuPopover.js","../node_modules/@fluentui/react-menu/lib/components/MenuPopover/MenuPopover.js","../node_modules/@fluentui/react-menu/lib/components/MenuList/useMenuList.js","../node_modules/@fluentui/react-menu/lib/components/MenuList/useMenuListStyles.styles.js","../node_modules/@fluentui/react-menu/lib/components/MenuList/MenuList.js","../node_modules/@fluentui/react-menu/lib/components/MenuList/useMenuListContextValues.js","../node_modules/@fluentui/react-menu/lib/components/MenuList/renderMenuList.js","../node_modules/@fluentui/react-menu/lib/components/MenuItem/useCharacterSearch.js","../node_modules/@fluentui/react-icons/lib/utils/bundleIcon.js","../node_modules/@fluentui/react-icons/lib/utils/constants.js","../node_modules/@fluentui/react-menu/lib/components/MenuItem/useMenuItem.js","../node_modules/@fluentui/react-menu/lib/selectable/useCheckmarkStyles.styles.js","../node_modules/@fluentui/react-menu/lib/components/MenuItem/useMenuItemStyles.styles.js","../node_modules/@fluentui/react-menu/lib/components/MenuItem/MenuItem.js","../node_modules/@fluentui/react-menu/lib/components/MenuItem/renderMenuItem.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-2.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-8.js","../node_modules/@fluentui/react-icons/lib/icons/chunk-3.js","../node_modules/@fluentui/react-icons/lib/icons/chunk-2.js","components/DraftMessages/draftMessageDetail.tsx","components/DraftMessages/draftMessages.tsx","../node_modules/@fluentui/react-badge/lib/components/Badge/useBadge.js","../node_modules/@fluentui/react-badge/lib/components/Badge/useBadgeStyles.styles.js","../node_modules/@fluentui/react-badge/lib/components/Badge/renderBadge.js","../node_modules/@fluentui/react-badge/lib/components/Badge/Badge.js","../node_modules/@fluentui/react-text/lib/components/presets/Caption1/useCaption1Styles.styles.js","../node_modules/@fluentui/react-text/lib/components/presets/Caption1/Caption1.js","../node_modules/@fluentui/react-positioning/lib/utils/mergeArrowOffset.js","../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltip.js","../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/private/constants.js","../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/useTooltipStyles.styles.js","../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/Tooltip.js","../node_modules/@fluentui/react-tooltip/lib/components/Tooltip/renderTooltip.js","../node_modules/@fluentui/react-persona/lib/components/Persona/renderPersona.js","../node_modules/@fluentui/react-avatar/lib/utils/getInitials.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-10.js","../node_modules/@fluentui/react-badge/lib/components/PresenceBadge/presenceIcons.js","../node_modules/@fluentui/react-badge/lib/components/PresenceBadge/usePresenceBadge.js","../node_modules/@fluentui/react-badge/lib/components/PresenceBadge/usePresenceBadgeStyles.styles.js","../node_modules/@fluentui/react-badge/lib/components/PresenceBadge/PresenceBadge.js","../node_modules/@fluentui/react-avatar/lib/components/Avatar/useAvatar.js","../node_modules/@fluentui/react-avatar/lib/components/Avatar/useAvatarStyles.styles.js","../node_modules/@fluentui/react-avatar/lib/components/Avatar/Avatar.js","../node_modules/@fluentui/react-avatar/lib/components/Avatar/renderAvatar.js","../node_modules/@fluentui/react-persona/lib/components/Persona/usePersona.js","../node_modules/@fluentui/react-persona/lib/components/Persona/usePersonaStyles.styles.js","../node_modules/@fluentui/react-persona/lib/components/Persona/Persona.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-3.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-15.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-11.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-1.js","components/SentMessages/sentMessageDetail.tsx","useInterval.tsx","components/SentMessages/sentMessages.tsx","../node_modules/@fluentui/react-shared-contexts/lib/BackgroundAppearanceContext/BackgroundAppearanceContext.js","../node_modules/@fluentui/react-link/lib/components/Link/useLinkState.js","../node_modules/@fluentui/react-link/lib/components/Link/useLink.js","../node_modules/@fluentui/react-link/lib/components/Link/useLinkStyles.styles.js","../node_modules/@fluentui/react-link/lib/components/Link/Link.js","../node_modules/@fluentui/react-link/lib/components/Link/renderLink.js","../node_modules/@fluentui/react-divider/lib/components/Divider/renderDivider.js","../node_modules/@fluentui/react-divider/lib/components/Divider/useDividerStyles.styles.js","../node_modules/@fluentui/react-divider/lib/components/Divider/Divider.js","../node_modules/@fluentui/react-divider/lib/components/Divider/useDivider.js","components/Shared/header.tsx","components/ScheduledMessages/scheduledMessageDetail.tsx","components/ScheduledMessages/scheduledMessages.tsx","components/Home/homePage.tsx","../node_modules/rtl-css-js/dist/esm/convert-9768a965.js","../packages/core/src/runtime/utils/hyphenateProperty.ts","../packages/core/src/runtime/utils/normalizeNestedProperty.ts","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Middleware.js","../packages/core/src/runtime/stylis/globalPlugin.ts","../packages/core/src/runtime/stylis/prefixerPlugin.ts","../packages/core/src/runtime/stylis/sortClassesInAtRulesPlugin.ts","../packages/core/src/runtime/stylis/isAtRuleElement.ts","../packages/core/src/runtime/compileCSSRules.ts","../packages/core/src/runtime/compileAtomicCSSRule.ts","../packages/core/src/runtime/utils/cssifyObject.ts","../packages/core/src/runtime/compileKeyframeCSS.ts","../packages/core/src/runtime/utils/generateCombinedMediaQuery.ts","../packages/core/src/runtime/utils/isNestedSelector.ts","../packages/core/src/runtime/getStyleBucketName.ts","../packages/core/src/runtime/utils/hashClassName.ts","../packages/core/src/runtime/utils/hashPropertyKey.ts","../packages/core/src/runtime/utils/trimSelector.ts","../packages/core/src/runtime/resolveStyleRules.ts","../packages/core/src/runtime/warnings/warnAboutUnsupportedProperties.ts","../packages/core/src/runtime/utils/isObject.ts","../packages/core/src/runtime/utils/isMediaQuerySelector.ts","../packages/core/src/runtime/utils/isLayerSelector.ts","../packages/core/src/runtime/utils/isSupportQuerySelector.ts","../packages/core/src/runtime/utils/isContainerQuerySelector.ts","../packages/core/src/runtime/warnings/warnAboutUnresolvedRule.ts","../packages/core/src/makeStyles.ts","../packages/core/src/resolveStyleRulesForSlots.ts","../packages/react/src/makeStyles.ts","../packages/core/src/shorthands/generateStyles.ts","../packages/core/src/shorthands/borderWidth.ts","../packages/core/src/shorthands/borderStyle.ts","../packages/core/src/shorthands/borderColor.ts","../packages/core/src/shorthands/utils.ts","../packages/core/src/shorthands/flex.ts","../packages/core/src/shorthands/gridArea.ts","../packages/core/src/shorthands/transition.ts","../packages/core/src/shorthands/textDecoration.ts","../packages/core/src/index.ts","../packages/core/src/shorthands/border.ts","../packages/core/src/shorthands/borderLeft.ts","../packages/core/src/shorthands/borderBottom.ts","../packages/core/src/shorthands/borderRight.ts","../packages/core/src/shorthands/borderTop.ts","../packages/core/src/shorthands/borderRadius.ts","../packages/core/src/shorthands/gap.ts","../packages/core/src/shorthands/margin.ts","../packages/core/src/shorthands/marginBlock.ts","../packages/core/src/shorthands/marginInline.ts","../packages/core/src/shorthands/padding.ts","../packages/core/src/shorthands/paddingBlock.ts","../packages/core/src/shorthands/paddingInline.ts","../packages/core/src/shorthands/overflow.ts","../packages/core/src/shorthands/inset.ts","../packages/core/src/shorthands/outline.ts","../node_modules/@fluentui/react-field/lib/contexts/FieldContext.js","../node_modules/@fluentui/react-field/lib/contexts/useFieldControlProps.js","../node_modules/@fluentui/react-field/lib/components/Field/renderField.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-6.js","../node_modules/@fluentui/react-field/lib/components/Field/useField.js","../node_modules/@fluentui/react-field/lib/components/Field/useFieldStyles.styles.js","../node_modules/@fluentui/react-field/lib/components/Field/Field.js","../node_modules/@fluentui/react-field/lib/contexts/useFieldContextValues.js","../node_modules/@fluentui/react-input/lib/components/Input/useInput.js","../node_modules/@fluentui/react-input/lib/components/Input/useInputStyles.styles.js","../node_modules/@fluentui/react-input/lib/components/Input/Input.js","../node_modules/@fluentui/react-input/lib/components/Input/renderInput.js","../node_modules/@fluentui/react-textarea/lib/components/Textarea/renderTextarea.js","../node_modules/@fluentui/react-textarea/lib/components/Textarea/useTextareaStyles.styles.js","../node_modules/@fluentui/react-textarea/lib/components/Textarea/Textarea.js","../node_modules/@fluentui/react-textarea/lib/components/Textarea/useTextarea.js","../node_modules/@fluentui/react-radio/lib/contexts/RadioGroupContext.js","../node_modules/@fluentui/react-radio/lib/components/RadioGroup/useRadioGroupStyles.styles.js","../node_modules/@fluentui/react-radio/lib/components/RadioGroup/RadioGroup.js","../node_modules/@fluentui/react-radio/lib/components/RadioGroup/useRadioGroup.js","../node_modules/@fluentui/react-radio/lib/contexts/useRadioGroupContextValues.js","../node_modules/@fluentui/react-radio/lib/components/RadioGroup/renderRadioGroup.js","../node_modules/@fluentui/react-radio/lib/components/Radio/renderRadio.js","../node_modules/@fluentui/react-radio/lib/components/Radio/useRadioStyles.styles.js","../node_modules/@fluentui/react-radio/lib/components/Radio/Radio.js","../node_modules/@fluentui/react-radio/lib/components/Radio/useRadio.js","../node_modules/@fluentui/react-utilities/lib/hooks/useFirstMount.js","../node_modules/@fluentui/react-combobox/lib/utils/useOptionCollection.js","../node_modules/@fluentui/react-combobox/lib/utils/useSelection.js","../node_modules/@fluentui/react-combobox/lib/utils/dropdownKeyActions.js","../node_modules/@fluentui/react-combobox/lib/contexts/ComboboxContext.js","../node_modules/@fluentui/react-combobox/lib/components/Listbox/useListbox.js","../node_modules/@fluentui/react-combobox/lib/utils/useScrollOptionsIntoView.js","../node_modules/@fluentui/react-combobox/lib/contexts/ListboxContext.js","../node_modules/@fluentui/react-combobox/lib/components/Listbox/useListboxStyles.styles.js","../node_modules/@fluentui/react-combobox/lib/components/Listbox/Listbox.js","../node_modules/@fluentui/react-combobox/lib/contexts/useListboxContextValues.js","../node_modules/@fluentui/react-combobox/lib/components/Listbox/renderListbox.js","../node_modules/@fluentui/react-combobox/lib/components/Combobox/useInputTriggerSlot.js","../node_modules/@fluentui/react-combobox/lib/utils/useTriggerSlot.js","../node_modules/@fluentui/react-combobox/lib/components/Combobox/useCombobox.js","../node_modules/@fluentui/react-combobox/lib/utils/useComboboxBaseState.js","../node_modules/@fluentui/react-combobox/lib/utils/useComboboxPositioning.js","../node_modules/@fluentui/react-combobox/lib/utils/useListboxSlot.js","../node_modules/@fluentui/react-combobox/lib/components/Combobox/useComboboxStyles.styles.js","../node_modules/@fluentui/react-combobox/lib/components/Combobox/Combobox.js","../node_modules/@fluentui/react-combobox/lib/contexts/useComboboxContextValues.js","../node_modules/@fluentui/react-combobox/lib/components/Combobox/renderCombobox.js","../node_modules/@fluentui/react-combobox/lib/components/Option/useOption.js","../node_modules/@fluentui/react-combobox/lib/components/Option/useOptionStyles.styles.js","../node_modules/@fluentui/react-combobox/lib/components/Option/Option.js","../node_modules/@fluentui/react-combobox/lib/components/Option/renderOption.js","../node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckbox.js","../node_modules/@fluentui/react-checkbox/lib/components/Checkbox/useCheckboxStyles.styles.js","../node_modules/@fluentui/react-checkbox/lib/components/Checkbox/Checkbox.js","../node_modules/@fluentui/react-checkbox/lib/components/Checkbox/renderCheckbox.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoLabel/renderInfoLabel.js","../node_modules/@fluentui/react-tabster/lib/hooks/useModalAttributes.js","../node_modules/@fluentui/react-popover/lib/popoverContext.js","../node_modules/@fluentui/react-popover/lib/components/PopoverTrigger/PopoverTrigger.js","../node_modules/@fluentui/react-popover/lib/components/PopoverTrigger/usePopoverTrigger.js","../node_modules/@fluentui/react-popover/lib/components/PopoverTrigger/renderPopoverTrigger.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoButton/renderInfoButton.js","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-7.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoButton/DefaultInfoButtonIcons.js","../node_modules/@fluentui/react-popover/lib/components/PopoverSurface/usePopoverSurfaceStyles.styles.js","../node_modules/@fluentui/react-popover/lib/components/Popover/usePopover.js","../node_modules/@fluentui/react-popover/lib/components/Popover/renderPopover.js","../node_modules/@fluentui/react-popover/lib/components/Popover/Popover.js","../node_modules/@fluentui/react-popover/lib/components/PopoverSurface/usePopoverSurface.js","../node_modules/@fluentui/react-popover/lib/components/PopoverSurface/PopoverSurface.js","../node_modules/@fluentui/react-popover/lib/components/PopoverSurface/renderPopoverSurface.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoButton/useInfoButton.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoButton/useInfoButtonStyles.styles.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoButton/InfoButton.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoLabel/useInfoLabelStyles.styles.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoLabel/InfoLabel.js","../node_modules/@fluentui/react-infobutton/lib/components/InfoLabel/useInfoLabel.js","../node_modules/tslib/tslib.es6.js","../node_modules/@fluentui/merge-styles/src/concatStyleSets.ts","../node_modules/@fluentui/merge-styles/src/concatStyleSetsWithProps.ts","../node_modules/@fluentui/utilities/lib/src/dom/canUseDOM.ts","../node_modules/@fluentui/utilities/lib/src/dom/getWindow.ts","../node_modules/@fluentui/utilities/src/GlobalSettings.ts","../node_modules/@fluentui/utilities/lib/src/customizations/Customizations.ts","../node_modules/@fluentui/utilities/lib/src/customizations/CustomizerContext.ts","../node_modules/@fluentui/utilities/lib/src/customizations/useCustomizationSettings.ts","../node_modules/@fluentui/utilities/src/styled.tsx","../node_modules/@fluentui/merge-styles/src/Stylesheet.ts","../node_modules/@fluentui/merge-styles/src/StyleOptionsState.ts","../node_modules/@fluentui/merge-styles/src/extractStyleParts.ts","../node_modules/@fluentui/merge-styles/lib/src/transforms/kebabRules.ts","../node_modules/@fluentui/merge-styles/src/getVendorSettings.ts","../node_modules/@fluentui/merge-styles/lib/src/transforms/prefixRules.ts","../node_modules/@fluentui/merge-styles/lib/src/transforms/provideUnits.ts","../node_modules/@fluentui/merge-styles/lib/src/transforms/rtlifyRules.ts","../node_modules/@fluentui/merge-styles/src/styleToClassName.ts","../node_modules/@fluentui/merge-styles/src/tokenizeWithParentheses.ts","../node_modules/@fluentui/merge-styles/src/mergeStyleSets.ts","../node_modules/@fluentui/utilities/src/KeyCodes.ts","../node_modules/@fluentui/utilities/lib/src/dom/getDocument.ts","../node_modules/@fluentui/utilities/src/sessionStorage.ts","../node_modules/@fluentui/utilities/src/rtl.ts","../node_modules/@fluentui/utilities/src/classNamesFunction.ts","../node_modules/@fluentui/utilities/src/string.ts","../node_modules/@fluentui/utilities/src/getPropsWithDefaults.ts","../node_modules/@fluentui/utilities/src/properties.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateValues/dateValues.ts","../node_modules/@fluentui/utilities/src/css.ts","../node_modules/@fluentui/react/lib/components/src/components/Icon/Icon.types.ts","../node_modules/@fluentui/react/lib/components/src/components/Image/Image.types.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateFormatting/dateFormatting.defaults.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateValues/timeConstants.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateMath/dateMath.ts","../node_modules/@fluentui/utilities/src/useIsomorphicLayoutEffect.ts","../node_modules/@fluentui/react-hooks/src/useMergedRefs.ts","../node_modules/@fluentui/react/lib/components/src/components/Image/Image.base.tsx","../node_modules/@fluentui/merge-styles/src/mergeStyles.ts","../node_modules/@fluentui/merge-styles/src/keyframes.ts","../node_modules/@fluentui/theme/lib/src/motion/AnimationStyles.ts","../node_modules/@fluentui/style-utilities/lib/src/classNames/AnimationClassNames.ts","../node_modules/@fluentui/theme/lib/src/fonts/FluentFonts.ts","../node_modules/@fluentui/style-utilities/lib/src/utilities/buildClassMap.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/CommonStyles.ts","../node_modules/@fluentui/utilities/src/setFocusVisibility.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/zIndexes.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/getFocusStyle.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/hiddenContentStyle.ts","../node_modules/@fluentui/utilities/src/memoize.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/getGlobalClassNames.ts","../node_modules/@microsoft/load-themed-styles/src/index.ts","../node_modules/@fluentui/theme/lib/src/colors/DefaultPalette.ts","../node_modules/@fluentui/theme/lib/src/effects/FluentDepths.ts","../node_modules/@fluentui/theme/lib/src/effects/DefaultEffects.ts","../node_modules/@fluentui/merge-styles/src/fontFace.ts","../node_modules/@fluentui/theme/lib/src/fonts/createFontStyles.ts","../node_modules/@fluentui/utilities/src/language.ts","../node_modules/@fluentui/theme/lib/src/fonts/DefaultFontStyles.ts","../node_modules/@fluentui/utilities/src/localStorage.ts","../node_modules/@fluentui/utilities/src/merge.ts","../node_modules/@fluentui/theme/lib/src/utilities/makeSemanticColors.ts","../node_modules/@fluentui/theme/lib/src/spacing/DefaultSpacing.ts","../node_modules/@fluentui/theme/src/createTheme.ts","../node_modules/@fluentui/theme/src/mergeThemes.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/theme.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/GeneralStyles.ts","../node_modules/@fluentui/style-utilities/lib/src/styles/getPlaceholderStyles.ts","../node_modules/@fluentui/utilities/lib/src/warn/warn.ts","../node_modules/@fluentui/style-utilities/lib/src/utilities/icons.ts","../node_modules/@fluentui/style-utilities/src/cdn.ts","../node_modules/@fluentui/set-version/src/setVersion.ts","../node_modules/@fluentui/set-version/src/index.ts","../node_modules/@fluentui/style-utilities/src/version.ts","../node_modules/@fluentui/style-utilities/src/index.ts","../node_modules/@fluentui/react/lib/components/src/components/Image/Image.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Image/Image.tsx","../node_modules/@fluentui/react/lib/components/src/components/Icon/Icon.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Icon/FontIcon.tsx","../node_modules/@fluentui/react/lib/components/src/components/Icon/Icon.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Icon/Icon.tsx","../node_modules/@fluentui/react-focus/lib/components/src/components/FocusZone/FocusZone.types.ts","../node_modules/@fluentui/utilities/src/array.ts","../node_modules/@fluentui/utilities/src/createMergedRef.ts","../node_modules/@fluentui/dom-utilities/src/isVirtualElement.ts","../node_modules/@fluentui/dom-utilities/src/getParent.ts","../node_modules/@fluentui/dom-utilities/src/getVirtualParent.ts","../node_modules/@fluentui/dom-utilities/src/findElementRecursive.ts","../node_modules/@fluentui/dom-utilities/src/elementContains.ts","../node_modules/@fluentui/utilities/src/focus.ts","../node_modules/@fluentui/dom-utilities/src/elementContainsAttribute.ts","../node_modules/@fluentui/utilities/src/appendFunction.ts","../node_modules/@fluentui/utilities/src/initializeComponentRef.ts","../node_modules/@fluentui/utilities/src/extendComponent.ts","../node_modules/@fluentui/utilities/src/getId.ts","../node_modules/@fluentui/utilities/src/scroll.ts","../node_modules/@fluentui/dom-utilities/src/setPortalAttribute.ts","../node_modules/@fluentui/dom-utilities/src/portalContainsElement.ts","../node_modules/@fluentui/react-focus/lib/components/src/components/FocusZone/FocusZone.tsx","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/getDateRangeTypeToUse.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/isContiguous.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/getBoundedDateRange.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/isBeforeMinDate.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/isAfterMaxDate.ts","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/isRestrictedDate.ts","../node_modules/@fluentui/react-hooks/src/usePrevious.ts","../node_modules/@fluentui/react-hooks/src/useId.ts","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarMonthHeaderRow.tsx","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/findAvailableDate.ts","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarGridDayCell.tsx","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarGridRow.tsx","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarDayGrid.base.tsx","../node_modules/@fluentui/date-time-utilities/lib/src/dateGrid/getDayGrid.ts","../node_modules/@fluentui/react/lib/components/src/components/Calendar/Calendar.types.ts","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarDayGrid.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/CalendarDayGrid/CalendarDayGrid.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarDay/CalendarDay.base.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarDay/CalendarDay.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarDay/CalendarDay.styles.ts","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarPicker/CalendarPicker.styles.ts","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarMonth/CalendarMonth.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Calendar/defaults.ts","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarYear/CalendarYear.base.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarYear/CalendarYear.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarYear/CalendarYear.styles.ts","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarMonth/CalendarMonth.base.tsx","../node_modules/@fluentui/react/lib/components/Calendar/src/components/Calendar/CalendarMonth/CalendarMonth.tsx","../node_modules/@fluentui/utilities/src/keyboard.ts","../node_modules/@fluentui/utilities/src/useFocusRects.ts","../node_modules/@fluentui/react-hooks/src/useConst.ts","../node_modules/@fluentui/react-hooks/src/useControllableValue.ts","../node_modules/@fluentui/react/lib/components/src/components/Calendar/Calendar.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Calendar/Calendar.styles.ts","../node_modules/@fluentui/react/lib/utilities/src/utilities/positioning/positioning.types.ts","../node_modules/@fluentui/react/lib/components/src/components/Calendar/Calendar.tsx","../node_modules/@fluentui/react/lib/src/common/DirectionalHint.ts","../node_modules/@fluentui/utilities/lib/src/dom/on.ts","../node_modules/@fluentui/utilities/src/object.ts","../node_modules/@fluentui/utilities/src/Rectangle.ts","../node_modules/@fluentui/react/lib/utilities/src/utilities/positioning/positioning.ts","../node_modules/@fluentui/utilities/src/modalize.ts","../node_modules/@fluentui/utilities/src/Async.ts","../node_modules/@fluentui/react-hooks/src/useAsync.ts","../node_modules/@fluentui/react-hooks/src/useOnEvent.ts","../node_modules/@fluentui/react-window-provider/src/WindowProvider.tsx","../node_modules/@fluentui/react/lib/components/src/components/Popup/Popup.tsx","../node_modules/@fluentui/react-hooks/src/useTarget.ts","../node_modules/@fluentui/react/lib/src/utilities/dom.ts","../node_modules/@fluentui/react/lib/components/src/components/Callout/CalloutContent.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Callout/CalloutContent.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Callout/CalloutContent.tsx","../node_modules/@fluentui/react-portal-compat-context/lib/PortalCompatContext.js","../node_modules/@fluentui/utilities/src/FocusRectsProvider.tsx","../node_modules/@fluentui/utilities/lib/src/customizations/mergeSettings.ts","../node_modules/@fluentui/utilities/lib/src/customizations/Customizer.tsx","../node_modules/@fluentui/utilities/lib/src/customizations/mergeCustomizations.ts","../node_modules/@fluentui/react/lib/components/src/components/Fabric/Fabric.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Fabric/Fabric.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Fabric/Fabric.tsx","../node_modules/@fluentui/react/lib/components/src/components/Layer/Layer.notification.ts","../node_modules/@fluentui/react/lib/components/src/components/Layer/Layer.base.tsx","../node_modules/@fluentui/dom-utilities/src/setVirtualParent.ts","../node_modules/@fluentui/react/lib/components/src/components/Layer/Layer.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/Layer/Layer.tsx","../node_modules/@fluentui/react/lib/components/src/components/Callout/Callout.tsx","../node_modules/@fluentui/react/lib/components/src/components/Label/Label.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Label/Label.tsx","../node_modules/@fluentui/react/lib/components/src/components/Label/Label.styles.ts","../node_modules/@fluentui/utilities/src/DelayedRender.tsx","../node_modules/@fluentui/utilities/src/ie11Detector.ts","../node_modules/@fluentui/react/lib/components/src/components/TextField/TextField.base.tsx","../node_modules/@fluentui/utilities/src/controlled.ts","../node_modules/@fluentui/react/lib/components/src/components/TextField/TextField.styles.tsx","../node_modules/@fluentui/react/lib/components/src/components/TextField/TextField.ts","../node_modules/@fluentui/react-hooks/src/useEventCallback.ts","../node_modules/@fluentui/react-hooks/src/useUnmount.ts","../node_modules/@fluentui/react/lib/components/src/components/FocusTrapZone/FocusTrapZone.tsx","../node_modules/@fluentui/react/lib/components/src/components/DatePicker/defaults.ts","../node_modules/@fluentui/react/lib/components/src/components/DatePicker/DatePicker.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/DatePicker/DatePicker.styles.ts","../node_modules/@fluentui/utilities/src/osDetector.ts","../node_modules/@fluentui/react/lib/components/src/components/DatePicker/DatePicker.tsx","../node_modules/@fluentui/date-time-utilities/lib/src/timeMath/timeMath.ts","../node_modules/@fluentui/date-time-utilities/lib/src/timeFormatting/index.ts","../node_modules/@fluentui/react/lib/components/src/components/Autofill/Autofill.tsx","../node_modules/@fluentui/utilities/src/aria.ts","../node_modules/@fluentui/utilities/src/mobileDetector.ts","../node_modules/@fluentui/utilities/src/EventGroup.ts","../node_modules/@fluentui/utilities/lib/src/customizations/customizable.tsx","../node_modules/@fluentui/utilities/src/hoistStatics.ts","../node_modules/@fluentui/react/lib/components/src/components/Checkbox/Checkbox.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Checkbox/Checkbox.styles.ts","../node_modules/@fluentui/react/lib/utilities/src/utilities/selectableOption/SelectableOption.types.ts","../node_modules/@fluentui/react/lib/components/src/components/Checkbox/Checkbox.tsx","../node_modules/@fluentui/react/lib/components/src/components/ComboBox/ComboBox.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/ComboBox/ComboBox.classNames.ts","../node_modules/@fluentui/utilities/src/BaseComponent.ts","../node_modules/@fluentui/react/lib/components/src/components/Icon/ImageIcon.tsx","../node_modules/@fluentui/utilities/lib/src/renderFunction/composeRenderFunction.tsx","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.types.ts","../node_modules/@fluentui/utilities/lib/src/componentAs/composeComponentAs.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/contextualMenu/contextualMenuUtility.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenuItem.base.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/keytips/KeytipConstants.ts","../node_modules/@fluentui/react/lib/components/src/components/Divider/VerticalDivider.classNames.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.cnstyles.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.classNames.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenuItem.ts","../node_modules/@fluentui/react/lib/components/ContextualMenu/src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuItemWrapper.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/keytips/KeytipManager.ts","../node_modules/@fluentui/react/lib/utilities/src/utilities/keytips/KeytipUtils.ts","../node_modules/@fluentui/react/lib/components/src/components/KeytipData/useKeytipData.ts","../node_modules/@fluentui/react/lib/components/src/components/KeytipData/KeytipData.tsx","../node_modules/@fluentui/react/lib/components/ContextualMenu/src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuAnchor.tsx","../node_modules/@fluentui/react/lib/components/src/components/Divider/VerticalDivider.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/Divider/VerticalDivider.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/decorators/withResponsiveMode.tsx","../node_modules/@fluentui/react/lib/components/src/components/Divider/VerticalDivider.styles.ts","../node_modules/@fluentui/react/lib/components/ContextualMenu/src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuSplitButton.tsx","../node_modules/@fluentui/react/lib/components/ContextualMenu/src/components/ContextualMenu/ContextualMenuItemWrapper/ContextualMenuButton.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/hooks/useResponsiveMode.tsx","../node_modules/@fluentui/react/lib/utilities/src/utilities/MenuContext/MenuContext.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.base.tsx","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.styles.ts","../node_modules/@fluentui/react/lib/components/src/components/ContextualMenu/ContextualMenu.tsx","../node_modules/@fluentui/react/lib/components/src/components/Button/BaseButton.classNames.ts","../node_modules/@fluentui/react/lib/components/src/components/ComboBox/ComboBox.tsx","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/SplitButton/SplitButton.classNames.ts","../node_modules/@fluentui/react/lib/components/src/components/Button/BaseButton.tsx","../node_modules/@fluentui/react/lib/components/src/components/Button/BaseButton.styles.ts","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/SplitButton/SplitButton.styles.ts","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/IconButton/IconButton.styles.ts","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/IconButton/IconButton.tsx","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/ActionButton/ActionButton.styles.ts","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/ActionButton/ActionButton.tsx","../node_modules/@fluentui/react/lib/components/Button/src/components/Button/CommandButton/CommandButton.tsx","../node_modules/@fluentui/dom-utilities/src/getChildren.ts","../node_modules/@fluentui/react/lib/utilities/src/utilities/selectableOption/SelectableOption.ts","../node_modules/@fluentui/react/lib/components/src/components/TimePicker/TimePicker.tsx","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-0.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-1.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-2.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-3.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-4.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-5.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-6.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-7.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-8.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-9.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-10.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-11.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-12.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-13.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-14.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-15.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-16.ts","../node_modules/@fluentui/font-icons-mdl2/src/fabric-icons-17.ts","../node_modules/@fluentui/font-icons-mdl2/src/iconAliases.ts","../node_modules/@fluentui/font-icons-mdl2/src/version.ts","../node_modules/@fluentui/font-icons-mdl2/src/index.ts","components/AdaptiveCard/adaptiveCard.ts","components/NewMessage/newMessage.tsx","components/SendConfirmationTask/sendConfirmationTask.tsx","components/ViewStatusTask/viewStatusTask.tsx","components/SignInPage/signInPage.tsx","components/SignInPage/signInSimpleEnd.tsx","components/SignInPage/signInSimpleStart.tsx","../node_modules/@fluentui/react-icons/lib/sizedIcons/chunk-0.js","../node_modules/@fluentui/react-datepicker-compat/node_modules/@fluentui/react-jsx-runtime/lib/createElement.js","../node_modules/@fluentui/react-utilities/lib/compose/deprecated/getSlotsNext.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/renderDatePicker.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/constants.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dom.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/focus.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateFormatting/dateFormatting.defaults.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateMath/dateMath.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/getBoundedDateRange.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/Calendar/Calendar.types.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/isBeforeMinDate.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/isAfterMaxDate.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/isRestrictedDate.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js","../node_modules/@fluentui/react-utilities/lib/utils/getRTLSafeKey.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/findAvailableDate.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/CalendarGridDayCell.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/CalendarGridRow.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/getDateRangeTypeToUse.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/isContiguous.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/useWeeks.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/dateGrid/getDayGrid.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDayGrid/CalendarDayGrid.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDay/useCalendarDayStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarDay/CalendarDay.js","../node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarYear/useCalendarYearStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarYear/CalendarYear.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarMonth/CalendarMonth.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/CalendarMonth/useCalendarMonthStyles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/Calendar/useCalendarStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/Calendar/Calendar.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/Calendar/defaults.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/defaults.js","../node_modules/@fluentui/react-utilities/lib/compose/deprecated/resolveShorthand.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/useDatePicker.js","../node_modules/@fluentui/react-datepicker-compat/lib/utils/usePopupPositioning.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/useDatePickerStyles.styles.js","../node_modules/@fluentui/react-datepicker-compat/lib/components/DatePicker/DatePicker.js","components/DeleteMessages/deleteMessagesDetail.tsx","components/DeleteMessages/deleteMessages.tsx","../node_modules/@fluentui/react-text/lib/components/presets/Caption1Stronger/Caption1Stronger.js","../node_modules/@fluentui/react-text/lib/components/presets/Caption1Stronger/useCaption1Stronger.styles.js","components/DeleteMessages/deleteConfirmationTask.tsx","components/PreviewMessageConfirmation/previewMessageConfirmation.tsx","App.tsx","index.tsx"],"sourcesContent":["/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"microsoftTeams\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"microsoftTeams\"] = factory();\n\telse\n\t\troot[\"microsoftTeams\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { debug as registerLogger, Debugger } from 'debug';\n\nconst topLevelLogger = registerLogger('teamsJs');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Returns a logger for a given namespace, within the pre-defined top-level teamsJs namespace\n */\nexport function getLogger(namespace: string): Debugger {\n return topLevelLogger.extend(namespace);\n}\n\n/**\n * @hidden\n * Creates a string tag for labeling apiVersionTag, which is used for API function call to create message request\n * sent to host(s).\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function getApiVersionTag(apiVersionNumber: ApiVersionNumber, functionName: ApiName): string {\n return `${apiVersionNumber}_${functionName}`;\n}\n\n/**\n * @hidden\n * Check if apiVersionTag developer sends follows the pattern starting with a lowercase 'v', then\n * followed by one or more digits, then concatenated with underscore and some characters to indicate api name.\n * For example, 'v2_app.getContext'. If yes, return true. Otherwise, return false.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isFollowingApiVersionTagFormat(apiVersionTag: string): boolean {\n const pattern = /^v\\d+_[\\w.]+$/;\n return pattern.test(apiVersionTag);\n}\n\n/**\n * Use enum to set or update API version number\n * Note: V_0 = 'v0' is used for APIs who needs to be passed with correct version number\n * but haven't been implemented yet.\n * @internal\n * Limited to Microsoft-internal use\n */\nexport enum ApiVersionNumber {\n V_0 = 'v0',\n V_1 = 'v1',\n V_2 = 'v2',\n V_3 = 'v3',\n}\n\nexport enum ApiName {\n App_GetContext = 'app.getContext',\n App_Initialize = 'app.initialize',\n App_NotifyAppLoaded = 'app.notifyAppLoaded',\n App_NotifyExpectedFailure = 'app.notifyExpectedFailure',\n App_NotifyFailure = 'app.notifyFailure',\n App_NotifySuccess = 'app.notifySuccess',\n App_OpenLink = 'app.openLink',\n App_RegisterOnThemeChangeHandler = 'app.registerOnThemeChangeHandler',\n AppInitialization_NotifyAppLoaded = 'appInitialization.notifyAppLoaded',\n AppInitialization_NotifyExpectedFailure = 'appInitialization.notifyExpectedFailure',\n AppInitialization_NotifyFailure = 'appInitialization.notifyFailure',\n AppInitialization_NotifySuccess = 'appInitialization.notifySuccess',\n AppEntity_SelectAppEntity = 'appEntity.selectAppEntity',\n AppInstallDialog_OpenAppInstallDialog = 'appInstallDialog.openAppInstallDialog',\n AppWindow_ChildAppWindow_AddEventListener = 'appWindow.childAppWindow.addEventListener',\n AppWindow_ChildAppWindow_PostMessage = 'appWindow.childAppWindow.postMessage',\n AppWindow_ParentAppWindow_AddEventListener = 'appWindow.parentAppWindow.addEventListener',\n AppWindow_ParentAppWindow_PostMessage = 'appWindow.parentAppWindow.postMessage',\n BarCode_HasPermission = 'barCode.hasPermission',\n BarCode_RequestPermission = 'barCode.requestPermission',\n BarCode_ScanBarCode = 'barCode.scanBarCode',\n Calendar_ComposeMeeting = 'calendar.composeMeeting',\n Calendar_OpenCalendarItem = 'calendar.openCalendarItem',\n Call_StartCall = 'call.startCall',\n Chat_OpenChat = 'chat.openChat',\n Chat_OpenGroupChat = 'chat.openGroupChat',\n Clipboard_Read = 'clipboard.read',\n Clipboard_Write = 'clipboard.write',\n Conversations_CloseConversation = 'conversations.closeConversation',\n Conversations_GetChatMember = 'conversations.getChatMember',\n Conversations_OpenConversation = 'conversations.openConversation',\n Conversations_RegisterCloseConversationHandler = 'conversations.registerCloseConversationHandler',\n Conversations_RegisterStartConversationHandler = 'conversations.registerStartConversationHandler',\n Dialog_AdaptiveCard_Bot_Open = 'dialog.adaptiveCard.bot.open',\n Dialog_AdaptiveCard_Open = 'dialog.adaptiveCard.open',\n Dialog_Update_Resize = 'dialog.update.resize',\n Dialog_Url_Bot_Open = 'dialog.url.bot.open',\n Dialog_Url_Open = 'dialog.url.open',\n Dialog_Url_Submit = 'dialog.url.submit',\n Dialog_Url_ParentCommunication_SendMessageToParentFromDialog = 'dialog.url.parentCommunication.sendMessageToParentFromDialog',\n Dialog_Url_ParentCommunication_SendMessageToDialog = 'dialog.url.parentCommunication.sendMessageToDialog',\n Files_AddCloudStorageFolder = 'files.addCloudStorageFolder',\n Files_AddCloudStorageProvider = 'files.addCloudStorageProvider',\n Files_AddCloudStorageProviderFile = 'files.addCloudStorageProviderFile',\n Files_CopyMoveFiles = 'files.copyMoveFiles',\n Files_DeleteCloudStorageFolder = 'files.deleteCloudStorageFolder',\n Files_DeleteCloudStorageProviderFile = 'files.deleteCloudStorageProviderFile',\n Files_DownloadCloudStorageProviderFile = 'files.downloadCloudStorageProviderFile',\n Files_GetCloudStorageFolderContents = 'files.getCloudStorageFolderContents',\n Files_GetCloudStorageFolders = 'files.getCloudStorageFolders',\n Files_GetExternalProviders = 'files.getExternalProviders',\n Files_GetFileDownloads = 'files.getFileDownloads',\n Files_OpenCloudStorageFile = 'files.openCloudStorageFile',\n Files_OpenDownloadFolder = 'files.openDownloadFolder',\n Files_RegisterCloudStorageProviderContentChangeHandler = 'files.registerCloudStorageProviderContentChangeHandler',\n Files_RegisterCloudStorageProviderListChangeHandler = 'files.registerCloudStorageProviderListChangeHandler',\n Files_RemoveCloudStorageProvider = 'files.removeCloudStorageProvider',\n Files_RenameCloudStorageProviderFile = 'files.renameCloudStorageProviderFile',\n Files_UploadCloudStorageProviderFile = 'files.uploadCloudStorageProviderFile',\n GeoLocation_GetCurrentLocation = 'geoLocation.getCurrentLocation',\n GeoLocation_HasPermission = 'geoLocation.hasPermission',\n GeoLocation_Map_ChooseLocation = 'geoLocation.map.chooseLocation',\n GeoLocation_RequestPermission = 'geoLocation.requestPermission',\n GeoLocation_ShowLocation = 'geoLocation.showLocation',\n Interactive_GetClientInfo = 'interactive.getClientInfo',\n Interactive_GetClientRoles = 'interactive.getClientRoles',\n Interactive_GetFluidContainerId = 'interactive.getFluidContainerId',\n Interactive_GetFluidTenantInfo = 'interactive.getFluidTenantInfo',\n Interactive_GetFluidToken = 'interactive.getFluidToken',\n Interactive_GetNtpTime = 'interactive.getNtpTime',\n Interactive_RegisterClientId = 'interactive.registerClientId',\n Interactive_SetFluidContainerId = 'interactive.setFluidContainerId',\n Location_GetLocation = 'location.getLocation',\n Location_ShowLocation = 'location.showLocation',\n Logs_Receive = 'log.receive',\n Logs_RegisterLogRequestHandler = 'log.request',\n Mail_ComposeMail = 'mail.composeMail',\n Mail_OpenMailItem = 'mail.openMailItem',\n Marketplace_AddOrUpdateCartItems = 'marketplace.addOrUpdateCartItems',\n Marketplace_GetCart = 'marketplace.getCart',\n Marketplace_RemoveCardItems = 'marketplace.removeCartItems',\n Marketplace_UpdateCartStatus = 'marketplace.updateCartStatus',\n Media_CaptureImage = 'media.captureImage',\n Media_Controller = 'media.controller',\n Media_GetMedia = 'media.getMedia',\n Media_HasPermission = 'media.hasPermission',\n Media_RequestPermission = 'media.requestPermission',\n Media_ScanBarCode = 'media.scanBarCode',\n Media_SelectMedia = 'media.selectMedia',\n Media_ViewImages = 'media.viewImages',\n Meeting_AppShareButton_SetOptions = 'meeting.appShareButton.setOptions',\n Meeting_GetAppContentStageSharingCapabilities = 'meeting.getAppContentStageSharingCapabilities',\n Meeting_GetAppContentStageSharingState = 'meeting.getAppContentStageSharingState',\n Meeting_GetAuthenticationTokenForAnonymousUser = 'meeting.getAuthenticationTokenForAnonymousUser',\n Meeting_GetIncomingClientAudioState = 'meeting.getIncomingClientAudioState',\n Meeting_GetLiveStreamState = 'meeting.getLiveStreamState',\n Meeting_GetMeetingDetails = 'meeting.getMeetingDetails',\n Meeting_RegisterAudioDeviceSelectionChangedHandler = 'meeting.registerAudioDeviceSelectionChangedHandler',\n Meeting_RegisterLiveStreamChangedHandler = 'meeting.registerLiveStreamChangedHandler',\n Meeting_RegisterMeetingReactionReceivedHandler = 'meeting.registerMeetingReactionReceivedHandler',\n Meeting_RegisterMicStateChangeHandler = 'meeting.registerMicStateChangeHandler',\n Meeting_RegisterRaiseHandStateChangedHandler = 'meeting.registerRaiseHandStateChangedHandler',\n Meeting_RegisterSpeakingStateChangeHandler = 'meeting.registerSpeakingStateChangeHandler',\n Meeting_RequestAppAudioHandling = 'meeting.requestAppAudioHandling',\n Meeting_RequestStartLiveStreaming = 'meeting.requestStartLiveStreaming',\n Meeting_RequestStopLiveStreaming = 'meeting.requestStopLiveStreaming',\n Meeting_SetMicStateWithReason = 'meeting.setMicStateWithReason',\n Meeting_ShareAppContentToStage = 'meeting.shareAppContentToStage',\n Meeting_StopSharingAppContentToStage = 'meeting.stopSharingAppContentToStage',\n Meeting_ToggleIncomingClientAudio = 'meeting.toggleIncomingClientAudio',\n MeetingRoom_GetPairedMeetingRoomInfo = 'meetingRoom.getPairedMeetingRoomInfo',\n MeetingRoom_RegisterMeetingRoomCapabilitiesUpdateHandler = 'meetingRoom.registerMeetingRoomCapabilitiesUpdateHandler',\n MeetingRoom_RegisterMeetingRoomStatesUpdateHandler = 'meetingRoom.registerMeetingRoomStatesUpdateHandler',\n MeetingRoom_SendCommandToPairedMeetingRoom = 'meetingRoom.sendCommandToPairedMeetingRoom',\n Menus_HandleActionMenuItemPress = 'menus.handleActionMenuItemPress',\n Menus_HandleNavBarMenuItemPress = 'menus.handleNavBarMenuItemPress',\n Menus_HandleViewConfigItemPress = 'menus.handleViewConfigItemPress',\n Menus_RegisterActionMenuItemPressHandler = 'menus.registerActionMenuItemPressHandler',\n Menus_RegisterNavBarMenuItemPressHandler = 'menus.registerNavBarMenuItemPressHandler',\n Menus_RegisterSetModuleViewHandler = 'menus.registerSetModuleViewHandler',\n Menus_SetNavBarMenu = 'menus.setNavBarMenu',\n Menus_SetUpViews = 'menus.setUpViews',\n Menus_ShowActionMenu = 'menus.showActionMenu',\n MessageChannels_GetTelemetryPort = 'messageChannels.getTelemetryPort',\n Monetization_OpenPurchaseExperience = 'monetization.openPurchaseExperience',\n Navigation_NavigateBack = 'navigation.navigateBack',\n Navigation_NavigateCrossDomain = 'navigation.navigateCrossDomain',\n Navigation_NavigateToTab = 'navigation.navigateToTab',\n Navigation_ReturnFocus = 'navigation.returnFocus',\n Notifications_ShowNotification = 'notifications.showNotification',\n Pages_AppButton_OnClick = 'pages.appButton.onClick',\n Pages_AppButton_OnHoverEnter = 'pages.appButton.onHoverEnter',\n Pages_AppButton_OnHoverLeave = 'pages.appButton.onHoverLeave',\n Pages_BackStack_NavigateBack = 'pages.backStack.navigateBack',\n Pages_BackStack_RegisterBackButtonHandler = 'pages.backStack.registerBackButtonHandler',\n Pages_Config_RegisterChangeConfigHandler = 'pages.config.registerChangeConfigHandler',\n Pages_Config_RegisterOnRemoveHandler = 'pages.config.registerOnRemoveHandler',\n Pages_Config_RegisterOnSaveHandler = 'pages.config.registerOnSaveHandler',\n Pages_Config_SetConfig = 'pages.config.setConfig',\n Pages_Config_SetValidityState = 'pages.config.setValidityState',\n Pages_CurrentApp_NavigateTo = 'pages.currentApp.navigateTo',\n Pages_CurrentApp_NavigateToDefaultPage = 'pages.currentApp.navigateToDefaultPage',\n Pages_FullTrust_EnterFullscreen = 'pages.fullTrust.enterFullscreen',\n Pages_FullTrust_ExitFullscreen = 'pages.fullTrust.exitFullscreen',\n Pages_GetConfig = 'pages.getConfig.',\n Pages_NavigateCrossDomain = 'pages.navigateCrossDomain',\n Pages_NavigateToApp = 'pages.navigateToApp',\n Pages_RegisterFocusEnterHandler = 'pages.registerFocusEnterHandler',\n Pages_RegisterFullScreenHandler = 'pages.registerFullScreenHandler',\n Pages_RemoveEvent_NotifyFailure = 'pages.removeEvent.notifyFailure',\n Pages_RemoveEvent_NotifySuccess = 'pages.removeEvent.notifySuccess',\n Pages_ReturnFocus = 'pages.returnFocus',\n Pages_SaveEvent_NotifyFailure = 'pages.saveEvent.notifyFailure',\n Pages_SaveEvent_NotifySuccess = 'pages.saveEvent.notifySuccess',\n Pages_SetCurrentFrame = 'pages.setCurrentFrame',\n Pages_ShareDeepLink = 'pages.shareDeepLink',\n Pages_Tabs_GetMruTabInstances = 'pages.tabs.getMruTabInstances',\n Pages_Tabs_GetTabInstances = 'pages.tabs.getTabInstances',\n Pages_Tabs_NavigateToTab = 'pages.tabs.navigateToTab',\n People_SelectPeople = 'people.selectPeople',\n PrivateAPIs_OpenFilePreview = 'openFilePreview',\n PrivateAPIs_RegisterCustomHandler = 'registerCustomHandler',\n PrivateAPIs_RegisterUserSettingsChangeHandler = 'registerUserSettingsChangeHandler',\n PrivateAPIs_SendCustomMessage = 'sendCustomMessage',\n PrivateAPIs_UploadCustomApp = 'uploadCustomApp',\n Profile_ShowProfile = 'profile.showProfile',\n PublicAPIs_ExecuteDeepLink = 'executeDeepLink',\n PublicAPIs_GetContext = 'getContext',\n PublicAPIs_GetMruTabInstances = 'getMruTabInstances',\n PublicAPIs_GetTabInstances = 'getTabInstances',\n PublicAPIs_Initialize = 'initialize',\n PublicAPIs_RegisterAppButtonClickHandler = 'registerAppButtonClickHandler',\n PublicAPIs_RegisterAppButtonHoverEnterHandler = 'registerAppButtonHoverEnterHandler',\n PublicAPIs_RegisterAppButtonHoverLeaveHandler = 'registerAppButtonHoverLeaveHandler',\n PublicAPIs_RegisterBackButtonHandler = 'registerBackButtonHandler',\n PublicAPIs_RegisterChangeSettingsHandler = 'registerChangeSettingsHandler',\n PublicAPIs_RegisterFocusEnterHandler = 'registerFocusEnterHandler',\n PublicAPIs_RegisterFullScreenHandler = 'registerFullScreenHandler',\n PublicAPIs_RegisterOnLoadHandler = 'registerOnLoadHandler',\n PublicAPIs_RegisterOnThemeChangeHandlerHelper = 'registerOnThemeChangeHandlerHelper',\n PublicAPIs_SetFrameContext = 'setFrameContext',\n PublicAPIs_ShareDeepLink = 'shareDeepLink',\n RegisterHandler = 'registerHandler',\n RegisterBeforeUnloadHandler = 'registerBeforeUnloadHandler',\n RegisterLoadHandler = 'registerLoadHandler',\n RegisterOnThemeChangeHandler = 'registerOnThemeChangeHandler',\n RemoteCamera_GetCapableParticipants = 'remoteCamera.getCapableParticipants',\n RemoteCamera_RegisterOnCapableParticipantsChangeHandler = 'remoteCamera.registerOnCapableParticipantsChangeHandler',\n RemoteCamera_RegisterOnDeviceStateChangeHandler = 'remoteCamera.registerOnDeviceStateChangeHandler',\n RemoteCamera_RegisterOnErrorHandler = 'remoteCamera.registerOnErrorHandler',\n RemoteCamera_RegisterOnSessionStatusChangeHandler = 'remoteCamera.registerOnSessionStatusChangeHandler',\n RemoteCamera_RequestControl = 'remoteCamera.requestControl',\n RemoteCamera_SendControlCommand = 'remoteCamera.sendControlCommand',\n RemoteCamera_TerminateSession = 'remoteCamera.terminateSession',\n Search_CloseSearch = 'search.closeSearch',\n Search_RegisterOnChangeHandler = 'search.registerOnChangeHandler',\n Search_RegisterOnClosedHandler = 'search.registerOnClosedHandler',\n Search_RegisterOnExecutedHandler = 'search.registerOnExecutedHandler',\n Search_UnregisterHandlers = 'search.unregisterHandlers',\n SecondaryBrowser_OpenUrl = 'secondaryBrowser.openUrl',\n Settings_GetSettings = 'settings.getSettings',\n Settings_RegisterOnRemoveHandler = 'settings.registerOnRemoveHandler',\n Settings_RegisterOnSaveHandler = 'settings.registerOnSaveHandler',\n Settings_Remove_Failure = 'settings.remove.failure',\n Settings_Remove_Success = 'settings.remove.success',\n Settings_Save_Failure = 'settings.save.failure',\n Settings_Save_Success = 'settings.save.success',\n Settings_SetSettings = 'settings.setSettings',\n Settings_SetValidityState = 'settings.setValidityState',\n StageView_Open = 'stageView.open',\n Tasks_StartTask = 'tasks.startTask',\n Tasks_SubmitTask = 'tasks.submitTask',\n Tasks_UpdateTask = 'tasks.updateTask',\n Teams_FullTrust_GetConfigSetting = 'teams.fullTrust.getConfigSetting',\n Teams_FullTrust_JoinedTeams_GetUserJoinedTeams = 'teams.fullTrust.joinedTeams.getUserJoinedTeams',\n Teams_GetTeamChannels = 'teams.getTeamChannels',\n Teams_RefreshSiteUrl = 'teams.refreshSiteUrl',\n VideoEffects_MediaStream_RegisterForVideoFrame = 'videoEffects.mediaStream.registerForVideoFrame',\n VideoEffects_NotifySelectedVideoEffectChanged = 'videoEffects.notifySelectedVideoEffectChanged',\n VideoEffects_NotifyError = 'videoEffects.notifyError',\n VideoEffects_NotifyVideoFrameProcessed = 'videoEffects.notifyVideoFrameProcessed',\n VideoEffects_RegisterEffectParameterChangeHandler = 'videoEffects.registerEffectParameterChangeHandler',\n VideoEffects_RegisterForVideoEffect = 'videoEffects.registerForVideoEffect',\n VideoEffects_RegisterForVideoFrame = 'videoEffects.registerForVideoFrame',\n VideoEffects_RegisterSetFrameProcessTimeLimitHandler = 'videoEffects.setFrameProcessTimeLimitHandler',\n VideoEffects_RegisterStartVideoExtensibilityVideoStreamHandler = 'videoEffects.startVideoExtensibilityVideoStreamHandler',\n VideoEffects_RegisterForVideoBufferHandler = 'videoEffects.registerForVideoBufferHandler',\n VideoEffectsEx_MediaStream_RegisterForVideoFrame = 'videoEffectsEX.mediaStream.registerForVideoFrame',\n VideoEffectsEx_NotifyError = 'videoEffectsEx.notifyError',\n VideoEffectsEx_NotifySelectedVideoEffectChanged = 'videoEffectsEx.notifySelectedVideoEffectChanged',\n VideoEffectsEx_NotifyVideoFrameProcessed = 'videoEffectsEx.notifyVideoFrameProcessed',\n VideoEffectsEx_RegisterEffectParameterChangeHandler = 'videoEffectsEx.registerEffectParamterChangeHandler',\n VideoEffectsEx_RegisterForVideoEffect = 'videoEffectsEx.registerForVideoEffect',\n VideoEffectsEx_RegisterForVideoFrame = 'videoEffectsEx.registerForVideoFrame',\n VideoEffectsEx_RegisterNewVideoFrameHandler = 'videoEffectsEx.registerNewVideoFrameHandler',\n VideoEffectsEx_RegisterSetFrameProcessTimeLimitHandler = 'videoEffectsEX.registerSetFrameProcessTimeLimitHandler',\n VideoEffectsEx_RegisterStartVideoExtensibilityVideoStreamHandler = 'videoEffectsEX.registerStartVideoExtensibilityVideoStreamHandler',\n VideoEffectsEx_UpdatePersonalizedEffects = 'videoEffectsEx.updatePersonalizedEffects',\n VideoEffectsUtils_EffectFailure = 'videoEffectsUtils.effectFailure',\n VideoEffectsUtils_ReportVideoEffectChanged = 'videoEffectsUtils.reportVideoEffectChanged',\n VideoEffectsUtils_TransformerWithMetadata_Constructor = 'videoEffectsUtils.transformerWithMetadata.constructor',\n VideoPerformanceMonitor_Constructor = 'videoPerformanceMonitor.performanceDataGenerated',\n VideoPerformanceMonitor_ReportFrameProcessed = 'videoPerformanceMonitor.reportFrameProcessed',\n VideoPerformanceMonitor_ReportTextureStreamAcquired = 'videoPerformanceMonitor.reportTextureStreamAcquired',\n VideoPerformanceMonitor_StartMonitorSlowFrameProcessing = 'videoPerformanceMonitor.startMonitorSlowFrameProcessing',\n VisualMedia_HasPermission = 'visualMedia.hasPermission',\n VisualMedia_Image_CaptureImages = 'visualMedia.image.captureImages',\n VisualMedia_Image_RetrieveImages = 'visualMedia.image.retrieveImages',\n VisualMedia_RequestPermission = 'visualMedia.requestPermission',\n}\n","import * as validOriginsJSON from '../artifactsForCDN/validDomains.json';\n\n/**\n * @hidden\n * The client version when all SDK APIs started to check platform compatibility for the APIs was 1.6.0.\n * Modified to 2.0.1 which is hightest till now so that if any client doesn't pass version in initialize function, it will be set to highest.\n * Mobile clients are passing versions, hence will be applicable to web and desktop clients only.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const defaultSDKVersionForCompatCheck = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - VideoAndImage is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const videoAndImageMediaAPISupportVersion = '2.0.2';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - Video with non-full screen mode is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const nonFullScreenVideoModeAPISupportVersion = '2.0.3';\n\n/**\n * @hidden\n * This is the client version when selectMedia API - ImageOutputFormats is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const imageOutputFormatsAPISupportVersion = '2.0.4';\n\n/**\n * @hidden\n * Minimum required client supported version for {@link getUserJoinedTeams} to be supported on {@link HostClientType.android}\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const getUserJoinedTeamsSupportedAndroidClientVersion = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when location APIs (getLocation and showLocation) are supported.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const locationAPIsRequiredVersion = '1.9.0';\n\n/**\n * @hidden\n * This is the client version when permisisons are supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const permissionsAPIsRequiredVersion = '2.0.1';\n\n/**\n * @hidden\n * This is the client version when people picker API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const peoplePickerRequiredVersion = '2.0.0';\n\n/**\n * @hidden\n * This is the client version when captureImage API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const captureImageMobileSupportVersion = '1.7.0';\n\n/**\n * @hidden\n * This is the client version when media APIs are supported on all three platforms ios, android and web.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const mediaAPISupportVersion = '1.8.0';\n\n/**\n * @hidden\n * This is the client version when getMedia API is supported via Callbacks on all three platforms ios, android and web.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const getMediaCallbackSupportVersion = '2.0.0';\n\n/**\n * @hidden\n * This is the client version when scanBarCode API is supported on mobile.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const scanBarCodeAPIMobileSupportVersion = '1.9.0';\n\n/**\n * @hidden\n * Fallback list of valid origins in JSON format\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nconst validOriginsLocal = validOriginsJSON;\n\n/**\n * @hidden\n * Fallback list of valid origins\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const validOriginsFallback = validOriginsLocal.validOrigins;\n\n/**\n * @hidden\n * CDN endpoint of the list of valid origins\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const validOriginsCdnEndpoint = new URL(\n 'https://res.cdn.office.net/teams-js/validDomains/json/validDomains.json',\n);\n\n/**\n * @hidden\n * USer specified message origins should satisfy this test\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const userOriginUrlValidationRegExp = /^https:\\/\\//;\n\n/**\n * @hidden\n * The protocol used for deep links into Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const teamsDeepLinkProtocol = 'https';\n\n/**\n * @hidden\n * The host used for deep links into Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const teamsDeepLinkHost = 'teams.microsoft.com';\n\n/** @hidden */\nexport const errorLibraryNotInitialized = 'The library has not yet been initialized';\n\n/** @hidden */\nexport const errorRuntimeNotInitialized = 'The runtime has not yet been initialized';\n\n/** @hidden */\nexport const errorRuntimeNotSupported = 'The runtime version is not supported';\n\n/** @hidden */\nexport const errorCallNotStarted = 'The call was not properly started';\n","import { FrameContexts } from '../public';\nexport class GlobalVars {\n public static initializeCalled = false;\n public static initializeCompleted = false;\n public static additionalValidOrigins: string[] = [];\n public static initializePromise: Promise | undefined = undefined;\n public static isFramelessWindow = false;\n public static frameContext: FrameContexts | undefined = undefined;\n public static hostClientType: string | undefined = undefined;\n public static clientSupportedSDKVersion: string;\n public static printCapabilityEnabled = false;\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","/* eslint-disable @typescript-eslint/no-explicit-any*/\n\nimport { ChannelType, DialogDimension, HostClientType, HostName, TeamType, UserTeamRole } from './constants';\nimport { FrameContexts } from './constants';\n\n/**\n * Represents information about tabs for an app\n */\nexport interface TabInformation {\n /** Represents the tabs associated with a Microsoft Teams app */\n teamTabs: TabInstance[];\n}\n\n/**\n * Represents information about a tab instance\n */\nexport interface TabInstance {\n /**\n * The name of the tab\n */\n tabName: string;\n\n /**\n * @internal\n * Limited to Microsoft-internal use\n * @protected\n */\n internalTabInstanceId?: string;\n\n /**\n * Last viewed time of this tab. null means unknown\n */\n lastViewUnixEpochTime?: string;\n\n /**\n * The developer-defined unique ID for the entity this content points to.\n */\n entityId?: string;\n\n /**\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n channelId?: string;\n\n /**\n * The name for the channel with which the content is associated.\n */\n channelName?: string;\n\n /**\n * Is this tab in a favorite channel?\n */\n channelIsFavorite?: boolean;\n\n /**\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n teamId?: string;\n\n /**\n * The name for the team with which the content is associated.\n */\n teamName?: string;\n\n /**\n * Is this tab in a favorite team?\n */\n teamIsFavorite?: boolean;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Content URL of this tab\n */\n url?: string;\n\n /**\n * Website URL of this tab\n */\n websiteUrl?: string;\n}\n\n/**\n * Indicates information about the tab instance for filtering purposes.\n */\nexport interface TabInstanceParameters {\n /**\n * Flag allowing to select favorite channels only\n */\n favoriteChannelsOnly?: boolean;\n\n /**\n * Flag allowing to select favorite teams only\n */\n favoriteTeamsOnly?: boolean;\n}\n\n/**\n * Represents Team Information\n */\nexport interface TeamInformation {\n /**\n * Id of the team\n */\n teamId: string;\n\n /**\n * Team display name\n */\n teamName: string;\n\n /**\n * Team description\n */\n teamDescription?: string;\n\n /**\n * Thumbnail Uri\n */\n thumbnailUri?: string;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Role of current user in the team\n */\n userTeamRole?: UserTeamRole;\n\n /**\n * The type of the team.\n */\n teamType?: TeamType;\n\n /**\n * The locked status of the team\n */\n isTeamLocked?: boolean;\n\n /**\n * The archived status of the team\n */\n isTeamArchived?: boolean;\n}\n\n/**\n * Represents OS locale info used for formatting date and time data\n */\nexport interface LocaleInfo {\n /** Represents the user's platform on which the app is running. */\n platform: HostClientType.android | HostClientType.ios | HostClientType.macos | 'windows';\n /**\n * Represents the regional format used by the user's locale.\n * @example `en-us`.\n */\n regionalFormat: string;\n /**\n * Displays date values, as specified by the short date format MM/DD/YYYY in user's regional settings.\n * @example 4/21/2023 or 4-21-2023\n */\n shortDate: string;\n /**\n * Displays only date values, as specified by the Long Date format in user's regional settings.\n * @example Friday, April 21, 2023\n */\n longDate: string;\n /**\n * A string representing the short time format used by the user's locale.\n * @example 10:10\n */\n shortTime: string;\n /**\n * A string representing the long time format used by the user's locale.\n * @example 10:10:42 AM\n */\n longTime: string;\n}\n\n/**\n * Allowed user file open preferences\n */\nexport enum FileOpenPreference {\n /** Indicates that the user should be prompted to open the file in inline. */\n Inline = 'inline',\n /** Indicates that the user should be prompted to open the file in the native desktop application associated with the file type. */\n Desktop = 'desktop',\n /** Indicates that the user should be prompted to open the file in a web browser. */\n Web = 'web',\n}\n\n/**\n * Possible Action Types\n *\n * @beta\n */\nexport enum ActionObjectType {\n /** Represents content within a Microsoft 365 application. */\n M365Content = 'm365content',\n}\n\n/**\n * Data pertaining to object(s) the action is being performed on\n *\n * @param T The type of action being implemented\n *\n * @beta\n */\nexport interface BaseActionObject {\n /** Represents action type. */\n type: T;\n}\n\n/**\n * Stores information needed to represent M365 Content stored\n * in OneDrive or Sharepoint\n *\n * @beta\n */\nexport interface M365ContentAction extends BaseActionObject {\n /**\n * Only office content IDs are passed to the app. Apps should use these ids\n * to query the Microsoft graph for more details.\n */\n itemId: string;\n /** Represents an optional secondary identifier for an action in a Microsoft 365 content item. */\n secondaryId?: SecondaryId;\n}\n\n/**\n * Contains information on what Graph item is being queried\n *\n * @beta\n */\nexport interface SecondaryId {\n /** Name of the secondary id that should be used. */\n name: SecondaryM365ContentIdName;\n /** The secondary id value that can be used to retrieve M365 content. */\n value: string;\n}\n\n/**\n * These correspond with field names in the MSGraph.\n * See (commonly accessed resources)[https://learn.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0#commonly-accessed-resources].\n * @beta\n */\nexport enum SecondaryM365ContentIdName {\n /** OneDrive ID */\n DriveId = 'driveId',\n /** Teams Group ID */\n GroupId = 'groupId',\n /** SharePoint ID */\n SiteId = 'siteId',\n /** User ID */\n UserId = 'userId',\n}\n\n/**\n * Information common to all actions\n *\n * @beta\n */\nexport interface ActionInfo {\n /**\n * Maps to the action id supplied inside the manifest\n */\n actionId: string;\n /**\n * Array of corresponding action objects\n */\n actionObjects: BaseActionObject[];\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use the {@link app.Context} interface and its updated properties instead.\n *\n * @remarks\n * For more details about the updated {@link app.Context} interface, visit the\n * [Teams JavaScript client SDK](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/using-teams-client-sdk#updates-to-the-context-interface)\n * overview article.\n *\n * Represents the structure of the received context message.\n */\nexport interface Context {\n /**\n * @deprecated\n * As of 2.0.0, please use {@link ActionInfo | app.Context.actionInfo} instead\n *\n * Common information applicable to all content actions\n */\n actionInfo?: ActionInfo;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.groupId | app.Context.team.groupId} instead\n *\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.internalId | app.Context.team.internalId} instead\n *\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n teamId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.displayName | app.Context.team.displayName} instead\n *\n * The name for the team with which the content is associated.\n */\n teamName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.id | app.Context.channel.id} instead\n *\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n channelId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.displayName | app.Context.channel.displayName} instead\n *\n * The name for the channel with which the content is associated.\n */\n channelName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.membershipType | app.Context.channel.membershipType} instead\n *\n * The type of the channel with which the content is associated.\n */\n channelType?: ChannelType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.id | app.Context.page.id} instead\n *\n * The developer-defined unique ID for the entity this content points to.\n */\n entityId: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.subPageId | app.Context.page.subPageId} instead\n *\n * The developer-defined unique ID for the sub-entity this content points to.\n * This field should be used to restore to a specific state within an entity,\n * such as scrolling to or activating a specific piece of content.\n */\n subEntityId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.locale | app.Context.app.locale} instead\n *\n * The current locale that the user has configured for the app formatted as\n * languageId-countryId (for example, en-us).\n */\n locale: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.osLocaleInfo | app.Context.app.osLocaleInfo} instead\n *\n * More detailed locale info from the user's OS if available. Can be used together with\n * the @microsoft/globe NPM package to ensure your app respects the user's OS date and\n * time format configuration\n */\n osLocaleInfo?: LocaleInfo;\n\n /**\n * @deprecated\n *\n * As of 2.0.0, please use {@link app.UserInfo.loginHint | app.Context.user.loginHint} or\n * {@link app.UserInfo.userPrincipalName | app.Context.user.userPrincipalName} instead.\n * The UPN of the current user.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n upn?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TenantInfo.id | app.Context.user.tenant.id} instead\n *\n * The Microsoft Entra tenant ID of the current user.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n tid?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.theme | app.Context.app.theme} instead\n *\n * The current UI theme.\n */\n theme?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.isFullScreen | app.Context.page.isFullScreen} instead\n *\n * Indication whether the tab is in full-screen mode.\n */\n isFullScreen?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.type | app.Context.team.type} instead\n *\n * The type of the team.\n */\n teamType?: TeamType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteUrl | app.Context.sharePointSite.teamSiteUrl} instead\n *\n * The root SharePoint site associated with the team.\n */\n teamSiteUrl?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteDomain | app.Context.sharePointSite.teamSiteDomain} instead\n *\n * The domain of the root SharePoint site associated with the team.\n */\n teamSiteDomain?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSitePath | app.Context.sharePointSite.teamSitePath} instead\n *\n * The relative path to the SharePoint site associated with the team.\n */\n teamSitePath?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.ownerTenantId | app.Context.channel.ownerTenantId} instead\n *\n * The tenant ID of the host team.\n */\n hostTeamTenantId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.ownerGroupId | app.Context.channel.ownerGroupId} instead\n *\n * The Microsoft Entra group ID of the host team.\n */\n hostTeamGroupId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.relativeUrl | app.Context.channel.relativeUrl} instead\n *\n * The relative path to the SharePoint folder associated with the channel.\n */\n channelRelativeUrl?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.sessionId | app.Context.app.host.sessionId} instead\n *\n * Unique ID for the current Teams session for use in correlating telemetry data.\n */\n sessionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.userRole | app.Context.team.userRole} instead\n *\n * The user's role in the team.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to the user's role, and never as proof of her role.\n */\n userTeamRole?: UserTeamRole;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChatInfo.id | app.Context.chat.id} instead\n *\n * The Microsoft Teams ID for the chat with which the content is associated.\n */\n chatId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.loginHint | app.Context.user.loginHint} instead\n *\n * A value suitable for use as a login_hint when authenticating with Microsoft Entra ID.\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n loginHint?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.userPrincipalName | app.Context.user.userPrincipalName} instead\n *\n * The UPN of the current user. This may be an externally-authenticated UPN (e.g., guest users).\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n userPrincipalName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.id | app.Context.user.id} instead\n *\n * The Microsoft Entra object ID of the current user.\n * Because a malicious party run your content in a browser, this value should\n * be used only as a hint as to who the user is and never as proof of identity.\n * This field is available only when the identity permission is requested in the manifest.\n */\n userObjectId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.isArchived | app.Context.team.isArchived} instead\n *\n * Indicates whether team is archived.\n * Apps should use this as a signal to prevent any changes to content associated with archived teams.\n */\n isTeamArchived?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.name | app.Context.app.host.name} instead\n *\n * The name of the host client. Possible values are: Office, Orange, Outlook, Teams\n */\n hostName?: HostName;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.clientType | app.Context.app.host.clientType} instead\n *\n * The type of the host client. Possible values are : android, ios, web, desktop, rigel(deprecated, use teamsRoomsWindows instead),\n * surfaceHub, teamsRoomsWindows, teamsRoomsAndroid, teamsPhones, teamsDisplays\n */\n hostClientType?: HostClientType;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.frameContext | app.Context.page.frameContext} instead\n *\n * The context where tab url is loaded (content, task, setting, remove, sidePanel)\n */\n frameContext?: FrameContexts;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.Context | app.Context.sharepoint} instead\n *\n * SharePoint context. This is only available when hosted in SharePoint.\n */\n sharepoint?: any;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TenantInfo.teamsSku | app.Context.tenant.teamsSku} instead\n *\n * The type of license for the current users tenant.\n */\n tenantSKU?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.licenseType | app.Context.user.licenseType} instead\n *\n * The license type for the current user.\n */\n userLicenseType?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.parentMessageId | app.Context.app.parentMessageId} instead\n *\n * The ID of the parent message from which this task module was launched.\n * This is only available in task modules launched from bot cards.\n */\n parentMessageId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppHostInfo.ringId | app.Context.app.host.ringId} instead\n *\n * Current ring ID\n */\n ringId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.sessionId | app.Context.app.sessionId} instead\n *\n * Unique ID for the current session for use in correlating telemetry data. A session corresponds to the lifecycle of an app. A new session begins upon the creation of a webview (on Teams mobile) or iframe (in Teams desktop) hosting the app, and ends when it is destroyed.\n */\n appSessionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.appLaunchId | app.Context.app.appLaunchId} instead\n *\n * ID for the current visible app which is different for across cached sessions. Used for correlating telemetry data``\n */\n appLaunchId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.isCallingAllowed | app.Context.user.isCallingAllowed} instead\n *\n * Represents whether calling is allowed for the current logged in User\n */\n isCallingAllowed?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.isPSTNCallingAllowed | app.Context.user.isPSTNCallingAllowed} instead\n *\n * Represents whether PSTN calling is allowed for the current logged in User\n */\n isPSTNCallingAllowed?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.MeetingInfo.id | app.Context.meeting.id} instead\n *\n * Meeting Id used by tab when running in meeting context\n */\n meetingId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ChannelInfo.defaultOneNoteSectionId | app.Context.channel.defaultOneNoteSectionId} instead\n *\n * The OneNote section ID that is linked to the channel.\n */\n defaultOneNoteSectionId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.isMultiWindow | app.Context.page.isMultiWindow} instead\n *\n * Indication whether the tab is in a pop out window\n */\n isMultiWindow?: boolean;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.iconPositionVertical | app.Context.app.iconPositionVertical} instead\n *\n * Personal app icon y coordinate position\n */\n appIconPosition?: number;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.PageInfo.sourceOrigin | app.Context.page.sourceOrigin} instead\n *\n * Source origin from where the tab is opened\n */\n sourceOrigin?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.userClickTime | app.Context.app.userClickTime} instead\n *\n * Time when the user clicked on the tab\n */\n userClickTime?: number;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.TeamInfo.templateId | app.Context.team.templateId} instead\n *\n * Team Template ID if there was a Team Template associated with the creation of the team.\n */\n teamTemplateId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.AppInfo.userFileOpenPreference | app.Context.app.userFileOpenPreference} instead\n *\n * Where the user prefers the file to be opened from by default during file open\n */\n userFileOpenPreference?: FileOpenPreference;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.UserInfo.displayName | app.Context.user.displayName} instead\n *\n * The address book name of the current user.\n */\n userDisplayName?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.teamSiteId | app.Context.sharePointSite.teamSiteId} instead\n *\n * Teamsite ID, aka sharepoint site id.\n */\n teamSiteId?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.mySiteDomain | app.Context.sharePointSite.mySiteDomain} instead\n *\n * The SharePoint my site domain associated with the user.\n */\n mySiteDomain?: string;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.SharePointSiteInfo.mySitePath | app.Context.sharePointSite.mySitePath} instead\n *\n * The SharePoint relative path to the current users mysite\n */\n mySitePath?: string;\n}\n\n/** Represents the parameters used to share a deep link. */\nexport interface ShareDeepLinkParameters {\n /**\n * The developer-defined unique ID for the sub-page to which this deep link points in the current page.\n * This field should be used to restore to a specific state within a page, such as scrolling to or activating a specific piece of content.\n */\n subPageId: string;\n\n /**\n * The label for the sub-page that should be displayed when the deep link is rendered in a client.\n */\n subPageLabel: string;\n\n /**\n * The fallback URL to which to navigate the user if the client cannot render the page.\n * This URL should lead directly to the sub-entity.\n */\n subPageWebUrl?: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link ShareDeepLinkParameters} instead.\n */\nexport interface DeepLinkParameters {\n /**\n * The developer-defined unique ID for the sub-entity to which this deep link points in the current entity.\n * This field should be used to restore to a specific state within an entity, such as scrolling to or activating a specific piece of content.\n */\n subEntityId: string;\n\n /**\n * The label for the sub-entity that should be displayed when the deep link is rendered in a client.\n */\n subEntityLabel: string;\n\n /**\n * The fallback URL to which to navigate the user if the client cannot render the page.\n * This URL should lead directly to the sub-entity.\n */\n subEntityWebUrl?: string;\n}\n\n/**\n * @hidden\n * Shared Dialog Properties\n */\nexport interface BaseDialogInfo {\n /**\n * The requested size of the dialog\n */\n size: DialogSize;\n\n /**\n * Title of the dialog module.\n */\n title?: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open an Adaptive Card-based dialog.\n */\nexport interface AdaptiveCardDialogInfo extends BaseDialogInfo {\n /**\n * JSON defining an Adaptive Card.\n */\n card: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open a bot-based Adaptive Card-based dialog.\n */\nexport interface BotAdaptiveCardDialogInfo extends AdaptiveCardDialogInfo {\n /**\n * Specifies a bot ID to send the result of the user's interaction with the dialog module.\n * The bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId: string;\n}\n\n/**\n * Data structure to represent the size of a dialog\n */\nexport interface DialogSize {\n /**\n * The requested height of the webview/iframe.\n */\n height: DialogDimension | number;\n\n /**\n * The requested width of the webview/iframe.\n */\n width: DialogDimension | number;\n}\n\n/**\n * Data structure to describe dialog information needed to open a url-based dialog.\n */\nexport interface UrlDialogInfo extends BaseDialogInfo {\n /**\n * The url to be rendered in the webview/iframe.\n *\n * @remarks\n * The domain of the url must match at least one of the\n * valid domains specified in the [validDomains block](https://learn.microsoft.com/microsoftteams/platform/resources/schema/manifest-schema#validdomains) of the app manifest\n */\n url: string;\n\n /**\n * If client doesnt support the URL, the URL that needs to be opened in the browser.\n */\n fallbackUrl?: string;\n}\n\n/**\n * Data structure to describe dialog information needed to open a bot based dialog.\n */\nexport interface BotUrlDialogInfo extends UrlDialogInfo {\n /**\n * Specifies a bot ID to send the result of the user's interaction with the task module.\n * The bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId: string;\n}\n\n/**\n * Data structure to describe dialog information\n */\nexport interface DialogInfo {\n /**\n * The url to be rendered in the webview/iframe.\n *\n * @remarks\n * The domain of the url must match at least one of the\n * valid domains specified in the validDomains block of the manifest\n */\n url?: string;\n\n /**\n * JSON defining an adaptive card.\n */\n card?: string;\n\n /**\n * The requested height of the webview/iframe.\n */\n height?: DialogDimension | number;\n\n /**\n * The requested width of the webview/iframe.\n */\n width?: DialogDimension | number;\n\n /**\n * Title of the task module.\n */\n title?: string;\n\n /**\n * If client doesnt support the URL, the URL that needs to be opened in the browser.\n */\n fallbackUrl?: string;\n\n /**\n * Specifies a bot ID to send the result of the user's interaction with the task module.\n * If specified, the bot will receive a task/complete invoke event with a JSON object\n * in the event payload.\n */\n completionBotId?: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link DialogInfo} instead.\n */\nexport type TaskInfo = DialogInfo;\n\n/**\n * @beta\n * Data structure to be used with the {@link app.lifecycle.registerOnResumeHandler app.lifecycle.registerOnResumeHandler(handler: (context: ResumeContext) => void): void} to pass the context to the app.\n */\nexport interface ResumeContext {\n /**\n * The entity that is requested to be loaded\n */\n entityId: string;\n\n /**\n * The content URL that is requested to be loaded\n */\n contentUrl: string;\n}\n\n/**\n * @deprecated\n * As of 2.14.1, please use {@link ResumeContext} instead.\n */\nexport type LoadContext = ResumeContext;\n\n/** Represents information about a frame within a tab or dialog module. */\nexport interface FrameInfo {\n /**\n * The current URL that needs to be used in the iframe if the tab is reloaded\n */\n contentUrl: string;\n\n /**\n * The current URL that needs to be used for opening the website when the user clicks on 'Go to website'\n */\n websiteUrl: string;\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link FrameInfo} instead.\n */\nexport type FrameContext = FrameInfo;\n\n/** Represents an error that occurs during the execution of an app or integration. */\nexport interface SdkError {\n /**\n error code\n */\n errorCode: ErrorCode;\n /**\n Optional description for the error. This may contain useful information for web-app developers.\n This string will not be localized and is not for end-user consumption. \n App should not depend on the string content. The exact value may change. This is only for debugging purposes.\n */\n message?: string;\n}\n\nexport function isSdkError(err: unknown): err is SdkError {\n return (err as SdkError)?.errorCode !== undefined;\n}\n\n/** Error codes used to identify different types of errors that can occur while developing apps. */\nexport enum ErrorCode {\n /**\n * API not supported in the current platform.\n */\n NOT_SUPPORTED_ON_PLATFORM = 100,\n /**\n * Internal error encountered while performing the required operation.\n */\n INTERNAL_ERROR = 500,\n /**\n * API is not supported in the current context\n */\n NOT_SUPPORTED_IN_CURRENT_CONTEXT = 501,\n /**\n Permissions denied by user\n */\n PERMISSION_DENIED = 1000,\n /**\n * Network issue\n */\n NETWORK_ERROR = 2000,\n /**\n * Underlying hardware doesn't support the capability\n */\n NO_HW_SUPPORT = 3000,\n /**\n * One or more arguments are invalid\n */\n INVALID_ARGUMENTS = 4000,\n /**\n * User is not authorized for this operation\n */\n UNAUTHORIZED_USER_OPERATION = 5000,\n /**\n * Could not complete the operation due to insufficient resources\n */\n INSUFFICIENT_RESOURCES = 6000,\n /**\n * Platform throttled the request because of API was invoked too frequently\n */\n THROTTLE = 7000,\n /**\n * User aborted the operation\n */\n USER_ABORT = 8000,\n /**\n * Could not complete the operation in the given time interval\n */\n OPERATION_TIMED_OUT = 8001,\n /**\n * Platform code is old and doesn't implement this API\n */\n OLD_PLATFORM = 9000,\n /**\n * The file specified was not found on the given location\n */\n FILE_NOT_FOUND = 404,\n /**\n * The return value is too big and has exceeded our size boundries\n */\n SIZE_EXCEEDED = 10000,\n}\n\n/** @hidden */\nexport enum DevicePermission {\n GeoLocation = 'geolocation',\n Media = 'media',\n}\n\n/** @hidden */\nexport interface HostVersionsInfo {\n adaptiveCardSchemaVersion?: AdaptiveCardVersion;\n}\n\n/**\n * Represents the major and minor versions of the Adaptive Card schema in the current host\n */\nexport interface AdaptiveCardVersion {\n /** Represents the major version number. */\n majorVersion: number;\n /** Represents the minor version number. */\n minorVersion: number;\n}\n\n/**\n * Currently supported Mime type\n */\nexport enum ClipboardSupportedMimeType {\n TextPlain = 'text/plain',\n TextHtml = 'text/html',\n ImagePNG = 'image/png',\n ImageJPEG = 'image/jpeg',\n}\n\n/**\n * Clipboard write parameters\n */\nexport interface ClipboardParams {\n /** Mime Type of data to be copied to Clipboard */\n mimeType: ClipboardSupportedMimeType;\n /** Blob content in Base64 string format */\n content: string;\n}\n","/** HostClientType represents the different client platforms on which host can be run. */\nexport enum HostClientType {\n /** Represents the desktop client of host, which is installed on a user's computer and runs as a standalone application. */\n desktop = 'desktop',\n /** Represents the web-based client of host, which runs in a web browser. */\n web = 'web',\n /** Represents the Android mobile client of host, which runs on Android devices such as smartphones and tablets. */\n android = 'android',\n /** Represents the iOS mobile client of host, which runs on iOS devices such as iPhones. */\n ios = 'ios',\n /** Represents the iPadOS client of host, which runs on iOS devices such as iPads. */\n ipados = 'ipados',\n /** The host is running on a macOS client, which runs on devices such as MacBooks. */\n macos = 'macos',\n /**\n * @deprecated\n * As of 2.0.0, please use {@link teamsRoomsWindows} instead.\n */\n rigel = 'rigel',\n /** Represents the client of host, which runs on surface hub devices. */\n surfaceHub = 'surfaceHub',\n /** Represents the client of host, which runs on Teams Rooms on Windows devices. More information on Microsoft Teams Rooms on Windows can be found [Microsoft Teams Rooms (Windows)](https://support.microsoft.com/office/microsoft-teams-rooms-windows-help-e667f40e-5aab-40c1-bd68-611fe0002ba2)*/\n teamsRoomsWindows = 'teamsRoomsWindows',\n /** Represents the client of host, which runs on Teams Rooms on Android devices. More information on Microsoft Teams Rooms on Android can be found [Microsoft Teams Rooms (Android)].(https://support.microsoft.com/office/get-started-with-teams-rooms-on-android-68517298-d513-46be-8d6d-d41db5e6b4b2)*/\n teamsRoomsAndroid = 'teamsRoomsAndroid',\n /** Represents the client of host, which runs on Teams phones. More information can be found [Microsoft Teams Phones](https://support.microsoft.com/office/get-started-with-teams-phones-694ca17d-3ecf-40ca-b45e-d21b2c442412) */\n teamsPhones = 'teamsPhones',\n /** Represents the client of host, which runs on Teams displays devices. More information can be found [Microsoft Teams Displays](https://support.microsoft.com/office/get-started-with-teams-displays-ff299825-7f13-4528-96c2-1d3437e6d4e6) */\n teamsDisplays = 'teamsDisplays',\n}\n\n/** HostName indicates the possible hosts for your application. */\nexport enum HostName {\n /**\n * Office.com and Office Windows App\n */\n office = 'Office',\n\n /**\n * For \"desktop\" specifically, this refers to the new, pre-release version of Outlook for Windows.\n * Also used on other platforms that map to a single Outlook client.\n */\n outlook = 'Outlook',\n\n /**\n * Outlook for Windows: the classic, native, desktop client\n */\n outlookWin32 = 'OutlookWin32',\n\n /**\n * Microsoft-internal test Host\n */\n orange = 'Orange',\n\n /**\n * Microsoft connected workplace platform\n */\n places = 'Places',\n\n /**\n * Teams\n */\n teams = 'Teams',\n\n /**\n * Modern Teams\n */\n teamsModern = 'TeamsModern',\n}\n\n/**\n * FrameContexts provides information about the context in which the app is running within the host.\n * Developers can use FrameContexts to determine how their app should behave in different contexts,\n * and can use the information provided by the context to adapt the app to the user's needs.\n *\n * @example\n * If your app is running in the \"settings\" context, you should be displaying your apps configuration page.\n * If the app is running in the content context, the developer may want to display information relevant to\n * the content the user is currently viewing.\n */\nexport enum FrameContexts {\n /**\n * App's frame context from where settings page can be accessed.\n * See [how to create a configuration page.]( https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/create-tab-pages/configuration-page?tabs=teamsjs-v2)\n */\n settings = 'settings',\n /** The default context for the app where all the content of the app is displayed. */\n content = 'content',\n /** Frame context used when app is running in the authentication window launched by calling {@link authentication.authenticate} */\n authentication = 'authentication',\n /** The page shown when the user uninstalls the app. */\n remove = 'remove',\n /** A task module is a pop-up window that can be used to display a form, a dialog, or other interactive content within the host. */\n task = 'task',\n /** The side panel is a persistent panel that is displayed on the right side of the host and can be used to display content or UI that is relevant to the current page or tab. */\n sidePanel = 'sidePanel',\n /** The stage is a large area that is displayed at the center of the host and can be used to display content or UI that requires a lot of space, such as a video player or a document editor. */\n stage = 'stage',\n /** App's frame context from where meetingStage can be accessed in a meeting session, which is the primary area where video and presentation content is displayed during a meeting. */\n meetingStage = 'meetingStage',\n}\n\n/**\n * Indicates the team type, currently used to distinguish between different team\n * types in Office 365 for Education (team types 1, 2, 3, and 4).\n */\nexport enum TeamType {\n /** Represents a standard or classic team in host that is designed for ongoing collaboration and communication among a group of people. */\n Standard = 0,\n /** Represents an educational team in host that is designed for classroom collaboration and communication among students and teachers. */\n Edu = 1,\n /** Represents a class team in host that is designed for classroom collaboration and communication among students and teachers in a structured environment. */\n Class = 2,\n /** Represents a professional learning community (PLC) team in host that is designed for educators to collaborate and share resources and best practices. */\n Plc = 3,\n /** Represents a staff team in host that is designed for staff collaboration and communication among staff members.*/\n Staff = 4,\n}\n\n/**\n * Indicates the various types of roles of a user in a team.\n */\nexport enum UserTeamRole {\n /** Represents that the user is an owner or administrator of the team. */\n Admin = 0,\n /** Represents that the user is a standard member of the team. */\n User = 1,\n /** Represents that the user does not have any role in the team. */\n Guest = 2,\n}\n\n/**\n * Dialog module dimension enum\n */\nexport enum DialogDimension {\n /** Represents a large-sized dialog box, which is typically used for displaying large amounts of content or complex workflows that require more space. */\n Large = 'large',\n /** Represents a medium-sized dialog box, which is typically used for displaying moderate amounts of content or workflows that require less space. */\n Medium = 'medium',\n /** Represents a small-sized dialog box, which is typically used for displaying simple messages or workflows that require minimal space.*/\n Small = 'small',\n}\n\nimport { AdaptiveCardVersion, ErrorCode, SdkError } from './interfaces';\n/**\n * @deprecated\n * As of 2.0.0, please use {@link DialogDimension} instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport import TaskModuleDimension = DialogDimension;\nimport { HostVersionsInfo } from './interfaces';\n\n/**\n * The type of the channel with which the content is associated.\n */\nexport enum ChannelType {\n /** The default channel type. Type of channel is used for general collaboration and communication within a team. */\n Regular = 'Regular',\n /** Type of channel is used for sensitive or confidential communication within a team and is only accessible to members of the channel. */\n Private = 'Private',\n /** Type of channel is used for collaboration between multiple teams or groups and is accessible to members of all the teams or groups. */\n Shared = 'Shared',\n}\n\n/** An error object indicating that the requested operation or feature is not supported on the current platform or device.\n * @typedef {Object} SdkError\n */\nexport const errorNotSupportedOnPlatform: SdkError = {\n errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM,\n};\n\n/**\n * @hidden\n *\n * Minimum Adaptive Card version supported by the host.\n */\nexport const minAdaptiveCardVersion: AdaptiveCardVersion = { majorVersion: 1, minorVersion: 5 };\n\n/**\n * @hidden\n *\n * Adaptive Card version supported by the Teams v1 client.\n */\nexport const teamsMinAdaptiveCardVersion: HostVersionsInfo = {\n adaptiveCardSchemaVersion: { majorVersion: 1, minorVersion: 5 },\n};\n\n/**\n * @hidden\n * An error object indicates that the image count from visualMedia.image API is invalid.\n *\n * @beta\n */\nexport const errorInvalidCount = new Error('Invalid input count: Must supply a valid image count (limit of 10).');\n/**\n * @hidden\n * An error object indicates that the response from the visualMedia.image API is invalid.\n *\n * @beta\n */\nexport const errorInvalidResponse = new Error(\n 'Invalid response: Received more images than the specified max limit in the response.',\n);\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport * as uuid from 'uuid';\n\nimport { minAdaptiveCardVersion } from '../public/constants';\nimport { AdaptiveCardVersion, SdkError } from '../public/interfaces';\nimport { pages } from '../public/pages';\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function getGenericOnCompleteHandler(errorMessage?: string): (success: boolean, reason?: string) => void {\n return (success: boolean, reason: string): void => {\n if (!success) {\n throw new Error(errorMessage ? errorMessage : reason);\n }\n };\n}\n\n/**\n * @hidden\n * Compares SDK versions.\n *\n * @param v1 - first version\n * @param v2 - second version\n * @returns NaN in case inputs are not in right format\n * -1 if v1 < v2\n * 1 if v1 > v2\n * 0 otherwise\n * @example\n * compareSDKVersions('1.2', '1.2.0') returns 0\n * compareSDKVersions('1.2a', '1.2b') returns NaN\n * compareSDKVersions('1.2', '1.3') returns -1\n * compareSDKVersions('2.0', '1.3.2') returns 1\n * compareSDKVersions('2.0', 2.0) returns NaN\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function compareSDKVersions(v1: string, v2: string): number {\n if (typeof v1 !== 'string' || typeof v2 !== 'string') {\n return NaN;\n }\n\n const v1parts = v1.split('.');\n const v2parts = v2.split('.');\n\n function isValidPart(x: string): boolean {\n // input has to have one or more digits\n // For ex - returns true for '11', false for '1a1', false for 'a', false for '2b'\n return /^\\d+$/.test(x);\n }\n\n if (!v1parts.every(isValidPart) || !v2parts.every(isValidPart)) {\n return NaN;\n }\n\n // Make length of both parts equal\n while (v1parts.length < v2parts.length) {\n v1parts.push('0');\n }\n while (v2parts.length < v1parts.length) {\n v2parts.push('0');\n }\n\n for (let i = 0; i < v1parts.length; ++i) {\n if (Number(v1parts[i]) == Number(v2parts[i])) {\n continue;\n } else if (Number(v1parts[i]) > Number(v2parts[i])) {\n return 1;\n } else {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @hidden\n * Generates a GUID\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function generateGUID(): string {\n return uuid.v4();\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function deepFreeze(obj: T): T {\n Object.keys(obj).forEach((prop) => {\n if (typeof obj[prop] === 'object') {\n deepFreeze(obj[prop]);\n }\n });\n return Object.freeze(obj);\n}\n\n/**\n * @hidden\n * The following type definitions will be used in the\n * utility functions below, which help in transforming the\n * promises to support callbacks for backward compatibility\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport type ErrorResultCallback = (err?: SdkError, result?: T) => void;\nexport type ErrorResultNullCallback = (err: SdkError | null, result: T | null) => void;\nexport type ErrorBooleanResultCallback = (err?: SdkError, result?: boolean) => void;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InputFunction = (...args: any[]) => Promise;\nexport type ResultCallback = (result?: T) => void;\nexport type SdkErrorCallback = ResultCallback;\n\n/**\n * This utility function is used when the result of the promise is same as the result in the callback.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrResultFromPromiseAndReturnPromise(\n funcHelper: InputFunction,\n callback?: ErrorResultCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise {\n const p = funcHelper(...args);\n p.then((result: T) => {\n if (callback) {\n callback(undefined, result);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e);\n }\n });\n return p;\n}\n\n/**\n * This utility function is used when the return type of the promise is usually void and\n * the result in the callback is a boolean type (true for success and false for error)\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrBooleanFromPromiseAndReturnPromise(\n funcHelper: InputFunction,\n callback?: ErrorBooleanResultCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise {\n const p = funcHelper(...args);\n p.then(() => {\n if (callback) {\n callback(undefined, true);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e, false);\n }\n });\n return p;\n}\n\n/**\n * This utility function is called when the callback has only Error/SdkError as the primary argument.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithSdkErrorFromPromiseAndReturnPromise(\n funcHelper: InputFunction,\n callback?: SdkErrorCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise {\n const p = funcHelper(...args);\n p.then(() => {\n if (callback) {\n callback(null);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e);\n }\n });\n return p;\n}\n\n/**\n * This utility function is used when the result of the promise is same as the result in the callback.\n * @param funcHelper\n * @param callback\n * @param args\n * @returns\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(\n funcHelper: InputFunction,\n callback?: ErrorResultNullCallback,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ...args: any[]\n): Promise {\n const p = funcHelper(...args);\n p.then((result: T) => {\n if (callback) {\n callback(null, result);\n }\n }).catch((e: SdkError) => {\n if (callback) {\n callback(e, null);\n }\n });\n return p;\n}\n\n/**\n * A helper function to add a timeout to an asynchronous operation.\n *\n * @param action Action to wrap the timeout around\n * @param timeoutInMs Timeout period in milliseconds\n * @param timeoutError Error to reject the promise with if timeout elapses before the action completed\n * @returns A promise which resolves to the result of provided action or rejects with a provided timeout error\n * if the initial action didn't complete within provided timeout.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function runWithTimeout(\n action: () => Promise,\n timeoutInMs: number,\n timeoutError: TError,\n): Promise {\n return new Promise((resolve, reject) => {\n const timeoutHandle = setTimeout(reject, timeoutInMs, timeoutError);\n action()\n .then((result) => {\n clearTimeout(timeoutHandle);\n resolve(result);\n })\n .catch((error) => {\n clearTimeout(timeoutHandle);\n reject(error);\n });\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function createTeamsAppLink(params: pages.NavigateToAppParams): string {\n const url = new URL(\n 'https://teams.microsoft.com/l/entity/' +\n encodeURIComponent(params.appId) +\n '/' +\n encodeURIComponent(params.pageId),\n );\n\n if (params.webUrl) {\n url.searchParams.append('webUrl', params.webUrl);\n }\n if (params.channelId || params.subPageId) {\n url.searchParams.append('context', JSON.stringify({ channelId: params.channelId, subEntityId: params.subPageId }));\n }\n return url.toString();\n}\n\n/**\n * @hidden\n * Checks if the Adaptive Card schema version is supported by the host.\n * @param hostAdaptiveCardSchemaVersion Host's supported Adaptive Card version in the runtime.\n *\n * @returns true if the Adaptive Card Version is not supported and false if it is supported.\n */\nexport function isHostAdaptiveCardSchemaVersionUnsupported(\n hostAdaptiveCardSchemaVersion: AdaptiveCardVersion,\n): boolean {\n const versionCheck = compareSDKVersions(\n `${hostAdaptiveCardSchemaVersion.majorVersion}.${hostAdaptiveCardSchemaVersion.minorVersion}`,\n `${minAdaptiveCardVersion.majorVersion}.${minAdaptiveCardVersion.minorVersion}`,\n );\n if (versionCheck >= 0) {\n return false;\n } else {\n return true;\n }\n}\n\n/**\n * @hidden\n * Checks if a URL is a HTTPS protocol based URL.\n * @param url URL to be validated.\n *\n * @returns true if the URL is an https URL.\n */\nexport function isValidHttpsURL(url: URL): boolean {\n return url.protocol === 'https:';\n}\n\n/**\n * Convert base64 string to blob\n * @param base64Data string respresenting the content\n * @param contentType Mimetype\n * @returns Promise\n */\nexport function base64ToBlob(mimeType: string, base64String: string): Promise {\n return new Promise((resolve, reject) => {\n if (!mimeType) {\n reject('MimeType cannot be null or empty.');\n }\n if (!base64String) {\n reject('Base64 string cannot be null or empty.');\n }\n const byteCharacters = atob(base64String);\n /**\n * For images we need to convert binary data to image to achieve that:\n * 1. A new Uint8Array is created with a length equal to the length of byteCharacters.\n * The byteCharacters is a string representing the base64 data decoded using atob.\n * 2. Then loop iterates over each character in the byteCharacters string and assigns the\n * corresponding character code to the corresponding index in the byteArray. The purpose\n * of this loop is to convert the base64 string to a binary representation, as the Blob\n * constructor expects binary data.\n */\n if (mimeType.startsWith('image/')) {\n const byteArray = new Uint8Array(byteCharacters.length);\n for (let i = 0; i < byteCharacters.length; i++) {\n byteArray[i] = byteCharacters.charCodeAt(i);\n }\n resolve(new Blob([byteArray], { type: mimeType }));\n }\n resolve(new Blob([byteCharacters], { type: mimeType }));\n });\n}\n\n/**\n * Converts blob to base64 string.\n * @param blob Blob to convert to base64 string.\n */\nexport function getBase64StringFromBlob(blob: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (blob.size === 0) {\n reject(new Error('Blob cannot be empty.'));\n }\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.result) {\n resolve(reader.result.toString().split(',')[1]);\n } else {\n reject(new Error('Failed to read the blob'));\n }\n };\n reader.onerror = () => {\n reject(reader.error);\n };\n reader.readAsDataURL(blob);\n });\n}\n\n/**\n * Returns an SSR safe reference to the window object\n * @returns Window object reference\n */\n\nexport function ssrSafeWindow(): Window {\n if (!inServerSideRenderingEnvironment()) {\n return window;\n } else {\n // This should NEVER actually be written.\n // If you EVER see this error in ANY log file, something has gone horribly wrong and a bug needs to be filed.\n throw new Error('window object undefined at SSR check');\n }\n}\n\n/**\n * Checks if running in a Server Side Environment\n * @returns True if running in a Server Side Environment\n */\nexport function inServerSideRenderingEnvironment(): boolean {\n return typeof window === 'undefined';\n}\n\nconst appIdRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/**\n * @param appID The app ID to validate against the GUID format\n * @throws Error if appID is not a valid GUID\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateAppIdIsGuid(appId: string): void {\n if (!appIdRegex.test(appId)) {\n throw new Error('App ID is not valid. Must be GUID format. App ID: ' + appId);\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { errorRuntimeNotInitialized, errorRuntimeNotSupported } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { getLogger } from '../internal/telemetry';\nimport { compareSDKVersions, deepFreeze } from '../internal/utils';\nimport { HostClientType, teamsMinAdaptiveCardVersion } from './constants';\nimport { HostVersionsInfo } from './interfaces';\n\nconst runtimeLogger = getLogger('runtime');\n\nexport interface IBaseRuntime {\n readonly apiVersion: number;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports?: {};\n}\n\n/**\n * Latest runtime interface version\n */\nexport type Runtime = IRuntimeV4;\n\nexport const latestRuntimeApiVersion = 4;\n\nfunction isLatestRuntimeVersion(runtime: IBaseRuntime): runtime is Runtime {\n return runtime.apiVersion === latestRuntimeApiVersion;\n}\n\ninterface IRuntimeV1 extends IBaseRuntime {\n readonly apiVersion: 1;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly bot?: {};\n readonly update?: {};\n };\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly monetization?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly teamsCore?: {};\n readonly video?: {\n readonly mediaStream?: {};\n readonly sharedFrame?: {};\n };\n readonly webStorage?: {};\n };\n}\n\ninterface IRuntimeV2 extends IBaseRuntime {\n readonly apiVersion: 2;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly appNotification?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly card?: {\n readonly bot?: {};\n };\n readonly url?: {\n readonly bot?: {};\n };\n readonly update?: {};\n };\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly interactive?: {};\n readonly secondaryBrowser?: {};\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly marketplace?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly monetization?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly teamsCore?: {};\n readonly video?: {\n readonly mediaStream?: {};\n readonly sharedFrame?: {};\n };\n readonly webStorage?: {};\n };\n}\n\ninterface IRuntimeV3 extends IBaseRuntime {\n readonly apiVersion: 3;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly clipboard?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly card?: {\n readonly bot?: {};\n };\n readonly url?: {\n readonly bot?: {};\n };\n readonly update?: {};\n };\n readonly externalAppAuthentication?: {};\n readonly externalAppCardActions?: {};\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly interactive?: {};\n readonly secondaryBrowser?: {};\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly marketplace?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly monetization?: {};\n readonly nestedAppAuth?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly thirdPartyCloudStorage?: {};\n readonly teamsCore?: {};\n readonly video?: {\n readonly mediaStream?: {};\n readonly sharedFrame?: {};\n };\n readonly visualMedia?: {\n readonly image?: {};\n };\n readonly webStorage?: {};\n };\n}\n\ninterface IRuntimeV4 extends IBaseRuntime {\n readonly apiVersion: 4;\n readonly hostVersionsInfo?: HostVersionsInfo;\n readonly isLegacyTeams?: boolean;\n readonly supports: {\n readonly appEntity?: {};\n readonly appInstallDialog?: {};\n readonly barCode?: {};\n readonly calendar?: {};\n readonly call?: {};\n readonly chat?: {};\n readonly clipboard?: {};\n readonly conversations?: {};\n readonly dialog?: {\n readonly card?: {\n readonly bot?: {};\n };\n readonly url?: {\n readonly bot?: {};\n readonly parentCommunication?: {};\n };\n readonly update?: {};\n };\n readonly externalAppAuthentication?: {};\n readonly externalAppCardActions?: {};\n readonly geoLocation?: {\n readonly map?: {};\n };\n readonly interactive?: {};\n readonly secondaryBrowser?: {};\n readonly location?: {};\n readonly logs?: {};\n readonly mail?: {};\n readonly marketplace?: {};\n readonly meetingRoom?: {};\n readonly menus?: {};\n readonly messageChannels?: {};\n readonly monetization?: {};\n readonly nestedAppAuth?: {};\n readonly notifications?: {};\n readonly pages?: {\n readonly appButton?: {};\n readonly backStack?: {};\n readonly config?: {};\n readonly currentApp?: {};\n readonly fullTrust?: {};\n readonly tabs?: {};\n };\n readonly people?: {};\n readonly permissions?: {};\n readonly profile?: {};\n readonly remoteCamera?: {};\n readonly search?: {};\n readonly sharing?: {};\n readonly stageView?: {};\n readonly teams?: {\n readonly fullTrust?: {\n readonly joinedTeams?: {};\n };\n };\n readonly thirdPartyCloudStorage?: {};\n readonly teamsCore?: {};\n readonly video?: {\n readonly mediaStream?: {};\n readonly sharedFrame?: {};\n };\n readonly visualMedia?: {\n readonly image?: {};\n };\n readonly webStorage?: {};\n };\n}\n// Constant used to set the runtime configuration\nconst _uninitializedRuntime: UninitializedRuntime = {\n apiVersion: -1,\n supports: {},\n};\n\ninterface UninitializedRuntime extends IBaseRuntime {\n readonly apiVersion: -1;\n readonly supports: {};\n}\n\n/**\n * @hidden\n * Ensures that the runtime has been initialized\n\n * @returns True if the runtime has been initialized\n * @throws Error if the runtime has not been initialized\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isRuntimeInitialized(runtime: IBaseRuntime): runtime is Runtime {\n if (isLatestRuntimeVersion(runtime)) {\n return true;\n } else if (runtime.apiVersion === -1) {\n throw new Error(errorRuntimeNotInitialized);\n } else {\n throw new Error(errorRuntimeNotSupported);\n }\n}\n\nexport let runtime: Runtime | UninitializedRuntime = _uninitializedRuntime;\n\nexport const versionAndPlatformAgnosticTeamsRuntimeConfig: Runtime = {\n apiVersion: 4,\n hostVersionsInfo: teamsMinAdaptiveCardVersion,\n isLegacyTeams: true,\n supports: {\n appInstallDialog: {},\n appEntity: {},\n call: {},\n chat: {},\n conversations: {},\n dialog: {\n card: {\n bot: {},\n },\n url: {\n bot: {},\n parentCommunication: {},\n },\n update: {},\n },\n interactive: {},\n logs: {},\n meetingRoom: {},\n menus: {},\n monetization: {},\n notifications: {},\n pages: {\n config: {},\n backStack: {},\n fullTrust: {},\n },\n remoteCamera: {},\n teams: {\n fullTrust: {},\n },\n teamsCore: {},\n video: {\n sharedFrame: {},\n },\n },\n};\n\nexport interface ICapabilityReqs {\n readonly capability: object;\n readonly hostClientTypes: Array;\n}\n\nconst v1NonMobileHostClientTypes = [\n HostClientType.desktop,\n HostClientType.web,\n HostClientType.rigel,\n HostClientType.surfaceHub,\n HostClientType.teamsRoomsWindows,\n HostClientType.teamsRoomsAndroid,\n HostClientType.teamsPhones,\n HostClientType.teamsDisplays,\n];\n\nexport const v1MobileHostClientTypes = [HostClientType.android, HostClientType.ios, HostClientType.ipados];\n\nexport const v1HostClientTypes = [...v1NonMobileHostClientTypes, ...v1MobileHostClientTypes];\n\n/**\n * @hidden\n * `upgradeToNextVersion` transforms runtime of version `versionToUpgradeFrom` to the next higher version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\ninterface IRuntimeUpgrade {\n versionToUpgradeFrom: number;\n upgradeToNextVersion: (previousVersionRuntime: IBaseRuntime) => IBaseRuntime;\n}\n\n/**\n * @hidden\n * Uses upgradeChain to transform an outdated runtime object to the latest format.\n * @param outdatedRuntime - The runtime object to be upgraded\n * @returns The upgraded runtime object\n * @throws Error if the runtime object could not be upgraded to the latest version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function fastForwardRuntime(outdatedRuntime: IBaseRuntime): Runtime {\n let runtime = outdatedRuntime;\n if (runtime.apiVersion < latestRuntimeApiVersion) {\n upgradeChain.forEach((upgrade) => {\n if (runtime.apiVersion === upgrade.versionToUpgradeFrom) {\n runtime = upgrade.upgradeToNextVersion(runtime);\n }\n });\n }\n if (isLatestRuntimeVersion(runtime)) {\n return runtime;\n } else {\n throw new Error('Received a runtime that could not be upgraded to the latest version');\n }\n}\n\n/**\n * @hidden\n * List of transformations required to upgrade a runtime object from a previous version to the next higher version.\n * This list must be ordered from lowest version to highest version\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const upgradeChain: IRuntimeUpgrade[] = [\n {\n versionToUpgradeFrom: 1,\n upgradeToNextVersion: (previousVersionRuntime: IRuntimeV1): IRuntimeV2 => {\n return {\n apiVersion: 2,\n hostVersionsInfo: undefined,\n isLegacyTeams: previousVersionRuntime.isLegacyTeams,\n supports: {\n ...previousVersionRuntime.supports,\n dialog: previousVersionRuntime.supports.dialog\n ? {\n card: undefined,\n url: previousVersionRuntime.supports.dialog,\n update: previousVersionRuntime.supports.dialog?.update,\n }\n : undefined,\n },\n };\n },\n },\n {\n versionToUpgradeFrom: 2,\n upgradeToNextVersion: (previousVersionRuntime: IRuntimeV2): IRuntimeV3 => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */ /* Intentionally assigned to unused variable to delete propery when destructuring */\n const { appNotification: _, ...newSupports } = previousVersionRuntime.supports;\n return {\n ...previousVersionRuntime,\n apiVersion: 3,\n supports: newSupports,\n };\n },\n },\n {\n versionToUpgradeFrom: 3,\n upgradeToNextVersion: (previousVersionRuntime: IRuntimeV3): IRuntimeV4 => {\n return {\n apiVersion: 4,\n hostVersionsInfo: previousVersionRuntime.hostVersionsInfo,\n isLegacyTeams: previousVersionRuntime.isLegacyTeams,\n supports: {\n ...previousVersionRuntime.supports,\n dialog: previousVersionRuntime.supports.dialog\n ? {\n card: previousVersionRuntime.supports.dialog?.card,\n url: {\n bot: previousVersionRuntime.supports.dialog?.url?.bot,\n parentCommunication: previousVersionRuntime.supports.dialog?.url ? {} : undefined,\n },\n update: previousVersionRuntime.supports.dialog?.update,\n }\n : undefined,\n },\n };\n },\n },\n];\n\nexport const mapTeamsVersionToSupportedCapabilities: Record> = {\n // 1.0.0 just signifies \"these capabilities have practically always been supported.\" For some of these\n // we don't know what the real first version that supported them was -- but it was long enough ago that\n // we can just effectively consider them always supported (on the specified platforms)\n '1.0.0': [\n {\n capability: { pages: { appButton: {}, tabs: {} }, stageView: {} },\n hostClientTypes: v1NonMobileHostClientTypes,\n },\n ],\n '1.9.0': [\n {\n capability: { location: {} },\n hostClientTypes: v1HostClientTypes,\n },\n ],\n '2.0.0': [\n {\n capability: { people: {} },\n hostClientTypes: v1HostClientTypes,\n },\n {\n capability: { sharing: {} },\n hostClientTypes: [HostClientType.desktop, HostClientType.web],\n },\n ],\n '2.0.1': [\n {\n capability: { teams: { fullTrust: { joinedTeams: {} } } },\n hostClientTypes: [\n HostClientType.android,\n HostClientType.desktop,\n HostClientType.ios,\n HostClientType.teamsRoomsAndroid,\n HostClientType.teamsPhones,\n HostClientType.teamsDisplays,\n HostClientType.web,\n ],\n },\n {\n capability: { webStorage: {} },\n hostClientTypes: [HostClientType.desktop],\n },\n ],\n '2.0.5': [\n {\n capability: { webStorage: {} },\n hostClientTypes: [HostClientType.android, HostClientType.ios],\n },\n ],\n '2.0.8': [\n {\n capability: { sharing: {} },\n hostClientTypes: [HostClientType.android, HostClientType.ios],\n },\n ],\n};\n\nconst generateBackCompatRuntimeConfigLogger = runtimeLogger.extend('generateBackCompatRuntimeConfig');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Merges the capabilities of two runtime objects. Fully supports arbitrarily nested capabilities/subcapabilities.\n *\n * Note that this function isn't actually doing anything specific to capabilities/runtime. It's just doing a\n * generic merge of two objects.\n *\n * This function is NOT intended to handle objects that are NOT \"shaped\" like runtime objects. Specifically\n * this means that it doesn't know how to merge values that aren't themselves objects. For example, it cannot\n * properly handle situations where both objects contain a string or number with the same property name since the proper way to\n * merge such values would be domain-dependent. For now it just happens to keep the value in the baseline and ignore the other.\n * Since the runtime is only supposed to have objects, this limitation is fine.\n *\n * @param baselineRuntime the baseline runtime object\n * @param runtimeToMergeIntoBaseline the runtime object to merge into the baseline\n * @returns the merged runtime object which is the union of baselineRuntime and runtimeToMergeIntoBaseline\n */\nfunction mergeRuntimeCapabilities(baselineRuntime: object, runtimeToMergeIntoBaseline: object): object {\n const merged: object = { ...baselineRuntime };\n\n for (const key in runtimeToMergeIntoBaseline) {\n if (Object.prototype.hasOwnProperty.call(runtimeToMergeIntoBaseline, key)) {\n if (typeof runtimeToMergeIntoBaseline[key] === 'object' && !Array.isArray(runtimeToMergeIntoBaseline[key])) {\n merged[key] = mergeRuntimeCapabilities(baselineRuntime[key] || {}, runtimeToMergeIntoBaseline[key]);\n } else {\n if (!(key in baselineRuntime)) {\n merged[key] = runtimeToMergeIntoBaseline[key];\n }\n }\n }\n }\n\n return merged;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Generates and returns a runtime configuration for host clients which are not on the latest host SDK version\n * and do not provide their own runtime config (this is just older versions of Teams on some platforms).\n * Their supported capabilities are based on the highest client SDK version that they can support.\n *\n * @param highestSupportedVersion - The highest client SDK version that the host client can support.\n * @returns runtime which describes the APIs supported by the legacy host client.\n */\nexport function generateVersionBasedTeamsRuntimeConfig(\n highestSupportedVersion: string,\n versionAgnosticRuntimeConfig: Runtime,\n mapVersionToSupportedCapabilities: Record>,\n): Runtime {\n generateBackCompatRuntimeConfigLogger('generating back compat runtime config for %s', highestSupportedVersion);\n\n let newSupports = { ...versionAgnosticRuntimeConfig.supports };\n\n generateBackCompatRuntimeConfigLogger(\n 'Supported capabilities in config before updating based on highestSupportedVersion: %o',\n newSupports,\n );\n\n Object.keys(mapVersionToSupportedCapabilities).forEach((versionNumber) => {\n if (compareSDKVersions(highestSupportedVersion, versionNumber) >= 0) {\n mapVersionToSupportedCapabilities[versionNumber].forEach((capabilityReqs) => {\n if (\n GlobalVars.hostClientType !== undefined &&\n capabilityReqs.hostClientTypes.includes(GlobalVars.hostClientType)\n ) {\n newSupports = mergeRuntimeCapabilities(newSupports, capabilityReqs.capability);\n }\n });\n }\n });\n\n const teamsBackCompatRuntimeConfig: Runtime = {\n apiVersion: latestRuntimeApiVersion,\n hostVersionsInfo: teamsMinAdaptiveCardVersion,\n isLegacyTeams: true,\n supports: newSupports,\n };\n\n generateBackCompatRuntimeConfigLogger(\n 'Runtime config after updating based on highestSupportedVersion: %o',\n teamsBackCompatRuntimeConfig,\n );\n\n return teamsBackCompatRuntimeConfig;\n}\n\nconst applyRuntimeConfigLogger = runtimeLogger.extend('applyRuntimeConfig');\nexport function applyRuntimeConfig(runtimeConfig: IBaseRuntime): void {\n // Some hosts that have not adopted runtime versioning send a string for apiVersion, so we should handle those as v1 inputs\n if (typeof runtimeConfig.apiVersion === 'string') {\n applyRuntimeConfigLogger('Trying to apply runtime with string apiVersion, processing as v1: %o', runtimeConfig);\n runtimeConfig = {\n ...runtimeConfig,\n apiVersion: 1,\n };\n }\n applyRuntimeConfigLogger('Fast-forwarding runtime %o', runtimeConfig);\n const ffRuntimeConfig = fastForwardRuntime(runtimeConfig);\n applyRuntimeConfigLogger('Applying runtime %o', ffRuntimeConfig);\n runtime = deepFreeze(ffRuntimeConfig);\n}\n\nexport function setUnitializedRuntime(): void {\n runtime = deepFreeze(_uninitializedRuntime);\n}\n\n/**\n * @hidden\n * Constant used to set minimum runtime configuration\n * while un-initializing an app in unit test case.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const _minRuntimeConfigToUninitialize: Runtime = {\n apiVersion: latestRuntimeApiVersion,\n supports: {\n pages: {\n appButton: {},\n tabs: {},\n config: {},\n backStack: {},\n fullTrust: {},\n },\n teamsCore: {},\n logs: {},\n },\n};\n","// This assignment is replaced at build time by a webpack plugin (or Jest during unit tests) which ensures the value matches the version set in the package version\ndeclare const PACKAGE_VERSION = 'ERROR: This value should be replaced by webpack!';\n/**\n * @hidden\n * Package version.\n */\nexport const version = PACKAGE_VERSION;\n","import { HostClientType } from '../public/constants';\nimport { ErrorCode, SdkError } from '../public/interfaces';\nimport { IBaseRuntime, isRuntimeInitialized, Runtime } from '../public/runtime';\nimport {\n defaultSDKVersionForCompatCheck,\n errorLibraryNotInitialized,\n userOriginUrlValidationRegExp,\n} from './constants';\nimport { GlobalVars } from './globalVars';\nimport { getLogger } from './telemetry';\nimport { compareSDKVersions } from './utils';\n\nconst internalLogger = getLogger('internal');\nconst ensureInitializeCalledLogger = internalLogger.extend('ensureInitializeCalled');\nconst ensureInitializedLogger = internalLogger.extend('ensureInitialized');\n\n/**\n * Ensures `initialize` was called. This function does NOT verify that a response from Host was received and initialization completed.\n *\n * `ensureInitializeCalled` should only be used for APIs which:\n * - work in all FrameContexts\n * - are part of a required Capability\n * - are suspected to be used directly after calling `initialize`, potentially without awaiting the `initialize` call itself\n *\n * For most APIs {@link ensureInitialized} is the right validation function to use instead.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function ensureInitializeCalled(): void {\n if (!GlobalVars.initializeCalled) {\n ensureInitializeCalledLogger(errorLibraryNotInitialized);\n throw new Error(errorLibraryNotInitialized);\n }\n}\n\n/**\n * Ensures `initialize` was called and response from Host was received and processed and that `runtime` is initialized.\n * If expected FrameContexts are provided, it also validates that the current FrameContext matches one of the expected ones.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function ensureInitialized(runtime: IBaseRuntime, ...expectedFrameContexts: string[]): runtime is Runtime {\n // This global var can potentially be removed in the future if we use the initialization status of the runtime object as our source of truth\n if (!GlobalVars.initializeCompleted) {\n ensureInitializedLogger(\n '%s. initializeCalled: %s',\n errorLibraryNotInitialized,\n GlobalVars.initializeCalled.toString(),\n );\n throw new Error(errorLibraryNotInitialized);\n }\n\n if (expectedFrameContexts && expectedFrameContexts.length > 0) {\n let found = false;\n for (let i = 0; i < expectedFrameContexts.length; i++) {\n if (expectedFrameContexts[i] === GlobalVars.frameContext) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n throw new Error(\n `This call is only allowed in following contexts: ${JSON.stringify(expectedFrameContexts)}. ` +\n `Current context: \"${GlobalVars.frameContext}\".`,\n );\n }\n }\n return isRuntimeInitialized(runtime);\n}\n\n/**\n * @hidden\n * Checks whether the platform has knowledge of this API by doing a comparison\n * on API required version and platform supported version of the SDK\n *\n * @param requiredVersion - SDK version required by the API\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isCurrentSDKVersionAtLeast(requiredVersion: string = defaultSDKVersionForCompatCheck): boolean {\n const value = compareSDKVersions(GlobalVars.clientSupportedSDKVersion, requiredVersion);\n if (isNaN(value)) {\n return false;\n }\n return value >= 0;\n}\n\n/**\n * @hidden\n * Helper function to identify if host client is either android, ios, or ipados\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isHostClientMobile(): boolean {\n return (\n GlobalVars.hostClientType == HostClientType.android ||\n GlobalVars.hostClientType == HostClientType.ios ||\n GlobalVars.hostClientType == HostClientType.ipados\n );\n}\n\n/**\n * @hidden\n * Helper function which indicates if current API is supported on mobile or not.\n * @throws SdkError if host client is not android/ios or if the requiredVersion is not\n * supported by platform or not. Null is returned in case of success.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function throwExceptionIfMobileApiIsNotSupported(\n requiredVersion: string = defaultSDKVersionForCompatCheck,\n): void {\n if (!isHostClientMobile()) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n throw notSupportedError;\n } else if (!isCurrentSDKVersionAtLeast(requiredVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n throw oldPlatformError;\n }\n}\n\n/**\n * @hidden\n * Processes the valid origins specifuied by the user, de-duplicates and converts them into a regexp\n * which is used later for message source/origin validation\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function processAdditionalValidOrigins(validMessageOrigins: string[]): void {\n let combinedOriginUrls = GlobalVars.additionalValidOrigins.concat(\n validMessageOrigins.filter((_origin: string) => {\n return typeof _origin === 'string' && userOriginUrlValidationRegExp.test(_origin);\n }),\n );\n const dedupUrls: { [url: string]: boolean } = {};\n combinedOriginUrls = combinedOriginUrls.filter((_originUrl) => {\n if (dedupUrls[_originUrl]) {\n return false;\n }\n dedupUrls[_originUrl] = true;\n return true;\n });\n GlobalVars.additionalValidOrigins = combinedOriginUrls;\n}\n","export function isNullOrUndefined(value?: unknown): boolean {\n return value === null || value === undefined;\n}\n","import {\n Communication,\n sendMessageEventToChild,\n sendMessageToParent,\n sendMessageToParentAsync,\n waitForMessageQueue,\n} from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitializeCalled, ensureInitialized } from '../internal/internalAPIs';\nimport { FrameContexts, HostClientType } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * Namespace to interact with the authentication-specific part of the SDK.\n *\n * This object is used for starting or completing authentication flows.\n */\nexport namespace authentication {\n let authHandlers: { success: (string) => void; fail: (string) => void } | undefined;\n let authWindowMonitor: number | undefined;\n\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use; automatically called when library is initialized\n */\n export function initialize(): void {\n registerHandler('authentication.authenticate.success', handleSuccess, false);\n registerHandler('authentication.authenticate.failure', handleFailure, false);\n }\n\n let authParams: AuthenticateParameters | undefined;\n /**\n * @deprecated\n * As of 2.0.0, this function has been deprecated in favor of a Promise-based pattern using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\}\n *\n * Registers handlers to be called with the result of an authentication flow triggered using {@link authentication.authenticate authentication.authenticate(authenticateParameters?: AuthenticateParameters): void}\n *\n * @param authenticateParameters - Configuration for authentication flow pop-up result communication\n */\n export function registerAuthenticationHandlers(authenticateParameters: AuthenticateParameters): void {\n authParams = authenticateParameters;\n }\n\n /**\n * Initiates an authentication flow which requires a new window.\n * There are two primary uses for this function:\n * 1. When your app needs to authenticate using a 3rd-party identity provider (not Microsoft Entra ID)\n * 2. When your app needs to show authentication UI that is blocked from being shown in an iframe (e.g., Microsoft Entra consent prompts)\n *\n * For more details, see [Enable authentication using third-party OAuth provider](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/auth-flow-tab)\n *\n * This function is *not* needed for \"standard\" Microsoft Entra SSO usage. Using {@link getAuthToken} is usually sufficient in that case. For more, see\n * [Enable SSO for tab apps](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overview))\n *\n * @remarks\n * The authentication flow must start and end from the same domain, otherwise success and failure messages won't be returned to the window that initiated the call.\n * The [Teams authentication flow](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/auth-flow-tab) starts and ends at an endpoint on\n * your own service (with a redirect round-trip to the 3rd party identity provider in the middle).\n *\n * @param authenticateParameters - Parameters describing the authentication window used for executing the authentication flow\n *\n * @returns `Promise` that will be fulfilled with the result from the authentication pop-up, if successful. The string in this result is provided in the parameter\n * passed by your app when it calls {@link authentication.notifySuccess authentication.notifySuccess(result?: string): void} in the pop-up window after returning from the identity provider redirect.\n *\n * @throws `Error` if the authentication request fails or is canceled by the user. This error is provided in the parameter passed by your app when it calls\n * {@link authentication.notifyFailure authentication.notifyFailure(result?: string): void} in the pop-up window after returning from the identity provider redirect. However, in some cases it can also be provided by\n * the infrastructure depending on the failure (e.g., a user cancelation)\n *\n */\n export function authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\} instead.\n *\n * The documentation for {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\} applies\n * to this function.\n * The one difference is that instead of the result being returned via the `Promise`, the result is returned to the callback functions provided in the\n * `authenticateParameters` parameter.\n *\n * @param authenticateParameters - Parameters describing the authentication window used for executing the authentication flow and callbacks used for indicating the result\n *\n */\n export function authenticate(authenticateParameters?: AuthenticateParameters): void;\n export function authenticate(authenticateParameters?: AuthenticateParameters): Promise {\n const isDifferentParamsInCall: boolean = authenticateParameters !== undefined;\n const authenticateParams: AuthenticateParameters | undefined = isDifferentParamsInCall\n ? authenticateParameters\n : authParams;\n if (!authenticateParams) {\n throw new Error('No parameters are provided for authentication');\n }\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n return authenticateHelper(authenticateParams)\n .then((value: string) => {\n try {\n if (authenticateParams && authenticateParams.successCallback) {\n authenticateParams.successCallback(value);\n return '';\n }\n return value;\n } finally {\n if (!isDifferentParamsInCall) {\n authParams = undefined;\n }\n }\n })\n .catch((err: Error) => {\n try {\n if (authenticateParams && authenticateParams.failureCallback) {\n authenticateParams.failureCallback(err.message);\n return '';\n }\n throw err;\n } finally {\n if (!isDifferentParamsInCall) {\n authParams = undefined;\n }\n }\n });\n }\n\n function authenticateHelper(authenticateParameters: AuthenticateParameters): Promise {\n return new Promise((resolve, reject) => {\n if (\n GlobalVars.hostClientType === HostClientType.desktop ||\n GlobalVars.hostClientType === HostClientType.android ||\n GlobalVars.hostClientType === HostClientType.ios ||\n GlobalVars.hostClientType === HostClientType.ipados ||\n GlobalVars.hostClientType === HostClientType.macos ||\n GlobalVars.hostClientType === HostClientType.rigel ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsWindows ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays ||\n GlobalVars.hostClientType === HostClientType.surfaceHub\n ) {\n // Convert any relative URLs into absolute URLs before sending them over to the parent window.\n const link = document.createElement('a');\n link.href = authenticateParameters.url;\n // Ask the parent window to open an authentication window with the parameters provided by the caller.\n resolve(\n sendMessageToParentAsync<[boolean, string]>('authentication.authenticate', [\n link.href,\n authenticateParameters.width,\n authenticateParameters.height,\n authenticateParameters.isExternal,\n ]).then(([success, response]: [boolean, string]) => {\n if (success) {\n return response;\n } else {\n throw new Error(response);\n }\n }),\n );\n } else {\n // Open an authentication window with the parameters provided by the caller.\n authHandlers = {\n success: resolve,\n fail: reject,\n };\n openAuthenticationWindow(authenticateParameters);\n }\n });\n }\n\n /**\n * Requests an Microsoft Entra token to be issued on behalf of your app in an SSO flow.\n * The token is acquired from the cache if it is not expired. Otherwise a request is sent to Microsoft Entra to\n * obtain a new token.\n * This function is used to enable SSO scenarios. See [Enable SSO for tab apps](https://learn.microsoft.com/microsoftteams/platform/tabs/how-to/authentication/tab-sso-overview)\n * for more details.\n *\n * @param authTokenRequest - An optional set of values that configure the token request.\n *\n * @returns `Promise` that will be resolved with the token, if successful.\n *\n * @throws `Error` if the request fails in some way\n */\n export function getAuthToken(authTokenRequest?: AuthTokenRequestParameters): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.getAuthToken authentication.getAuthToken(authTokenRequest: AuthTokenRequestParameters): Promise\\} instead.\n *\n * The documentation {@link authentication.getAuthToken authentication.getAuthToken(authTokenRequest: AuthTokenRequestParameters): Promise\\} applies to this\n * function as well. The one difference when using this function is that the result is provided in the callbacks in the `authTokenRequest` parameter\n * instead of as a `Promise`.\n *\n * @param authTokenRequest - An optional set of values that configure the token request.\n * It contains callbacks to call in case of success/failure\n */\n export function getAuthToken(authTokenRequest?: AuthTokenRequest): void;\n export function getAuthToken(authTokenRequest?: AuthTokenRequest): Promise {\n ensureInitializeCalled();\n return getAuthTokenHelper(authTokenRequest)\n .then((value: string) => {\n if (authTokenRequest && authTokenRequest.successCallback) {\n authTokenRequest.successCallback(value);\n return '';\n }\n return value;\n })\n .catch((err: Error) => {\n if (authTokenRequest && authTokenRequest.failureCallback) {\n authTokenRequest.failureCallback(err.message);\n return '';\n }\n throw err;\n });\n }\n\n function getAuthTokenHelper(authTokenRequest?: AuthTokenRequest): Promise {\n return new Promise<[boolean, string]>((resolve) => {\n resolve(\n sendMessageToParentAsync('authentication.getAuthToken', [\n authTokenRequest?.resources,\n authTokenRequest?.claims,\n authTokenRequest?.silent,\n authTokenRequest?.tenantId,\n ]),\n );\n }).then(([success, result]: [boolean, string]) => {\n if (success) {\n return result;\n } else {\n throw new Error(result);\n }\n });\n }\n\n /**\n * @hidden\n * Requests the decoded Microsoft Entra user identity on behalf of the app.\n *\n * @returns Promise that resolves with the {@link UserProfile}.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUser(): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.getUser authentication.getUser(): Promise\\} instead.\n *\n * @hidden\n * Requests the decoded Microsoft Entra user identity on behalf of the app.\n *\n * @param userRequest - It passes success/failure callbacks in the userRequest object(deprecated)\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUser(userRequest: UserRequest): void;\n export function getUser(userRequest?: UserRequest): Promise {\n ensureInitializeCalled();\n return getUserHelper()\n .then((value: UserProfile) => {\n if (userRequest && userRequest.successCallback) {\n userRequest.successCallback(value);\n return null;\n }\n return value;\n })\n .catch((err: Error) => {\n if (userRequest && userRequest.failureCallback) {\n userRequest.failureCallback(err.message);\n return null;\n }\n throw err;\n });\n }\n\n function getUserHelper(): Promise {\n return new Promise<[boolean, UserProfile | string]>((resolve) => {\n resolve(sendMessageToParentAsync('authentication.getUser'));\n }).then(([success, result]: [boolean, UserProfile | string]) => {\n if (success) {\n return result as UserProfile;\n } else {\n throw new Error(result as string);\n }\n });\n }\n\n function closeAuthenticationWindow(): void {\n // Stop monitoring the authentication window\n stopAuthenticationWindowMonitor();\n // Try to close the authentication window and clear all properties associated with it\n try {\n if (Communication.childWindow) {\n Communication.childWindow.close();\n }\n } finally {\n Communication.childWindow = null;\n Communication.childOrigin = null;\n }\n }\n\n function openAuthenticationWindow(authenticateParameters: AuthenticateParameters): void {\n // Close the previously opened window if we have one\n closeAuthenticationWindow();\n // Start with a sensible default size\n let width = authenticateParameters.width || 600;\n let height = authenticateParameters.height || 400;\n // Ensure that the new window is always smaller than our app's window so that it never fully covers up our app\n width = Math.min(width, Communication.currentWindow.outerWidth - 400);\n height = Math.min(height, Communication.currentWindow.outerHeight - 200);\n // Convert any relative URLs into absolute URLs before sending them over to the parent window\n const link = document.createElement('a');\n link.href = authenticateParameters.url.replace('{oauthRedirectMethod}', 'web');\n // We are running in the browser, so we need to center the new window ourselves\n let left: number =\n typeof Communication.currentWindow.screenLeft !== 'undefined'\n ? Communication.currentWindow.screenLeft\n : Communication.currentWindow.screenX;\n let top: number =\n typeof Communication.currentWindow.screenTop !== 'undefined'\n ? Communication.currentWindow.screenTop\n : Communication.currentWindow.screenY;\n left += Communication.currentWindow.outerWidth / 2 - width / 2;\n top += Communication.currentWindow.outerHeight / 2 - height / 2;\n // Open a child window with a desired set of standard browser features\n Communication.childWindow = Communication.currentWindow.open(\n link.href,\n '_blank',\n 'toolbar=no, location=yes, status=no, menubar=no, scrollbars=yes, top=' +\n top +\n ', left=' +\n left +\n ', width=' +\n width +\n ', height=' +\n height,\n );\n if (Communication.childWindow) {\n // Start monitoring the authentication window so that we can detect if it gets closed before the flow completes\n startAuthenticationWindowMonitor();\n } else {\n // If we failed to open the window, fail the authentication flow\n handleFailure('FailedToOpenWindow');\n }\n }\n\n function stopAuthenticationWindowMonitor(): void {\n if (authWindowMonitor) {\n clearInterval(authWindowMonitor);\n authWindowMonitor = 0;\n }\n removeHandler('initialize');\n removeHandler('navigateCrossDomain');\n }\n\n function startAuthenticationWindowMonitor(): void {\n // Stop the previous window monitor if one is running\n stopAuthenticationWindowMonitor();\n // Create an interval loop that\n // - Notifies the caller of failure if it detects that the authentication window is closed\n // - Keeps pinging the authentication window while it is open to re-establish\n // contact with any pages along the authentication flow that need to communicate\n // with us\n authWindowMonitor = Communication.currentWindow.setInterval(() => {\n if (!Communication.childWindow || Communication.childWindow.closed) {\n handleFailure('CancelledByUser');\n } else {\n const savedChildOrigin = Communication.childOrigin;\n try {\n Communication.childOrigin = '*';\n sendMessageEventToChild('ping');\n } finally {\n Communication.childOrigin = savedChildOrigin;\n }\n }\n }, 100);\n // Set up an initialize-message handler that gives the authentication window its frame context\n registerHandler('initialize', () => {\n return [FrameContexts.authentication, GlobalVars.hostClientType];\n });\n // Set up a navigateCrossDomain message handler that blocks cross-domain re-navigation attempts\n // in the authentication window. We could at some point choose to implement this method via a call to\n // authenticationWindow.location.href = url; however, we would first need to figure out how to\n // validate the URL against the tab's list of valid domains.\n registerHandler('navigateCrossDomain', () => {\n return false;\n });\n }\n\n /**\n * When using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\}, the\n * window that was opened to execute the authentication flow should call this method after authentiction to notify the caller of\n * {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\} that the\n * authentication request was successful.\n *\n * @remarks\n * This function is usable only from the authentication window.\n * This call causes the authentication window to be closed.\n *\n * @param result - Specifies a result for the authentication. If specified, the frame that initiated the authentication pop-up receives\n * this value in its callback or via the `Promise` return value\n */\n export function notifySuccess(result?: string): void;\n /**\n * @deprecated\n * This function used to have an unused optional second parameter called callbackUrl. Because it was not used, it has been removed.\n * Please use the {@link authentication.notifySuccess authentication.notifySuccess(result?: string): void} instead.\n */\n export function notifySuccess(result?: string, _callbackUrl?: string): void {\n ensureInitialized(runtime, FrameContexts.authentication);\n sendMessageToParent('authentication.authenticate.success', [result]);\n // Wait for the message to be sent before closing the window\n waitForMessageQueue(Communication.parentWindow, () => setTimeout(() => Communication.currentWindow.close(), 200));\n }\n\n /**\n * When using {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\}, the\n * window that was opened to execute the authentication flow should call this method after authentiction to notify the caller of\n * {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\} that the\n * authentication request failed.\n\n *\n * @remarks\n * This function is usable only on the authentication window.\n * This call causes the authentication window to be closed.\n *\n * @param result - Specifies a result for the authentication. If specified, the frame that initiated the authentication pop-up receives\n * this value in its callback or via the `Promise` return value\n * @param _callbackUrl - This parameter is deprecated and unused\n */\n export function notifyFailure(result?: string): void;\n /**\n * @deprecated\n * This function used to have an unused optional second parameter called callbackUrl. Because it was not used, it has been removed.\n * Please use the {@link authentication.notifyFailure authentication.notifyFailure(result?: string): void} instead.\n */\n export function notifyFailure(reason?: string, _callbackUrl?: string): void {\n ensureInitialized(runtime, FrameContexts.authentication);\n sendMessageToParent('authentication.authenticate.failure', [reason]);\n // Wait for the message to be sent before closing the window\n waitForMessageQueue(Communication.parentWindow, () => setTimeout(() => Communication.currentWindow.close(), 200));\n }\n\n function handleSuccess(result?: string): void {\n try {\n if (authHandlers) {\n authHandlers.success(result);\n }\n } finally {\n authHandlers = undefined;\n closeAuthenticationWindow();\n }\n }\n\n function handleFailure(reason?: string): void {\n try {\n if (authHandlers) {\n authHandlers.fail(new Error(reason));\n }\n } finally {\n authHandlers = undefined;\n closeAuthenticationWindow();\n }\n }\n\n /**\n * @deprecated\n * As of 2.0.0, this interface has been deprecated in favor of leveraging the `Promise` returned from {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\}\n *-------------------------\n * Used in {@link AuthenticateParameters} and {@link AuthTokenRequest}\n */\n export interface LegacyCallBacks {\n /**\n * @deprecated\n * As of 2.0.0, this property has been deprecated in favor of a Promise-based pattern.\n *\n * A function that is called if the request succeeds.\n */\n successCallback?: (result: string) => void;\n /**\n * @deprecated\n * As of 2.0.0, this property has been deprecated in favor of a Promise-based pattern.\n *\n * A function that is called if the request fails, with the reason for the failure.\n */\n failureCallback?: (reason: string) => void;\n }\n\n /**\n * Describes the authentication pop-up parameters\n */\n export interface AuthenticatePopUpParameters {\n /**\n * The URL for the authentication pop-up.\n */\n url: string;\n /**\n * The preferred width for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n width?: number;\n /**\n * The preferred height for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n height?: number;\n /**\n * Some identity providers restrict their authentication pages from being displayed in embedded browsers (e.g., a web view inside of a native application)\n * If the identity provider you are using prevents embedded browser usage, this flag should be set to `true` to enable the authentication page specified in\n * the {@link url} property to be opened in an external browser.\n * If this flag is `false`, the page will be opened directly within the current hosting application.\n *\n * This flag is ignored when the host for the application is a web app (as opposed to a native application) as the behavior is unnecessary in a web-only\n * environment without an embedded browser.\n */\n isExternal?: boolean;\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link authentication.authenticate authentication.authenticate(authenticateParameters: AuthenticatePopUpParameters): Promise\\} and\n * the associated {@link AuthenticatePopUpParameters} instead.\n *\n * @see {@link LegacyCallBacks}\n */\n export type AuthenticateParameters = AuthenticatePopUpParameters & LegacyCallBacks;\n\n /**\n * Describes authentication token request parameters\n */\n export interface AuthTokenRequestParameters {\n /**\n * @hidden\n * @internal\n * An list of resources for which to acquire the access token; only for internal Microsoft usage\n */\n resources?: string[];\n /**\n * An optional list of claims which to pass to Microsoft Entra when requesting the access token.\n */\n claims?: string[];\n /**\n * An optional flag indicating whether to attempt the token acquisition silently or allow a prompt to be shown.\n */\n silent?: boolean;\n /**\n * An optional identifier of the home tenant for which to acquire the access token for (used in cross-tenant shared channels).\n */\n tenantId?: string;\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link AuthTokenRequestParameters} instead.\n */\n export type AuthTokenRequest = AuthTokenRequestParameters & LegacyCallBacks;\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface UserProfile {\n /**\n * @hidden\n * The intended recipient of the token. The application that receives the token must verify that the audience\n * value is correct and reject any tokens intended for a different audience.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n aud: string;\n /**\n * @hidden\n * Identifies how the subject of the token was authenticated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n amr: string[];\n /**\n * @hidden\n * Stores the time at which the token was issued. It is often used to measure token freshness.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n iat: number;\n /**\n * @hidden\n * Identifies the security token service (STS) that constructs and returns the token. In the tokens that Microsoft Entra\n * returns, the issuer is sts.windows.net. The GUID in the issuer claim value is the tenant ID of the Microsoft Entra\n * directory. The tenant ID is an immutable and reliable identifier of the directory.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n iss: string;\n /**\n * @hidden\n * Provides the last name, surname, or family name of the user as defined in the Microsoft Entra user object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n family_name: string;\n /**\n * @hidden\n * Provides the first or \"given\" name of the user, as set on the Microsoft Entra user object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n given_name: string;\n /**\n * @hidden\n * Provides a human-readable value that identifies the subject of the token. This value is not guaranteed to\n * be unique within a tenant and is designed to be used only for display purposes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n unique_name: string;\n /**\n * @hidden\n * Contains a unique identifier of an object in Microsoft Entra. This value is immutable and cannot be reassigned or\n * reused. Use the object ID to identify an object in queries to Microsoft Entra.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n oid: string;\n /**\n * @hidden\n * Identifies the principal about which the token asserts information, such as the user of an application.\n * This value is immutable and cannot be reassigned or reused, so it can be used to perform authorization\n * checks safely. Because the subject is always present in the tokens the Microsoft Entra issues, we recommended\n * using this value in a general-purpose authorization system.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n sub: string;\n /**\n * @hidden\n * An immutable, non-reusable identifier that identifies the directory tenant that issued the token. You can\n * use this value to access tenant-specific directory resources in a multitenant application. For example,\n * you can use this value to identify the tenant in a call to the Graph API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n tid: string;\n /**\n * @hidden\n * Defines the end of the time interval within which a token is valid. The service that validates the token\n * should verify that the current date is within the token lifetime; otherwise it should reject the token. The\n * service might allow for up to five minutes beyond the token lifetime to account for any differences in clock\n * time (\"time skew\") between Microsoft Entra and the service.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n exp: number;\n /**\n * @hidden\n * Defines the start of the time interval within which a token is valid. The service that validates the token\n * should verify that the current date is within the token lifetime; otherwise it should reject the token. The\n * service might allow for up to five minutes beyond the token lifetime to account for any differences in clock\n * time (\"time skew\") between Microsoft Entra and the service.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n nbf: number;\n /**\n * @hidden\n * Stores the user name of the user principal.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n upn: string;\n /**\n * @hidden\n * Stores the version number of the token.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n ver: string;\n /**\n * @hidden\n * Stores the data residency of the user.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n dataResidency?: DataResidency;\n }\n\n /**\n * @hidden\n * Limited set of data residencies information exposed to 1P application developers\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum DataResidency {\n /**\n * Public\n */\n Public = 'public',\n\n /**\n * European Union Data Boundary\n */\n EUDB = 'eudb',\n\n /**\n * Other, stored to cover fields that will not be exposed\n */\n Other = 'other',\n }\n\n /**\n * @deprecated\n * As of 2.0.0, this interface has been deprecated in favor of a Promise-based pattern.\n * @hidden\n * Describes the UserRequest. Success callback describes how a successful request is handled.\n * Failure callback describes how a failed request is handled.\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface UserRequest {\n /**\n * A function that is called if the token request succeeds, with the resulting token.\n */\n successCallback?: (user: UserProfile) => void;\n /**\n * A function that is called if the token request fails, with the reason for the failure.\n */\n failureCallback?: (reason: string) => void;\n }\n}\n","import { validOriginsCdnEndpoint, validOriginsFallback } from './constants';\nimport { GlobalVars } from './globalVars';\nimport { getLogger } from './telemetry';\nimport { inServerSideRenderingEnvironment, isValidHttpsURL } from './utils';\n\nlet validOriginsCache: string[] = [];\nconst validateOriginLogger = getLogger('validateOrigin');\n\nexport async function prefetchOriginsFromCDN(): Promise {\n await getValidOriginsListFromCDN();\n}\n\nfunction isValidOriginsCacheEmpty(): boolean {\n return validOriginsCache.length !== 0;\n}\n\nasync function getValidOriginsListFromCDN(): Promise {\n if (isValidOriginsCacheEmpty()) {\n return validOriginsCache;\n }\n if (!inServerSideRenderingEnvironment()) {\n return fetch(validOriginsCdnEndpoint)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Invalid Response from Fetch Call');\n }\n return response.json().then((validOriginsCDN) => {\n if (isValidOriginsJSONValid(JSON.stringify(validOriginsCDN))) {\n validOriginsCache = validOriginsCDN.validOrigins;\n return validOriginsCache;\n } else {\n throw new Error('Valid Origins List Is Invalid');\n }\n });\n })\n .catch((e) => {\n validateOriginLogger('validOrigins fetch call to CDN failed with error: %s. Defaulting to fallback list', e);\n validOriginsCache = validOriginsFallback;\n return validOriginsCache;\n });\n } else {\n validOriginsCache = validOriginsFallback;\n return validOriginsFallback;\n }\n}\n\nfunction isValidOriginsJSONValid(validOriginsJSON: string): boolean {\n let validOriginsCDN = JSON.parse(validOriginsJSON);\n try {\n validOriginsCDN = JSON.parse(validOriginsJSON);\n } catch (_) {\n return false;\n }\n if (!validOriginsCDN.validOrigins) {\n return false;\n }\n for (const validOrigin of validOriginsCDN.validOrigins) {\n try {\n new URL('https://' + validOrigin);\n } catch (_) {\n validateOriginLogger('isValidOriginsFromCDN call failed to validate origin: %s', validOrigin);\n return false;\n }\n }\n return true;\n}\n\n/**\n * @param pattern - reference pattern\n * @param host - candidate string\n * @returns returns true if host matches pre-know valid pattern\n *\n * @example\n * validateHostAgainstPattern('*.teams.microsoft.com', 'subdomain.teams.microsoft.com') returns true\n * validateHostAgainstPattern('teams.microsoft.com', 'team.microsoft.com') returns false\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction validateHostAgainstPattern(pattern: string, host: string): boolean {\n if (pattern.substring(0, 2) === '*.') {\n const suffix = pattern.substring(1);\n if (\n host.length > suffix.length &&\n host.split('.').length === suffix.split('.').length &&\n host.substring(host.length - suffix.length) === suffix\n ) {\n return true;\n }\n } else if (pattern === host) {\n return true;\n }\n return false;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateOrigin(messageOrigin: URL): Promise {\n return getValidOriginsListFromCDN().then((validOriginsList) => {\n // Check whether the url is in the pre-known allowlist or supplied by user\n if (!isValidHttpsURL(messageOrigin)) {\n validateOriginLogger(\n 'Origin %s is invalid because it is not using https protocol. Protocol being used: %s',\n messageOrigin,\n messageOrigin.protocol,\n );\n return false;\n }\n const messageOriginHost = messageOrigin.host;\n if (validOriginsList.some((pattern) => validateHostAgainstPattern(pattern, messageOriginHost))) {\n return true;\n }\n\n for (const domainOrPattern of GlobalVars.additionalValidOrigins) {\n const pattern = domainOrPattern.substring(0, 8) === 'https://' ? domainOrPattern.substring(8) : domainOrPattern;\n if (validateHostAgainstPattern(pattern, messageOriginHost)) {\n return true;\n }\n }\n\n validateOriginLogger(\n 'Origin %s is invalid because it is not an origin approved by this library or included in the call to app.initialize.\\nOrigins approved by this library: %o\\nOrigins included in app.initialize: %o',\n messageOrigin,\n validOriginsList,\n GlobalVars.additionalValidOrigins,\n );\n return false;\n });\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { sendMessageToParentWithVersion } from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { isHostAdaptiveCardSchemaVersionUnsupported } from '../internal/utils';\nimport { DialogDimension, errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport {\n AdaptiveCardDialogInfo,\n BotAdaptiveCardDialogInfo,\n BotUrlDialogInfo,\n DialogInfo,\n DialogSize,\n M365ContentAction,\n TaskInfo,\n UrlDialogInfo,\n} from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst dialogTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\nexport function updateResizeHelper(apiVersionTag: string, dimensions: DialogSize): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.task,\n FrameContexts.meetingStage,\n );\n if (!dialog.update.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(apiVersionTag, 'tasks.updateTask', [dimensions]);\n}\n\nexport function urlOpenHelper(\n apiVersionTag: string,\n urlDialogInfo: UrlDialogInfo,\n submitHandler?: dialog.DialogSubmitHandler,\n messageFromChildHandler?: dialog.PostMessageChannel,\n): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!dialog.url.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (messageFromChildHandler) {\n registerHandler('messageForParent', messageFromChildHandler);\n }\n const dialogInfo: DialogInfo = dialog.url.getDialogInfoFromUrlDialogInfo(urlDialogInfo);\n sendMessageToParentWithVersion(\n apiVersionTag,\n 'tasks.startTask',\n [dialogInfo],\n (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n removeHandler('messageForParent');\n },\n );\n}\n\nexport function botUrlOpenHelper(\n apiVersionTag: string,\n urlDialogInfo: BotUrlDialogInfo,\n submitHandler?: dialog.DialogSubmitHandler,\n messageFromChildHandler?: dialog.PostMessageChannel,\n): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!dialog.url.bot.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (messageFromChildHandler) {\n registerHandler('messageForParent', messageFromChildHandler);\n }\n const dialogInfo: DialogInfo = dialog.url.getDialogInfoFromBotUrlDialogInfo(urlDialogInfo);\n sendMessageToParentWithVersion(\n apiVersionTag,\n 'tasks.startTask',\n [dialogInfo],\n (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n removeHandler('messageForParent');\n },\n );\n}\n\nexport function urlSubmitHelper(apiVersionTag: string, result?: string | object, appIds?: string | string[]): void {\n // FrameContext content should not be here because dialog.submit can be called only from inside of a dialog (FrameContext task)\n // but it's here because Teams mobile incorrectly returns FrameContext.content when calling app.getFrameContext().\n // FrameContexts.content will be removed once the bug is fixed.\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!dialog.url.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n // Send tasks.completeTask instead of tasks.submitTask message for backward compatibility with Mobile clients\n sendMessageToParentWithVersion(apiVersionTag, 'tasks.completeTask', [\n result,\n appIds ? (Array.isArray(appIds) ? appIds : [appIds]) : [],\n ]);\n}\n\n/**\n * This group of capabilities enables apps to show modal dialogs. There are two primary types of dialogs: URL-based dialogs and [Adaptive Card](https://learn.microsoft.com/adaptive-cards/) dialogs.\n * Both types of dialogs are shown on top of your app, preventing interaction with your app while they are displayed.\n * - URL-based dialogs allow you to specify a URL from which the contents will be shown inside the dialog.\n * - For URL dialogs, use the functions and interfaces in the {@link dialog.url} namespace.\n * - Adaptive Card-based dialogs allow you to provide JSON describing an Adaptive Card that will be shown inside the dialog.\n * - For Adaptive Card dialogs, use the functions and interfaces in the {@link dialog.adaptiveCard} namespace.\n *\n * @remarks Note that dialogs were previously called \"task modules\". While they have been renamed for clarity, the functionality has been maintained.\n * For more details, see [Dialogs](https://learn.microsoft.com/microsoftteams/platform/task-modules-and-cards/what-are-task-modules)\n *\n * @beta\n */\nexport namespace dialog {\n /**\n * Data Structure to represent the SDK response when dialog closes\n *\n * @beta\n */\n export interface ISdkResponse {\n /**\n * Error in case there is a failure before dialog submission\n */\n err?: string;\n\n /**\n * Value provided in the `result` parameter by the dialog when the {@linkcode url.submit} function\n * was called.\n * If the dialog was closed by the user without submitting (e.g., using a control in the corner\n * of the dialog), this value will be `undefined` here.\n */\n result?: string | object;\n }\n\n /**\n * Handler used to receive and process messages sent between a dialog and the app that launched it\n * @beta\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export type PostMessageChannel = (message: any) => void;\n\n /**\n * Handler used for receiving results when a dialog closes, either the value passed by {@linkcode url.submit}\n * or an error if the dialog was closed by the user.\n *\n * @see {@linkcode ISdkResponse}\n *\n * @beta\n */\n export type DialogSubmitHandler = (result: ISdkResponse) => void;\n const storedMessages: string[] = [];\n\n /**\n * @hidden\n * Hide from docs because this function is only used during initialization\n *\n * Adds register handlers for messageForChild upon initialization and only in the tasks FrameContext. {@link FrameContexts.task}\n * Function is called during app initialization\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function initialize(): void {\n registerHandler('messageForChild', handleDialogMessage, false);\n }\n\n function handleDialogMessage(message: string): void {\n if (!GlobalVars.frameContext) {\n // GlobalVars.frameContext is currently not set\n return;\n }\n\n if (GlobalVars.frameContext === FrameContexts.task) {\n storedMessages.push(message);\n } else {\n // Not in task FrameContext, remove 'messageForChild' handler\n removeHandler('messageForChild');\n }\n }\n\n export namespace url {\n /**\n * Allows app to open a url based dialog.\n *\n * @remarks\n * This function cannot be called from inside of a dialog\n *\n * @param urlDialogInfo - An object containing the parameters of the dialog module.\n * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode submit} function or when the user closes the dialog.\n * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.\n *\n * @beta\n */\n export function open(\n urlDialogInfo: UrlDialogInfo,\n submitHandler?: DialogSubmitHandler,\n messageFromChildHandler?: PostMessageChannel,\n ): void {\n urlOpenHelper(\n getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_Url_Open),\n urlDialogInfo,\n submitHandler,\n messageFromChildHandler,\n );\n }\n\n /**\n * Submit the dialog module and close the dialog\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param result - The result to be sent to the bot or the app. Typically a JSON object or a serialized version of it,\n * If this function is called from a dialog while {@link M365ContentAction} is set in the context object by the host, result will be ignored\n *\n * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.\n *\n * @beta\n */\n export function submit(result?: string | object, appIds?: string | string[]): void {\n urlSubmitHelper(getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_Url_Submit), result, appIds);\n }\n\n /**\n * Subcapability that allows communication between the dialog and the parent app.\n *\n * @remarks\n * Note that dialog can be invoked from parentless scenarios e.g. Search Message Extensions. The subcapability `parentCommunication` is not supported in such scenarios.\n *\n * @beta\n */\n export namespace parentCommunication {\n /**\n * Send message to the parent from dialog\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param message - The message to send to the parent\n *\n * @beta\n */\n export function sendMessageToParentFromDialog(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n message: any,\n ): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(\n dialogTelemetryVersionNumber,\n ApiName.Dialog_Url_ParentCommunication_SendMessageToParentFromDialog,\n ),\n 'messageForParent',\n [message],\n );\n }\n\n /**\n * Send message to the dialog from the parent\n *\n * @param message - The message to send\n *\n * @beta\n */\n export function sendMessageToDialog(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n message: any,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_Url_ParentCommunication_SendMessageToDialog),\n 'messageForChild',\n [message],\n );\n }\n\n /**\n * Register a listener that will be triggered when a message is received from the app that opened the dialog.\n *\n * @remarks\n * This function is only intended to be called from code running within the dialog. Calling it from outside the dialog will have no effect.\n *\n * @param listener - The listener that will be triggered.\n *\n * @beta\n */\n export function registerOnMessageFromParent(listener: PostMessageChannel): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n // We need to remove the original 'messageForChild'\n // handler since the original does not allow for post messages.\n // It is replaced by the user specified listener that is passed in.\n removeHandler('messageForChild');\n registerHandler('messageForChild', listener);\n storedMessages.reverse();\n while (storedMessages.length > 0) {\n const message = storedMessages.pop();\n listener(message);\n }\n }\n\n /**\n * Checks if dialog.url.parentCommunication capability is supported by the host\n *\n * @returns boolean to represent whether dialog.url.parentCommunication capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && !!runtime.supports.dialog?.url?.parentCommunication;\n }\n }\n\n /**\n * Checks if dialog.url module is supported by the host\n *\n * @returns boolean to represent whether dialog.url module is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && (runtime.supports.dialog && runtime.supports.dialog.url) !== undefined;\n }\n\n /**\n * Namespace to open a dialog that sends results to the bot framework\n *\n * @beta\n */\n export namespace bot {\n /**\n * Allows an app to open a dialog that sends submitted data to a bot.\n *\n * @param botUrlDialogInfo - An object containing the parameters of the dialog module including completionBotId.\n * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.\n * @param messageFromChildHandler - Handler that triggers if dialog sends a message to the app.\n *\n * @returns a function that can be used to send messages to the dialog.\n *\n * @beta\n */\n export function open(\n botUrlDialogInfo: BotUrlDialogInfo,\n submitHandler?: DialogSubmitHandler,\n messageFromChildHandler?: PostMessageChannel,\n ): void {\n botUrlOpenHelper(\n getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_Url_Bot_Open),\n botUrlDialogInfo,\n submitHandler,\n messageFromChildHandler,\n );\n }\n\n /**\n * Checks if dialog.url.bot capability is supported by the host\n *\n * @returns boolean to represent whether dialog.url.bot is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return (\n ensureInitialized(runtime) &&\n (runtime.supports.dialog && runtime.supports.dialog.url && runtime.supports.dialog.url.bot) !== undefined\n );\n }\n }\n\n /**\n * @hidden\n *\n * Convert UrlDialogInfo to DialogInfo to send the information to host in {@linkcode open} API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getDialogInfoFromUrlDialogInfo(urlDialogInfo: UrlDialogInfo): DialogInfo {\n const dialogInfo: DialogInfo = {\n url: urlDialogInfo.url,\n height: urlDialogInfo.size ? urlDialogInfo.size.height : DialogDimension.Small,\n width: urlDialogInfo.size ? urlDialogInfo.size.width : DialogDimension.Small,\n title: urlDialogInfo.title,\n fallbackUrl: urlDialogInfo.fallbackUrl,\n };\n return dialogInfo;\n }\n\n /**\n * @hidden\n *\n * Convert BotUrlDialogInfo to DialogInfo to send the information to host in {@linkcode bot.open} API.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getDialogInfoFromBotUrlDialogInfo(botUrlDialogInfo: BotUrlDialogInfo): DialogInfo {\n const dialogInfo: DialogInfo = getDialogInfoFromUrlDialogInfo(botUrlDialogInfo);\n dialogInfo.completionBotId = botUrlDialogInfo.completionBotId;\n return dialogInfo;\n }\n }\n\n /**\n * This function currently serves no purpose and should not be used. All functionality that used\n * to be covered by this method is now in subcapabilities and those isSupported methods should be\n * used directly.\n *\n * @hidden\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.dialog ? true : false;\n }\n\n /**\n * Namespace to update the dialog\n *\n * @beta\n */\n export namespace update {\n /**\n * Update dimensions - height/width of a dialog.\n *\n * @param dimensions - An object containing width and height properties.\n *\n * @beta\n */\n export function resize(dimensions: DialogSize): void {\n updateResizeHelper(getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_Update_Resize), dimensions);\n }\n\n /**\n * Checks if dialog.update capability is supported by the host\n * @returns boolean to represent whether dialog.update capabilty is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.dialog\n ? runtime.supports.dialog.update\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Subcapability for interacting with adaptive card dialogs\n * @beta\n */\n export namespace adaptiveCard {\n /**\n * Allows app to open an adaptive card based dialog.\n *\n * @remarks\n * This function cannot be called from inside of a dialog\n *\n * @param adaptiveCardDialogInfo - An object containing the parameters of the dialog module {@link AdaptiveCardDialogInfo}.\n * @param submitHandler - Handler that triggers when a dialog calls the {@linkcode url.submit} function or when the user closes the dialog.\n *\n * @beta\n */\n export function open(adaptiveCardDialogInfo: AdaptiveCardDialogInfo, submitHandler?: DialogSubmitHandler): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const dialogInfo: DialogInfo = getDialogInfoFromAdaptiveCardDialogInfo(adaptiveCardDialogInfo);\n sendMessageToParentWithVersion(\n getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_AdaptiveCard_Open),\n 'tasks.startTask',\n [dialogInfo],\n (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n },\n );\n }\n\n /**\n * Checks if dialog.adaptiveCard module is supported by the host\n *\n * @returns boolean to represent whether dialog.adaptiveCard module is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n const isAdaptiveCardVersionSupported =\n runtime.hostVersionsInfo &&\n runtime.hostVersionsInfo.adaptiveCardSchemaVersion &&\n !isHostAdaptiveCardSchemaVersionUnsupported(runtime.hostVersionsInfo.adaptiveCardSchemaVersion);\n return (\n ensureInitialized(runtime) &&\n (isAdaptiveCardVersionSupported && runtime.supports.dialog && runtime.supports.dialog.card) !== undefined\n );\n }\n\n /**\n * Namespace for interaction with adaptive card dialogs that need to communicate with the bot framework\n *\n * @beta\n */\n export namespace bot {\n /**\n * Allows an app to open an adaptive card-based dialog module using bot.\n *\n * @param botAdaptiveCardDialogInfo - An object containing the parameters of the dialog module including completionBotId.\n * @param submitHandler - Handler that triggers when the dialog has been submitted or closed.\n *\n * @beta\n */\n export function open(\n botAdaptiveCardDialogInfo: BotAdaptiveCardDialogInfo,\n submitHandler?: DialogSubmitHandler,\n ): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n const dialogInfo: DialogInfo = getDialogInfoFromBotAdaptiveCardDialogInfo(botAdaptiveCardDialogInfo);\n\n sendMessageToParentWithVersion(\n getApiVersionTag(dialogTelemetryVersionNumber, ApiName.Dialog_AdaptiveCard_Bot_Open),\n 'tasks.startTask',\n [dialogInfo],\n (err: string, result: string | object) => {\n submitHandler?.({ err, result });\n },\n );\n }\n\n /**\n * Checks if dialog.adaptiveCard.bot capability is supported by the host\n *\n * @returns boolean to represent whether dialog.adaptiveCard.bot is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n const isAdaptiveCardVersionSupported =\n runtime.hostVersionsInfo &&\n runtime.hostVersionsInfo.adaptiveCardSchemaVersion &&\n !isHostAdaptiveCardSchemaVersionUnsupported(runtime.hostVersionsInfo.adaptiveCardSchemaVersion);\n return (\n ensureInitialized(runtime) &&\n (isAdaptiveCardVersionSupported &&\n runtime.supports.dialog &&\n runtime.supports.dialog.card &&\n runtime.supports.dialog.card.bot) !== undefined\n );\n }\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Convert AdaptiveCardDialogInfo to DialogInfo to send the information to host in {@linkcode adaptiveCard.open} API.\n *\n * @internal\n */\n function getDialogInfoFromAdaptiveCardDialogInfo(adaptiveCardDialogInfo: AdaptiveCardDialogInfo): DialogInfo {\n const dialogInfo: DialogInfo = {\n card: adaptiveCardDialogInfo.card,\n height: adaptiveCardDialogInfo.size ? adaptiveCardDialogInfo.size.height : DialogDimension.Small,\n width: adaptiveCardDialogInfo.size ? adaptiveCardDialogInfo.size.width : DialogDimension.Small,\n title: adaptiveCardDialogInfo.title,\n };\n return dialogInfo;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Convert BotAdaptiveCardDialogInfo to DialogInfo to send the information to host in {@linkcode adaptiveCard.open} API.\n *\n * @internal\n */\n function getDialogInfoFromBotAdaptiveCardDialogInfo(\n botAdaptiveCardDialogInfo: BotAdaptiveCardDialogInfo,\n ): DialogInfo {\n const dialogInfo: DialogInfo = getDialogInfoFromAdaptiveCardDialogInfo(botAdaptiveCardDialogInfo);\n dialogInfo.completionBotId = botAdaptiveCardDialogInfo.completionBotId;\n return dialogInfo;\n }\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { runtime } from '../public/runtime';\nimport { errorNotSupportedOnPlatform } from './constants';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst menuTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to interact with the menu-specific part of the SDK.\n * This object is used to show View Configuration, Action Menu and Navigation Bar Menu.\n */\nexport namespace menus {\n /**\n * @hidden\n * Represents information about item in View Configuration.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ViewConfiguration {\n /**\n * @hidden\n * Unique identifier of view.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display title of the view.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Additional information for accessibility.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n contentDescription?: string;\n }\n\n /**\n * Defines how a menu item should appear in the NavBar.\n */\n export enum DisplayMode {\n /**\n * Only place this item in the NavBar if there's room for it.\n * If there's no room, item is shown in the overflow menu.\n */\n ifRoom = 0,\n /**\n * Never place this item in the NavBar.\n * The item would always be shown in NavBar's overflow menu.\n */\n overflowOnly = 1,\n }\n\n /**\n * @hidden\n * Represents information about menu item for Action Menu and Navigation Bar Menu.\n */\n export class MenuItem {\n /**\n * @hidden\n * Unique identifier for the menu item.\n */\n public id: string;\n /**\n * @hidden\n * Display title of the menu item.\n */\n public title: string;\n /**\n * @hidden\n * Display icon of the menu item. The icon value must be a string having SVG icon content.\n */\n public icon: string;\n /**\n * @hidden\n * Selected state display icon of the menu item. The icon value must be a string having SVG icon content.\n */\n public iconSelected?: string;\n /**\n * @hidden\n * Additional information for accessibility.\n */\n public contentDescription?: string;\n /**\n * @hidden\n * State of the menu item\n */\n public enabled = true;\n /**\n * @hidden\n * Interface to show list of items on selection of menu item.\n */\n public viewData?: ViewData;\n /**\n * @hidden\n * Whether the menu item is selected or not\n */\n public selected = false;\n /**\n * The Display Mode of the menu item.\n * Default Behaviour would be DisplayMode.ifRoom if null.\n * Refer {@link DisplayMode}\n */\n public displayMode?: DisplayMode;\n }\n\n /**\n * @hidden\n * Represents information about view to show on Navigation Bar Menu item selection\n */\n export interface ViewData {\n /**\n * @hidden\n * Display header title of the item list.\n */\n listTitle?: string;\n /**\n * @hidden\n * Type of the menu item.\n */\n listType: MenuListType;\n /**\n * @hidden\n * Array of MenuItem. Icon value will be required for all items in the list.\n */\n listItems: MenuItem[];\n }\n\n /**\n * @hidden\n * Represents information about type of list to display in Navigation Bar Menu.\n */\n export enum MenuListType {\n dropDown = 'dropDown',\n popOver = 'popOver',\n }\n let navBarMenuItemPressHandler: ((id: string) => boolean) | undefined;\n let actionMenuItemPressHandler: ((id: string) => boolean) | undefined;\n let viewConfigItemPressHandler: ((id: string) => boolean) | undefined;\n\n /**\n * @hidden\n * Register navBarMenuItemPress, actionMenuItemPress, setModuleView handlers.\n *\n * @internal\n * Limited to Microsoft-internal use.\n */\n export function initialize(): void {\n registerHandlerWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_RegisterNavBarMenuItemPressHandler),\n 'navBarMenuItemPress',\n handleNavBarMenuItemPress,\n false,\n );\n registerHandlerWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_RegisterActionMenuItemPressHandler),\n 'actionMenuItemPress',\n handleActionMenuItemPress,\n false,\n );\n registerHandlerWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_RegisterSetModuleViewHandler),\n 'setModuleView',\n handleViewConfigItemPress,\n false,\n );\n }\n\n /**\n * @hidden\n * Registers list of view configurations and it's handler.\n * Handler is responsible for listening selection of View Configuration.\n *\n * @param viewConfig - List of view configurations. Minimum 1 value is required.\n * @param handler - The handler to invoke when the user selects view configuration.\n */\n export function setUpViews(viewConfig: ViewConfiguration[], handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n viewConfigItemPressHandler = handler;\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_SetUpViews),\n 'setUpViews',\n [viewConfig],\n );\n }\n\n function handleViewConfigItemPress(id: string): void {\n if (!viewConfigItemPressHandler || !viewConfigItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_HandleViewConfigItemPress),\n 'viewConfigItemPress',\n [id],\n );\n }\n }\n\n /**\n * @hidden\n * Used to set menu items on the Navigation Bar. If icon is available, icon will be shown, otherwise title will be shown.\n *\n * @param items List of MenuItems for Navigation Bar Menu.\n * @param handler The handler to invoke when the user selects menu item.\n */\n export function setNavBarMenu(items: MenuItem[], handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n navBarMenuItemPressHandler = handler;\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_SetNavBarMenu),\n 'setNavBarMenu',\n [items],\n );\n }\n\n function handleNavBarMenuItemPress(id: string): void {\n if (!navBarMenuItemPressHandler || !navBarMenuItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_HandleNavBarMenuItemPress),\n 'handleNavBarMenuItemPress',\n [id],\n );\n }\n }\n\n /** Parameters used to create an action menu within an app */\n export interface ActionMenuParameters {\n /**\n * @hidden\n * Display title for Action Menu\n */\n title: string;\n /**\n * @hidden\n * List of MenuItems for Action Menu\n */\n items: MenuItem[];\n }\n\n /**\n * @hidden\n * Used to show Action Menu.\n *\n * @param params - Parameters for Menu Parameters\n * @param handler - The handler to invoke when the user selects menu item.\n */\n export function showActionMenu(params: ActionMenuParameters, handler: (id: string) => boolean): void {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n actionMenuItemPressHandler = handler;\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_ShowActionMenu),\n 'showActionMenu',\n [params],\n );\n }\n\n function handleActionMenuItemPress(id: string): void {\n if (!actionMenuItemPressHandler || !actionMenuItemPressHandler(id)) {\n ensureInitialized(runtime);\n sendMessageToParentWithVersion(\n getApiVersionTag(menuTelemetryVersionNumber, ApiName.Menus_HandleActionMenuItemPress),\n 'handleActionMenuItemPress',\n [id],\n );\n }\n }\n\n /**\n * Checks if the menus capability is supported by the host\n * @returns boolean to represent whether the menus capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.menus ? true : false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport {\n Communication,\n initializeCommunication,\n sendAndHandleStatusAndReasonWithVersion,\n sendAndUnwrapWithVersion,\n sendMessageToParentWithVersion,\n uninitializeCommunication,\n} from '../internal/communication';\nimport { defaultSDKVersionForCompatCheck } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport * as Handlers from '../internal/handlers'; // Conflict with some names\nimport { ensureInitializeCalled, ensureInitialized, processAdditionalValidOrigins } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getLogger } from '../internal/telemetry';\nimport { isNullOrUndefined } from '../internal/typeCheckUtilities';\nimport { compareSDKVersions, inServerSideRenderingEnvironment, runWithTimeout } from '../internal/utils';\nimport { prefetchOriginsFromCDN } from '../internal/validOrigins';\nimport { authentication } from './authentication';\nimport { ChannelType, FrameContexts, HostClientType, HostName, TeamType, UserTeamRole } from './constants';\nimport { dialog } from './dialog';\nimport { ActionInfo, Context as LegacyContext, FileOpenPreference, LocaleInfo, ResumeContext } from './interfaces';\nimport { menus } from './menus';\nimport { pages } from './pages';\nimport {\n applyRuntimeConfig,\n generateVersionBasedTeamsRuntimeConfig,\n IBaseRuntime,\n mapTeamsVersionToSupportedCapabilities,\n runtime,\n versionAndPlatformAgnosticTeamsRuntimeConfig,\n} from './runtime';\nimport { version } from './version';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst appTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Number of milliseconds we'll give the initialization call to return before timing it out\n */\nconst initializationTimeoutInMs = 5000;\n\nconst appLogger = getLogger('app');\n\nexport function appInitializeHelper(apiVersionTag: string, validMessageOrigins?: string[]): Promise {\n if (!inServerSideRenderingEnvironment()) {\n return runWithTimeout(\n () => initializeHelper(apiVersionTag, validMessageOrigins),\n initializationTimeoutInMs,\n new Error('SDK initialization timed out.'),\n );\n } else {\n const initializeLogger = appLogger.extend('initialize');\n // This log statement should NEVER actually be written. This code path exists only to enable compilation in server-side rendering environments.\n // If you EVER see this statement in ANY log file, something has gone horribly wrong and a bug needs to be filed.\n initializeLogger('window object undefined at initialization');\n return Promise.resolve();\n }\n}\n\nexport function notifyAppLoadedHelper(apiVersionTag: string): void {\n sendMessageToParentWithVersion(apiVersionTag, app.Messages.AppLoaded, [version]);\n}\n\nexport function notifyExpectedFailureHelper(\n apiVersionTag: string,\n expectedFailureRequest: app.IExpectedFailureRequest,\n): void {\n sendMessageToParentWithVersion(apiVersionTag, app.Messages.ExpectedFailure, [\n expectedFailureRequest.reason,\n expectedFailureRequest.message,\n ]);\n}\n\nexport function notifyFailureHelper(apiVersiontag: string, appInitializationFailedRequest: app.IFailedRequest): void {\n sendMessageToParentWithVersion(apiVersiontag, app.Messages.Failure, [\n appInitializationFailedRequest.reason,\n appInitializationFailedRequest.message,\n ]);\n}\n\nexport function notifySuccessHelper(apiVersionTag: string): void {\n sendMessageToParentWithVersion(apiVersionTag, app.Messages.Success, [version]);\n}\n\nconst initializeHelperLogger = appLogger.extend('initializeHelper');\nfunction initializeHelper(apiVersionTag: string, validMessageOrigins?: string[]): Promise {\n return new Promise((resolve) => {\n // Independent components might not know whether the SDK is initialized so might call it to be safe.\n // Just no-op if that happens to make it easier to use.\n if (!GlobalVars.initializeCalled) {\n GlobalVars.initializeCalled = true;\n Handlers.initializeHandlers();\n GlobalVars.initializePromise = initializeCommunication(validMessageOrigins, apiVersionTag).then(\n ({ context, clientType, runtimeConfig, clientSupportedSDKVersion = defaultSDKVersionForCompatCheck }) => {\n GlobalVars.frameContext = context;\n GlobalVars.hostClientType = clientType;\n GlobalVars.clientSupportedSDKVersion = clientSupportedSDKVersion;\n // Temporary workaround while the Host is updated with the new argument order.\n // For now, we might receive any of these possibilities:\n // - `runtimeConfig` in `runtimeConfig` and `clientSupportedSDKVersion` in `clientSupportedSDKVersion`.\n // - `runtimeConfig` in `clientSupportedSDKVersion` and `clientSupportedSDKVersion` in `runtimeConfig`.\n // - `clientSupportedSDKVersion` in `runtimeConfig` and no `clientSupportedSDKVersion`.\n // This code supports any of these possibilities\n\n // Teams AppHost won't provide this runtime config\n // so we assume that if we don't have it, we must be running in Teams.\n // After Teams updates its client code, we can remove this default code.\n try {\n initializeHelperLogger('Parsing %s', runtimeConfig);\n const givenRuntimeConfig: IBaseRuntime | null = JSON.parse(runtimeConfig);\n initializeHelperLogger('Checking if %o is a valid runtime object', givenRuntimeConfig ?? 'null');\n // Check that givenRuntimeConfig is a valid instance of IBaseRuntime\n if (!givenRuntimeConfig || !givenRuntimeConfig.apiVersion) {\n throw new Error('Received runtime config is invalid');\n }\n runtimeConfig && applyRuntimeConfig(givenRuntimeConfig);\n } catch (e) {\n if (e instanceof SyntaxError) {\n try {\n initializeHelperLogger('Attempting to parse %s as an SDK version', runtimeConfig);\n // if the given runtime config was actually meant to be a SDK version, store it as such.\n // TODO: This is a temporary workaround to allow Teams to store clientSupportedSDKVersion even when\n // it doesn't provide the runtimeConfig. After Teams updates its client code, we should\n // remove this feature.\n if (!isNaN(compareSDKVersions(runtimeConfig, defaultSDKVersionForCompatCheck))) {\n GlobalVars.clientSupportedSDKVersion = runtimeConfig;\n }\n const givenRuntimeConfig: IBaseRuntime | null = JSON.parse(clientSupportedSDKVersion);\n initializeHelperLogger('givenRuntimeConfig parsed to %o', givenRuntimeConfig ?? 'null');\n\n if (!givenRuntimeConfig) {\n throw new Error(\n 'givenRuntimeConfig string was successfully parsed. However, it parsed to value of null',\n );\n } else {\n applyRuntimeConfig(givenRuntimeConfig);\n }\n } catch (e) {\n if (e instanceof SyntaxError) {\n applyRuntimeConfig(\n generateVersionBasedTeamsRuntimeConfig(\n GlobalVars.clientSupportedSDKVersion,\n versionAndPlatformAgnosticTeamsRuntimeConfig,\n mapTeamsVersionToSupportedCapabilities,\n ),\n );\n } else {\n throw e;\n }\n }\n } else {\n // If it's any error that's not a JSON parsing error, we want the program to fail.\n throw e;\n }\n }\n\n GlobalVars.initializeCompleted = true;\n },\n );\n\n authentication.initialize();\n menus.initialize();\n pages.config.initialize();\n dialog.initialize();\n }\n\n // Handle additional valid message origins if specified\n if (Array.isArray(validMessageOrigins)) {\n processAdditionalValidOrigins(validMessageOrigins);\n }\n\n if (GlobalVars.initializePromise !== undefined) {\n resolve(GlobalVars.initializePromise);\n } else {\n initializeHelperLogger('GlobalVars.initializePromise is unexpectedly undefined');\n }\n });\n}\n\nexport function registerOnThemeChangeHandlerHelper(apiVersionTag: string, handler: app.themeHandler): void {\n // allow for registration cleanup even when not called initialize\n !isNullOrUndefined(handler) && ensureInitializeCalled();\n Handlers.registerOnThemeChangeHandler(apiVersionTag, handler);\n}\n\nexport function openLinkHelper(apiVersionTag: string, deepLink: string): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n resolve(sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'executeDeepLink', deepLink));\n });\n}\n\n/**\n * Namespace to interact with app initialization and lifecycle.\n */\nexport namespace app {\n const appLogger = getLogger('app');\n\n // ::::::::::::::::::::::: MicrosoftTeams client SDK public API ::::::::::::::::::::\n\n /** App Initialization Messages */\n export const Messages = {\n /** App loaded. */\n AppLoaded: 'appInitialization.appLoaded',\n /** App initialized successfully. */\n Success: 'appInitialization.success',\n /** App initialization failed. */\n Failure: 'appInitialization.failure',\n /** App initialization expected failure. */\n ExpectedFailure: 'appInitialization.expectedFailure',\n };\n\n /**\n * Describes errors that caused app initialization to fail\n */\n export enum FailedReason {\n /**\n * Authentication failed\n */\n AuthFailed = 'AuthFailed',\n /**\n * The application timed out\n */\n Timeout = 'Timeout',\n /**\n * The app failed for a different reason\n */\n Other = 'Other',\n }\n\n /**\n * Describes expected errors that occurred during an otherwise successful\n * app initialization\n */\n export enum ExpectedFailureReason {\n /**\n * There was a permission error\n */\n PermissionError = 'PermissionError',\n /**\n * The item was not found\n */\n NotFound = 'NotFound',\n /**\n * The network is currently throttled\n */\n Throttling = 'Throttling',\n /**\n * The application is currently offline\n */\n Offline = 'Offline',\n /**\n * The app failed for a different reason\n */\n Other = 'Other',\n }\n\n /**\n * Represents the failed request sent during a failed app initialization.\n */\n export interface IFailedRequest {\n /**\n * The reason for the failure\n */\n reason: FailedReason;\n /**\n * This property is currently unused.\n */\n message?: string;\n }\n\n /**\n * Represents the failure request sent during an erroneous app initialization.\n */\n export interface IExpectedFailureRequest {\n /**\n * The reason for the failure\n */\n reason: ExpectedFailureReason;\n /**\n * A message that describes the failure\n */\n message?: string;\n }\n\n /**\n * Represents application information.\n */\n export interface AppInfo {\n /**\n * The current locale that the user has configured for the app formatted as\n * languageId-countryId (for example, en-us).\n */\n locale: string;\n\n /**\n * The current UI theme of the host. Possible values: \"default\", \"dark\", \"contrast\" or \"glass\".\n */\n theme: string;\n\n /**\n * Unique ID for the current session for use in correlating telemetry data. A session corresponds to the lifecycle of an app. A new session begins upon the creation of a webview (on Teams mobile) or iframe (in Teams desktop) hosting the app, and ends when it is destroyed.\n */\n sessionId: string;\n\n /**\n * Info of the host\n */\n host: AppHostInfo;\n\n /**\n * More detailed locale info from the user's OS if available. Can be used together with\n * the @microsoft/globe NPM package to ensure your app respects the user's OS date and\n * time format configuration\n */\n osLocaleInfo?: LocaleInfo;\n /**\n * Personal app icon y coordinate position\n */\n iconPositionVertical?: number;\n\n /**\n * Time when the user clicked on the tab\n */\n userClickTime?: number;\n\n /**\n * The ID of the parent message from which this task module was launched.\n * This is only available in task modules launched from bot cards.\n */\n parentMessageId?: string;\n\n /**\n * Where the user prefers the file to be opened from by default during file open\n */\n userFileOpenPreference?: FileOpenPreference;\n\n /**\n * ID for the current visible app which is different for across cached sessions. Used for correlating telemetry data.\n */\n appLaunchId?: string;\n }\n\n /**\n * Represents information about the application's host.\n */\n export interface AppHostInfo {\n /**\n * Identifies which host is running your app\n */\n name: HostName;\n\n /**\n * The client type on which the host is running\n */\n clientType: HostClientType;\n\n /**\n * Unique ID for the current Host session for use in correlating telemetry data.\n */\n sessionId: string;\n\n /**\n * Current ring ID\n */\n ringId?: string;\n }\n\n /**\n * Represents Channel information.\n */\n export interface ChannelInfo {\n /**\n * The Microsoft Teams ID for the channel with which the content is associated.\n */\n id: string;\n\n /**\n * The name for the channel with which the content is associated.\n */\n displayName?: string;\n\n /**\n * The relative path to the SharePoint folder associated with the channel.\n */\n relativeUrl?: string;\n\n /**\n * The type of the channel with which the content is associated.\n */\n membershipType?: ChannelType;\n\n /**\n * The OneNote section ID that is linked to the channel.\n */\n defaultOneNoteSectionId?: string;\n\n /**\n * The tenant ID of the team which owns the channel.\n */\n ownerTenantId?: string;\n\n /**\n * The Microsoft Entra group ID of the team which owns the channel.\n */\n ownerGroupId?: string;\n }\n\n /**\n * Represents Chat information.\n */\n export interface ChatInfo {\n /**\n * The Microsoft Teams ID for the chat with which the content is associated.\n */\n id: string;\n }\n\n /**\n * Represents Meeting information.\n */\n export interface MeetingInfo {\n /**\n * Meeting Id used by tab when running in meeting context\n */\n id: string;\n }\n\n /**\n * Represents Page information.\n */\n export interface PageInfo {\n /**\n * The developer-defined unique ID for the page this content points to.\n */\n id: string;\n\n /**\n * The context where page url is loaded (content, task, setting, remove, sidePanel)\n */\n frameContext: FrameContexts;\n\n /**\n * The developer-defined unique ID for the sub-page this content points to.\n * This field should be used to restore to a specific state within a page,\n * such as scrolling to or activating a specific piece of content.\n */\n subPageId?: string;\n\n /**\n * Indication whether the page is in full-screen mode.\n */\n isFullScreen?: boolean;\n\n /**\n * Indication whether the page is in a pop out window\n */\n isMultiWindow?: boolean;\n\n /**\n * Source origin from where the page is opened\n */\n sourceOrigin?: string;\n }\n\n /**\n * Represents Team information.\n */\n export interface TeamInfo {\n /**\n * The Microsoft Teams ID for the team with which the content is associated.\n */\n internalId: string;\n\n /**\n * The name for the team with which the content is associated.\n */\n displayName?: string;\n\n /**\n * The type of the team.\n */\n type?: TeamType;\n\n /**\n * The Office 365 group ID for the team with which the content is associated.\n * This field is available only when the identity permission is requested in the manifest.\n */\n groupId?: string;\n\n /**\n * Indicates whether team is archived.\n * Apps should use this as a signal to prevent any changes to content associated with archived teams.\n */\n isArchived?: boolean;\n\n /**\n * Team Template ID if there was a Team Template associated with the creation of the team.\n */\n templateId?: string;\n\n /**\n * The user's role in the team.\n\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a hint as to the user's role, and never as proof of her role.\n */\n userRole?: UserTeamRole;\n }\n\n /**\n * Represents User information.\n */\n export interface UserInfo {\n /**\n * The Microsoft Entra object id of the current user.\n *\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a optimization hint as to who the user is and never as proof of identity.\n * Specifically, this value should never be used to determine if a user is authorized to access\n * a resource; access tokens should be used for that.\n * See {@link authentication.getAuthToken} and {@link authentication.authenticate} for more information on access tokens.\n *\n * This field is available only when the identity permission is requested in the manifest.\n */\n id: string;\n\n /**\n * The address book name of the current user.\n */\n displayName?: string;\n\n /**\n * Represents whether calling is allowed for the current logged in User\n */\n isCallingAllowed?: boolean;\n\n /**\n * Represents whether PSTN calling is allowed for the current logged in User\n */\n isPSTNCallingAllowed?: boolean;\n\n /**\n * The license type for the current user. Possible values are:\n * \"Unknown\", \"Teacher\", \"Student\", \"Free\", \"SmbBusinessVoice\", \"SmbNonVoice\", \"FrontlineWorker\", \"Anonymous\"\n */\n licenseType?: string;\n\n /**\n * A value suitable for use when providing a login_hint to Microsoft Entra ID for authentication purposes.\n * See [Provide optional claims to your app](https://learn.microsoft.com/azure/active-directory/develop/active-directory-optional-claims#v10-and-v20-optional-claims-set)\n * for more information about the use of login_hint\n *\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a optimization hint as to who the user is and never as proof of identity.\n * Specifically, this value should never be used to determine if a user is authorized to access\n * a resource; access tokens should be used for that.\n * See {@link authentication.getAuthToken} and {@link authentication.authenticate} for more information on access tokens.\n */\n loginHint?: string;\n\n /**\n * The UPN of the current user. This may be an externally-authenticated UPN (e.g., guest users).\n\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a optimization hint as to who the user is and never as proof of identity.\n * Specifically, this value should never be used to determine if a user is authorized to access\n * a resource; access tokens should be used for that.\n * See {@link authentication.getAuthToken} and {@link authentication.authenticate} for more information on access tokens.\n */\n userPrincipalName?: string;\n\n /**\n * The tenant related info of the current user.\n */\n tenant?: TenantInfo;\n }\n\n /**\n * Represents Tenant information.\n */\n export interface TenantInfo {\n /**\n * The Microsoft Entra tenant ID of the current user.\n\n * Because a malicious party can run your content in a browser, this value should\n * be used only as a optimization hint as to who the user is and never as proof of identity.\n * Specifically, this value should never be used to determine if a user is authorized to access\n * a resource; access tokens should be used for that.\n * See {@link authentication.getAuthToken} and {@link authentication.authenticate} for more information on access tokens.\n */\n id: string;\n\n /**\n * The type of license for the current user's tenant. Possible values are enterprise, free, edu, and unknown.\n */\n teamsSku?: string;\n }\n\n /** Represents information about a SharePoint site */\n export interface SharePointSiteInfo {\n /**\n * The root SharePoint site associated with the team.\n */\n teamSiteUrl?: string;\n\n /**\n * The domain of the root SharePoint site associated with the team.\n */\n teamSiteDomain?: string;\n\n /**\n * The relative path to the SharePoint site associated with the team.\n */\n teamSitePath?: string;\n\n /**\n * Teamsite ID, aka sharepoint site id.\n */\n teamSiteId?: string;\n\n /**\n * The SharePoint my site domain associated with the user.\n */\n mySiteDomain?: string;\n\n /**\n * The SharePoint relative path to the current users mysite\n */\n mySitePath?: string;\n }\n\n /**\n * Represents structure of the received context message.\n */\n export interface Context {\n /**\n * Content Action Info\n *\n * @beta\n */\n actionInfo?: ActionInfo;\n /**\n * Properties about the current session for your app\n */\n app: AppInfo;\n\n /**\n * Info about the current page context hosting your app\n */\n page: PageInfo;\n\n /**\n * Info about the currently logged in user running the app.\n * If the current user is not logged in/authenticated (e.g. a meeting app running for an anonymously-joined partcipant) this will be `undefined`.\n */\n user?: UserInfo;\n\n /**\n * When running in the context of a Teams channel, provides information about the channel, else `undefined`\n */\n channel?: ChannelInfo;\n\n /**\n * When running in the context of a Teams chat, provides information about the chat, else `undefined`\n */\n chat?: ChatInfo;\n\n /**\n * When running in the context of a Teams meeting, provides information about the meeting, else `undefined`\n */\n meeting?: MeetingInfo;\n\n /**\n * When hosted in SharePoint, this is the [SharePoint PageContext](https://learn.microsoft.com/javascript/api/sp-page-context/pagecontext?view=sp-typescript-latest), else `undefined`\n */\n sharepoint?: any;\n\n /**\n * When running in Teams for an organization with a tenant, provides information about the SharePoint site associated with the team.\n * Will be `undefined` when not running in Teams for an organization with a tenant.\n */\n sharePointSite?: SharePointSiteInfo;\n\n /**\n * When running in Teams, provides information about the Team context in which your app is running.\n * Will be `undefined` when not running in Teams.\n */\n team?: TeamInfo;\n }\n\n /**\n * This function is passed to registerOnThemeHandler. It is called every time the user changes their theme.\n */\n export type themeHandler = (theme: string) => void;\n\n /**\n * Checks whether the Teams client SDK has been initialized.\n * @returns whether the Teams client SDK has been initialized.\n */\n export function isInitialized(): boolean {\n return GlobalVars.initializeCompleted;\n }\n\n /**\n * Gets the Frame Context that the App is running in. See {@link FrameContexts} for the list of possible values.\n * @returns the Frame Context.\n */\n export function getFrameContext(): FrameContexts | undefined {\n return GlobalVars.frameContext;\n }\n\n function logWhereTeamsJsIsBeingUsed(): void {\n if (inServerSideRenderingEnvironment()) {\n return;\n }\n const scripts = document.getElementsByTagName('script');\n // This will always be the current script because browsers load and execute scripts in order.\n // Whenever a script is executing for the first time it will be the last script in this array.\n const currentScriptSrc = scripts && scripts[scripts.length - 1] && scripts[scripts.length - 1].src;\n const scriptUsageWarning =\n 'Today, teamsjs can only be used from a single script or you may see undefined behavior. This log line is used to help detect cases where teamsjs is loaded multiple times -- it is always written. The presence of the log itself does not indicate a multi-load situation, but multiples of these log lines will. If you would like to use teamjs from more than one script at the same time, please open an issue at https://github.com/OfficeDev/microsoft-teams-library-js/issues';\n if (!currentScriptSrc || currentScriptSrc.length === 0) {\n appLogger('teamsjs is being used from a script tag embedded directly in your html. %s', scriptUsageWarning);\n } else {\n appLogger('teamsjs is being used from %s. %s', currentScriptSrc, scriptUsageWarning);\n }\n }\n\n // This is called right away to make sure that we capture which script is being executed correctly\n logWhereTeamsJsIsBeingUsed();\n\n /**\n * Initializes the library.\n *\n * @remarks\n * Initialize must have completed successfully (as determined by the resolved Promise) before any other library calls are made\n *\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins. They must have\n * https: protocol otherwise they will be ignored. Example: https://www.example.com\n * @returns Promise that will be fulfilled when initialization has completed, or rejected if the initialization fails or times out\n */\n export function initialize(validMessageOrigins?: string[]): Promise {\n prefetchOriginsFromCDN();\n return appInitializeHelper(\n getApiVersionTag(appTelemetryVersionNumber, ApiName.App_Initialize),\n validMessageOrigins,\n );\n }\n\n /**\n * @hidden\n * Undocumented function used to set a mock window for unit tests\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function _initialize(hostWindow: any): void {\n Communication.currentWindow = hostWindow;\n }\n\n /**\n * @hidden\n * Undocumented function used to clear state between unit tests\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function _uninitialize(): void {\n if (!GlobalVars.initializeCalled) {\n return;\n }\n\n Handlers.uninitializeHandlers();\n\n GlobalVars.initializeCalled = false;\n GlobalVars.initializeCompleted = false;\n GlobalVars.initializePromise = undefined;\n GlobalVars.additionalValidOrigins = [];\n GlobalVars.frameContext = undefined;\n GlobalVars.hostClientType = undefined;\n GlobalVars.isFramelessWindow = false;\n\n uninitializeCommunication();\n }\n\n /**\n * Retrieves the current context the frame is running in.\n *\n * @returns Promise that will resolve with the {@link app.Context} object.\n */\n export function getContext(): Promise {\n return new Promise((resolve) => {\n ensureInitializeCalled();\n resolve(\n sendAndUnwrapWithVersion(getApiVersionTag(appTelemetryVersionNumber, ApiName.App_GetContext), 'getContext'),\n );\n }).then((legacyContext) => transformLegacyContextToAppContext(legacyContext)); // converts globalcontext to app.context\n }\n\n /**\n * Notifies the frame that app has loaded and to hide the loading indicator if one is shown.\n */\n export function notifyAppLoaded(): void {\n ensureInitializeCalled();\n notifyAppLoadedHelper(getApiVersionTag(appTelemetryVersionNumber, ApiName.App_NotifyAppLoaded));\n }\n\n /**\n * Notifies the frame that app initialization is successful and is ready for user interaction.\n */\n export function notifySuccess(): void {\n ensureInitializeCalled();\n notifySuccessHelper(getApiVersionTag(appTelemetryVersionNumber, ApiName.App_NotifySuccess));\n }\n\n /**\n * Notifies the frame that app initialization has failed and to show an error page in its place.\n *\n * @param appInitializationFailedRequest - The failure request containing the reason for why the app failed\n * during initialization as well as an optional message.\n */\n export function notifyFailure(appInitializationFailedRequest: IFailedRequest): void {\n ensureInitializeCalled();\n notifyFailureHelper(\n getApiVersionTag(appTelemetryVersionNumber, ApiName.App_NotifyFailure),\n appInitializationFailedRequest,\n );\n }\n\n /**\n * Notifies the frame that app initialized with some expected errors.\n *\n * @param expectedFailureRequest - The expected failure request containing the reason and an optional message\n */\n export function notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void {\n ensureInitializeCalled();\n notifyExpectedFailureHelper(\n getApiVersionTag(appTelemetryVersionNumber, ApiName.App_NotifyExpectedFailure),\n expectedFailureRequest,\n );\n }\n\n /**\n * Registers a handler for theme changes.\n *\n * @remarks\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user changes their theme.\n */\n export function registerOnThemeChangeHandler(handler: themeHandler): void {\n registerOnThemeChangeHandlerHelper(\n getApiVersionTag(appTelemetryVersionNumber, ApiName.App_RegisterOnThemeChangeHandler),\n handler,\n );\n }\n\n /**\n * open link API.\n *\n * @param deepLink - deep link.\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function openLink(deepLink: string): Promise {\n return openLinkHelper(getApiVersionTag(appTelemetryVersionNumber, ApiName.App_OpenLink), deepLink);\n }\n\n /**\n * A namespace for enabling the suspension or delayed termination of an app when the user navigates away.\n * When an app registers for the registerBeforeSuspendOrTerminateHandler, it chooses to delay termination.\n * When an app registers for both registerBeforeSuspendOrTerminateHandler and registerOnResumeHandler, it chooses the suspension of the app .\n * Please note that selecting suspension doesn't guarantee prevention of background termination.\n * The outcome is influenced by factors such as available memory and the number of suspended apps.\n *\n * @beta\n */\n export namespace lifecycle {\n /**\n * Register on resume handler function type\n *\n * @param context - Data structure to be used to pass the context to the app.\n */\n export type registerOnResumeHandlerFunctionType = (context: ResumeContext) => void;\n\n /**\n * Register before suspendOrTerminate handler function type\n *\n * @returns void\n */\n export type registerBeforeSuspendOrTerminateHandlerFunctionType = () => void;\n\n /**\n * Registers a handler to be called before the page is suspended or terminated. Once a user navigates away from an app,\n * the handler will be invoked. App developers can use this handler to save unsaved data, pause sync calls etc.\n *\n * @param handler - The handler to invoke before the page is suspended or terminated. When invoked, app can perform tasks like cleanups, logging etc.\n * Upon returning, the app will be suspended or terminated.\n *\n */\n export function registerBeforeSuspendOrTerminateHandler(\n handler: registerBeforeSuspendOrTerminateHandlerFunctionType,\n ): void {\n if (!handler) {\n throw new Error('[app.lifecycle.registerBeforeSuspendOrTerminateHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n Handlers.registerBeforeSuspendOrTerminateHandler(handler);\n }\n\n /**\n * Registers a handler to be called when the page has been requested to resume from being suspended.\n *\n * @param handler - The handler to invoke when the page is requested to be resumed. The app is supposed to navigate to\n * the appropriate page using the ResumeContext. Once done, the app should then call {@link notifySuccess}.\n *\n * @beta\n */\n export function registerOnResumeHandler(handler: registerOnResumeHandlerFunctionType): void {\n if (!handler) {\n throw new Error('[app.lifecycle.registerOnResumeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n Handlers.registerOnResumeHandler(handler);\n }\n }\n}\n\n/**\n * @hidden\n * Transforms the Legacy Context object received from Messages to the structured app.Context object\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction transformLegacyContextToAppContext(legacyContext: LegacyContext): app.Context {\n const context: app.Context = {\n actionInfo: legacyContext.actionInfo,\n app: {\n locale: legacyContext.locale,\n sessionId: legacyContext.appSessionId ? legacyContext.appSessionId : '',\n theme: legacyContext.theme ? legacyContext.theme : 'default',\n iconPositionVertical: legacyContext.appIconPosition,\n osLocaleInfo: legacyContext.osLocaleInfo,\n parentMessageId: legacyContext.parentMessageId,\n userClickTime: legacyContext.userClickTime,\n userFileOpenPreference: legacyContext.userFileOpenPreference,\n host: {\n name: legacyContext.hostName ? legacyContext.hostName : HostName.teams,\n clientType: legacyContext.hostClientType ? legacyContext.hostClientType : HostClientType.web,\n sessionId: legacyContext.sessionId ? legacyContext.sessionId : '',\n ringId: legacyContext.ringId,\n },\n appLaunchId: legacyContext.appLaunchId,\n },\n page: {\n id: legacyContext.entityId,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n frameContext: legacyContext.frameContext ? legacyContext.frameContext : GlobalVars.frameContext,\n subPageId: legacyContext.subEntityId,\n isFullScreen: legacyContext.isFullScreen,\n isMultiWindow: legacyContext.isMultiWindow,\n sourceOrigin: legacyContext.sourceOrigin,\n },\n user: {\n id: legacyContext.userObjectId ?? '',\n displayName: legacyContext.userDisplayName,\n isCallingAllowed: legacyContext.isCallingAllowed,\n isPSTNCallingAllowed: legacyContext.isPSTNCallingAllowed,\n licenseType: legacyContext.userLicenseType,\n loginHint: legacyContext.loginHint,\n userPrincipalName: legacyContext.userPrincipalName,\n tenant: legacyContext.tid\n ? {\n id: legacyContext.tid,\n teamsSku: legacyContext.tenantSKU,\n }\n : undefined,\n },\n channel: legacyContext.channelId\n ? {\n id: legacyContext.channelId,\n displayName: legacyContext.channelName,\n relativeUrl: legacyContext.channelRelativeUrl,\n membershipType: legacyContext.channelType,\n defaultOneNoteSectionId: legacyContext.defaultOneNoteSectionId,\n ownerGroupId: legacyContext.hostTeamGroupId,\n ownerTenantId: legacyContext.hostTeamTenantId,\n }\n : undefined,\n chat: legacyContext.chatId\n ? {\n id: legacyContext.chatId,\n }\n : undefined,\n meeting: legacyContext.meetingId\n ? {\n id: legacyContext.meetingId,\n }\n : undefined,\n sharepoint: legacyContext.sharepoint,\n team: legacyContext.teamId\n ? {\n internalId: legacyContext.teamId,\n displayName: legacyContext.teamName,\n type: legacyContext.teamType,\n groupId: legacyContext.groupId,\n templateId: legacyContext.teamTemplateId,\n isArchived: legacyContext.isTeamArchived,\n userRole: legacyContext.userTeamRole,\n }\n : undefined,\n sharePointSite:\n legacyContext.teamSiteUrl ||\n legacyContext.teamSiteDomain ||\n legacyContext.teamSitePath ||\n legacyContext.mySitePath ||\n legacyContext.mySiteDomain\n ? {\n teamSiteUrl: legacyContext.teamSiteUrl,\n teamSiteDomain: legacyContext.teamSiteDomain,\n teamSitePath: legacyContext.teamSitePath,\n teamSiteId: legacyContext.teamSiteId,\n mySitePath: legacyContext.mySitePath,\n mySiteDomain: legacyContext.mySiteDomain,\n }\n : undefined,\n };\n\n return context;\n}\n","import {\n Communication,\n sendAndHandleSdkErrorWithVersion,\n sendAndHandleStatusAndReasonWithDefaultErrorWithVersion,\n sendAndHandleStatusAndReasonWithVersion,\n sendAndUnwrapWithVersion,\n sendMessageEventToChild,\n sendMessageToParentWithVersion,\n} from '../internal/communication';\nimport { registerHandler, registerHandlerHelperWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { isNullOrUndefined } from '../internal/typeCheckUtilities';\nimport { createTeamsAppLink } from '../internal/utils';\nimport { app } from './app';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { FrameInfo, ShareDeepLinkParameters, TabInformation, TabInstance, TabInstanceParameters } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst pagesTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\nexport function navigateCrossDomainHelper(apiVersionTag: string, url: string): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!pages.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage =\n 'Cross-origin navigation is only supported for URLs matching the pattern registered in the manifest.';\n resolve(\n sendAndHandleStatusAndReasonWithDefaultErrorWithVersion(apiVersionTag, 'navigateCrossDomain', errorMessage, url),\n );\n });\n}\n\nexport function backStackNavigateBackHelper(apiVersionTag: string): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!pages.backStack.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage = 'Back navigation is not supported in the current client or context.';\n resolve(sendAndHandleStatusAndReasonWithDefaultErrorWithVersion(apiVersionTag, 'navigateBack', errorMessage));\n });\n}\n\nexport function tabsNavigateToTabHelper(apiVersionTag: string, tabInstance: TabInstance): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!pages.tabs.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const errorMessage = 'Invalid internalTabInstanceId and/or channelId were/was provided';\n resolve(\n sendAndHandleStatusAndReasonWithDefaultErrorWithVersion(\n apiVersionTag,\n 'navigateToTab',\n errorMessage,\n tabInstance,\n ),\n );\n });\n}\n\nexport function returnFocusHelper(apiVersionTag: string, navigateForward?: boolean): void {\n ensureInitialized(runtime);\n if (!pages.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(apiVersionTag, 'returnFocus', [navigateForward]);\n}\n\nexport function getTabInstancesHelper(\n apiVersionTag: string,\n tabInstanceParameters?: TabInstanceParameters,\n): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!pages.tabs.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndUnwrapWithVersion(apiVersionTag, 'getTabInstances', tabInstanceParameters));\n });\n}\n\nexport function getMruTabInstancesHelper(\n apiVersionTag: string,\n tabInstanceParameters?: TabInstanceParameters,\n): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!pages.tabs.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndUnwrapWithVersion(apiVersionTag, 'getMruTabInstances', tabInstanceParameters));\n });\n}\n\nexport function shareDeepLinkHelper(apiVersionTag: string, deepLinkParameters: ShareDeepLinkParameters): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n if (!pages.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(apiVersionTag, 'shareDeepLink', [\n deepLinkParameters.subPageId,\n deepLinkParameters.subPageLabel,\n deepLinkParameters.subPageWebUrl,\n ]);\n}\n\nexport function setCurrentFrameHelper(apiVersionTag: string, frameInfo: FrameInfo): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!pages.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(apiVersionTag, 'setFrameContext', [frameInfo]);\n}\n\nexport function configSetValidityStateHelper(apiVersionTag: string, validityState: boolean): void {\n ensureInitialized(runtime, FrameContexts.settings, FrameContexts.remove);\n if (!pages.config.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(apiVersionTag, 'settings.setValidityState', [validityState]);\n}\n\nexport function getConfigHelper(apiVersionTag: string): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.sidePanel,\n );\n if (!pages.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndUnwrapWithVersion(apiVersionTag, 'settings.getSettings'));\n });\n}\n\nexport function configSetConfigHelper(apiVersionTag: string, instanceConfig: pages.InstanceConfig): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.settings, FrameContexts.sidePanel);\n if (!pages.config.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'settings.setSettings', instanceConfig));\n });\n}\n\n/**\n * Navigation-specific part of the SDK.\n */\nexport namespace pages {\n /** Callback function */\n export type handlerFunctionType = () => void;\n /** Full screen function */\n export type fullScreenChangeFunctionType = (isFullScreen: boolean) => void;\n /** Back button handler function */\n export type backButtonHandlerFunctionType = () => boolean;\n /** Save event function */\n export type saveEventType = (evt: pages.config.SaveEvent) => void;\n /** Remove event function */\n export type removeEventType = (evt: pages.config.RemoveEvent) => void;\n\n /**\n * Return focus to the host. Will move focus forward or backward based on where the application container falls in\n * the F6/tab order in the host.\n * On mobile hosts or hosts where there is no keyboard interaction or UI notion of \"focus\" this function has no\n * effect and will be a no-op when called.\n * @param navigateForward - Determines the direction to focus in host.\n */\n export function returnFocus(navigateForward?: boolean): void {\n returnFocusHelper(getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_ReturnFocus), navigateForward);\n }\n\n /**\n * @hidden\n *\n * Registers a handler for specifying focus when it passes from the host to the application.\n * On mobile hosts or hosts where there is no UI notion of \"focus\" the handler registered with\n * this function will never be called.\n *\n * @param handler - The handler for placing focus within the application.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerFocusEnterHandler(handler: (navigateForward: boolean) => void): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_RegisterFocusEnterHandler),\n 'focusEnter',\n handler,\n [],\n () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Sets/Updates the current frame with new information\n *\n * @param frameInfo - Frame information containing the URL used in the iframe on reload and the URL for when the\n * user clicks 'Go To Website'\n */\n export function setCurrentFrame(frameInfo: FrameInfo): void {\n setCurrentFrameHelper(getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_SetCurrentFrame), frameInfo);\n }\n\n /**\n * Initializes the library with context information for the frame\n *\n * @param frameInfo - Frame information containing the URL used in the iframe on reload and the URL for when the\n * user clicks 'Go To Website'\n * @param callback - An optional callback that is executed once the application has finished initialization.\n * @param validMessageOrigins - An optional list of cross-frame message origins. They must have\n * https: protocol otherwise they will be ignored. Example: https:www.example.com\n */\n export function initializeWithFrameContext(\n frameInfo: FrameInfo,\n callback?: handlerFunctionType,\n validMessageOrigins?: string[],\n ): void {\n app.initialize(validMessageOrigins).then(() => callback && callback());\n setCurrentFrame(frameInfo);\n }\n\n /**\n * Defines the configuration of the current or desired instance\n */\n export interface InstanceConfig {\n /**\n * A suggested display name for the new content.\n * In the settings for an existing instance being updated, this call has no effect.\n */\n suggestedDisplayName?: string;\n /**\n * Sets the URL to use for the content of this instance.\n */\n contentUrl: string;\n /**\n * Sets the URL for the removal configuration experience.\n */\n removeUrl?: string;\n /**\n * Sets the URL to use for the external link to view the underlying resource in a browser.\n */\n websiteUrl?: string;\n /**\n * The developer-defined unique ID for the entity to which this content points.\n */\n entityId?: string;\n }\n\n /**\n * Gets the config for the current instance.\n * @returns Promise that resolves with the {@link InstanceConfig} object.\n */\n export function getConfig(): Promise {\n return getConfigHelper(getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_GetConfig));\n }\n\n /**\n * Navigates the frame to a new cross-domain URL. The domain of this URL must match at least one of the\n * valid domains specified in the validDomains block of the manifest; otherwise, an exception will be\n * thrown. This function needs to be used only when navigating the frame to a URL in a different domain\n * than the current one in a way that keeps the application informed of the change and allows the SDK to\n * continue working.\n * @param url - The URL to navigate the frame to.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateCrossDomain(url: string): Promise {\n return navigateCrossDomainHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_NavigateCrossDomain),\n url,\n );\n }\n\n /**\n * Navigate to the given application ID and page ID, with optional parameters for a WebURL (if the application\n * cannot be navigated to, such as if it is not installed), Channel ID (for applications installed as a channel tab),\n * and sub-page ID (for navigating to specific content within the page). This is equivalent to navigating to\n * a deep link with the above data, but does not require the application to build a URL or worry about different\n * deep link formats for different hosts.\n * @param params - Parameters for the navigation\n * @returns a promise that will resolve if the navigation was successful\n */\n export function navigateToApp(params: NavigateToAppParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const apiVersionTag: string = getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_NavigateCrossDomain);\n if (runtime.isLegacyTeams) {\n resolve(sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'executeDeepLink', createTeamsAppLink(params)));\n } else {\n resolve(sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'pages.navigateToApp', params));\n }\n });\n }\n\n /**\n * Shares a deep link that a user can use to navigate back to a specific state in this page.\n * Please note that this method does not yet work on mobile hosts.\n *\n * @param deepLinkParameters - ID and label for the link and fallback URL.\n */\n export function shareDeepLink(deepLinkParameters: ShareDeepLinkParameters): void {\n return shareDeepLinkHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_ShareDeepLink),\n deepLinkParameters,\n );\n }\n\n /**\n * Registers a handler for changes from or to full-screen view for a tab.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * On hosts where there is no support for making an app full screen, the handler registered\n * with this function will never be called.\n * @param handler - The handler to invoke when the user toggles full-screen view for a tab.\n */\n export function registerFullScreenHandler(handler: fullScreenChangeFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_RegisterFullScreenHandler),\n 'fullScreenChange',\n handler,\n [],\n () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Checks if the pages capability is supported by the host\n * @returns boolean to represent whether the appEntity capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages ? true : false;\n }\n\n /**\n * Parameters for the NavigateToApp API\n */\n export interface NavigateToAppParams {\n /**\n * ID of the application to navigate to\n */\n appId: string;\n\n /**\n * Developer-defined ID of the Page to navigate to within the application (Formerly EntityID)\n */\n pageId: string;\n\n /**\n * Optional URL to open if the navigation cannot be completed within the host\n */\n webUrl?: string;\n\n /**\n * Optional developer-defined ID describing the content to navigate to within the Page. This will be passed\n * back to the application via the Context object.\n */\n subPageId?: string;\n\n /**\n * Optional ID of the Teams Channel where the application should be opened\n */\n channelId?: string;\n }\n\n /**\n * Provides APIs for querying and navigating between contextual tabs of an application. Unlike personal tabs,\n * contextual tabs are pages associated with a specific context, such as channel or chat.\n */\n export namespace tabs {\n /**\n * Navigates the hosted application to the specified tab instance.\n * @param tabInstance - The destination tab instance.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateToTab(tabInstance: TabInstance): Promise {\n return tabsNavigateToTabHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Tabs_NavigateToTab),\n tabInstance,\n );\n }\n /**\n * Retrieves application tabs for the current user.\n * If no TabInstanceParameters are passed, the application defaults to favorite teams and favorite channels.\n * @param tabInstanceParameters - An optional set of flags that specify whether to scope call to favorite teams or channels.\n * @returns Promise that resolves with the {@link TabInformation}. Contains information for the user's tabs that are owned by this application {@link TabInstance}.\n */\n export function getTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise {\n return getTabInstancesHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Tabs_GetTabInstances),\n tabInstanceParameters,\n );\n }\n\n /**\n * Retrieves the most recently used application tabs for the current user.\n * @param tabInstanceParameters - An optional set of flags. Note this is currently ignored and kept for future use.\n * @returns Promise that resolves with the {@link TabInformation}. Contains information for the users' most recently used tabs {@link TabInstance}.\n */\n export function getMruTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise {\n return getMruTabInstancesHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Tabs_GetMruTabInstances),\n tabInstanceParameters,\n );\n }\n\n /**\n * Checks if the pages.tab capability is supported by the host\n * @returns boolean to represent whether the pages.tab capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.tabs\n ? true\n : false\n : false;\n }\n }\n /**\n * Provides APIs to interact with the configuration-specific part of the SDK.\n * This object is usable only on the configuration frame.\n */\n export namespace config {\n let saveHandler: undefined | ((evt: SaveEvent) => void);\n let removeHandler: undefined | ((evt: RemoveEvent) => void);\n\n /**\n * @hidden\n * Hide from docs because this function is only used during initialization\n *\n * Adds register handlers for settings.save and settings.remove upon initialization. Function is called in {@link app.initializeHelper}\n * @internal\n * Limited to Microsoft-internal use\n */\n export function initialize(): void {\n registerHandler('settings.save', handleSave, false);\n registerHandler('settings.remove', handleRemove, false);\n }\n\n /**\n * Sets the validity state for the configuration.\n * The initial value is false, so the user cannot save the configuration until this is called with true.\n * @param validityState - Indicates whether the save or remove button is enabled for the user.\n */\n export function setValidityState(validityState: boolean): void {\n return configSetValidityStateHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Config_SetValidityState),\n validityState,\n );\n }\n\n /**\n * Sets the configuration for the current instance.\n * This is an asynchronous operation; calls to getConfig are not guaranteed to reflect the changed state.\n * @param instanceConfig - The desired configuration for this instance.\n * @returns Promise that resolves when the operation has completed.\n */\n export function setConfig(instanceConfig: InstanceConfig): Promise {\n return configSetConfigHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Config_SetConfig),\n instanceConfig,\n );\n }\n\n /**\n * Registers a handler for when the user attempts to save the configuration. This handler should be used\n * to create or update the underlying resource powering the content.\n * The object passed to the handler must be used to notify whether to proceed with the save.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when the user selects the Save button.\n */\n export function registerOnSaveHandler(handler: saveEventType): void {\n registerOnSaveHandlerHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Config_RegisterOnSaveHandler),\n handler,\n () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnSaveHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param apiVersionTag - The API version tag, which is used for telemetry, composed by API version number and source API name.\n * @param handler - The handler to invoke when the user selects the Save button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerOnSaveHandlerHelper(\n apiVersionTag: string,\n handler: (evt: SaveEvent) => void,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime, FrameContexts.settings);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n saveHandler = handler;\n !isNullOrUndefined(handler) && sendMessageToParentWithVersion(apiVersionTag, 'registerHandler', ['save']);\n }\n\n /**\n * Registers a handler for user attempts to remove content. This handler should be used\n * to remove the underlying resource powering the content.\n * The object passed to the handler must be used to indicate whether to proceed with the removal.\n * Only one handler may be registered at a time. Subsequent registrations will override the first.\n * @param handler - The handler to invoke when the user selects the Remove button.\n */\n export function registerOnRemoveHandler(handler: removeEventType): void {\n registerOnRemoveHandlerHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Config_RegisterOnRemoveHandler),\n handler,\n () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnRemoveHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param apiVersionTag - The API version tag, which is used for telemetry, composed by API version number and source API name.\n * @param handler - The handler to invoke when the user selects the Remove button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerOnRemoveHandlerHelper(\n apiVersionTag: string,\n handler: (evt: RemoveEvent) => void,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime, FrameContexts.remove, FrameContexts.settings);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n removeHandler = handler;\n !isNullOrUndefined(handler) && sendMessageToParentWithVersion(apiVersionTag, 'registerHandler', ['remove']);\n }\n\n function handleSave(result?: SaveParameters): void {\n const saveEventType = new SaveEventImpl(result);\n if (saveHandler) {\n saveHandler(saveEventType);\n } else if (Communication.childWindow) {\n sendMessageEventToChild('settings.save', [result]);\n } else {\n // If no handler is registered, we assume success.\n saveEventType.notifySuccess();\n }\n }\n\n /**\n * Registers a handler for when the tab configuration is changed by the user\n * @param handler - The handler to invoke when the user clicks on Settings.\n */\n export function registerChangeConfigHandler(handler: handlerFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_Config_RegisterChangeConfigHandler),\n 'changeSettings',\n handler,\n [FrameContexts.content],\n () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Describes the results of the settings.save event. Includes result, notifySuccess, and notifyFailure\n * to indicate the return object (result) and the status of whether the settings.save call succeeded or not and why.\n */\n export interface SaveEvent {\n /**\n * Object containing properties passed as arguments to the settings.save event.\n */\n result: SaveParameters;\n /**\n * Indicates that the underlying resource has been created and the config can be saved.\n */\n notifySuccess(): void;\n /**\n * Indicates that creation of the underlying resource failed and that the config cannot be saved.\n * @param reason - Specifies a reason for the failure. If provided, this string is displayed to the user; otherwise a generic error is displayed.\n */\n notifyFailure(reason?: string): void;\n }\n\n /**\n * Describes the results of the settings.remove event. Includes notifySuccess, and notifyFailure\n * to indicate the status of whether the settings.save call succeeded or not and why.\n */\n export interface RemoveEvent {\n /**\n * Indicates that the underlying resource has been removed and the content can be removed.\n */\n notifySuccess(): void;\n /**\n * Indicates that removal of the underlying resource failed and that the content cannot be removed.\n * @param reason - Specifies a reason for the failure. If provided, this string is displayed to the user; otherwise a generic error is displayed.\n */\n notifyFailure(reason?: string): void;\n }\n\n /**\n * Parameters used in the settings.save event\n */\n export interface SaveParameters {\n /**\n * Connector's webhook Url returned as arguments to settings.save event as part of user clicking on Save\n */\n webhookUrl?: string;\n }\n\n /**\n * @hidden\n * Hide from docs, since this class is not directly used.\n */\n class SaveEventImpl implements SaveEvent {\n public notified = false;\n public result: SaveParameters;\n public constructor(result?: SaveParameters) {\n this.result = result ? result : {};\n }\n public notifySuccess(): void {\n this.ensureNotNotified();\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_SaveEvent_NotifySuccess),\n 'settings.save.success',\n );\n this.notified = true;\n }\n public notifyFailure(reason?: string): void {\n this.ensureNotNotified();\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_SaveEvent_NotifyFailure),\n 'settings.save.failure',\n [reason],\n );\n this.notified = true;\n }\n private ensureNotNotified(): void {\n if (this.notified) {\n throw new Error('The SaveEvent may only notify success or failure once.');\n }\n }\n }\n\n function handleRemove(): void {\n const removeEventType = new RemoveEventImpl();\n if (removeHandler) {\n removeHandler(removeEventType);\n } else if (Communication.childWindow) {\n sendMessageEventToChild('settings.remove', []);\n } else {\n // If no handler is registered, we assume success.\n removeEventType.notifySuccess();\n }\n }\n\n /**\n * @hidden\n * Hide from docs, since this class is not directly used.\n */\n class RemoveEventImpl implements RemoveEvent {\n public notified = false;\n\n public notifySuccess(): void {\n this.ensureNotNotified();\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_RemoveEvent_NotifySuccess),\n 'settings.remove.success',\n );\n this.notified = true;\n }\n\n public notifyFailure(reason?: string): void {\n this.ensureNotNotified();\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_RemoveEvent_NotifyFailure),\n 'settings.remove.failure',\n [reason],\n );\n this.notified = true;\n }\n\n private ensureNotNotified(): void {\n if (this.notified) {\n throw new Error('The removeEventType may only notify success or failure once.');\n }\n }\n }\n\n /**\n * Checks if the pages.config capability is supported by the host\n * @returns boolean to represent whether the pages.config capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.config\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides APIs for handling the user's navigational history.\n */\n export namespace backStack {\n let backButtonPressHandler: (() => boolean) | undefined;\n\n /**\n * @hidden\n * Register backButtonPress handler.\n *\n * @internal\n * Limited to Microsoft-internal use.\n */\n export function _initialize(): void {\n registerHandler('backButtonPress', handleBackButtonPress, false);\n }\n\n /**\n * Navigates back in the hosted application. See {@link pages.backStack.registerBackButtonHandler} for notes on usage.\n * @returns Promise that resolves when the navigation has completed.\n */\n export function navigateBack(): Promise {\n return backStackNavigateBackHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_BackStack_NavigateBack),\n );\n }\n\n /**\n * Registers a handler for user presses of the host client's back button. Experiences that maintain an internal\n * navigation stack should use this handler to navigate the user back within their frame. If an application finds\n * that after running its back button handler it cannot handle the event it should call the navigateBack\n * method to ask the host client to handle it instead.\n * @param handler - The handler to invoke when the user presses the host client's back button.\n */\n export function registerBackButtonHandler(handler: backButtonHandlerFunctionType): void {\n registerBackButtonHandlerHelper(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_BackStack_RegisterBackButtonHandler),\n handler,\n () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerBackButtonHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n * @param apiVersionTag - The tag indicating API version number with name\n * @param handler - The handler to invoke when the user presses the host client's back button.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n */\n export function registerBackButtonHandlerHelper(\n apiVersionTag: string,\n handler: () => boolean,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime);\n if (versionSpecificHelper) {\n versionSpecificHelper();\n }\n backButtonPressHandler = handler;\n !isNullOrUndefined(handler) && sendMessageToParentWithVersion(apiVersionTag, 'registerHandler', ['backButton']);\n }\n\n function handleBackButtonPress(): void {\n if (!backButtonPressHandler || !backButtonPressHandler()) {\n if (Communication.childWindow) {\n // If the current window did not handle it let the child window\n sendMessageEventToChild('backButtonPress', []);\n } else {\n navigateBack();\n }\n }\n }\n\n /**\n * Checks if the pages.backStack capability is supported by the host\n * @returns boolean to represent whether the pages.backStack capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.backStack\n ? true\n : false\n : false;\n }\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Provides APIs to interact with the full-trust part of the SDK. Limited to 1P applications\n * @internal\n * Limited to Microsoft-internal use\n */\n export namespace fullTrust {\n /**\n * @hidden\n * Hide from docs\n * ------\n * Place the tab into full-screen mode.\n *\n */\n export function enterFullscreen(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_FullTrust_EnterFullscreen),\n 'enterFullscreen',\n [],\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Reverts the tab into normal-screen mode.\n */\n export function exitFullscreen(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_FullTrust_ExitFullscreen),\n 'exitFullscreen',\n [],\n );\n }\n /**\n * @hidden\n *\n * Checks if the pages.fullTrust capability is supported by the host\n * @returns boolean to represent whether the pages.fullTrust capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.fullTrust\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides APIs to interact with the app button part of the SDK.\n */\n export namespace appButton {\n /**\n * Registers a handler for clicking the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when the personal app button is clicked in the app bar.\n */\n export function onClick(handler: handlerFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_AppButton_OnClick),\n 'appButtonClick',\n handler,\n [FrameContexts.content],\n () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Registers a handler for entering hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when entering hover of the personal app button in the app bar.\n */\n export function onHoverEnter(handler: handlerFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_AppButton_OnHoverEnter),\n 'appButtonHoverEnter',\n handler,\n [FrameContexts.content],\n () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Registers a handler for exiting hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when exiting hover of the personal app button in the app bar.\n */\n export function onHoverLeave(handler: handlerFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_AppButton_OnHoverLeave),\n 'appButtonHoverLeave',\n handler,\n [FrameContexts.content],\n () => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n },\n );\n }\n\n /**\n * Checks if pages.appButton capability is supported by the host\n * @returns boolean to represent whether the pages.appButton capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.appButton\n ? true\n : false\n : false;\n }\n }\n\n /**\n * Provides functions for navigating without needing to specify your application ID.\n *\n * @beta\n */\n export namespace currentApp {\n /**\n * Parameters for the NavigateWithinApp\n *\n * @beta\n */\n export interface NavigateWithinAppParams {\n /**\n * The developer-defined unique ID for the page defined in the manifest or when first configuring\n * the page. (Known as {@linkcode Context.entityId} prior to TeamsJS v.2.0.0)\n */\n pageId: string;\n\n /**\n * Optional developer-defined unique ID describing the content to navigate to within the page. This\n * can be retrieved from the Context object {@link app.PageInfo.subPageId | app.Context.page.subPageId}\n */\n subPageId?: string;\n }\n\n /**\n * Navigate within the currently running application with page ID, and sub-page ID (for navigating to\n * specific content within the page).\n * @param params - Parameters for the navigation\n * @returns a promise that will resolve if the navigation was successful\n *\n * @beta\n */\n export function navigateTo(params: NavigateWithinAppParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_CurrentApp_NavigateTo),\n 'pages.currentApp.navigateTo',\n params,\n ),\n );\n });\n }\n\n /**\n * Navigate to the currently running application's first static page defined in the application\n * manifest.\n * @beta\n */\n export function navigateToDefaultPage(): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(pagesTelemetryVersionNumber, ApiName.Pages_CurrentApp_NavigateToDefaultPage),\n 'pages.currentApp.navigateToDefaultPage',\n ),\n );\n });\n }\n\n /**\n * Checks if pages.currentApp capability is supported by the host\n * @returns boolean to represent whether the pages.currentApp capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.pages\n ? runtime.supports.pages.currentApp\n ? true\n : false\n : false;\n }\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts, LoadContext } from '../public';\nimport { ResumeContext } from '../public/interfaces';\nimport { pages } from '../public/pages';\nimport { runtime } from '../public/runtime';\nimport {\n Communication,\n sendMessageEventToChild,\n sendMessageToParent,\n sendMessageToParentWithVersion,\n} from './communication';\nimport { ensureInitialized } from './internalAPIs';\nimport { getLogger } from './telemetry';\nimport { isNullOrUndefined } from './typeCheckUtilities';\n\nconst handlersLogger = getLogger('handlers');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nclass HandlersPrivate {\n public static handlers: {\n [func: string]: Function;\n } = {};\n public static themeChangeHandler: null | ((theme: string) => void) = null;\n /**\n * @deprecated\n */\n public static loadHandler: null | ((context: LoadContext) => void) = null;\n /**\n * @deprecated\n */\n public static beforeUnloadHandler: null | ((readyToUnload: () => void) => boolean) = null;\n public static beforeSuspendOrTerminateHandler: null | (() => void) = null;\n public static resumeHandler: null | ((context: ResumeContext) => void) = null;\n\n /**\n * @internal\n * Limited to Microsoft-internal use\n * Initializes the handlers.\n */\n public static initializeHandlers(): void {\n // ::::::::::::::::::::MicrosoftTeams SDK Internal :::::::::::::::::\n HandlersPrivate.handlers['themeChange'] = handleThemeChange;\n HandlersPrivate.handlers['load'] = handleLoad;\n HandlersPrivate.handlers['beforeUnload'] = handleBeforeUnload;\n pages.backStack._initialize();\n }\n\n /**\n * @internal\n * Limited to Microsoft-internal use\n * Uninitializes the handlers.\n */\n public static uninitializeHandlers(): void {\n HandlersPrivate.handlers = {};\n HandlersPrivate.themeChangeHandler = null;\n HandlersPrivate.loadHandler = null;\n HandlersPrivate.beforeUnloadHandler = null;\n HandlersPrivate.beforeSuspendOrTerminateHandler = null;\n HandlersPrivate.resumeHandler = null;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function initializeHandlers(): void {\n HandlersPrivate.initializeHandlers();\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function uninitializeHandlers(): void {\n HandlersPrivate.uninitializeHandlers();\n}\nconst callHandlerLogger = handlersLogger.extend('callHandler');\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function callHandler(name: string, args?: unknown[]): [true, unknown] | [false, undefined] {\n const handler = HandlersPrivate.handlers[name];\n if (handler) {\n callHandlerLogger('Invoking the registered handler for message %s with arguments %o', name, args);\n const result = handler.apply(this, args);\n return [true, result];\n } else if (Communication.childWindow) {\n sendMessageEventToChild(name, args);\n return [false, undefined];\n } else {\n callHandlerLogger('Handler for action message %s not found.', name);\n return [false, undefined];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerHandlerWithVersion(\n getApiVersionTag: string,\n name: string,\n handler: Function,\n sendMessage = true,\n args: unknown[] = [],\n): void {\n if (handler) {\n HandlersPrivate.handlers[name] = handler;\n sendMessage && sendMessageToParentWithVersion(getApiVersionTag, 'registerHandler', [name, ...args]);\n } else {\n delete HandlersPrivate.handlers[name];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerHandler(name: string, handler: Function, sendMessage = true, args: unknown[] = []): void {\n if (handler) {\n HandlersPrivate.handlers[name] = handler;\n sendMessage &&\n sendMessageToParentWithVersion(\n getApiVersionTag(ApiVersionNumber.V_0, ApiName.RegisterHandler),\n 'registerHandler',\n [name, ...args],\n );\n } else {\n delete HandlersPrivate.handlers[name];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function removeHandler(name: string): void {\n delete HandlersPrivate.handlers[name];\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function doesHandlerExist(name: string): boolean {\n return HandlersPrivate.handlers[name] != null;\n}\n\n/**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of register*Handler APIs\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param apiVersionTag - The tag to indicate API version number with name\n * @param name - The name of the handler to register.\n * @param handler - The handler to invoke.\n * @param contexts - The context within which it is valid to register this handler.\n * @param registrationHelper - The helper function containing logic pertaining to a specific version of the API.\n */\nexport function registerHandlerHelperWithVersion(\n apiVersionTag: string,\n name: string,\n handler: Function,\n contexts: FrameContexts[],\n registrationHelper?: () => void,\n): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime, ...contexts);\n if (registrationHelper) {\n registrationHelper();\n }\n\n registerHandler(name, handler);\n}\n\n/**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of register*Handler APIs\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param name - The name of the handler to register.\n * @param handler - The handler to invoke.\n * @param contexts - The context within which it is valid to register this handler.\n * @param registrationHelper - The helper function containing logic pertaining to a specific version of the API.\n */\nexport function registerHandlerHelper(\n name: string,\n handler: Function,\n contexts: FrameContexts[],\n registrationHelper?: () => void,\n): void {\n // allow for registration cleanup even when not finished initializing\n handler && ensureInitialized(runtime, ...contexts);\n if (registrationHelper) {\n registrationHelper();\n }\n\n registerHandler(name, handler);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerOnThemeChangeHandler(apiVersionTag: string, handler: (theme: string) => void): void {\n HandlersPrivate.themeChangeHandler = handler;\n !isNullOrUndefined(handler) && sendMessageToParentWithVersion(apiVersionTag, 'registerHandler', ['themeChange']);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function handleThemeChange(theme: string): void {\n if (HandlersPrivate.themeChangeHandler) {\n HandlersPrivate.themeChangeHandler(theme);\n }\n\n if (Communication.childWindow) {\n sendMessageEventToChild('themeChange', [theme]);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * @deprecated\n */\nexport function registerOnLoadHandler(handler: (context: LoadContext) => void): void {\n HandlersPrivate.loadHandler = handler;\n !isNullOrUndefined(handler) &&\n sendMessageToParentWithVersion(getApiVersionTag(ApiVersionNumber.V_2, ApiName.RegisterHandler), 'registerHandler', [\n 'load',\n ]);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleLoad(context: LoadContext): void {\n if (HandlersPrivate.resumeHandler) {\n HandlersPrivate.resumeHandler(context);\n } else if (HandlersPrivate.loadHandler) {\n HandlersPrivate.loadHandler(context);\n }\n\n if (Communication.childWindow) {\n sendMessageEventToChild('load', [context]);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * @deprecated\n */\nexport function registerBeforeUnloadHandler(handler: (readyToUnload: () => void) => boolean): void {\n HandlersPrivate.beforeUnloadHandler = handler;\n !isNullOrUndefined(handler) &&\n sendMessageToParentWithVersion(getApiVersionTag(ApiVersionNumber.V_2, ApiName.RegisterHandler), 'registerHandler', [\n 'beforeUnload',\n ]);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleBeforeUnload(): void {\n const readyToUnload = (): void => {\n sendMessageToParent('readyToUnload', []);\n };\n\n if (HandlersPrivate.beforeSuspendOrTerminateHandler) {\n HandlersPrivate.beforeSuspendOrTerminateHandler();\n if (Communication.childWindow) {\n sendMessageEventToChild('beforeUnload');\n } else {\n readyToUnload();\n }\n } else if (!HandlersPrivate.beforeUnloadHandler || !HandlersPrivate.beforeUnloadHandler(readyToUnload)) {\n if (Communication.childWindow) {\n sendMessageEventToChild('beforeUnload');\n } else {\n readyToUnload();\n }\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerBeforeSuspendOrTerminateHandler(handler: () => void): void {\n HandlersPrivate.beforeSuspendOrTerminateHandler = handler;\n !isNullOrUndefined(handler) &&\n sendMessageToParentWithVersion(\n getApiVersionTag(ApiVersionNumber.V_2, ApiName.RegisterBeforeUnloadHandler),\n 'registerHandler',\n ['beforeUnload'],\n );\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerOnResumeHandler(handler: (context: LoadContext) => void): void {\n HandlersPrivate.resumeHandler = handler;\n !isNullOrUndefined(handler) &&\n sendMessageToParentWithVersion(\n getApiVersionTag(ApiVersionNumber.V_2, ApiName.RegisterLoadHandler),\n 'registerHandler',\n ['load'],\n );\n}\n","import { GlobalVars } from './globalVars';\nimport { MessageRequestWithRequiredProperties } from './messageObjects';\nimport { getLogger } from './telemetry';\n\nconst nestedAppAuthLogger = getLogger('nestedAppAuth');\nconst tryPolyfillWithNestedAppAuthBridgeLogger = nestedAppAuthLogger.extend('tryPolyfillWithNestedAppAuthBridge');\n\n/**\n * @hidden\n * Enumeration for nested app authentication message event names.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @enum {string}\n *\n * @property {string} Request - Event name for a nested app authentication request.\n * @property {string} Response - Event name for a nested app authentication response.\n */\nexport enum NestedAppAuthMessageEventNames {\n Request = 'NestedAppAuthRequest',\n Response = 'NestedAppAuthResponse',\n}\n\n/**\n * @hidden\n * Interface for a nested app authentication request.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @interface\n * @extends {MessageRequest}\n *\n * @property {string} func - The function name, should always be 'nestedAppAuthRequest'.\n * @property {string} data - data associated with the request, represented as a string.\n */\nexport interface NestedAppAuthRequest extends MessageRequestWithRequiredProperties {\n func: 'nestedAppAuth.execute';\n data: string;\n}\n\n/**\n * @hidden\n * Interface for parsed data from a nested app authentication message.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @interface\n * @property {NestedAppAuthMessageEventNames} messageType - The type of the nested app authentication message event.\n */\nexport interface ParsedNestedAppAuthMessageData {\n messageType: NestedAppAuthMessageEventNames;\n}\n\n/**\n * @hidden\n * Interface for a nested app authentication bridge.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @interface\n *\n * @property {Function} addEventListener - Function to add an event listener to the bridge. Takes an event name and a callback function as parameters.\n * @property {Function} postMessage - Function to post a message to the bridge. Takes a message string as a parameter.\n * @property {Function} removeEventListener - Function to remove an event listener from the bridge. Takes an event name and a callback function as parameters.\n */\nexport interface NestedAppAuthBridge {\n addEventListener: (eventName: string, callback: (response: string) => void) => void;\n postMessage: (message: string) => void;\n removeEventListener: (eventName: string, callback: (response: string) => void) => void;\n}\n\n/**\n * @hidden\n * Interface for a Window object extended with a nested app authentication bridge.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @interface\n * @extends {Window}\n *\n * @property {NestedAppAuthBridge} nestedAppAuthBridge - The nested app authentication bridge associated with the window.\n */\nexport interface NestedAuthExtendedWindow extends Window {\n nestedAppAuthBridge: NestedAppAuthBridge;\n}\n\n/**\n * @hidden\n * Type for handlers in a nested app authentication bridge.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @typedef {Object} NestedAppAuthBridgeHandlers\n *\n * @property {Function} onMessage - Function to handle a message event. Takes a MessageEvent object and a callback function as parameters. The callback function is called when a message is received.\n * @property {Function} handlePostMessage - Function to handle posting a message. Takes a message string as a parameter.\n */\ntype NestedAppAuthBridgeHandlers = {\n onMessage: (evt: MessageEvent, onMessageReceived: (response: string) => void) => void;\n sendPostMessage: (message: string) => void;\n};\n\n/**\n * @hidden\n * Attempt to polyfill the nestedAppAuthBridge object on the given window\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function tryPolyfillWithNestedAppAuthBridge(\n clientSupportedSDKVersion: string,\n window: Window | null,\n handlers: NestedAppAuthBridgeHandlers,\n): void {\n const logger = tryPolyfillWithNestedAppAuthBridgeLogger;\n\n if (GlobalVars.isFramelessWindow) {\n logger('Cannot polyfill nestedAppAuthBridge as current window is frameless');\n return;\n }\n\n if (!window) {\n logger('Cannot polyfill nestedAppAuthBridge as current window does not exist');\n return;\n }\n\n const parsedClientSupportedSDKVersion = (() => {\n try {\n return JSON.parse(clientSupportedSDKVersion);\n } catch (e) {\n return null;\n }\n })();\n\n if (!parsedClientSupportedSDKVersion || !parsedClientSupportedSDKVersion.supports?.nestedAppAuth) {\n logger('Cannot polyfill nestedAppAuthBridge as current hub does not support nested app auth');\n return;\n }\n\n const extendedWindow = window as unknown as NestedAuthExtendedWindow;\n if (extendedWindow.nestedAppAuthBridge) {\n logger('nestedAppAuthBridge already exists on current window, skipping polyfill');\n return;\n }\n\n const nestedAppAuthBridge = createNestedAppAuthBridge(extendedWindow, handlers);\n if (nestedAppAuthBridge) {\n extendedWindow.nestedAppAuthBridge = nestedAppAuthBridge;\n }\n}\n\nconst createNestedAppAuthBridgeLogger = nestedAppAuthLogger.extend('createNestedAppAuthBridge');\n\n/**\n * @hidden\n * Creates a bridge for nested app authentication.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param {Window | null} window - The window object where the nested app authentication bridge will be created. If null, the function will log an error message and return null.\n * @returns {NestedAppAuthBridge | null} Returns an object with methods for adding and removing event listeners, and posting messages. If the provided window is null, returns null.\n *\n * @property {Function} addEventListener - Adds an event listener to the window. Only supports the 'message' event. If an unsupported event is passed, logs an error message.\n * @property {Function} postMessage - Posts a message to the window. The message should be a stringified JSON object with a messageType of 'NestedAppAuthRequest'. If the message does not meet these criteria, logs an error message.\n * @property {Function} removeEventListener - Removes an event listener from the window.\n */\nfunction createNestedAppAuthBridge(\n window: Window | null,\n bridgeHandlers: NestedAppAuthBridgeHandlers,\n): NestedAppAuthBridge | null {\n const logger = createNestedAppAuthBridgeLogger;\n\n if (!window) {\n logger('nestedAppAuthBridge cannot be created as current window does not exist');\n return null;\n }\n\n const { onMessage, sendPostMessage } = bridgeHandlers;\n const nestedAppAuthBridgeHandler = (callback: (response: string) => void) => (evt: MessageEvent) =>\n onMessage(evt, callback);\n\n return {\n addEventListener: (eventName, callback): void => {\n if (eventName === 'message') {\n window.addEventListener(eventName, nestedAppAuthBridgeHandler(callback));\n } else {\n logger(`Event ${eventName} is not supported by nestedAppAuthBridge`);\n }\n },\n postMessage: (message: string): void => {\n // Validate that it is a valid auth bridge request message\n const parsedMessage = (() => {\n try {\n return JSON.parse(message);\n } catch (e) {\n return null;\n }\n })();\n\n if (\n !parsedMessage ||\n typeof parsedMessage !== 'object' ||\n parsedMessage.messageType !== NestedAppAuthMessageEventNames.Request\n ) {\n logger('Unrecognized data format received by app, message being ignored. Message: %o', message);\n return;\n }\n\n // Post the message to the top window\n sendPostMessage(message);\n },\n removeEventListener: (eventName: string, callback): void => {\n window.removeEventListener(eventName, nestedAppAuthBridgeHandler(callback));\n },\n };\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable strict-null-checks/all */\n\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from '../public/constants';\nimport { SdkError } from '../public/interfaces';\nimport { latestRuntimeApiVersion } from '../public/runtime';\nimport { version } from '../public/version';\nimport { GlobalVars } from './globalVars';\nimport { callHandler } from './handlers';\nimport { DOMMessageEvent, ExtendedWindow } from './interfaces';\nimport { MessageRequest, MessageRequestWithRequiredProperties, MessageResponse } from './messageObjects';\nimport {\n NestedAppAuthMessageEventNames,\n NestedAppAuthRequest,\n ParsedNestedAppAuthMessageData,\n tryPolyfillWithNestedAppAuthBridge,\n} from './nestedAppAuth';\nimport { getLogger, isFollowingApiVersionTagFormat } from './telemetry';\nimport { ssrSafeWindow } from './utils';\nimport { validateOrigin } from './validOrigins';\n\nconst communicationLogger = getLogger('communication');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport class Communication {\n public static currentWindow: Window | any;\n public static parentOrigin: string | null;\n public static parentWindow: Window | any;\n public static childWindow: Window | null;\n public static childOrigin: string | null;\n public static topWindow: Window | any;\n public static topOrigin: string | null;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nclass CommunicationPrivate {\n public static parentMessageQueue: MessageRequest[] = [];\n public static childMessageQueue: MessageRequest[] = [];\n public static topMessageQueue: MessageRequest[] = [];\n public static nextMessageId = 0;\n public static callbacks: {\n [id: number]: Function; // (arg1, arg2, ...etc) => void\n } = {};\n public static promiseCallbacks: {\n [id: number]: Function; // (args[]) => void\n } = {};\n public static portCallbacks: {\n [id: number]: (port?: MessagePort, args?: unknown[]) => void;\n } = {};\n public static messageListener: Function;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\ninterface InitializeResponse {\n context: FrameContexts;\n clientType: string;\n runtimeConfig: string;\n clientSupportedSDKVersion: string;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function initializeCommunication(\n validMessageOrigins: string[] | undefined,\n apiVersionTag: string,\n): Promise {\n // Listen for messages post to our window\n CommunicationPrivate.messageListener = async (evt: DOMMessageEvent): Promise => await processMessage(evt);\n\n // If we are in an iframe, our parent window is the one hosting us (i.e., window.parent); otherwise,\n // it's the window that opened us (i.e., window.opener)\n Communication.currentWindow = Communication.currentWindow || ssrSafeWindow();\n Communication.parentWindow =\n Communication.currentWindow.parent !== Communication.currentWindow.self\n ? Communication.currentWindow.parent\n : Communication.currentWindow.opener;\n Communication.topWindow = Communication.currentWindow.top;\n\n // Listen to messages from the parent or child frame.\n // Frameless windows will only receive this event from child frames and if validMessageOrigins is passed.\n if (Communication.parentWindow || validMessageOrigins) {\n Communication.currentWindow.addEventListener('message', CommunicationPrivate.messageListener, false);\n }\n\n if (!Communication.parentWindow) {\n const extendedWindow = Communication.currentWindow as unknown as ExtendedWindow;\n if (extendedWindow.nativeInterface) {\n GlobalVars.isFramelessWindow = true;\n extendedWindow.onNativeMessage = handleParentMessage;\n } else {\n // at this point we weren't able to find a parent to talk to, no way initialization will succeed\n return Promise.reject(new Error('Initialization Failed. No Parent window found.'));\n }\n }\n\n try {\n // Send the initialized message to any origin, because at this point we most likely don't know the origin\n // of the parent window, and this message contains no data that could pose a security risk.\n Communication.parentOrigin = '*';\n return sendMessageToParentAsyncWithVersion<[FrameContexts, string, string, string]>(apiVersionTag, 'initialize', [\n version,\n latestRuntimeApiVersion,\n ]).then(\n ([context, clientType, runtimeConfig, clientSupportedSDKVersion]: [FrameContexts, string, string, string]) => {\n tryPolyfillWithNestedAppAuthBridge(clientSupportedSDKVersion, Communication.currentWindow, {\n onMessage: processAuthBridgeMessage,\n sendPostMessage: sendNestedAuthRequestToTopWindow,\n });\n return { context, clientType, runtimeConfig, clientSupportedSDKVersion };\n },\n );\n } finally {\n Communication.parentOrigin = null;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function uninitializeCommunication(): void {\n if (Communication.currentWindow) {\n Communication.currentWindow.removeEventListener('message', CommunicationPrivate.messageListener, false);\n }\n\n Communication.currentWindow = null;\n Communication.parentWindow = null;\n Communication.parentOrigin = null;\n Communication.childWindow = null;\n Communication.childOrigin = null;\n CommunicationPrivate.parentMessageQueue = [];\n CommunicationPrivate.childMessageQueue = [];\n CommunicationPrivate.nextMessageId = 0;\n CommunicationPrivate.callbacks = {};\n CommunicationPrivate.promiseCallbacks = {};\n CommunicationPrivate.portCallbacks = {};\n}\n\n/**\n * @hidden\n * Send a message to parent and then unwrap result. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendAndUnwrap function\n * and this function will be removed when the project is completed.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndUnwrapWithVersion(apiVersionTag: string, actionName: string, ...args: any[]): Promise {\n return sendMessageToParentAsyncWithVersion(apiVersionTag, actionName, args).then(([result]: [T]) => result);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndUnwrap(actionName: string, ...args: any[]): Promise {\n return sendMessageToParentAsync(actionName, args).then(([result]: [T]) => result);\n}\n\n/**\n * @hidden\n * Send a message to parent and then handle status and reason. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendAndHandleStatusAndReason function\n * and this function will be removed when the project is completed.\n */\nexport function sendAndHandleStatusAndReasonWithVersion(\n apiVersionTag: string,\n actionName: string,\n ...args: any[]\n): Promise {\n return sendMessageToParentAsyncWithVersion(apiVersionTag, actionName, args).then(\n ([wasSuccessful, reason]: [boolean, string]) => {\n if (!wasSuccessful) {\n throw new Error(reason);\n }\n },\n );\n}\n\nexport function sendAndHandleStatusAndReason(actionName: string, ...args: any[]): Promise {\n return sendMessageToParentAsync(actionName, args).then(([wasSuccessful, reason]: [boolean, string]) => {\n if (!wasSuccessful) {\n throw new Error(reason);\n }\n });\n}\n\n/**\n * @hidden\n * Send a message to parent and then handle status and reason with default error. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendAndHandleStatusAndReasonWithDefaultError function\n * and this function will be removed when the project is completed.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleStatusAndReasonWithDefaultErrorWithVersion(\n apiVersionTag: string,\n actionName: string,\n defaultError: string,\n ...args: any[]\n): Promise {\n return sendMessageToParentAsyncWithVersion(apiVersionTag, actionName, args).then(\n ([wasSuccessful, reason]: [boolean, string]) => {\n if (!wasSuccessful) {\n throw new Error(reason ? reason : defaultError);\n }\n },\n );\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleStatusAndReasonWithDefaultError(\n actionName: string,\n defaultError: string,\n ...args: any[]\n): Promise {\n return sendMessageToParentAsync(actionName, args).then(([wasSuccessful, reason]: [boolean, string]) => {\n if (!wasSuccessful) {\n throw new Error(reason ? reason : defaultError);\n }\n });\n}\n\n/**\n * @hidden\n * Send a message to parent and then handle SDK error. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendAndHandleSdkError function\n * and this function will be removed when the project is completed.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleSdkErrorWithVersion(\n apiVersionTag: string,\n actionName: string,\n ...args: any[]\n): Promise {\n return sendMessageToParentAsyncWithVersion(apiVersionTag, actionName, args).then(([error, result]: [SdkError, T]) => {\n if (error) {\n throw error;\n }\n return result;\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendAndHandleSdkError(actionName: string, ...args: any[]): Promise {\n return sendMessageToParentAsync(actionName, args).then(([error, result]: [SdkError, T]) => {\n if (error) {\n throw error;\n }\n return result;\n });\n}\n\n/**\n * @hidden\n * Send a message to parent asynchronously. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendMessageToParentAsync function\n * and this function will be removed when the project is completed.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParentAsyncWithVersion(\n apiVersionTag: string,\n actionName: string,\n args: any[] | undefined = undefined,\n): Promise {\n if (!isFollowingApiVersionTagFormat(apiVersionTag)) {\n throw Error(\n `apiVersionTag: ${apiVersionTag} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`,\n );\n }\n\n return new Promise((resolve) => {\n const request = sendMessageToParentHelper(apiVersionTag, actionName, args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n resolve(waitForResponse(request.id));\n });\n}\n\n/**\n * @hidden\n * Send a message to parent. Uses nativeInterface on mobile to communicate with parent context\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParentAsync(actionName: string, args: any[] | undefined = undefined): Promise {\n return new Promise((resolve) => {\n const request = sendMessageToParentHelper(\n getApiVersionTag(ApiVersionNumber.V_0, 'testing' as ApiName),\n actionName,\n args,\n );\n resolve(waitForResponse(request.id));\n });\n}\n\n/**\n * @hidden\n * Send a message to parent requesting a MessageChannel Port.\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function requestPortFromParentWithVersion(\n apiVersionTag: string,\n actionName: string,\n args: any[] | undefined = undefined,\n): Promise {\n if (!isFollowingApiVersionTagFormat(apiVersionTag)) {\n throw Error(\n `apiVersionTag: ${apiVersionTag} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`,\n );\n }\n const request = sendMessageToParentHelper(apiVersionTag, actionName, args);\n return waitForPort(request.id);\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction waitForPort(requestId: number): Promise {\n return new Promise((resolve, reject) => {\n CommunicationPrivate.portCallbacks[requestId] = (port: MessagePort | undefined, args?: unknown[]) => {\n if (port instanceof MessagePort) {\n resolve(port);\n } else {\n // First arg is the error message, if present\n reject(args && args.length > 0 ? args[0] : new Error('Host responded without port or error details.'));\n }\n };\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction waitForResponse(requestId: number): Promise {\n return new Promise((resolve) => {\n CommunicationPrivate.promiseCallbacks[requestId] = resolve;\n });\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParentWithVersion(\n apiVersionTag: string,\n actionName: string,\n args: any[] | undefined,\n callback?: Function,\n): void;\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParentWithVersion(apiVersionTag: string, actionName: string, callback?: Function): void;\n\n/**\n * @hidden\n * Send a message to parent. Uses nativeInterface on mobile to communicate with parent context\n * Additional apiVersionTag parameter is added, which provides the ability to send api version number to parent\n * for telemetry work. The code inside of this function will be used to replace sendMessageToParent function\n * and this function will be removed when the project is completed.\n */\nexport function sendMessageToParentWithVersion(\n apiVersionTag: string,\n actionName: string,\n argsOrCallback?: any[] | Function,\n callback?: Function,\n): void {\n let args: any[] | undefined;\n if (argsOrCallback instanceof Function) {\n callback = argsOrCallback;\n } else if (argsOrCallback instanceof Array) {\n args = argsOrCallback;\n }\n\n if (!isFollowingApiVersionTagFormat(apiVersionTag)) {\n throw Error(\n `apiVersionTag: ${apiVersionTag} passed in doesn't follow the pattern starting with 'v' followed by digits, then underscore with words, please check.`,\n );\n }\n\n // APIs with v0 represents beta changes haven't been implemented on them\n // Otherwise, minimum version number will be v1\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const request = sendMessageToParentHelper(apiVersionTag, actionName, args);\n if (callback) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n CommunicationPrivate.callbacks[request.id] = callback;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, callback?: Function): void;\n\n/**\n * @hidden\n * Send a message to parent. Uses nativeInterface on mobile to communicate with parent context\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, args: any[] | undefined, callback?: Function): void;\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageToParent(actionName: string, argsOrCallback?: any[] | Function, callback?: Function): void {\n let args: any[] | undefined;\n if (argsOrCallback instanceof Function) {\n callback = argsOrCallback;\n } else if (argsOrCallback instanceof Array) {\n args = argsOrCallback;\n }\n\n const request = sendMessageToParentHelper(\n getApiVersionTag(ApiVersionNumber.V_0, 'testing' as ApiName),\n actionName,\n args,\n );\n if (callback) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n CommunicationPrivate.callbacks[request.id] = callback;\n }\n}\n\nconst sendNestedAuthRequestToTopWindowLogger = communicationLogger.extend('sendNestedAuthRequestToTopWindow');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendNestedAuthRequestToTopWindow(message: string): NestedAppAuthRequest {\n const logger = sendNestedAuthRequestToTopWindowLogger;\n\n const targetWindow = Communication.topWindow;\n const request = createNestedAppAuthRequest(message);\n\n logger('Message %i information: %o', request.id, { actionName: request.func });\n\n return sendRequestToTargetWindowHelper(targetWindow, request) as NestedAppAuthRequest;\n}\n\nconst sendRequestToTargetWindowHelperLogger = communicationLogger.extend('sendRequestToTargetWindowHelper');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction sendRequestToTargetWindowHelper(\n targetWindow: Window,\n request: MessageRequestWithRequiredProperties | NestedAppAuthRequest,\n): MessageRequestWithRequiredProperties | NestedAppAuthRequest {\n const logger = sendRequestToTargetWindowHelperLogger;\n const targetWindowName = getTargetName(targetWindow);\n\n if (GlobalVars.isFramelessWindow) {\n if (Communication.currentWindow && Communication.currentWindow.nativeInterface) {\n logger(`Sending message %i to ${targetWindowName} via framelessPostMessage interface`, request.id);\n (Communication.currentWindow as ExtendedWindow).nativeInterface.framelessPostMessage(JSON.stringify(request));\n }\n } else {\n const targetOrigin = getTargetOrigin(targetWindow);\n\n // If the target window isn't closed and we already know its origin, send the message right away; otherwise,\n // queue the message and send it after the origin is established\n if (targetWindow && targetOrigin) {\n logger(`Sending message %i to ${targetWindowName} via postMessage`, request.id);\n targetWindow.postMessage(request, targetOrigin);\n } else {\n logger(`Adding message %i to ${targetWindowName} message queue`, request.id);\n getTargetMessageQueue(targetWindow).push(request);\n }\n }\n return request;\n}\n\nconst sendMessageToParentHelperLogger = communicationLogger.extend('sendMessageToParentHelper');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction sendMessageToParentHelper(\n apiVersionTag: string,\n actionName: string,\n args: any[] | undefined,\n): MessageRequestWithRequiredProperties {\n const logger = sendMessageToParentHelperLogger;\n\n const targetWindow = Communication.parentWindow;\n const request = createMessageRequest(apiVersionTag, actionName, args);\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n logger('Message %i information: %o', request.id, { actionName, args });\n\n return sendRequestToTargetWindowHelper(targetWindow, request);\n}\n\nconst processMessageLogger = communicationLogger.extend('processMessage');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nasync function processMessage(evt: DOMMessageEvent): Promise {\n // Process only if we received a valid message\n if (!evt || !evt.data || typeof evt.data !== 'object') {\n processMessageLogger('Unrecognized message format received by app, message being ignored. Message: %o', evt);\n return;\n }\n\n // Process only if the message is coming from a different window and a valid origin\n // valid origins are either a pre-known origin or one specified by the app developer\n // in their call to app.initialize\n const messageSource = evt.source || (evt.originalEvent && evt.originalEvent.source);\n const messageOrigin = evt.origin || (evt.originalEvent && evt.originalEvent.origin);\n\n return shouldProcessMessage(messageSource, messageOrigin).then((result) => {\n if (!result) {\n processMessageLogger(\n 'Message being ignored by app because it is either coming from the current window or a different window with an invalid origin',\n );\n return;\n }\n // Update our parent and child relationships based on this message\n updateRelationships(messageSource, messageOrigin);\n // Handle the message\n if (messageSource === Communication.parentWindow) {\n handleParentMessage(evt);\n } else if (messageSource === Communication.childWindow) {\n handleChildMessage(evt);\n }\n });\n}\n\nconst processAuthBridgeMessageLogger = communicationLogger.extend('processAuthBridgeMessage');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction processAuthBridgeMessage(evt: MessageEvent, onMessageReceived: (response: string) => void): void {\n const logger = processAuthBridgeMessageLogger;\n\n // Process only if we received a valid message\n if (!evt || !evt.data || typeof evt.data !== 'object') {\n logger('Unrecognized message format received by app, message being ignored. Message: %o', evt);\n return;\n }\n\n const { args } = evt.data as MessageResponse;\n const [, message] = args ?? [];\n const parsedData: ParsedNestedAppAuthMessageData = (() => {\n try {\n return JSON.parse(message);\n } catch (e) {\n return null;\n }\n })();\n\n // Validate that it is a valid auth bridge response message\n if (\n !parsedData ||\n typeof parsedData !== 'object' ||\n parsedData.messageType !== NestedAppAuthMessageEventNames.Response\n ) {\n logger('Unrecognized data format received by app, message being ignored. Message: %o', evt);\n return;\n }\n\n // Process only if the message is coming from a different window and a valid origin\n // valid origins are either a pre-known origin or one specified by the app developer\n // in their call to app.initialize\n const messageSource = evt.source || (evt as unknown as DOMMessageEvent)?.originalEvent?.source;\n const messageOrigin = evt.origin || (evt as unknown as DOMMessageEvent)?.originalEvent?.origin;\n if (!messageSource) {\n logger('Message being ignored by app because it is coming for a target that is null');\n return;\n }\n\n if (!shouldProcessMessage(messageSource, messageOrigin)) {\n logger(\n 'Message being ignored by app because it is either coming from the current window or a different window with an invalid origin',\n );\n return;\n }\n\n /**\n * In most cases, top level window and the parent window will be same.\n * If they're not, perform the necessary updates for the top level window.\n *\n * Top window logic to flush messages is kept independent so that we don't affect\n * any of the code for the existing communication channel.\n */\n if (!Communication.topWindow || Communication.topWindow.closed || messageSource === Communication.topWindow) {\n Communication.topWindow = messageSource;\n Communication.topOrigin = messageOrigin;\n }\n\n // Clean up pointers to closed parent and child windows\n if (Communication.topWindow && Communication.topWindow.closed) {\n Communication.topWindow = null;\n Communication.topOrigin = null;\n }\n\n flushMessageQueue(Communication.topWindow);\n\n // Return the response to the registered callback\n onMessageReceived(message);\n}\n\nconst shouldProcessMessageLogger = communicationLogger.extend('shouldProcessMessage');\n\n/**\n * @hidden\n * Validates the message source and origin, if it should be processed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nasync function shouldProcessMessage(messageSource: Window, messageOrigin: string): Promise {\n // Process if message source is a different window and if origin is either in\n // Teams' pre-known whitelist or supplied as valid origin by user during initialization\n if (Communication.currentWindow && messageSource === Communication.currentWindow) {\n shouldProcessMessageLogger('Should not process message because it is coming from the current window');\n return false;\n } else if (\n Communication.currentWindow &&\n Communication.currentWindow.location &&\n messageOrigin &&\n messageOrigin === Communication.currentWindow.location.origin\n ) {\n return true;\n } else {\n const isOriginValid = await validateOrigin(new URL(messageOrigin));\n if (!isOriginValid) {\n shouldProcessMessageLogger('Message has an invalid origin of %s', messageOrigin);\n }\n return isOriginValid;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction updateRelationships(messageSource: Window, messageOrigin: string): void {\n // Determine whether the source of the message is our parent or child and update our\n // window and origin pointer accordingly\n // For frameless windows (i.e mobile), there is no parent frame, so the message must be from the child.\n if (\n !GlobalVars.isFramelessWindow &&\n (!Communication.parentWindow || Communication.parentWindow.closed || messageSource === Communication.parentWindow)\n ) {\n Communication.parentWindow = messageSource;\n Communication.parentOrigin = messageOrigin;\n } else if (\n !Communication.childWindow ||\n Communication.childWindow.closed ||\n messageSource === Communication.childWindow\n ) {\n Communication.childWindow = messageSource;\n Communication.childOrigin = messageOrigin;\n }\n\n // Clean up pointers to closed parent and child windows\n if (Communication.parentWindow && Communication.parentWindow.closed) {\n Communication.parentWindow = null;\n Communication.parentOrigin = null;\n }\n if (Communication.childWindow && Communication.childWindow.closed) {\n Communication.childWindow = null;\n Communication.childOrigin = null;\n }\n\n // If we have any messages in our queue, send them now\n flushMessageQueue(Communication.parentWindow);\n flushMessageQueue(Communication.childWindow);\n}\n\nconst handleParentMessageLogger = communicationLogger.extend('handleParentMessage');\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleParentMessage(evt: DOMMessageEvent): void {\n const logger = handleParentMessageLogger;\n\n if ('id' in evt.data && typeof evt.data.id === 'number') {\n // Call any associated Communication.callbacks\n const message = evt.data as MessageResponse;\n const callback = CommunicationPrivate.callbacks[message.id];\n logger('Received a response from parent for message %i', message.id);\n if (callback) {\n logger('Invoking the registered callback for message %i with arguments %o', message.id, message.args);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n callback.apply(null, [...message.args, message.isPartialResponse]);\n\n // Remove the callback to ensure that the callback is called only once and to free up memory if response is a complete response\n if (!isPartialResponse(evt)) {\n logger('Removing registered callback for message %i', message.id);\n delete CommunicationPrivate.callbacks[message.id];\n }\n }\n const promiseCallback = CommunicationPrivate.promiseCallbacks[message.id];\n if (promiseCallback) {\n logger('Invoking the registered promise callback for message %i with arguments %o', message.id, message.args);\n promiseCallback(message.args);\n\n logger('Removing registered promise callback for message %i', message.id);\n delete CommunicationPrivate.promiseCallbacks[message.id];\n }\n const portCallback = CommunicationPrivate.portCallbacks[message.id];\n if (portCallback) {\n logger('Invoking the registered port callback for message %i with arguments %o', message.id, message.args);\n let port: MessagePort | undefined;\n if (evt.ports && evt.ports[0] instanceof MessagePort) {\n port = evt.ports[0];\n }\n portCallback(port, message.args);\n\n logger('Removing registered port callback for message %i', message.id);\n delete CommunicationPrivate.portCallbacks[message.id];\n }\n } else if ('func' in evt.data && typeof evt.data.func === 'string') {\n // Delegate the request to the proper handler\n const message = evt.data as MessageRequest;\n logger('Received an action message %s from parent', message.func);\n callHandler(message.func, message.args);\n } else {\n logger('Received an unknown message: %O', evt);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction isPartialResponse(evt: DOMMessageEvent): boolean {\n return evt.data.isPartialResponse === true;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction handleChildMessage(evt: DOMMessageEvent): void {\n if ('id' in evt.data && 'func' in evt.data) {\n // Try to delegate the request to the proper handler, if defined\n const message = evt.data as MessageRequest;\n const [called, result] = callHandler(message.func, message.args);\n if (called && typeof result !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sendMessageResponseToChild(message.id, Array.isArray(result) ? result : [result]);\n } else {\n // No handler, proxy to parent\n sendMessageToParent(message.func, message.args, (...args: any[]): void => {\n if (Communication.childWindow) {\n const isPartialResponse = args.pop();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n sendMessageResponseToChild(message.id, args, isPartialResponse);\n }\n });\n }\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Checks if the top window and the parent window are different.\n *\n * @returns {boolean} Returns true if the top window and the parent window are different, false otherwise.\n */\nfunction areTopAndParentWindowsDistinct(): boolean {\n return Communication.topWindow !== Communication.parentWindow;\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction getTargetMessageQueue(targetWindow: Window | null): MessageRequest[] {\n if (targetWindow === Communication.topWindow && areTopAndParentWindowsDistinct()) {\n return CommunicationPrivate.topMessageQueue;\n } else if (targetWindow === Communication.parentWindow) {\n return CommunicationPrivate.parentMessageQueue;\n } else if (targetWindow === Communication.childWindow) {\n return CommunicationPrivate.childMessageQueue;\n } else {\n return [];\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction getTargetOrigin(targetWindow: Window | null): string | null {\n if (targetWindow === Communication.topWindow && areTopAndParentWindowsDistinct()) {\n return Communication.topOrigin;\n } else if (targetWindow === Communication.parentWindow) {\n return Communication.parentOrigin;\n } else if (targetWindow === Communication.childWindow) {\n return Communication.childOrigin;\n } else {\n return null;\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction getTargetName(targetWindow: Window | null): string | null {\n if (targetWindow === Communication.topWindow && areTopAndParentWindowsDistinct()) {\n return 'top';\n } else if (targetWindow === Communication.parentWindow) {\n return 'parent';\n } else if (targetWindow === Communication.childWindow) {\n return 'child';\n } else {\n return null;\n }\n}\n\nconst flushMessageQueueLogger = communicationLogger.extend('flushMessageQueue');\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction flushMessageQueue(targetWindow: Window | any): void {\n const targetOrigin = getTargetOrigin(targetWindow);\n const targetMessageQueue = getTargetMessageQueue(targetWindow);\n const target = getTargetName(targetWindow);\n\n while (targetWindow && targetOrigin && targetMessageQueue.length > 0) {\n const request = targetMessageQueue.shift();\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n flushMessageQueueLogger('Flushing message %i from ' + target + ' message queue via postMessage.', request?.id);\n targetWindow.postMessage(request, targetOrigin);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function waitForMessageQueue(targetWindow: Window, callback: () => void): void {\n let messageQueueMonitor: ReturnType;\n /* const cannot be used to declare messageQueueMonitor here because of the JS temporal dead zone. In order for messageQueueMonitor to be referenced inside setInterval,\n it has to be defined before the setInterval call. */\n /* eslint-disable-next-line prefer-const */\n messageQueueMonitor = Communication.currentWindow.setInterval(() => {\n if (getTargetMessageQueue(targetWindow).length === 0) {\n clearInterval(messageQueueMonitor);\n callback();\n }\n }, 100);\n}\n\n/**\n * @hidden\n * Send a response to child for a message request that was from child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction sendMessageResponseToChild(id: number, args?: any[], isPartialResponse?: boolean): void {\n const targetWindow = Communication.childWindow;\n const response = createMessageResponse(id, args, isPartialResponse);\n const targetOrigin = getTargetOrigin(targetWindow);\n if (targetWindow && targetOrigin) {\n targetWindow.postMessage(response, targetOrigin);\n }\n}\n\n/**\n * @hidden\n * Send a custom message object that can be sent to child window,\n * instead of a response message to a child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendMessageEventToChild(actionName: string, args?: any[]): void {\n const targetWindow = Communication.childWindow;\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const customEvent = createMessageEvent(actionName, args);\n const targetOrigin = getTargetOrigin(targetWindow);\n\n // If the target window isn't closed and we already know its origin, send the message right away; otherwise,\n // queue the message and send it after the origin is established\n if (targetWindow && targetOrigin) {\n targetWindow.postMessage(customEvent, targetOrigin);\n } else {\n getTargetMessageQueue(targetWindow).push(customEvent);\n }\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageRequest(\n apiVersionTag: string,\n func: string,\n args: any[] | undefined,\n): MessageRequestWithRequiredProperties {\n return {\n id: CommunicationPrivate.nextMessageId++,\n func: func,\n timestamp: Date.now(),\n args: args || [],\n apiversiontag: apiVersionTag,\n };\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n *\n * Creates a nested app authentication request.\n *\n * @param {string} message - The message to be included in the request. This is typically a stringified JSON object containing the details of the authentication request.\n * The reason for using a string is to allow complex data structures to be sent as a message while avoiding potential issues with object serialization and deserialization.\n *\n * @returns {NestedAppAuthRequest} Returns a NestedAppAuthRequest object with a unique id, the function name set to 'nestedAppAuthRequest', the current timestamp, an empty args array, and the provided message as data.\n */\nfunction createNestedAppAuthRequest(message: string): NestedAppAuthRequest {\n return {\n id: CommunicationPrivate.nextMessageId++,\n func: 'nestedAppAuth.execute',\n timestamp: Date.now(),\n // Since this is a nested app auth request, we don't need to send any args.\n // We avoid overloading the args array with the message to avoid potential issues processing of these messages on the hubSDK.\n args: [],\n data: message,\n };\n}\n\n/**\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageResponse(id: number, args: any[] | undefined, isPartialResponse?: boolean): MessageResponse {\n return {\n id: id,\n args: args || [],\n isPartialResponse,\n };\n}\n\n/**\n * @hidden\n * Creates a message object without any id and api version, used for custom actions being sent to child frame/window\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction createMessageEvent(func: string, args?: any[]): MessageRequest {\n return {\n func: func,\n args: args || [],\n };\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { isNullOrUndefined } from '../internal/typeCheckUtilities';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n * Namespace to interact with the logging part of the SDK.\n * This object is used to send the app logs on demand to the host client\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst logsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace logs {\n /**\n * @hidden\n *\n * Registers a handler for getting app log\n *\n * @param handler - The handler to invoke to get the app log\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerGetLogHandler(handler: () => string): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime);\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (handler) {\n registerHandlerWithVersion(\n getApiVersionTag(logsTelemetryVersionNumber, ApiName.Logs_RegisterLogRequestHandler),\n 'log.request',\n () => {\n const log: string = handler();\n sendMessageToParentWithVersion(\n getApiVersionTag(logsTelemetryVersionNumber, ApiName.Logs_Receive),\n 'log.receive',\n [log],\n );\n },\n );\n } else {\n removeHandler('log.request');\n }\n }\n\n /**\n * @hidden\n *\n * Checks if the logs capability is supported by the host\n * @returns boolean to represent whether the logs capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.logs ? true : false;\n }\n}\n","import { FileOpenPreference, TeamInformation } from '../public/interfaces';\n\n/**\n * @hidden\n *\n * Information about all members in a chat\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ChatMembersInformation {\n members: ThreadMember[];\n}\n\n/**\n * @hidden\n *\n * Information about a chat member\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ThreadMember {\n /**\n * @hidden\n * The member's user principal name in the current tenant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n upn: string;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport enum NotificationTypes {\n fileDownloadStart = 'fileDownloadStart',\n fileDownloadComplete = 'fileDownloadComplete',\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ShowNotificationParameters {\n message: string;\n notificationType: NotificationTypes;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport enum ViewerActionTypes {\n view = 'view',\n edit = 'edit',\n editNew = 'editNew',\n}\n\n/**\n * @hidden\n *\n * User setting changes that can be subscribed to\n */\nexport enum UserSettingTypes {\n /**\n * @hidden\n * Use this key to subscribe to changes in user's file open preference\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n fileOpenPreference = 'fileOpenPreference',\n /**\n * @hidden\n * Use this key to subscribe to theme changes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n theme = 'theme',\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface FilePreviewParameters {\n /**\n * @hidden\n * The developer-defined unique ID for the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId?: string;\n\n /**\n * @hidden\n * The display name of the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title?: string;\n\n /**\n * @hidden\n * An optional description of the file.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n description?: string;\n\n /**\n * @hidden\n * The file extension; e.g. pptx, docx, etc.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n type: string;\n\n /**\n * @hidden\n * The size of the file in bytes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n sizeInBytes?: number;\n\n /**\n * @hidden\n * A url to the source of the file, used to open the content in the user's default browser\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectUrl: string;\n\n /**\n * @hidden\n * Optional; an alternate self-authenticating url used to preview the file in Mobile clients and offer it for download by the user\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n downloadUrl?: string;\n\n /**\n * @hidden\n * Optional; an alternate url optimized for previewing the file in web and desktop clients\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n webPreviewUrl?: string;\n\n /**\n * @hidden\n * Optional; an alternate url that allows editing of the file in web and desktop clients\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n webEditUrl?: string;\n\n /**\n * @hidden\n * Optional; the base url of the site where the file is hosted\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n baseUrl?: string;\n\n /**\n * @hidden\n * Deprecated; prefer using {@linkcode viewerAction} instead\n * Optional; indicates whether the file should be opened in edit mode\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n editFile?: boolean;\n\n /**\n * @hidden\n * Optional; the developer-defined unique ID for the sub-entity to return to when the file stage closes.\n * This field should be used to restore to a specific state within an entity, such as scrolling to or activating a specific piece of content.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n subEntityId?: string;\n\n /**\n * @hidden\n * Optional; indicates the mode in which file should be opened. Takes precedence over edit mode.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n viewerAction?: ViewerActionTypes;\n\n /**\n * @hidden\n * Optional; indicates how user prefers to open the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n fileOpenPreference?: FileOpenPreference;\n\n /**\n * @hidden\n * Optional; id required to enable conversation button in files. Will be channel id in case file is shared in a channel or the chat id in p2p chat case.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n}\n\n/**\n * @hidden\n *\n * Query parameters used when fetching team information\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface TeamInstanceParameters {\n /**\n * @hidden\n * Flag allowing to select favorite teams only\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n favoriteTeamsOnly?: boolean;\n}\n\n/**\n * @hidden\n *\n * Information on userJoined Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface UserJoinedTeamsInformation {\n /**\n * @hidden\n * List of team information\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n userJoinedTeams: TeamInformation[];\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { Communication, sendMessageEventToChild, sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { FilePreviewParameters, UserSettingTypes } from './interfaces';\n\n/**\n * @hidden\n * Upload a custom App manifest directly to both team and personal scopes.\n * This method works just for the first party Apps.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst privateAPIsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport function uploadCustomApp(manifestBlob: Blob, onComplete?: (status: boolean, reason?: string) => void): void {\n ensureInitialized(runtime);\n\n sendMessageToParentWithVersion(\n getApiVersionTag(privateAPIsTelemetryVersionNumber, ApiName.PrivateAPIs_UploadCustomApp),\n 'uploadCustomApp',\n [manifestBlob],\n onComplete ? onComplete : getGenericOnCompleteHandler(),\n );\n}\n\n/**\n * @hidden\n * Sends a custom action MessageRequest to host or parent window\n *\n * @param actionName - Specifies name of the custom action to be sent\n * @param args - Specifies additional arguments passed to the action\n * @param callback - Optionally specify a callback to receive response parameters from the parent\n * @returns id of sent message\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendCustomMessage(actionName: string, args?: any[], callback?: (...args: any[]) => void): void {\n ensureInitialized(runtime);\n\n sendMessageToParentWithVersion(\n getApiVersionTag(privateAPIsTelemetryVersionNumber, ApiName.PrivateAPIs_SendCustomMessage),\n actionName,\n args,\n callback,\n );\n}\n\n/**\n * @hidden\n * Sends a custom action MessageEvent to a child iframe/window, only if you are not using auth popup.\n * Otherwise it will go to the auth popup (which becomes the child)\n *\n * @param actionName - Specifies name of the custom action to be sent\n * @param args - Specifies additional arguments passed to the action\n * @returns id of sent message\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function sendCustomEvent(actionName: string, args?: any[]): void {\n ensureInitialized(runtime);\n\n //validate childWindow\n if (!Communication.childWindow) {\n throw new Error('The child window has not yet been initialized or is not present');\n }\n sendMessageEventToChild(actionName, args);\n}\n\n/**\n * @hidden\n * Adds a handler for an action sent by a child window or parent window\n *\n * @param actionName - Specifies name of the action message to handle\n * @param customHandler - The callback to invoke when the action message is received. The return value is sent to the child\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerCustomHandler(actionName: string, customHandler: (...args: any[]) => any[]): void {\n ensureInitialized(runtime);\n registerHandlerWithVersion(\n getApiVersionTag(privateAPIsTelemetryVersionNumber, ApiName.PrivateAPIs_RegisterCustomHandler),\n actionName,\n (...args: any[]) => {\n return customHandler.apply(this, args);\n },\n );\n}\n\n/**\n * @hidden\n * register a handler to be called when a user setting changes. The changed setting type & value is provided in the callback.\n *\n * @param settingTypes - List of user setting changes to subscribe\n * @param handler - When a subscribed setting is updated this handler is called\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function registerUserSettingsChangeHandler(\n settingTypes: UserSettingTypes[],\n handler: (settingType: UserSettingTypes, value: any) => void,\n): void {\n ensureInitialized(runtime);\n\n registerHandlerWithVersion(\n getApiVersionTag(privateAPIsTelemetryVersionNumber, ApiName.PrivateAPIs_RegisterUserSettingsChangeHandler),\n 'userSettingsChange',\n handler,\n true,\n [settingTypes],\n );\n}\n\n/**\n * @hidden\n * Opens a client-friendly preview of the specified file.\n *\n * @param file - The file to preview.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function openFilePreview(filePreviewParameters: FilePreviewParameters): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n const params = [\n filePreviewParameters.entityId,\n filePreviewParameters.title,\n filePreviewParameters.description,\n filePreviewParameters.type,\n filePreviewParameters.objectUrl,\n filePreviewParameters.downloadUrl,\n filePreviewParameters.webPreviewUrl,\n filePreviewParameters.webEditUrl,\n filePreviewParameters.baseUrl,\n filePreviewParameters.editFile,\n filePreviewParameters.subEntityId,\n filePreviewParameters.viewerAction,\n filePreviewParameters.fileOpenPreference,\n filePreviewParameters.conversationId,\n filePreviewParameters.sizeInBytes,\n ];\n\n sendMessageToParentWithVersion(\n getApiVersionTag(privateAPIsTelemetryVersionNumber, ApiName.PrivateAPIs_OpenFilePreview),\n 'openFilePreview',\n params,\n );\n}\n","import {\n sendAndHandleStatusAndReasonWithVersion,\n sendAndUnwrapWithVersion,\n sendMessageToParentWithVersion,\n} from '../internal/communication';\nimport { registerHandlerWithVersion, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { ChatMembersInformation } from './interfaces';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst conversationsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport interface OpenConversationRequest {\n /**\n * @hidden\n * The Id of the subEntity where the conversation is taking place\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n subEntityId: string;\n\n /**\n * @hidden\n * The title of the conversation\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n\n /**\n * @hidden\n * The Id of the conversation. This is optional and should be specified whenever a previous conversation about a specific sub-entity has already been started before\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n\n /**\n * @hidden\n * The Id of the channel. This is optional and should be specified whenever a conversation is started or opened in a personal app scope\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n channelId?: string;\n\n /**\n * @hidden\n * The entity Id of the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId: string;\n\n /**\n * @hidden\n * A function that is called once the conversation Id has been created\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n onStartConversation?: (conversationResponse: ConversationResponse) => void;\n\n /**\n * @hidden\n * A function that is called if the pane is closed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n onCloseConversation?: (conversationResponse: ConversationResponse) => void;\n}\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport interface ConversationResponse {\n /**\n * @hidden\n *\n * Limited to Microsoft-internal use\n * The Id of the subEntity where the conversation is taking place\n */\n subEntityId: string;\n\n /**\n * @hidden\n * The Id of the conversation. This is optional and should be specified whenever a previous conversation about a specific sub-entity has already been started before\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n conversationId?: string;\n\n /**\n * @hidden\n * The Id of the channel. This is optional and should be specified whenever a conversation is started or opened in a personal app scope\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n channelId?: string;\n\n /**\n * @hidden\n * The entity Id of the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n entityId?: string;\n}\n\n/**\n * @hidden\n * Namespace to interact with the conversational subEntities inside the tab\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace conversations {\n /**\n * @hidden\n * Hide from docs\n * --------------\n * Allows the user to start or continue a conversation with each subentity inside the tab\n *\n * @returns Promise resolved upon completion\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openConversation(openConversationRequest: OpenConversationRequest): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const sendPromise = sendAndHandleStatusAndReasonWithVersion(\n getApiVersionTag(conversationsTelemetryVersionNumber, ApiName.Conversations_OpenConversation),\n 'conversations.openConversation',\n {\n title: openConversationRequest.title,\n subEntityId: openConversationRequest.subEntityId,\n conversationId: openConversationRequest.conversationId,\n channelId: openConversationRequest.channelId,\n entityId: openConversationRequest.entityId,\n },\n );\n if (openConversationRequest.onStartConversation) {\n registerHandlerWithVersion(\n getApiVersionTag(conversationsTelemetryVersionNumber, ApiName.Conversations_RegisterStartConversationHandler),\n 'startConversation',\n (subEntityId: string, conversationId: string, channelId: string, entityId: string) =>\n openConversationRequest.onStartConversation?.({\n subEntityId,\n conversationId,\n channelId,\n entityId,\n }),\n );\n }\n if (openConversationRequest.onCloseConversation) {\n registerHandlerWithVersion(\n getApiVersionTag(conversationsTelemetryVersionNumber, ApiName.Conversations_RegisterCloseConversationHandler),\n 'closeConversation',\n (subEntityId: string, conversationId?: string, channelId?: string, entityId?: string) =>\n openConversationRequest.onCloseConversation?.({\n subEntityId,\n conversationId,\n channelId,\n entityId,\n }),\n );\n }\n resolve(sendPromise);\n });\n }\n\n /**\n * @hidden\n *\n * Allows the user to close the conversation in the right pane\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function closeConversation(): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(conversationsTelemetryVersionNumber, ApiName.Conversations_CloseConversation),\n 'conversations.closeConversation',\n );\n removeHandler('startConversation');\n removeHandler('closeConversation');\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Allows retrieval of information for all chat members.\n * NOTE: This value should be used only as a hint as to who the members are\n * and never as proof of membership in case your app is being hosted by a malicious party.\n *\n * @returns Promise resolved with information on all chat members\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getChatMembers(): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndUnwrapWithVersion(\n getApiVersionTag(conversationsTelemetryVersionNumber, ApiName.Conversations_GetChatMember),\n 'getChatMembers',\n ),\n );\n });\n }\n\n /**\n * Checks if the conversations capability is supported by the host\n * @returns boolean to represent whether conversations capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.conversations ? true : false;\n }\n}\n","/**\n * App install dialog constants\n */\nexport const teamsDeepLinkUrlPathForAppInstall = '/l/app/';\n\n/**\n * Calendar constants\n */\nexport const teamsDeepLinkUrlPathForCalendar = '/l/meeting/new';\nexport const teamsDeepLinkAttendeesUrlParameterName = 'attendees';\nexport const teamsDeepLinkStartTimeUrlParameterName = 'startTime';\nexport const teamsDeepLinkEndTimeUrlParameterName = 'endTime';\nexport const teamsDeepLinkSubjectUrlParameterName = 'subject';\nexport const teamsDeepLinkContentUrlParameterName = 'content';\n\n/**\n * Call constants\n */\nexport const teamsDeepLinkUrlPathForCall = '/l/call/0/0';\nexport const teamsDeepLinkSourceUrlParameterName = 'source';\nexport const teamsDeepLinkWithVideoUrlParameterName = 'withVideo';\n\n/**\n * Chat constants\n */\nexport const teamsDeepLinkUrlPathForChat = '/l/chat/0/0';\nexport const teamsDeepLinkUsersUrlParameterName = 'users';\nexport const teamsDeepLinkTopicUrlParameterName = 'topicName';\nexport const teamsDeepLinkMessageUrlParameterName = 'message';\n","import { teamsDeepLinkHost, teamsDeepLinkProtocol } from './constants';\nimport {\n teamsDeepLinkAttendeesUrlParameterName,\n teamsDeepLinkContentUrlParameterName,\n teamsDeepLinkEndTimeUrlParameterName,\n teamsDeepLinkMessageUrlParameterName,\n teamsDeepLinkSourceUrlParameterName,\n teamsDeepLinkStartTimeUrlParameterName,\n teamsDeepLinkSubjectUrlParameterName,\n teamsDeepLinkTopicUrlParameterName,\n teamsDeepLinkUrlPathForAppInstall,\n teamsDeepLinkUrlPathForCalendar,\n teamsDeepLinkUrlPathForCall,\n teamsDeepLinkUrlPathForChat,\n teamsDeepLinkUsersUrlParameterName,\n teamsDeepLinkWithVideoUrlParameterName,\n} from './deepLinkConstants';\n\nexport function createTeamsDeepLinkForChat(users: string[], topic?: string, message?: string): string {\n if (users.length === 0) {\n throw new Error('Must have at least one user when creating a chat deep link');\n }\n\n const usersSearchParameter =\n `${teamsDeepLinkUsersUrlParameterName}=` + users.map((user) => encodeURIComponent(user)).join(',');\n const topicSearchParameter =\n topic === undefined ? '' : `&${teamsDeepLinkTopicUrlParameterName}=${encodeURIComponent(topic)}`;\n const messageSearchParameter =\n message === undefined ? '' : `&${teamsDeepLinkMessageUrlParameterName}=${encodeURIComponent(message)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForChat}?${usersSearchParameter}${topicSearchParameter}${messageSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForCall(targets: string[], withVideo?: boolean, source?: string): string {\n if (targets.length === 0) {\n throw new Error('Must have at least one target when creating a call deep link');\n }\n const usersSearchParameter =\n `${teamsDeepLinkUsersUrlParameterName}=` + targets.map((user) => encodeURIComponent(user)).join(',');\n const withVideoSearchParameter =\n withVideo === undefined ? '' : `&${teamsDeepLinkWithVideoUrlParameterName}=${encodeURIComponent(withVideo)}`;\n const sourceSearchParameter =\n source === undefined ? '' : `&${teamsDeepLinkSourceUrlParameterName}=${encodeURIComponent(source)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForCall}?${usersSearchParameter}${withVideoSearchParameter}${sourceSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForCalendar(\n attendees?: string[],\n startTime?: string,\n endTime?: string,\n subject?: string,\n content?: string,\n): string {\n const attendeeSearchParameter =\n attendees === undefined\n ? ''\n : `${teamsDeepLinkAttendeesUrlParameterName}=` +\n attendees.map((attendee) => encodeURIComponent(attendee)).join(',');\n const startTimeSearchParameter =\n startTime === undefined ? '' : `&${teamsDeepLinkStartTimeUrlParameterName}=${encodeURIComponent(startTime)}`;\n const endTimeSearchParameter =\n endTime === undefined ? '' : `&${teamsDeepLinkEndTimeUrlParameterName}=${encodeURIComponent(endTime)}`;\n const subjectSearchParameter =\n subject === undefined ? '' : `&${teamsDeepLinkSubjectUrlParameterName}=${encodeURIComponent(subject)}`;\n const contentSearchParameter =\n content === undefined ? '' : `&${teamsDeepLinkContentUrlParameterName}=${encodeURIComponent(content)}`;\n\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForCalendar}?${attendeeSearchParameter}${startTimeSearchParameter}${endTimeSearchParameter}${subjectSearchParameter}${contentSearchParameter}`;\n}\n\nexport function createTeamsDeepLinkForAppInstallDialog(appId: string): string {\n if (!appId) {\n throw new Error('App ID must be set when creating an app install dialog deep link');\n }\n return `${teamsDeepLinkProtocol}://${teamsDeepLinkHost}${teamsDeepLinkUrlPathForAppInstall}${encodeURIComponent(\n appId,\n )}`;\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { sendAndHandleStatusAndReasonWithVersion } from '../internal/communication';\nimport { createTeamsDeepLinkForAppInstallDialog } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst appInstallDialogTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace appInstallDialog {\n /** Represents set of parameters needed to open the appInstallDialog. */\n export interface OpenAppInstallDialogParams {\n /** A unique identifier for the app being installed. */\n appId: string;\n }\n\n /**\n * Displays a dialog box that allows users to install a specific app within the host environment.\n *\n * @param openAPPInstallDialogParams - See {@link OpenAppInstallDialogParams | OpenAppInstallDialogParams} for more information.\n */\n export function openAppInstallDialog(openAPPInstallDialogParams: OpenAppInstallDialogParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n const apiVersionTag = getApiVersionTag(\n appInstallDialogTelemetryVersionNumber,\n ApiName.AppInstallDialog_OpenAppInstallDialog,\n );\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n apiVersionTag,\n 'executeDeepLink',\n createTeamsDeepLinkForAppInstallDialog(openAPPInstallDialogParams.appId),\n ),\n );\n } else {\n sendMessageToParentWithVersion(apiVersionTag, 'appInstallDialog.openAppInstallDialog', [\n openAPPInstallDialogParams,\n ]);\n resolve();\n }\n });\n }\n\n /**\n * Checks if the appInstallDialog capability is supported by the host\n * @returns boolean to represent whether the appInstallDialog capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.appInstallDialog ? true : false;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-member-accessibility */\n\nimport { sendAndHandleSdkErrorWithVersion, sendMessageToParentWithVersion } from '../internal/communication';\nimport {\n captureImageMobileSupportVersion,\n getMediaCallbackSupportVersion,\n mediaAPISupportVersion,\n nonFullScreenVideoModeAPISupportVersion,\n scanBarCodeAPIMobileSupportVersion,\n} from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandler, removeHandler } from '../internal/handlers';\nimport {\n ensureInitialized,\n isCurrentSDKVersionAtLeast,\n throwExceptionIfMobileApiIsNotSupported,\n} from '../internal/internalAPIs';\nimport {\n createFile,\n decodeAttachment,\n isVideoControllerRegistered,\n throwExceptionIfMediaCallIsNotSupportedOnMobile,\n validateGetMediaInputs,\n validateScanBarCodeInput,\n validateSelectMediaInputs,\n validateViewImagesInput,\n} from '../internal/mediaUtil';\nimport { ApiName, ApiVersionNumber, getApiVersionTag, getLogger } from '../internal/telemetry';\nimport { isNullOrUndefined } from '../internal/typeCheckUtilities';\nimport { generateGUID } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts, HostClientType } from './constants';\nimport { DevicePermission, ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst mediaTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nconst mediaLogger = getLogger('media');\n\n/**\n * Interact with media, including capturing and viewing images.\n */\nexport namespace media {\n /**\n * Function callback type used when calling {@link media.captureImage}.\n *\n * @param error - Error encountered during the API call, if any, {@link SdkError}\n * @param files - Collection of File objects (images) captured by the user. Will be an empty array in the case of an error.\n * */\n export type captureImageCallbackFunctionType = (error: SdkError, files: File[]) => void;\n\n /**\n * Function callback type used when calling {@link media.selectMedia}.\n *\n * @param error - Error encountered during the API call, if any, {@link SdkError}\n * @param attachments - Collection of {@link Media} objects selected by the user. Will be an empty array in the case of an error.\n * */\n export type selectMediaCallbackFunctionType = (error: SdkError, attachments: Media[]) => void;\n\n /** Error callback function type. */\n export type errorCallbackFunctionType = (error?: SdkError) => void;\n /**\n * Function callback type used when calling {@link media.scanBarCode}.\n *\n * @param error - Error encountered during the API call, if any, {@link SdkError}\n * @param decodedText - Decoded text from the barcode, if any. In the case of an error, this will be the empty string.\n * */\n export type scanBarCodeCallbackFunctionType = (error: SdkError, decodedText: string) => void;\n\n /**\n * Function callback type used when calling {@link media.Media.getMedia}\n *\n * @param error - Error encountered during the API call, if any, {@link SdkError}\n * @param blob - Blob of media returned. Will be a blob with no BlobParts, in the case of an error.\n * */\n export type getMediaCallbackFunctionType = (error: SdkError, blob: Blob) => void;\n\n /**\n * Enum for file formats supported\n */\n export enum FileFormat {\n /** Base64 encoding */\n Base64 = 'base64',\n /** File id */\n ID = 'id',\n }\n\n /**\n * File object that can be used to represent image or video or audio\n */\n export class File {\n /**\n * Content of the file. When format is Base64, this is the base64 content\n * When format is ID, this is id mapping to the URI\n * When format is base64 and app needs to use this directly in HTML tags, it should convert this to dataUrl.\n */\n public content: string;\n\n /**\n * Format of the content\n */\n public format: FileFormat;\n\n /**\n * Size of the file in KB\n */\n public size: number;\n\n /**\n * MIME type. This can be used for constructing a dataUrl, if needed.\n */\n public mimeType: string;\n\n /**\n * Optional: Name of the file\n */\n public name?: string;\n }\n\n /**\n * Launch camera, capture image or choose image from gallery and return the images as a File[] object to the callback.\n *\n * @params callback - Callback will be called with an @see SdkError if there are any.\n * If error is null or undefined, the callback will be called with a collection of @see File objects\n * @remarks\n * Note: Currently we support getting one File through this API, i.e. the file arrays size will be one.\n * Note: For desktop, this API is not supported. Callback will be resolved with ErrorCode.NotSupported.\n *\n */\n export function captureImage(callback: captureImageCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[captureImage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!GlobalVars.isFramelessWindow) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(notSupportedError, []);\n return;\n }\n\n if (!isCurrentSDKVersionAtLeast(captureImageMobileSupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n callback(oldPlatformError, []);\n return;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_CaptureImage),\n 'captureImage',\n callback,\n );\n }\n\n /**\n * Checks whether or not media has user permission\n *\n * @returns Promise that will resolve with true if the user had granted the app permission to media information, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function hasPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isPermissionSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_HasPermission),\n 'permissions.has',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Requests user permission for media\n *\n * @returns Promise that will resolve with true if the user consented permission for media, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function requestPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isPermissionSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_RequestPermission),\n 'permissions.request',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Checks if permission capability is supported by the host\n * @returns boolean to represent whether permission is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n function isPermissionSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.permissions ? true : false;\n }\n\n /**\n * Media object returned by the select Media API\n */\n export class Media extends File {\n constructor(that?: Media) {\n super();\n if (that) {\n this.content = that.content;\n this.format = that.format;\n this.mimeType = that.mimeType;\n this.name = that.name;\n this.preview = that.preview;\n this.size = that.size;\n }\n }\n\n /**\n * A preview of the file which is a lightweight representation.\n * In case of images this will be a thumbnail/compressed image in base64 encoding.\n */\n public preview: string;\n\n /**\n * Gets the media in chunks irrespective of size, these chunks are assembled and sent back to the webapp as file/blob\n * @param callback - callback is called with the @see SdkError if there is an error\n * If error is null or undefined, the callback will be called with @see Blob.\n */\n public getMedia(callback: getMediaCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[get Media] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n callback(oldPlatformError, new Blob());\n return;\n }\n if (!validateGetMediaInputs(this.mimeType, this.format, this.content)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n callback(invalidInput, new Blob());\n return;\n }\n // Call the new get media implementation via callbacks if the client version is greater than or equal to '2.0.0'\n if (isCurrentSDKVersionAtLeast(getMediaCallbackSupportVersion)) {\n this.getMediaViaCallback(callback);\n } else {\n this.getMediaViaHandler(callback);\n }\n }\n\n /** Function to retrieve media content, such as images or videos, via callback. */\n private getMediaViaCallback(callback: getMediaCallbackFunctionType): void {\n const helper: MediaHelper = {\n mediaMimeType: this.mimeType,\n assembleAttachment: [],\n };\n const localUriId = [this.content];\n function handleGetMediaCallbackRequest(mediaResult: MediaResult): void {\n if (callback) {\n if (mediaResult && mediaResult.error) {\n callback(mediaResult.error, new Blob());\n } else {\n if (mediaResult && mediaResult.mediaChunk) {\n // If the chunksequence number is less than equal to 0 implies EOF\n // create file/blob when all chunks have arrived and we get 0/-1 as chunksequence number\n if (mediaResult.mediaChunk.chunkSequence <= 0) {\n const file = createFile(helper.assembleAttachment, helper.mediaMimeType);\n callback(mediaResult.error, file ?? new Blob());\n } else {\n // Keep pushing chunks into assemble attachment\n const assemble: AssembleAttachment | null = decodeAttachment(\n mediaResult.mediaChunk,\n helper.mediaMimeType,\n );\n if (assemble) {\n helper.assembleAttachment.push(assemble);\n } else {\n mediaLogger(\n `Received a null assemble attachment for when decoding chunk sequence ${mediaResult.mediaChunk.chunkSequence}; not including the chunk in the assembled file.`,\n );\n }\n }\n } else {\n callback({ errorCode: ErrorCode.INTERNAL_ERROR, message: 'data received is null' }, new Blob());\n }\n }\n }\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_GetMedia),\n 'getMedia',\n localUriId,\n handleGetMediaCallbackRequest,\n );\n }\n\n /** Function to retrieve media content, such as images or videos, via handler. */\n private getMediaViaHandler(callback: getMediaCallbackFunctionType): void {\n const actionName = generateGUID();\n const helper: MediaHelper = {\n mediaMimeType: this.mimeType,\n assembleAttachment: [],\n };\n const params = [actionName, this.content];\n this.content &&\n !isNullOrUndefined(callback) &&\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_GetMedia),\n 'getMedia',\n params,\n );\n function handleGetMediaRequest(response: string): void {\n if (callback) {\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n const mediaResult: MediaResult = JSON.parse(response);\n if (mediaResult.error) {\n callback(mediaResult.error, new Blob());\n removeHandler('getMedia' + actionName);\n } else {\n if (mediaResult.mediaChunk) {\n // If the chunksequence number is less than equal to 0 implies EOF\n // create file/blob when all chunks have arrived and we get 0/-1 as chunksequence number\n if (mediaResult.mediaChunk.chunkSequence <= 0) {\n const file = createFile(helper.assembleAttachment, helper.mediaMimeType);\n callback(mediaResult.error, file ?? new Blob());\n removeHandler('getMedia' + actionName);\n } else {\n // Keep pushing chunks into assemble attachment\n const assemble: AssembleAttachment | null = decodeAttachment(\n mediaResult.mediaChunk,\n helper.mediaMimeType,\n );\n if (assemble) {\n helper.assembleAttachment.push(assemble);\n }\n }\n } else {\n callback({ errorCode: ErrorCode.INTERNAL_ERROR, message: 'data received is null' }, new Blob());\n removeHandler('getMedia' + actionName);\n }\n }\n }\n }\n\n registerHandler('getMedia' + actionName, handleGetMediaRequest);\n }\n }\n\n /**\n * Input parameter supplied to the select Media API\n */\n export interface MediaInputs {\n /**\n * Only one media type can be selected at a time\n */\n mediaType: MediaType;\n\n /**\n * max limit of media allowed to be selected in one go, current max limit is 10 set by office lens.\n */\n maxMediaCount: number;\n\n /**\n * Additional properties for customization of select media - Image in mobile devices\n */\n imageProps?: ImageProps;\n\n /**\n * Additional properties for customization of select media - Video in mobile devices\n */\n videoProps?: VideoProps;\n\n /**\n * Additional properties for customization of select media - VideoAndImage in mobile devices\n */\n videoAndImageProps?: VideoAndImageProps;\n\n /**\n * Additional properties for audio capture flows.\n */\n audioProps?: AudioProps;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * All properties common to Image and Video Props\n */\n interface MediaProps {\n /**\n * @hidden\n * Optional; Lets the developer specify the media source, more than one can be specified.\n * Default value is both camera and gallery\n */\n sources?: Source[];\n\n /**\n * @hidden\n * Optional; Specify in which mode the camera will be opened.\n * Default value is Photo\n */\n startMode?: CameraStartMode;\n\n /**\n * @hidden\n * Optional; indicate if user is allowed to move between front and back camera\n * Default value is true\n */\n cameraSwitcher?: boolean;\n }\n\n /**\n * All properties in ImageProps are optional and have default values in the platform\n */\n export interface ImageProps extends MediaProps {\n /**\n * Optional; indicate if inking on the selected Image is allowed or not\n * Default value is true\n */\n ink?: boolean;\n\n /**\n * Optional; indicate if putting text stickers on the selected Image is allowed or not\n * Default value is true\n */\n textSticker?: boolean;\n\n /**\n * Optional; indicate if image filtering mode is enabled on the selected image\n * Default value is false\n */\n enableFilter?: boolean;\n\n /**\n * Optional; Lets the developer specify the image output formats, more than one can be specified.\n * Default value is Image.\n */\n imageOutputFormats?: ImageOutputFormats[];\n }\n\n /**\n * All properties in VideoProps are optional and have default values in the platform\n */\n export interface VideoProps extends MediaProps {\n /**\n * Optional; the maximum duration in seconds after which the recording should terminate automatically.\n * Default value is defined by the platform serving the API.\n */\n maxDuration?: number;\n\n /**\n * Optional; to determine if the video capturing flow needs to be launched\n * in Full Screen Mode (Lens implementation) or PictureInPicture Mode (Native implementation).\n * Default value is true, indicating video will always launch in Full Screen Mode via lens.\n */\n isFullScreenMode?: boolean;\n\n /**\n * Optional; controls the visibility of stop button in PictureInPicture Mode.\n * Default value is true, indicating the user will be able to stop the video.\n */\n isStopButtonVisible?: boolean;\n\n /**\n * Optional; setting VideoController will register your app to listen to the lifecycle events during the video capture flow.\n * Your app can also dynamically control the experience while capturing the video by notifying the host client.\n */\n videoController?: VideoController;\n }\n\n /**\n * All properties in VideoAndImageProps are optional and have default values in the platform\n */\n export interface VideoAndImageProps extends ImageProps, VideoProps {}\n\n /**\n * All properties in AudioProps are optional and have default values in the platform\n */\n export interface AudioProps {\n /**\n * Optional; the maximum duration in minutes after which the recording should terminate automatically\n * Default value is defined by the platform serving the API.\n */\n maxDuration?: number;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Base class which holds the callback and notifies events to the host client\n */\n abstract class MediaController {\n /** Callback that can be registered to handle events related to the playback and control of video content. */\n protected controllerCallback?: T;\n\n public constructor(controllerCallback?: T) {\n this.controllerCallback = controllerCallback;\n }\n\n protected abstract getMediaType(): MediaType;\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * This function will be implemented by the respective media class which holds the logic\n * of specific events that needs to be notified to the app.\n * @param mediaEvent indicates the event signed by the host client to the app\n */\n protected abstract notifyEventToApp(mediaEvent: MediaControllerEvent): void;\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Function to notify the host client to programatically control the experience\n * @param mediaEvent indicates what the event that needs to be signaled to the host client\n * Optional; @param callback is used to send app if host client has successfully handled the notification event or not\n */\n protected notifyEventToHost(mediaEvent: MediaControllerEvent, callback?: errorCallbackFunctionType): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n try {\n throwExceptionIfMobileApiIsNotSupported(nonFullScreenVideoModeAPISupportVersion);\n } catch (err) {\n if (callback) {\n callback(err);\n }\n return;\n }\n\n const params: MediaControllerParam = { mediaType: this.getMediaType(), mediaControllerEvent: mediaEvent };\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_Controller),\n 'media.controller',\n [params],\n (err?: SdkError) => {\n if (callback) {\n callback(err);\n }\n },\n );\n }\n\n /**\n * Function to programatically stop the ongoing media event\n * Optional; @param callback is used to send app if host client has successfully stopped the event or not\n */\n public stop(callback?: errorCallbackFunctionType): void {\n this.notifyEventToHost(MediaControllerEvent.StopRecording, callback);\n }\n }\n\n /**\n * Callback which will register your app to listen to lifecycle events during the video capture flow\n */\n export interface VideoControllerCallback {\n /** The event is a type of callback that can be enlisted to handle various events linked to `onRecordingStarted`, which helps with playback of video content. */\n onRecordingStarted?(): void;\n }\n\n /**\n * VideoController class is used to communicate between the app and the host client during the video capture flow\n */\n export class VideoController extends MediaController {\n /** Gets media type video. */\n protected getMediaType(): MediaType {\n return MediaType.Video;\n }\n /** Notify or send an event related to the playback and control of video content to a registered application. */\n public notifyEventToApp(mediaEvent: MediaControllerEvent): void {\n if (!this.controllerCallback) {\n // Early return as app has not registered with the callback\n return;\n }\n\n switch (mediaEvent) {\n case MediaControllerEvent.StartRecording:\n if (this.controllerCallback.onRecordingStarted) {\n this.controllerCallback.onRecordingStarted();\n break;\n }\n }\n }\n }\n\n /**\n * @beta\n * Events which are used to communicate between the app and the host client during the media recording flow\n */\n export enum MediaControllerEvent {\n /** Start recording. */\n StartRecording = 1,\n /** Stop recording. */\n StopRecording = 2,\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Interface with relevant info to send communication from the app to the host client\n */\n interface MediaControllerParam {\n /**\n * List of team information\n */\n mediaType: media.MediaType;\n\n /**\n * List of team information\n */\n mediaControllerEvent: MediaControllerEvent;\n }\n\n /**\n * The modes in which camera can be launched in select Media API\n */\n export enum CameraStartMode {\n /** Photo mode. */\n Photo = 1,\n /** Document mode. */\n Document = 2,\n /** Whiteboard mode. */\n Whiteboard = 3,\n /** Business card mode. */\n BusinessCard = 4,\n }\n\n /**\n * Specifies the image source\n */\n export enum Source {\n /** Image source is camera. */\n Camera = 1,\n /** Image source is gallery. */\n Gallery = 2,\n }\n\n /**\n * Specifies the type of Media\n */\n export enum MediaType {\n /** Media type photo or image */\n Image = 1,\n /** Media type video. */\n Video = 2,\n /** Media type video and image. */\n VideoAndImage = 3,\n /** Media type audio. */\n Audio = 4,\n }\n\n /**\n * Input for view images API\n */\n export interface ImageUri {\n /** Image location */\n value: string;\n /** Image Uri type */\n type: ImageUriType;\n }\n\n /**\n * ID contains a mapping for content uri on platform's side, URL is generic\n */\n export enum ImageUriType {\n /** Image Id. */\n ID = 1,\n /** Image URL. */\n URL = 2,\n }\n\n /**\n * Specifies the image output formats.\n */\n export enum ImageOutputFormats {\n /** Outputs image. */\n IMAGE = 1,\n /** Outputs pdf. */\n PDF = 2,\n }\n\n /**\n * Media chunks an output of getMedia API from platform\n */\n export interface MediaChunk {\n /**\n * Base 64 data for the requested uri\n */\n chunk: string;\n\n /**\n * chunk sequence number\n */\n chunkSequence: number;\n }\n\n /**\n * Output of getMedia API from platform\n */\n export interface MediaResult {\n /**\n * error encountered in getMedia API\n */\n error: SdkError;\n\n /**\n * Media chunk which will be assemebled and converted into a blob\n */\n mediaChunk: MediaChunk;\n }\n\n /**\n * Helper object to assembled media chunks\n */\n export interface AssembleAttachment {\n /** A number representing the sequence of the attachment in the media chunks. */\n sequence: number;\n /** A Blob object representing the data of the media chunks. */\n file: Blob;\n }\n\n /**\n * Helper class for assembling media\n */\n interface MediaHelper {\n /** A string representing the MIME type of the media file */\n mediaMimeType: string;\n /** An array of {@link media.AssembleAttachment | AssembleAttachment} objects representing the media files to be sent as attachment */\n assembleAttachment: AssembleAttachment[];\n }\n\n /**\n * Select an attachment using camera/gallery\n *\n * @param mediaInputs - The input params to customize the media to be selected\n * @param callback - The callback to invoke after fetching the media\n */\n export function selectMedia(mediaInputs: MediaInputs, callback: selectMediaCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[select Media] Callback cannot be null');\n }\n\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n callback(oldPlatformError, []);\n return;\n }\n\n try {\n throwExceptionIfMediaCallIsNotSupportedOnMobile(mediaInputs);\n } catch (err) {\n callback(err, []);\n return;\n }\n\n if (!validateSelectMediaInputs(mediaInputs)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n callback(invalidInput, []);\n return;\n }\n\n const params = [mediaInputs];\n // What comes back from native as attachments would just be objects and will be missing getMedia method on them\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_SelectMedia),\n 'selectMedia',\n params,\n (err: SdkError, localAttachments?: Media[], mediaEvent?: MediaControllerEvent) => {\n // MediaControllerEvent response is used to notify the app about events and is a partial response to selectMedia\n if (mediaEvent) {\n if (isVideoControllerRegistered(mediaInputs)) {\n mediaInputs?.videoProps?.videoController?.notifyEventToApp(mediaEvent);\n }\n return;\n }\n\n // Media Attachments are final response to selectMedia\n if (!localAttachments) {\n callback(err, []);\n return;\n }\n\n const mediaArray: Media[] = [];\n for (const attachment of localAttachments) {\n mediaArray.push(new Media(attachment));\n }\n callback(err, mediaArray);\n },\n );\n }\n\n /**\n * View images using native image viewer\n *\n * @param uriList - list of URIs for images to be viewed - can be content URI or server URL. Supports up to 10 Images in a single call\n * @param callback - returns back error if encountered, returns null in case of success\n */\n export function viewImages(uriList: ImageUri[], callback: errorCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[view images] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!isCurrentSDKVersionAtLeast(mediaAPISupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n callback(oldPlatformError);\n return;\n }\n if (!validateViewImagesInput(uriList)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n callback(invalidInput);\n return;\n }\n\n const params = [uriList];\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_ViewImages),\n 'viewImages',\n params,\n callback,\n );\n }\n\n /**\n * Barcode configuration supplied to scanBarCode API to customize barcode scanning experience in mobile\n * All properties in BarCodeConfig are optional and have default values in the platform\n */\n export interface BarCodeConfig {\n /**\n * Optional; Lets the developer specify the scan timeout interval in seconds\n * Default value is 30 seconds and max allowed value is 60 seconds\n */\n timeOutIntervalInSec?: number;\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use {@link barCode.scanBarCode barCode.scanBarCode(config?: BarCodeConfig): Promise\\} instead.\n\n * Scan Barcode/QRcode using camera\n *\n * @remarks\n * Note: For desktop and web, this API is not supported. Callback will be resolved with ErrorCode.NotSupported.\n *\n * @param callback - callback to invoke after scanning the barcode\n * @param config - optional input configuration to customize the barcode scanning experience\n */\n export function scanBarCode(callback: scanBarCodeCallbackFunctionType, config?: BarCodeConfig): void {\n if (!callback) {\n throw new Error('[media.scanBarCode] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (\n GlobalVars.hostClientType === HostClientType.desktop ||\n GlobalVars.hostClientType === HostClientType.web ||\n GlobalVars.hostClientType === HostClientType.rigel ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsWindows ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays\n ) {\n const notSupportedError: SdkError = { errorCode: ErrorCode.NOT_SUPPORTED_ON_PLATFORM };\n callback(notSupportedError, '');\n return;\n }\n\n if (!isCurrentSDKVersionAtLeast(scanBarCodeAPIMobileSupportVersion)) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n callback(oldPlatformError, '');\n return;\n }\n\n if (!validateScanBarCodeInput(config)) {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n callback(invalidInput, '');\n return;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(mediaTelemetryVersionNumber, ApiName.Media_ScanBarCode),\n 'media.scanBarCode',\n [config],\n callback,\n );\n }\n}\n","import { media } from '../public/media';\nimport { people } from '../public/people';\nimport {\n imageOutputFormatsAPISupportVersion,\n nonFullScreenVideoModeAPISupportVersion,\n videoAndImageMediaAPISupportVersion,\n} from './constants';\nimport { throwExceptionIfMobileApiIsNotSupported } from './internalAPIs';\n\n/**\n * @hidden\n * Helper function to create a blob from media chunks based on their sequence\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function createFile(assembleAttachment: media.AssembleAttachment[], mimeType: string): Blob | null {\n if (assembleAttachment == null || mimeType == null || assembleAttachment.length <= 0) {\n return null;\n }\n let file: Blob | null = null;\n let sequence = 1;\n assembleAttachment.sort((a, b) => (a.sequence > b.sequence ? 1 : -1));\n assembleAttachment.forEach((item) => {\n if (item.sequence == sequence) {\n if (file) {\n file = new Blob([file, item.file], { type: mimeType });\n } else {\n file = new Blob([item.file], { type: mimeType });\n }\n sequence++;\n }\n });\n return file;\n}\n\n/**\n * @hidden\n * Helper function to convert Media chunks into another object type which can be later assemebled\n * Converts base 64 encoded string to byte array and then into an array of blobs\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function decodeAttachment(attachment: media.MediaChunk, mimeType: string): media.AssembleAttachment | null {\n if (attachment == null || mimeType == null) {\n return null;\n }\n const decoded = atob(attachment.chunk);\n const byteNumbers = new Array(decoded.length);\n for (let i = 0; i < decoded.length; i++) {\n byteNumbers[i] = decoded.charCodeAt(i);\n }\n const byteArray = new Uint8Array(byteNumbers);\n const blob: Blob = new Blob([byteArray], { type: mimeType });\n const assemble: media.AssembleAttachment = {\n sequence: attachment.chunkSequence,\n file: blob,\n };\n return assemble;\n}\n\n/**\n * @hidden\n * Function throws an SdkError if the media call is not supported on current mobile version, else undefined.\n *\n * @throws an SdkError if the media call is not supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function throwExceptionIfMediaCallIsNotSupportedOnMobile(mediaInputs: media.MediaInputs): void {\n if (isMediaCallForVideoAndImageInputs(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(videoAndImageMediaAPISupportVersion);\n } else if (isMediaCallForNonFullScreenVideoMode(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(nonFullScreenVideoModeAPISupportVersion);\n } else if (isMediaCallForImageOutputFormats(mediaInputs)) {\n throwExceptionIfMobileApiIsNotSupported(imageOutputFormatsAPISupportVersion);\n }\n}\n\n/**\n * @hidden\n * Function returns true if the app has registered to listen to video controller events, else false.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isVideoControllerRegistered(mediaInputs: media.MediaInputs): boolean {\n if (\n mediaInputs.mediaType == media.MediaType.Video &&\n mediaInputs.videoProps &&\n mediaInputs.videoProps.videoController\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are valid and false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateSelectMediaInputs(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs == null || mediaInputs.maxMediaCount > 10) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for mediatype Image and contains Image outputs formats, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function isMediaCallForImageOutputFormats(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs?.mediaType == media.MediaType.Image && mediaInputs?.imageProps?.imageOutputFormats) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for mediatype VideoAndImage and false otherwise\n *\n * @internal\n */\nexport function isMediaCallForVideoAndImageInputs(mediaInputs: media.MediaInputs): boolean {\n if (mediaInputs && (mediaInputs.mediaType == media.MediaType.VideoAndImage || mediaInputs.videoAndImageProps)) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the mediaInput params are called for non-full screen video mode and false otherwise\n *\n * @internal\n */\nexport function isMediaCallForNonFullScreenVideoMode(mediaInputs: media.MediaInputs): boolean {\n if (\n mediaInputs &&\n mediaInputs.mediaType == media.MediaType.Video &&\n mediaInputs.videoProps &&\n !mediaInputs.videoProps.isFullScreenMode\n ) {\n return true;\n }\n return false;\n}\n\n/**\n * @hidden\n * Returns true if the get Media params are valid and false otherwise\n *\n * @internal\n */\nexport function validateGetMediaInputs(mimeType: string, format: media.FileFormat, content: string): boolean {\n if (mimeType == null || format == null || format != media.FileFormat.ID || content == null) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the view images param is valid and false otherwise\n *\n * @internal\n */\nexport function validateViewImagesInput(uriList: media.ImageUri[]): boolean {\n if (uriList == null || uriList.length <= 0 || uriList.length > 10) {\n return false;\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the scan barcode param is valid and false otherwise\n *\n * @internal\n */\nexport function validateScanBarCodeInput(barCodeConfig?: media.BarCodeConfig): boolean {\n if (barCodeConfig) {\n if (\n barCodeConfig.timeOutIntervalInSec === null ||\n (barCodeConfig.timeOutIntervalInSec != undefined && barCodeConfig.timeOutIntervalInSec <= 0) ||\n (barCodeConfig.timeOutIntervalInSec != undefined && barCodeConfig.timeOutIntervalInSec > 60)\n ) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * @hidden\n * Returns true if the people picker params are valid and false otherwise\n *\n * @internal\n */\nexport function validatePeoplePickerInput(peoplePickerInputs?: people.PeoplePickerInputs): boolean {\n if (peoplePickerInputs) {\n if (peoplePickerInputs.title) {\n if (typeof peoplePickerInputs.title !== 'string') {\n return false;\n }\n }\n\n if (peoplePickerInputs.setSelected) {\n if (typeof peoplePickerInputs.setSelected !== 'object') {\n return false;\n }\n }\n\n if (peoplePickerInputs.openOrgWideSearchInChatOrChannel) {\n if (typeof peoplePickerInputs.openOrgWideSearchInChatOrChannel !== 'boolean') {\n return false;\n }\n }\n if (peoplePickerInputs.singleSelect) {\n if (typeof peoplePickerInputs.singleSelect !== 'boolean') {\n return false;\n }\n }\n }\n return true;\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateScanBarCodeInput } from '../internal/mediaUtil';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { DevicePermission, ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst barCodeTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to interact with the barcode scanning-specific part of the SDK.\n *\n * @beta\n */\nexport namespace barCode {\n /**\n * Data structure to customize the barcode scanning experience in scanBarCode API.\n * All properties in BarCodeConfig are optional and have default values in the platform\n *\n * @beta\n */\n export interface BarCodeConfig {\n /**\n * Optional; designates the scan timeout interval in seconds.\n * Default value is 30 seconds, max allowed value is 60 seconds.\n */\n timeOutIntervalInSec?: number;\n }\n\n /**\n * Scan Barcode or QRcode using camera\n *\n * @param barCodeConfig - input configuration to customize the barcode scanning experience\n *\n * @returns a scanned code\n *\n * @beta\n */\n export function scanBarCode(barCodeConfig: BarCodeConfig): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!validateScanBarCodeInput(barCodeConfig)) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(barCodeTelemetryVersionNumber, ApiName.BarCode_ScanBarCode),\n 'media.scanBarCode',\n barCodeConfig,\n ),\n );\n });\n }\n\n /**\n * Checks whether or not media has user permission\n *\n * @returns true if the user has granted the app permission to media information, false otherwise\n *\n * @beta\n */\n export function hasPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(barCodeTelemetryVersionNumber, ApiName.BarCode_HasPermission),\n 'permissions.has',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Requests user permission for media\n *\n * @returns true if the user has granted the app permission to the media, false otherwise\n *\n * @beta\n */\n export function requestPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(barCodeTelemetryVersionNumber, ApiName.BarCode_RequestPermission),\n 'permissions.request',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Checks if barCode capability is supported by the host\n * @returns boolean to represent whether the barCode capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.barCode && runtime.supports.permissions ? true : false;\n }\n}\n","import { sendAndHandleStatusAndReasonWithVersion } from '../internal/communication';\nimport { createTeamsDeepLinkForChat } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * Describes information needed to start a chat\n *\n * @beta\n */\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst chatTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\ninterface OpenChatRequest {\n /**\n * An optional message used when initiating chat\n */\n message?: string;\n}\n\n/**\n * Used when starting a chat with one person\n *\n * @see OpenGroupChatRequest for use when a chat with more than one person\n *\n * @beta\n */\nexport interface OpenSingleChatRequest extends OpenChatRequest {\n /**\n * The [Microsoft Entra UPNs](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/plan-connect-userprincipalname) (usually but not always an e-mail address)\n * of the user with whom to begin a chat\n */\n user: string;\n}\n\n/**\n * Used when starting a chat with more than one person\n *\n * @see OpenSingleChatRequest for use in a chat with only one person\n *\n * @beta\n */\nexport interface OpenGroupChatRequest extends OpenChatRequest {\n /**\n * Array containing [Microsoft Entra UPNs](https://learn.microsoft.com/en-us/entra/identity/hybrid/connect/plan-connect-userprincipalname) (usually but not always an e-mail address)\n * of users with whom to begin a chat\n */\n users: string[];\n /**\n * The display name of a conversation for 3 or more users (chats with fewer than three users will ignore this field)\n */\n topic?: string;\n}\n\n/**\n * Contains functionality to start chat with others\n *\n * @beta\n */\nexport namespace chat {\n /**\n * Allows the user to open a chat with a single user and allows\n * for the user to specify the message they wish to send.\n *\n * @param openChatRequest: {@link OpenSingleChatRequest}- a request object that contains a user's email as well as an optional message parameter.\n *\n * @returns Promise resolved upon completion\n *\n * @beta\n */\n export function openChat(openChatRequest: OpenSingleChatRequest): Promise {\n const apiVersionTag = getApiVersionTag(chatTelemetryVersionNumber, ApiName.Chat_OpenChat);\n return openChatHelper(apiVersionTag, openChatRequest);\n }\n\n function openChatHelper(apiVersionTag: string, openChatRequest: OpenSingleChatRequest): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n apiVersionTag,\n 'executeDeepLink',\n createTeamsDeepLinkForChat([openChatRequest.user], undefined /*topic*/, openChatRequest.message),\n ),\n );\n } else {\n const sendPromise = sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'chat.openChat', {\n members: [openChatRequest.user],\n message: openChatRequest.message,\n });\n resolve(sendPromise);\n }\n });\n }\n /**\n * Allows the user to create a chat with multiple users (2+) and allows\n * for the user to specify a message and name the topic of the conversation. If\n * only 1 user is provided into users array default back to origin openChat.\n *\n * @param openChatRequest: {@link OpenGroupChatRequest} - a request object that contains a list of user emails as well as optional parameters for message and topic (display name for the group chat).\n *\n * @returns Promise resolved upon completion\n *\n * @beta\n */\n export function openGroupChat(openChatRequest: OpenGroupChatRequest): Promise {\n const apiVersionTag = getApiVersionTag(chatTelemetryVersionNumber, ApiName.Chat_OpenGroupChat);\n return new Promise((resolve) => {\n if (openChatRequest.users.length < 1) {\n throw Error('OpenGroupChat Failed: No users specified');\n }\n if (openChatRequest.users.length === 1) {\n const chatRequest: OpenSingleChatRequest = {\n user: openChatRequest.users[0],\n message: openChatRequest.message,\n };\n resolve(openChatHelper(apiVersionTag, chatRequest));\n } else {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n apiVersionTag,\n 'executeDeepLink',\n createTeamsDeepLinkForChat(openChatRequest.users, openChatRequest.topic, openChatRequest.message),\n ),\n );\n } else {\n const sendPromise = sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'chat.openChat', {\n members: openChatRequest.users,\n message: openChatRequest.message,\n topic: openChatRequest.topic,\n });\n resolve(sendPromise);\n }\n }\n });\n }\n\n /**\n * Checks if the chat capability is supported by the host\n * @returns boolean to represent whether the chat capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.chat ? true : false;\n }\n}\n","import { sendAndHandleSdkError, sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { ensureInitialized, isHostClientMobile } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport * as utils from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts, HostClientType } from './constants';\nimport { ClipboardParams, ClipboardSupportedMimeType } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst clipboardTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Interact with the system clipboard\n *\n * @beta\n */\nexport namespace clipboard {\n /**\n * Function to copy data to clipboard.\n * @remarks\n * Note: clipboard.write only supports Text, HTML, PNG, and JPEG data format.\n * MIME type for Text -> `text/plain`, HTML -> `text/html`, PNG/JPEG -> `image/(png | jpeg)`\n * Also, JPEG will be converted to PNG image when copying to clipboard.\n *\n * @param blob - A Blob object representing the data to be copied to clipboard.\n * @returns A string promise which resolves to success message from the clipboard or\n * rejects with error stating the reason for failure.\n */\n export async function write(blob: Blob): Promise {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.meetingStage,\n FrameContexts.task,\n FrameContexts.settings,\n FrameContexts.stage,\n FrameContexts.sidePanel,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!(blob.type && Object.values(ClipboardSupportedMimeType).includes(blob.type as ClipboardSupportedMimeType))) {\n throw new Error(\n `Blob type ${blob.type} is not supported. Supported blob types are ${Object.values(\n ClipboardSupportedMimeType,\n )}`,\n );\n }\n const base64StringContent = await utils.getBase64StringFromBlob(blob);\n const writeParams: ClipboardParams = {\n mimeType: blob.type as ClipboardSupportedMimeType,\n content: base64StringContent,\n };\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(clipboardTelemetryVersionNumber, ApiName.Clipboard_Write),\n 'clipboard.writeToClipboard',\n writeParams,\n );\n }\n\n /**\n * Function to read data from clipboard.\n *\n * @returns A promise blob which resolves to the data read from the clipboard or\n * rejects stating the reason for failure.\n * Note: Returned blob type will contain one of the MIME type `image/png`, `text/plain` or `text/html`.\n */\n export async function read(): Promise {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.meetingStage,\n FrameContexts.task,\n FrameContexts.settings,\n FrameContexts.stage,\n FrameContexts.sidePanel,\n );\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (isHostClientMobile() || GlobalVars.hostClientType === HostClientType.macos) {\n const response = JSON.parse(await sendAndHandleSdkError('clipboard.readFromClipboard')) as ClipboardParams;\n return utils.base64ToBlob(response.mimeType, response.content);\n } else {\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(clipboardTelemetryVersionNumber, ApiName.Clipboard_Read),\n 'clipboard.readFromClipboard',\n );\n }\n }\n\n /**\n * Checks if clipboard capability is supported by the host\n * @returns boolean to represent whether the clipboard capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && navigator && navigator.clipboard && runtime.supports.clipboard ? true : false;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { DevicePermission, ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst geoLocationTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to interact with the geoLocation module-specific part of the SDK. This is the newer version of location module.\n *\n * @beta\n */\nexport namespace geoLocation {\n /**\n * Data struture to represent the location information\n *\n * @beta\n */\n export interface Location {\n /**\n Latitude of the location\n */\n latitude: number;\n /**\n Longitude of the location\n */\n longitude: number;\n /**\n Accuracy describes the maximum distance in meters from the captured coordinates to the possible actual location\n @remarks\n This property is only in scope for mobile\n */\n accuracy?: number;\n /**\n Time stamp when the location was captured\n */\n timestamp?: number;\n }\n /**\n * Fetches current user coordinates\n * @returns Promise that will resolve with {@link geoLocation.Location} object or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function getCurrentLocation(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(geoLocationTelemetryVersionNumber, ApiName.GeoLocation_GetCurrentLocation),\n 'location.getLocation',\n {\n allowChooseLocation: false,\n showMap: false,\n },\n );\n }\n\n /**\n * Checks whether or not location has user permission\n *\n * @returns Promise that will resolve with true if the user had granted the app permission to location information, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function hasPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.GeoLocation;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(geoLocationTelemetryVersionNumber, ApiName.GeoLocation_HasPermission),\n 'permissions.has',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Requests user permission for location\n *\n * @returns true if the user consented permission for location, false otherwise\n * @returns Promise that will resolve with true if the user consented permission for location, or with false otherwise,\n * In case of an error, promise will reject with the error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function requestPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.GeoLocation;\n\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(geoLocationTelemetryVersionNumber, ApiName.GeoLocation_RequestPermission),\n 'permissions.request',\n permissions,\n ),\n );\n });\n }\n\n /**\n * Checks if geoLocation capability is supported by the host\n * @returns boolean to represent whether geoLocation is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.geoLocation && runtime.supports.permissions ? true : false;\n }\n\n /**\n * Namespace to interact with the location on map module-specific part of the SDK.\n *\n * @beta\n */\n export namespace map {\n /**\n * Allows user to choose location on map\n *\n * @returns Promise that will resolve with {@link geoLocation.Location} object chosen by the user or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function chooseLocation(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(geoLocationTelemetryVersionNumber, ApiName.GeoLocation_Map_ChooseLocation),\n 'location.getLocation',\n {\n allowChooseLocation: true,\n showMap: true,\n },\n );\n }\n\n /**\n * Shows the location on map corresponding to the given coordinates\n *\n * @param location - Location to be shown on the map\n * @returns Promise that resolves when the location dialog has been closed or reject with an error. Function can also throw a NOT_SUPPORTED_ON_PLATFORM error\n *\n * @beta\n */\n export function showLocation(location: Location): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!location) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(geoLocationTelemetryVersionNumber, ApiName.GeoLocation_ShowLocation),\n 'location.showLocation',\n location,\n );\n }\n\n /**\n * Checks if geoLocation.map capability is supported by the host\n * @returns boolean to represent whether geoLocation.map is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) &&\n runtime.supports.geoLocation &&\n runtime.supports.geoLocation.map &&\n runtime.supports.permissions\n ? true\n : false;\n }\n }\n}\n","import { AdaptiveCardVersion } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * @returns The {@linkcode AdaptiveCardVersion} representing the Adaptive Card schema\n * version supported by the host, or undefined if the host does not support Adaptive Cards\n */\nexport function getAdaptiveCardSchemaVersion(): AdaptiveCardVersion | undefined {\n if (!runtime.hostVersionsInfo) {\n return undefined;\n } else {\n return runtime.hostVersionsInfo.adaptiveCardSchemaVersion;\n }\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n\nimport { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/** onComplete function type */\nexport type onCompleteFunctionType = (status: boolean, reason?: string) => void;\n/** addEventListner function type */\nexport type addEventListnerFunctionType = (message: any) => void;\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst appWindowTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/** Represents a window or frame within the host app. */\nexport interface IAppWindow {\n /**\n * Send a message to the AppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n postMessage(message: any, onComplete?: onCompleteFunctionType): void;\n\n /**\n * Add a listener that will be called when an event is received from this AppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n addEventListener(type: string, listener: Function): void;\n}\n\n/**\n * An object that application can utilize to establish communication\n * with the child window it opened, which contains the corresponding task.\n */\nexport class ChildAppWindow implements IAppWindow {\n /**\n * Send a message to the ChildAppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n public postMessage(message: any, onComplete?: onCompleteFunctionType): void {\n ensureInitialized(runtime);\n sendMessageToParentWithVersion(\n getApiVersionTag(appWindowTelemetryVersionNumber, ApiName.AppWindow_ChildAppWindow_PostMessage),\n 'messageForChild',\n [message],\n onComplete ? onComplete : getGenericOnCompleteHandler(),\n );\n }\n /**\n * Add a listener that will be called when an event is received from the ChildAppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n public addEventListener(type: string, listener: addEventListnerFunctionType): void {\n ensureInitialized(runtime);\n if (type === 'message') {\n registerHandlerWithVersion(\n getApiVersionTag(appWindowTelemetryVersionNumber, ApiName.AppWindow_ChildAppWindow_AddEventListener),\n 'messageForParent',\n listener,\n );\n }\n }\n}\n\n/**\n * An object that is utilized to facilitate communication with a parent window\n * that initiated the opening of current window. For instance, a dialog or task\n * module would utilize it to transmit messages to the application that launched it.\n */\nexport class ParentAppWindow implements IAppWindow {\n /** Represents a parent window or frame. */\n private static _instance: ParentAppWindow;\n /** Get the parent window instance. */\n public static get Instance(): IAppWindow {\n // Do you need arguments? Make it a regular method instead.\n return this._instance || (this._instance = new this());\n }\n\n /**\n * Send a message to the ParentAppWindow.\n *\n * @param message - The message to send\n * @param onComplete - The callback to know if the postMessage has been success/failed.\n */\n public postMessage(message: any, onComplete?: onCompleteFunctionType): void {\n ensureInitialized(runtime, FrameContexts.task);\n sendMessageToParentWithVersion(\n getApiVersionTag(appWindowTelemetryVersionNumber, ApiName.AppWindow_ParentAppWindow_PostMessage),\n 'messageForParent',\n [message],\n onComplete ? onComplete : getGenericOnCompleteHandler(),\n );\n }\n\n /**\n * Add a listener that will be called when an event is received from the ParentAppWindow.\n *\n * @param type - The event to listen to. Currently the only supported type is 'message'.\n * @param listener - The listener that will be called\n */\n public addEventListener(type: string, listener: addEventListnerFunctionType): void {\n ensureInitialized(runtime, FrameContexts.task);\n if (type === 'message') {\n registerHandlerWithVersion(\n getApiVersionTag(appWindowTelemetryVersionNumber, ApiName.AppWindow_ParentAppWindow_AddEventListener),\n 'messageForChild',\n listener,\n );\n }\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { isValidHttpsURL } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst secondaryBrowserTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to power up the in-app browser experiences in the host app.\n * For e.g., opening a URL in the host app inside a browser\n *\n * @beta\n */\nexport namespace secondaryBrowser {\n /**\n * Open a URL in the secondary browser.\n *\n * On mobile, this is the in-app browser.\n *\n * On web and desktop, please use the `window.open()` method or other native external browser methods.\n *\n * @param url Url to open in the browser\n * @returns Promise that successfully resolves if the URL opens in the secondaryBrowser\n * or throws an error {@link SdkError} incase of failure before starting navigation\n *\n * @remarks Any error that happens after navigation begins is handled by the platform browser component and not returned from this function.\n * @beta\n */\n export function open(url: URL): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!url || !isValidHttpsURL(url)) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS, message: 'Invalid Url: Only https URL is allowed' };\n }\n\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(secondaryBrowserTelemetryVersionNumber, ApiName.SecondaryBrowser_OpenUrl),\n 'secondaryBrowser.open',\n url.toString(),\n );\n }\n\n /**\n * Checks if secondaryBrowser capability is supported by the host\n * @returns boolean to represent whether secondaryBrowser is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.secondaryBrowser ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { locationAPIsRequiredVersion } from '../internal/constants';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst locationTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * @deprecated\n * As of 2.1.0, please use geoLocation namespace.\n *\n * Namespace to interact with the location module-specific part of the SDK.\n */\nexport namespace location {\n /** Get location callback function type */\n export type getLocationCallbackFunctionType = (error: SdkError, location: Location) => void;\n /** Show location callback function type */\n export type showLocationCallbackFunctionType = (error: SdkError, status: boolean) => void;\n\n /**\n * @deprecated\n * Data Structure to set the location properties in getLocation call.\n */\n export interface LocationProps {\n /**\n whether user can alter location or not\n if false, user will be shown current location \n and wouldn't be allowed to alter it\n */\n allowChooseLocation: boolean;\n /**\n whether selected location should be shown to user on map or not.\n If allowChooseLocation is true, this parameter will be ignored by platform.\n If allowChooseLocation is false, and this parameter is not provided, default \n value will be false.\n */\n showMap?: boolean;\n }\n\n /**\n * @deprecated\n * Data struture to represent the location information\n */\n export interface Location {\n /**\n Latitude of the location\n */\n latitude: number;\n /**\n Longitude of the location\n */\n longitude: number;\n /**\n Accuracy of the coordinates captured\n */\n accuracy?: number;\n /**\n Time stamp when the location was captured\n */\n timestamp?: number;\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use one of the following functions:\n * - {@link geoLocation.getCurrentLocation geoLocation.getCurrentLocation(): Promise\\} to get the current location.\n * - {@link geoLocation.map.chooseLocation geoLocation.map.chooseLocation(): Promise\\} to choose location on map.\n *\n * Fetches user location\n * @param props {@link LocationProps} - Specifying how the location request is handled\n * @param callback - Callback to invoke when current user location is fetched\n */\n export function getLocation(props: LocationProps, callback: getLocationCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[location.getLocation] Callback cannot be null');\n }\n\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n\n if (!isCurrentSDKVersionAtLeast(locationAPIsRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n if (!props) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(locationTelemetryVersionNumber, ApiName.Location_GetLocation),\n 'location.getLocation',\n [props],\n callback,\n );\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use {@link geoLocation.map.showLocation geoLocation.map.showLocation(location: Location): Promise\\} instead.\n *\n * Shows the location on map corresponding to the given coordinates\n *\n * @param location - Location to be shown on the map\n * @param callback - Callback to invoke when the location is opened on map\n */\n export function showLocation(location: Location, callback: showLocationCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[location.showLocation] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isCurrentSDKVersionAtLeast(locationAPIsRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n if (!location) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(locationTelemetryVersionNumber, ApiName.Location_ShowLocation),\n 'location.showLocation',\n [location],\n callback,\n );\n }\n\n /**\n * @deprecated\n * As of 2.1.0, please use geoLocation namespace, and use {@link geoLocation.isSupported geoLocation.isSupported: boolean} to check if geoLocation is supported.\n *\n * Checks if Location capability is supported by the host\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @returns boolean to represent whether Location is supported\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.location ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { doesHandlerExist, registerHandlerWithVersion, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst meetingTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * Interact with meetings, including retrieving meeting details, getting mic status, and sharing app content.\n * This namespace is used to handle meeting related functionality like\n * get meeting details, get/update state of mic, sharing app content and more.\n *\n * To learn more, visit https://aka.ms/teamsmeetingapps\n */\nexport namespace meeting {\n /** Error callback function type */\n export type errorCallbackFunctionType = (error: SdkError | null, result: boolean | null) => void;\n /** Get live stream state callback function type */\n export type getLiveStreamStateCallbackFunctionType = (\n error: SdkError | null,\n liveStreamState: LiveStreamState | null,\n ) => void;\n /** Live stream error callback function type */\n export type liveStreamErrorCallbackFunctionType = (error: SdkError | null) => void;\n /** Register live stream changed handler function type */\n export type registerLiveStreamChangedHandlerFunctionType = (liveStreamState: LiveStreamState) => void;\n /** Get app content stage sharing capabilities callback function type */\n export type getAppContentCallbackFunctionType = (\n error: SdkError | null,\n appContentStageSharingCapabilities: IAppContentStageSharingCapabilities | null,\n ) => void;\n /** Get app content stage sharing state callback function type */\n export type getAppContentStageCallbackFunctionType = (\n error: SdkError | null,\n appContentStageSharingState: IAppContentStageSharingState | null,\n ) => void;\n /** Register speaking state change handler function type */\n export type registerSpeakingStateChangeHandlerFunctionType = (speakingState: ISpeakingState) => void;\n /**\n * @hidden\n * Data structure to represent meeting details\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IMeetingDetailsResponse {\n /**\n * @hidden\n * details object\n */\n details: IMeetingDetails | ICallDetails;\n\n /**\n * @hidden\n * conversation object\n */\n conversation: IConversation;\n\n /**\n * @hidden\n * organizer object\n */\n organizer: IOrganizer;\n }\n\n /**\n * @hidden\n * Hide from docs\n * Base data structure to represent a meeting or call detail\n */\n export interface IMeetingOrCallDetailsBase {\n /**\n * @hidden\n * Scheduled start time of the meeting or start time of the call\n */\n scheduledStartTime: string;\n\n /**\n * @hidden\n * url to join the current meeting or call\n */\n joinUrl?: string;\n\n /**\n * @hidden\n * type of the meeting or call\n */\n type?: T;\n }\n\n /**\n * @hidden\n * Hide from docs\n * Data structure to represent call details\n */\n export type ICallDetails = IMeetingOrCallDetailsBase;\n\n /**\n * @hidden\n * Hide from docs\n * Data structure to represent meeting details.\n */\n export interface IMeetingDetails extends IMeetingOrCallDetailsBase {\n /**\n * @hidden\n * Scheduled end time of the meeting\n */\n scheduledEndTime: string;\n\n /**\n * @hidden\n * meeting title name of the meeting\n */\n title?: string;\n }\n\n /**\n * @hidden\n * Data structure to represent a conversation object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IConversation {\n /**\n * @hidden\n * conversation id of the meeting\n */\n id: string;\n }\n\n /**\n * @hidden\n * Data structure to represent an organizer object.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IOrganizer {\n /**\n * @hidden\n * organizer id of the meeting\n */\n id?: string;\n /**\n * @hidden\n * tenant id of the meeting\n */\n tenantId?: string;\n }\n\n /**\n * Represents the current Real-Time Messaging Protocol (RTMP) live streaming state of a meeting.\n *\n * @remarks\n * RTMP is a popular communication protocol for streaming audio, video, and data over the Internet.\n */\n export interface LiveStreamState {\n /**\n * true when the current meeting is being streamed through RTMP, or false if it is not.\n */\n isStreaming: boolean;\n\n /**\n * error object in case there is a failure\n */\n error?: {\n /** error code from the streaming service, e.g. IngestionFailure */\n code: string;\n /** detailed error message string */\n message?: string;\n };\n }\n\n /** Defines additional sharing options which can be provided to the {@link shareAppContentToStage} API. */\n export interface IShareAppContentToStageOptions {\n /**\n * The protocol option for sharing app content to the meeting stage. Defaults to `Collaborative`.\n * See {@link SharingProtocol} for more information.\n */\n sharingProtocol?: SharingProtocol;\n }\n\n /** Represents app permission to share contents to meeting. */\n export interface IAppContentStageSharingCapabilities {\n /**\n * indicates whether app has permission to share contents to meeting stage.\n * true when your `configurableTabs` or `staticTabs` entry's `context` array includes `meetingStage`.\n */\n doesAppHaveSharePermission: boolean;\n }\n\n /** Represents app being shared to stage. */\n export interface IAppContentStageSharingState {\n /**\n * indicates whether app is currently being shared to stage\n */\n isAppSharing: boolean;\n }\n\n /**\n * Property bag for the speakingState changed event\n *\n */\n export interface ISpeakingState {\n /**\n * true when one or more participants in a meeting are speaking, or false if no participants are speaking\n */\n isSpeakingDetected: boolean;\n\n /**\n * error object in case there is a failure\n */\n error?: SdkError;\n }\n\n /**\n * Property bag for the meeting reaction received event\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface MeetingReactionReceivedEventData {\n /**\n * Indicates the type of meeting reaction received\n *\n * @hidden\n * Hide from docs.\n */\n meetingReactionType?: MeetingReactionType;\n /**\n * error object in case there is a failure\n *\n * @hidden\n * Hide from docs.\n */\n error?: SdkError;\n }\n\n /**\n * Interface for raiseHandState properties\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface IRaiseHandState {\n /** Indicates whether the selfParticipant's hand is raised or not\n *\n * @hidden\n * Hide from docs.\n */\n\n isHandRaised: boolean;\n }\n\n /**\n * Property bag for the raiseHandState changed event\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface RaiseHandStateChangedEventData {\n /**\n * entire raiseHandState object for the selfParticipant\n *\n * @hidden\n * Hide from docs.\n */\n raiseHandState: IRaiseHandState;\n\n /**\n * error object in case there is a failure\n *\n * @hidden\n * Hide from docs.\n */\n error?: SdkError;\n }\n\n /**\n * Interface for mic state change\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface MicState {\n /**\n * Indicates the mute status of the mic\n */\n isMicMuted: boolean;\n }\n\n /**\n * Reasons for the app's microphone state to change\n */\n enum MicStateChangeReason {\n HostInitiated,\n AppInitiated,\n AppDeclinedToChange,\n AppFailedToChange,\n }\n\n /**\n * Interface for RequestAppAudioHandling properties\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface RequestAppAudioHandlingParams {\n /**\n * Indicates whether the app is requesting to start handling audio, or if\n * it's giving audio back to the host\n */\n isAppHandlingAudio: boolean;\n /**\n * Callback for the host to tell the app to change its microphone state\n * @param micState The microphone state for the app to use\n * @returns A promise with the updated microphone state\n */\n micMuteStateChangedCallback: (micState: MicState) => Promise;\n /**\n * Callback for the host to tell the app to change its speaker selection\n */\n audioDeviceSelectionChangedCallback?: (selectedDevices: AudioDeviceSelection | SdkError) => void;\n }\n\n /**\n * Interface for AudioDeviceSelection from host selection.\n * If the speaker or the microphone is undefined or don't have a device label, you can try to find the default devices\n * by using\n * ```ts\n * const devices = await navigator.mediaDevices.enumerateDevices();\n * const defaultSpeaker = devices.find((d) => d.deviceId === 'default' && d.kind === 'audiooutput');\n * const defaultMic = devices.find((d) => d.deviceId === 'default' && d.kind === 'audioinput');\n * ```\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface AudioDeviceSelection {\n speaker?: AudioDeviceInfo;\n microphone?: AudioDeviceInfo;\n }\n\n /**\n * Interface for AudioDeviceInfo, includes a device label with the same format as {@link MediaDeviceInfo.label}\n *\n * Hosted app can use this label to compare it with the device info fetched from {@link navigator.mediaDevices.enumerateDevices()}.\n * {@link MediaDeviceInfo} has {@link MediaDeviceInfo.deviceId} as an unique identifier, but that id is also unique to the origin\n * of the calling application, so {@link MediaDeviceInfo.deviceId} cannot be used here as an identifier. Notice there are some cases\n * that devices may have the same device label, but we don't have a better way to solve this, keep this as a known limitation for now.\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface AudioDeviceInfo {\n deviceLabel: string;\n }\n\n /**\n * Different types of meeting reactions that can be sent/received\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export enum MeetingReactionType {\n like = 'like',\n heart = 'heart',\n laugh = 'laugh',\n surprised = 'surprised',\n applause = 'applause',\n }\n\n /**\n * Represents the type of a meeting\n *\n * @hidden\n * Hide from docs.\n *\n * @remarks\n * Teams has several types of meetings to account for different user scenarios and requirements.\n */\n export enum MeetingType {\n /**\n * Used when the meeting type is not known.\n *\n * @remarks\n * This response is not an expected case.\n */\n Unknown = 'Unknown',\n /**\n * Used for group call meeting types.\n *\n * @remarks\n * To test this meeting type in Teams, start a chat with two or more users and click the \"Call\" button.\n * Note that a group call may return as this or {@link CallType.GroupCall}. These two different response types should be considered as equal.\n */\n Adhoc = 'Adhoc',\n /**\n * Used for single-occurrence meetings that have been scheduled in advance.\n *\n * @remarks\n * To create a meeting of this type in Teams, press the \"New meeting\" button from the calendar and enter a meeting title.\n * Before saving, ensure that the \"Online Meeting\" field is checked.\n */\n Scheduled = 'Scheduled',\n /**\n * Used for meetings that occur on a recurring basis.\n *\n * @remarks\n * To create a meeting of this type in Teams, press the \"New meeting\" button from the calendar, enter a meeting title, and then change the field labeled \"Does not repeat\" to some other value.\n * Before saving, ensure that the \"Online Meeting\" field is checked.\n */\n Recurring = 'Recurring',\n /**\n * Used for webinars.\n *\n * @remarks\n * Meeting apps are only supported for those in the \"event group\" of a webinar, which are those who'll be presenting and producing the webinar.\n * To learn how to create a meeting of this type, visit https://aka.ms/teams/howto/webinars.\n */\n Broadcast = 'Broadcast',\n /**\n * Used for meet now meetings, which are meetings users create on the fly.\n *\n * @remarks\n * To create a meeting of this type, click the \"Meet now\" button from the calendar in Teams or the \"Teams call\" button in Outlook.\n */\n MeetNow = 'MeetNow',\n }\n\n /**\n * Represents the type of a call.\n *\n * @hidden\n * Hide from docs.\n */\n export enum CallType {\n /**\n * Represents a call between two people.\n *\n * @remarks\n * To test this feature, start a chat with one other user and click the \"Call\" button.\n */\n OneOnOneCall = 'oneOnOneCall',\n /**\n * Represents a call between more than two people.\n *\n * @remarks\n * To test this meeting type in Teams, start a chat with two or more users and click the \"Call\" button.\n * Note that a group call may return as this or {@link MeetingType.Adhoc}. These two different response types should be considered as equal.\n */\n GroupCall = 'groupCall',\n }\n\n /**\n * Represents the protocol option for sharing app content to the meeting stage.\n */\n export enum SharingProtocol {\n /**\n * The default protocol for sharing app content to stage. To learn more, visit https://aka.ms/teamsjs/shareAppContentToStage\n */\n Collaborative = 'Collaborative',\n /**\n * A read-only protocol for sharing app content to stage, which uses screen sharing in meetings. If provided, this protocol will open\n * the specified `contentUrl` passed to the {@link shareAppContentToStage} API in a new instance and screen share that instance.\n */\n ScreenShare = 'ScreenShare',\n }\n\n /**\n * Allows an app to get the incoming audio speaker setting for the meeting user.\n * To learn more, visit https://aka.ms/teamsjs/getIncomingClientAudioState\n *\n * @remarks\n * Use {@link toggleIncomingClientAudio} to toggle the current audio state.\n * For private scheduled meetings, meet now, or calls, include the `OnlineMeetingParticipant.ToggleIncomingAudio.Chat` RSC permission in your app manifest.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n * This API can only be used in the `sidePanel` and `meetingStage` frame contexts.\n *\n * @param callback - Callback contains 2 parameters, `error` and `result`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when fetch is successful.\n * `result` will be true when incoming audio is muted and false when incoming audio is unmuted, or null when the request fails.\n */\n export function getIncomingClientAudioState(callback: errorCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[get incoming client audio state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetIncomingClientAudioState),\n 'getIncomingClientAudioState',\n callback,\n );\n }\n\n /**\n * Allows an app to toggle the incoming audio speaker setting for the meeting user from mute to unmute or vice-versa.\n * To learn more, visit https://aka.ms/teamsjs/toggleIncomingClientAudio\n *\n * @remarks\n * Use {@link getIncomingClientAudioState} to get the current audio state.\n * For private scheduled meetings, meet now, or calls, include the `OnlineMeetingParticipant.ToggleIncomingAudio.Chat` RSC permission in your app manifest.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n * This API can only be used in the `sidePanel` and `meetingStage` frame contexts.\n *\n * @param callback - Callback contains 2 parameters, `error` and `result`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when toggle is successful.\n * `result` will be true when incoming audio is muted and false when incoming audio is unmuted, or null when the toggling fails.\n */\n export function toggleIncomingClientAudio(callback: errorCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[toggle incoming client audio] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_ToggleIncomingClientAudio),\n 'toggleIncomingClientAudio',\n callback,\n );\n }\n\n /**\n * @hidden\n * Allows an app to get the meeting details for the meeting\n *\n * @param callback - Callback contains 2 parameters, `error` and `meetingDetailsResponse`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when get is successful\n * `result` can either contain a {@link IMeetingDetailsResponse} value, in case of a successful get or null when the get fails\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getMeetingDetails(\n callback: (error: SdkError | null, meetingDetails: IMeetingDetailsResponse | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get meeting details] Callback cannot be null');\n }\n ensureInitialized(\n runtime,\n FrameContexts.sidePanel,\n FrameContexts.meetingStage,\n FrameContexts.settings,\n FrameContexts.content,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetMeetingDetails),\n 'meeting.getMeetingDetails',\n callback,\n );\n }\n\n /**\n * @hidden\n * Allows an app to get the authentication token for the anonymous or guest user in the meeting\n *\n * @param callback - Callback contains 2 parameters, `error` and `authenticationTokenOfAnonymousUser`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when get is successful\n * `authenticationTokenOfAnonymousUser` can either contain a string value, in case of a successful get or null when the get fails\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getAuthenticationTokenForAnonymousUser(\n callback: (error: SdkError | null, authenticationTokenOfAnonymousUser: string | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[get Authentication Token For AnonymousUser] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage, FrameContexts.task);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetAuthenticationTokenForAnonymousUser),\n 'meeting.getAuthenticationTokenForAnonymousUser',\n callback,\n );\n }\n\n /**\n * Allows an app to get the state of the outgoing live stream in the current meeting.\n *\n * @remarks\n * Use {@link requestStartLiveStreaming} or {@link requestStopLiveStreaming} to start/stop a live stream.\n * This API can only be used in the `sidePanel` frame context.\n * The `meetingExtensionDefinition.supportsStreaming` field in your app manifest must be `true` to use this API.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/meetingExtensionDefinition.\n *\n * @param callback - Callback contains 2 parameters: `error` and `liveStreamState`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when the request is successful\n * `liveStreamState` can either contain a `LiveStreamState` value, or null when operation fails\n */\n export function getLiveStreamState(callback: getLiveStreamStateCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[get live stream state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetLiveStreamState),\n 'meeting.getLiveStreamState',\n callback,\n );\n }\n\n /**\n * Allows an app to ask the local user to begin live streaming the current meeting to the given Real-Time Messaging Protocol (RTMP) stream url.\n * A confirmation dialog will be shown to the local user with options to \"Allow\" or \"Cancel\" this request.\n *\n * @remarks\n * Meeting content (e.g., user video, screenshare, audio, etc.) can be externally streamed to any platform that supports the popular RTMP standard.\n * Content broadcasted through RTMP is automatically formatted and cannot be customized.\n * Use {@link getLiveStreamState} or {@link registerLiveStreamChangedHandler} to get updates on the live stream state.\n * This API can only be used in the `sidePanel` frame context.\n * The `meetingExtensionDefinition.supportsStreaming` field in your app manifest must be `true` to use this API.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/meetingExtensionDefinition.\n *\n * @param callback - completion callback that contains an `error` parameter, which can be of type `SdkError` in case of an error, or null when operation is successful\n * @param streamUrl - the url to the RTMP stream resource\n * @param streamKey - the key to the RTMP stream resource\n */\n export function requestStartLiveStreaming(\n callback: liveStreamErrorCallbackFunctionType,\n streamUrl: string,\n streamKey?: string,\n ): void {\n if (!callback) {\n throw new Error('[request start live streaming] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RequestStartLiveStreaming),\n 'meeting.requestStartLiveStreaming',\n [streamUrl, streamKey],\n callback,\n );\n }\n\n /**\n * Allows an app to request that live streaming be stopped.\n *\n * @remarks\n * Use {@link getLiveStreamState} or {@link registerLiveStreamChangedHandler} to get updates on the live stream state.\n * This API can only be used in the `sidePanel` frame context.\n * The `meetingExtensionDefinition.supportsStreaming` field in your app manifest must be `true` to use this API.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/meetingExtensionDefinition.\n *\n * @param callback - completion callback that contains an error parameter, which can be of type `SdkError` in case of an error, or null when operation is successful\n */\n export function requestStopLiveStreaming(callback: liveStreamErrorCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[request stop live streaming] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RequestStopLiveStreaming),\n 'meeting.requestStopLiveStreaming',\n callback,\n );\n }\n\n /**\n * Registers an event handler for state changes to the live stream.\n *\n * @remarks\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * Use {@link requestStartLiveStreaming} or {@link requestStopLiveStreaming} to start/stop a live stream.\n * This API can only be used in the `sidePanel` frame context.\n * The `meetingExtensionDefinition.supportsStreaming` field in your app manifest must be `true` to use this API.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/meetingExtensionDefinition.\n *\n * @param handler - The handler to invoke when the live stream state changes\n */\n export function registerLiveStreamChangedHandler(handler: registerLiveStreamChangedHandlerFunctionType): void {\n if (!handler) {\n throw new Error('[register live stream changed handler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterLiveStreamChangedHandler),\n 'meeting.liveStreamChanged',\n handler,\n );\n }\n\n /**\n * Allows an app to share a given URL to the meeting stage for all users in the meeting.\n * To learn more, visit https://aka.ms/teamsjs/shareAppContentToStage\n *\n * @remarks\n * This API can only be used in the `sidePanel` and `meetingStage` frame contexts.\n * For private scheduled meetings, meet now, or calls, include the `MeetingStage.Write.Chat` RSC permission in your app manifest.\n * For channel meetings, include the `ChannelMeetingStage.Write.Group` RSC permission in your app manifest.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n * Use {@link getAppContentStageSharingCapabilities} to determine if the local user is eligible to use this API.\n * Use {@link getAppContentStageSharingState} to determine whether app content is already being shared to the meeting stage.\n *\n * @param callback - Callback contains 2 parameters, `error` and `result`.\n * `error` can either contain an error of type `SdkError`, in case of an error, or null when share is successful\n * `result` can either contain a true value, in case of a successful share or null when the share fails\n * @param appContentUrl - is the input URL to be shared to the meeting stage.\n * the URL origin must be included in your app manifest's `validDomains` field.\n * @param shareOptions - is an object that contains additional sharing options. If omitted, the default\n * sharing protocol will be `Collaborative`. See {@link IShareAppContentToStageOptions} for more information.\n */\n export function shareAppContentToStage(\n callback: errorCallbackFunctionType,\n appContentUrl: string,\n shareOptions: IShareAppContentToStageOptions = { sharingProtocol: SharingProtocol.Collaborative },\n ): void {\n if (!callback) {\n throw new Error('[share app content to stage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_ShareAppContentToStage),\n 'meeting.shareAppContentToStage',\n [appContentUrl, shareOptions],\n callback,\n );\n }\n\n /**\n * Allows an app to request whether the local user's app version has the required app manifest permissions to share content to meeting stage.\n * To learn more, visit https://aka.ms/teamsjs/getAppContentStageSharingCapabilities\n *\n * @remarks\n * If you are updating your published app to include the share to stage feature, you can use this API to prompt users to update their app if they are using an older version.\n * Your app's `configurableTabs` or `staticTabs` entry's `context` array must include `meetingStage` for `doesAppHaveSharePermission` to be `true` in the `callback` response.\n *\n * @throws error if API is being used outside of `sidePanel` or `meetingStage` frame contexts.\n * @throws error if your app manifest does not include the `MeetingStage.Write.Chat` RSC permission in your app manifest in a private scheduled meeting, meet now, or call --\n * or if it does not include the `ChannelMeetingStage.Write.Group` RSC permission in your app manifest in a channel meeting.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n *\n * @param callback - Completion callback contains 2 parameters: `error` and `appContentStageSharingCapabilities`.\n * `error` can either contain an error of type `SdkError` (error indication), or null (non-error indication).\n * `appContentStageSharingCapabilities` will contain an {@link IAppContentStageSharingCapabilities} object if the request succeeds, or null if it failed.\n */\n export function getAppContentStageSharingCapabilities(callback: getAppContentCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[get app content stage sharing capabilities] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetAppContentStageSharingCapabilities),\n 'meeting.getAppContentStageSharingCapabilities',\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs.\n * Terminates current stage sharing session in meeting\n *\n * @param callback - Callback contains 2 parameters, error and result.\n * error can either contain an error of type SdkError (error indication), or null (non-error indication)\n * result can either contain a true boolean value (successful termination), or null (unsuccessful fetch)\n */\n export function stopSharingAppContentToStage(callback: errorCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[stop sharing app content to stage] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_StopSharingAppContentToStage),\n 'meeting.stopSharingAppContentToStage',\n callback,\n );\n }\n\n /**\n * Provides information related to current stage sharing state for your app.\n * To learn more, visit https://aka.ms/teamsjs/getAppContentStageSharingState\n *\n * @remarks\n * This API can only be used in the `sidePanel` and `meetingStage` frame contexts.\n * For private scheduled meetings, meet now, or calls, include the `MeetingStage.Write.Chat` RSC permission in your app manifest.\n * For channel meetings, include the `ChannelMeetingStage.Write.Group` RSC permission in your app manifest.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n *\n * @param callback - Callback contains 2 parameters, `error` and `appContentStageSharingState`.\n * error can either contain an error of type SdkError (error indication), or null (non-error indication)\n * `appContentStageSharingState` can either contain an `IAppContentStageSharingState` object if the request succeeds, or null if it failed\n */\n export function getAppContentStageSharingState(callback: getAppContentStageCallbackFunctionType): void {\n if (!callback) {\n throw new Error('[get app content stage sharing state] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_GetAppContentStageSharingState),\n 'meeting.getAppContentStageSharingState',\n callback,\n );\n }\n\n /**\n * Registers a handler for changes to participant speaking states.\n * To learn more, visit https://aka.ms/teamsjs/registerSpeakingStateChangeHandler\n *\n * @remarks\n * This API returns {@link ISpeakingState}, which will have `isSpeakingDetected` and/or an error object.\n * If any participant is speaking, `isSpeakingDetected` will be true, or false if no participants are speaking.\n * Only one handler can be registered at a time. Subsequent registrations replace existing registrations.\n * This API can only be used in the `sidePanel` and `meetingStage` frame contexts.\n * For private scheduled meetings, meet now, or calls, include the `OnlineMeetingIncomingAudio.Detect.Chat` RSC permission in your app manifest.\n * For channel meetings, include the `OnlineMeetingIncomingAudio.Detect.Group` RSC permission in your app manifest.\n * Find the app manifest reference at https://aka.ms/teamsAppManifest/authorization.\n *\n * @param handler The handler to invoke when the speaking state of any participant changes (start/stop speaking).\n */\n export function registerSpeakingStateChangeHandler(handler: registerSpeakingStateChangeHandlerFunctionType): void {\n if (!handler) {\n throw new Error('[registerSpeakingStateChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterSpeakingStateChangeHandler),\n 'meeting.speakingStateChanged',\n handler,\n );\n }\n\n /**\n * Registers a handler for changes to the selfParticipant's (current user's) raiseHandState. If the selfParticipant raises their hand, isHandRaised\n * will be true. By default and if the selfParticipant hand is lowered, isHandRaised will be false. This API will return {@link RaiseHandStateChangedEventData}\n * that will have the raiseHandState or an error object. Only one handler can be registered at a time. A subsequent registration\n * replaces an existing registration.\n *\n * @param handler The handler to invoke when the selfParticipant's (current user's) raiseHandState changes.\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function registerRaiseHandStateChangedHandler(\n handler: (eventData: RaiseHandStateChangedEventData) => void,\n ): void {\n if (!handler) {\n throw new Error('[registerRaiseHandStateChangedHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterRaiseHandStateChangedHandler),\n 'meeting.raiseHandStateChanged',\n handler,\n );\n }\n\n /**\n * Registers a handler for receiving meeting reactions. When the selfParticipant (current user) successfully sends a meeting reaction and it is being rendered on the UI, the meetingReactionType will be populated. Only one handler can be registered\n * at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the selfParticipant (current user) successfully sends a meeting reaction\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function registerMeetingReactionReceivedHandler(\n handler: (eventData: MeetingReactionReceivedEventData) => void,\n ): void {\n if (!handler) {\n throw new Error('[registerMeetingReactionReceivedHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterMeetingReactionReceivedHandler),\n 'meeting.meetingReactionReceived',\n handler,\n );\n }\n\n /**\n * Nested namespace for functions to control behavior of the app share button\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export namespace appShareButton {\n /**\n * Property bag for the setVisibilityInfo\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export interface ShareInformation {\n /**\n * boolean flag to set show or hide app share button\n */\n isVisible: boolean;\n\n /**\n * optional string contentUrl, which will override contentUrl coming from Manifest\n */\n contentUrl?: string;\n }\n /**\n * By default app share button will be hidden and this API will govern the visibility of it.\n *\n * This function can be used to hide/show app share button in meeting,\n * along with contentUrl (overrides contentUrl populated in app manifest)\n * @throws standard Invalid Url error\n * @param shareInformation has two elements, one isVisible boolean flag and another\n * optional string contentUrl, which will override contentUrl coming from Manifest\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function setOptions(shareInformation: ShareInformation): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (shareInformation.contentUrl) {\n new URL(shareInformation.contentUrl);\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_AppShareButton_SetOptions),\n 'meeting.appShareButton.setOptions',\n [shareInformation],\n );\n }\n }\n\n /**\n * Have the app handle audio (mic & speaker) and turn off host audio.\n *\n * When {@link RequestAppAudioHandlingParams.isAppHandlingAudio} is true, the host will switch to audioless mode\n * Registers for mic mute status change events, which are events that the app can receive from the host asking the app to\n * mute or unmute the microphone.\n *\n * When {@link RequestAppAudioHandlingParams.isAppHandlingAudio} is false, the host will switch out of audioless mode\n * Unregisters the mic mute status change events so the app will no longer receive these events\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n * @throws Error if {@link RequestAppAudioHandlingParams.micMuteStateChangedCallback} parameter is not defined\n *\n * @param requestAppAudioHandlingParams - {@link RequestAppAudioHandlingParams} object with values for the audio switchover\n * @param callback - Callback with one parameter, the result\n * can either be true (the host is now in audioless mode) or false (the host is not in audioless mode)\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function requestAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n if (!callback) {\n throw new Error('[requestAppAudioHandling] Callback response cannot be null');\n }\n if (!requestAppAudioHandlingParams.micMuteStateChangedCallback) {\n throw new Error('[requestAppAudioHandling] Callback Mic mute state handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n\n if (requestAppAudioHandlingParams.isAppHandlingAudio) {\n startAppAudioHandling(requestAppAudioHandlingParams, callback);\n } else {\n stopAppAudioHandling(requestAppAudioHandlingParams, callback);\n }\n }\n\n function startAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n const callbackInternalRequest = (error: SdkError | null, isHostAudioless: boolean | null): void => {\n if (error && isHostAudioless != null) {\n throw new Error('[requestAppAudioHandling] Callback response - both parameters cannot be set');\n }\n if (error) {\n throw new Error(`[requestAppAudioHandling] Callback response - SDK error ${error.errorCode} ${error.message}`);\n }\n if (typeof isHostAudioless !== 'boolean') {\n throw new Error('[requestAppAudioHandling] Callback response - isHostAudioless must be a boolean');\n }\n\n const micStateChangedCallback = async (micState: MicState): Promise => {\n try {\n const newMicState = await requestAppAudioHandlingParams.micMuteStateChangedCallback(micState);\n\n const micStateDidUpdate = newMicState.isMicMuted === micState.isMicMuted;\n setMicStateWithReason(\n newMicState,\n micStateDidUpdate ? MicStateChangeReason.HostInitiated : MicStateChangeReason.AppDeclinedToChange,\n );\n } catch {\n setMicStateWithReason(micState, MicStateChangeReason.AppFailedToChange);\n }\n };\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterMicStateChangeHandler),\n 'meeting.micStateChanged',\n micStateChangedCallback,\n );\n\n const audioDeviceSelectionChangedCallback = (selectedDevicesInHost: AudioDeviceSelection): void => {\n requestAppAudioHandlingParams.audioDeviceSelectionChangedCallback?.(selectedDevicesInHost);\n };\n registerHandlerWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RegisterAudioDeviceSelectionChangedHandler),\n 'meeting.audioDeviceSelectionChanged',\n audioDeviceSelectionChangedCallback,\n );\n\n callback(isHostAudioless);\n };\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RequestAppAudioHandling),\n 'meeting.requestAppAudioHandling',\n [requestAppAudioHandlingParams.isAppHandlingAudio],\n callbackInternalRequest,\n );\n }\n\n function stopAppAudioHandling(\n requestAppAudioHandlingParams: RequestAppAudioHandlingParams,\n callback: (isHostAudioless: boolean) => void,\n ): void {\n const callbackInternalStop = (error: SdkError | null, isHostAudioless: boolean | null): void => {\n if (error && isHostAudioless != null) {\n throw new Error('[requestAppAudioHandling] Callback response - both parameters cannot be set');\n }\n if (error) {\n throw new Error(`[requestAppAudioHandling] Callback response - SDK error ${error.errorCode} ${error.message}`);\n }\n if (typeof isHostAudioless !== 'boolean') {\n throw new Error('[requestAppAudioHandling] Callback response - isHostAudioless must be a boolean');\n }\n\n if (doesHandlerExist('meeting.micStateChanged')) {\n removeHandler('meeting.micStateChanged');\n }\n\n if (doesHandlerExist('meeting.audioDeviceSelectionChanged')) {\n removeHandler('meeting.audioDeviceSelectionChanged');\n }\n\n callback(isHostAudioless);\n };\n\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_RequestAppAudioHandling),\n 'meeting.requestAppAudioHandling',\n [requestAppAudioHandlingParams.isAppHandlingAudio],\n callbackInternalStop,\n );\n }\n\n /**\n * Notifies the host that the microphone state has changed in the app.\n * @param micState - The new state that the microphone is in\n * isMicMuted - Boolean to indicate the current mute status of the mic.\n *\n * @hidden\n * Hide from docs.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @beta\n */\n export function updateMicState(micState: MicState): void {\n setMicStateWithReason(micState, MicStateChangeReason.AppInitiated);\n }\n\n function setMicStateWithReason(micState: MicState, reason: MicStateChangeReason): void {\n ensureInitialized(runtime, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(\n getApiVersionTag(meetingTelemetryVersionNumber, ApiName.Meeting_SetMicStateWithReason),\n 'meeting.updateMicState',\n [micState, reason],\n );\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise, InputFunction } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { SdkError } from './interfaces';\nimport { runtime } from './runtime';\n/**\n * @hidden\n * Hidden from Docs\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n\n/**\n * Exceptional APIs telemetry versioning file: v1 and v2 APIs are mixed together in this file\n */\nconst monetizationTelemetryVersionNumber_v1: ApiVersionNumber = ApiVersionNumber.V_1;\nconst monetizationTelemetryVersionNumber_v2: ApiVersionNumber = ApiVersionNumber.V_2;\n\nexport namespace monetization {\n /**\n * @hidden\n * Data structure to represent a subscription plan.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface PlanInfo {\n /**\n * @hidden\n * plan id\n */\n planId: string;\n /**\n * @hidden\n * term of the plan\n */\n term: string;\n }\n\n /**\n * @hidden\n * Open dialog to start user's purchase experience\n *\n * @param planInfo optional parameter. It contains info of the subscription plan pushed to users.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n * @returns Promise that will be resolved when the operation has completed or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openPurchaseExperience(planInfo?: PlanInfo): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link monetization.openPurchaseExperience monetization.openPurchaseExperience(planInfo?: PlanInfo): Promise\\} instead.\n *\n * @hidden\n * Open dialog to start user's purchase experience\n *\n * @param callback Callback contains 1 parameters, error.\n * @param planInfo optional parameter. It contains info of the subscription plan pushed to users.\n * error can either contain an error of type SdkError, incase of an error, or null when get is successful\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openPurchaseExperience(callback: (error: SdkError | null) => void, planInfo?: PlanInfo): void;\n /**\n * @hidden\n * This function is the overloaded implementation of openPurchaseExperience.\n * Since the method signatures of the v1 callback and v2 promise differ in the type of the first parameter,\n * we need to do an extra check to know the typeof the @param1 to set the proper arguments of the utility function.\n * @param param1\n * @param param2\n * @returns Promise that will be resolved when the operation has completed or rejected with SdkError value\n */\n export function openPurchaseExperience(\n param1: ((error: SdkError | null) => void) | PlanInfo | undefined,\n param2?: PlanInfo,\n ): Promise {\n let callback: ((error: SdkError | null) => void) | undefined;\n let planInfo: PlanInfo | undefined;\n let apiVersionTag = '';\n\n if (typeof param1 === 'function') {\n callback = param1;\n planInfo = param2;\n apiVersionTag = getApiVersionTag(\n monetizationTelemetryVersionNumber_v1,\n ApiName.Monetization_OpenPurchaseExperience,\n );\n } else {\n planInfo = param1;\n apiVersionTag = getApiVersionTag(\n monetizationTelemetryVersionNumber_v2,\n ApiName.Monetization_OpenPurchaseExperience,\n );\n }\n const wrappedFunction: InputFunction = () => {\n return new Promise((resolve) => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndHandleSdkErrorWithVersion(apiVersionTag, 'monetization.openPurchaseExperience', planInfo));\n });\n };\n\n ensureInitialized(runtime, FrameContexts.content);\n return callCallbackWithErrorOrResultOrNullFromPromiseAndReturnPromise(wrappedFunction, callback);\n }\n\n /**\n * @hidden\n *\n * Checks if the monetization capability is supported by the host\n * @returns boolean to represent whether the monetization capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.monetization ? true : false;\n }\n}\n","import { sendAndHandleStatusAndReasonWithVersion } from '../internal/communication';\nimport { createTeamsDeepLinkForCalendar } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst calendarTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Interact with the user's calendar, including opening calendar items and composing meetings.\n */\nexport namespace calendar {\n /**\n * Opens a calendar item.\n *\n * @param openCalendarItemParams - object containing unique ID of the calendar item to be opened.\n */\n export function openCalendarItem(openCalendarItemParams: OpenCalendarItemParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n if (!openCalendarItemParams.itemId || !openCalendarItemParams.itemId.trim()) {\n throw new Error('Must supply an itemId to openCalendarItem');\n }\n\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n getApiVersionTag(calendarTelemetryVersionNumber, ApiName.Calendar_OpenCalendarItem),\n 'calendar.openCalendarItem',\n openCalendarItemParams,\n ),\n );\n });\n }\n\n /**\n * Compose a new meeting in the user's calendar.\n *\n * @param composeMeetingParams - object containing various properties to set up the meeting details.\n */\n export function composeMeeting(composeMeetingParams: ComposeMeetingParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n const apiVersionTag = getApiVersionTag(calendarTelemetryVersionNumber, ApiName.Calendar_ComposeMeeting);\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n apiVersionTag,\n 'executeDeepLink',\n createTeamsDeepLinkForCalendar(\n composeMeetingParams.attendees,\n composeMeetingParams.startTime,\n composeMeetingParams.endTime,\n composeMeetingParams.subject,\n composeMeetingParams.content,\n ),\n ),\n );\n } else {\n resolve(\n sendAndHandleStatusAndReasonWithVersion(apiVersionTag, 'calendar.composeMeeting', composeMeetingParams),\n );\n }\n });\n }\n\n /**\n * Checks if the calendar capability is supported by the host\n * @returns boolean to represent whether the calendar capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.calendar ? true : false;\n }\n\n /** Open calendar item parameters. */\n export interface OpenCalendarItemParams {\n /** An unique base64-encoded string id that represents the event's unique identifier of the calendar item to be opened. */\n itemId: string;\n }\n\n /** Compose meeting parameters */\n\n export interface ComposeMeetingParams {\n /** An array of email addresses, user name, or user id of the attendees to invite to the meeting. */\n attendees?: string[];\n /** The start time of the meeting in MM/DD/YYYY HH:MM:SS format. */\n startTime?: string;\n /** The end time of the meeting in MM/DD/YYYY HH:MM:SS format. */\n endTime?: string;\n /** The subject line of the meeting. */\n subject?: string;\n /** The body content of the meeting. */\n content?: string;\n }\n}\n","import { sendAndHandleStatusAndReasonWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst mailTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Used to interact with mail capability, including opening and composing mail.\n */\nexport namespace mail {\n /**\n * Opens a mail message in the host.\n *\n * @param openMailItemParams - Object that specifies the ID of the mail message.\n */\n export function openMailItem(openMailItemParams: OpenMailItemParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n if (!openMailItemParams.itemId || !openMailItemParams.itemId.trim()) {\n throw new Error('Must supply an itemId to openMailItem');\n }\n\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n getApiVersionTag(mailTelemetryVersionNumber, ApiName.Mail_OpenMailItem),\n 'mail.openMailItem',\n openMailItemParams,\n ),\n );\n });\n }\n\n /**\n * Compose a new email in the user's mailbox.\n *\n * @param composeMailParams - Object that specifies the type of mail item to compose and the details of the mail item.\n *\n */\n export function composeMail(composeMailParams: ComposeMailParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n getApiVersionTag(mailTelemetryVersionNumber, ApiName.Mail_ComposeMail),\n 'mail.composeMail',\n composeMailParams,\n ),\n );\n });\n }\n\n /**\n * Checks if the mail capability is supported by the host\n * @returns boolean to represent whether the mail capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.mail ? true : false;\n }\n\n /** Defines the parameters used to open a mail item in the user's mailbox */\n export interface OpenMailItemParams {\n /** An unique base64-encoded string id that represents the itemId or messageId. */\n itemId: string;\n }\n\n /** Defines compose mail types. */\n export enum ComposeMailType {\n /** Compose a new mail message. */\n New = 'new',\n /** Compose a reply to the sender of an existing mail message. */\n Reply = 'reply',\n /** Compose a reply to all recipients of an existing mail message. */\n ReplyAll = 'replyAll',\n /** Compose a new mail message with the content of an existing mail message forwarded to a new recipient. */\n Forward = 'forward',\n }\n\n /**\n * Foundational interface for all other mail compose interfaces\n * Used for holding the type of mail item being composed\n *\n * @typeParam T - the identity type.\n * @see {@link mail.ComposeMailType}\n */\n interface ComposeMailBase {\n /** Type of the mail item being composed. */\n type: T;\n }\n\n /**\n * Parameters supplied when composing a new mail item\n */\n export interface ComposeNewParams extends ComposeMailBase {\n /**\n * The To: recipients for the message\n */\n toRecipients?: string[];\n\n /**\n * The Cc: recipients for the message\n */\n ccRecipients?: string[];\n\n /**\n * The Bcc: recipients for the message\n */\n bccRecipients?: string[];\n\n /**\n * The subject of the message\n */\n subject?: string;\n\n /**\n * The body of the message\n */\n message?: string;\n }\n\n /**\n * Parameters supplied when composing a reply to or forward of a message\n *\n * @see {@link ComposeMailType}\n */\n export interface ComposeReplyOrForwardParams extends ComposeMailBase {\n /** An unique base64-encoded string id that represents the mail message. */\n itemid: string;\n }\n\n /**\n * Parameters supplied to {@link composeMail} when composing a new mail item\n *\n * @see {@link ComposeNewParams}\n * @see {@link ComposeReplyOrForwardParams}\n * @see {@link ComposeMailType}\n */\n export type ComposeMailParams =\n | ComposeNewParams\n | ComposeReplyOrForwardParams\n | ComposeReplyOrForwardParams\n | ComposeReplyOrForwardParams;\n}\n","import { GlobalVars } from '../internal/globalVars';\nimport * as Handlers from '../internal/handlers'; // Conflict with some names\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { isNullOrUndefined } from '../internal/typeCheckUtilities';\nimport { ssrSafeWindow } from '../internal/utils';\nimport { errorNotSupportedOnPlatform } from './constants';\nimport { LoadContext } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Namespace containing the set of APIs that support Teams-specific functionalities.\n */\nexport namespace teamsCore {\n /** Ready to unload function type */\n export type readyToUnloadFunctionType = () => void;\n /** Register on load handler function type */\n export type registerOnLoadHandlerFunctionType = (context: LoadContext) => void;\n /** Register before unload handler function type */\n export type registerBeforeUnloadHandlerFunctionType = (readyToUnload: readyToUnloadFunctionType) => boolean;\n /**\n * Enable print capability to support printing page using Ctrl+P and cmd+P\n */\n export function enablePrintCapability(): void {\n if (!GlobalVars.printCapabilityEnabled) {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n GlobalVars.printCapabilityEnabled = true;\n // adding ctrl+P and cmd+P handler\n document.addEventListener('keydown', (event: KeyboardEvent) => {\n if ((event.ctrlKey || event.metaKey) && event.keyCode === 80) {\n print();\n event.cancelBubble = true;\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n });\n }\n }\n\n /**\n * default print handler\n */\n export function print(): void {\n ssrSafeWindow().print();\n }\n\n /**\n * Registers a handler to be called when the page has been requested to load.\n *\n * @remarks Check out [App Caching in Teams](https://learn.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/app-caching)\n * for a more detailed explanation about using this API.\n *\n * @param handler - The handler to invoke when the page is loaded.\n *\n * @beta\n */\n export function registerOnLoadHandler(handler: registerOnLoadHandlerFunctionType): void {\n registerOnLoadHandlerHelper(handler, () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerOnLoadHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - The handler to invoke when the page is loaded.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n *\n * @deprecated\n */\n export function registerOnLoadHandlerHelper(\n handler: registerOnLoadHandlerFunctionType,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime);\n\n if (!isNullOrUndefined(handler) && versionSpecificHelper) {\n versionSpecificHelper();\n }\n\n Handlers.registerOnLoadHandler(handler);\n }\n\n /**\n * Registers a handler to be called before the page is unloaded.\n *\n * @remarks Check out [App Caching in Teams](https://learn.microsoft.com/en-us/microsoftteams/platform/tabs/how-to/app-caching)\n * for a more detailed explanation about using this API.\n *\n * @param handler - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n *\n * @beta\n */\n export function registerBeforeUnloadHandler(handler: registerBeforeUnloadHandlerFunctionType): void {\n registerBeforeUnloadHandlerHelper(handler, () => {\n if (!isNullOrUndefined(handler) && !isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n });\n }\n\n /**\n * @hidden\n * Undocumented helper function with shared code between deprecated version and current version of the registerBeforeUnloadHandler API.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * @param handler - - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n * @param versionSpecificHelper - The helper function containing logic pertaining to a specific version of the API.\n *\n * @deprecated\n */\n export function registerBeforeUnloadHandlerHelper(\n handler: registerBeforeUnloadHandlerFunctionType,\n versionSpecificHelper?: () => void,\n ): void {\n // allow for registration cleanup even when not finished initializing\n !isNullOrUndefined(handler) && ensureInitialized(runtime);\n if (!isNullOrUndefined(handler) && versionSpecificHelper) {\n versionSpecificHelper();\n }\n Handlers.registerBeforeUnloadHandler(handler);\n }\n\n /**\n * Checks if teamsCore capability is supported by the host\n *\n * @returns boolean to represent whether the teamsCore capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teamsCore ? true : false;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { peoplePickerRequiredVersion } from '../internal/constants';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { validatePeoplePickerInput } from '../internal/mediaUtil';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { callCallbackWithErrorOrResultFromPromiseAndReturnPromise } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * Allows your app to add a people picker enabling users to search for and select people in their organization.\n *\n * Exceptional APIs telemetry versioning file: v1 and v2 APIs are mixed together in this file\n */\nconst peopleTelemetryVersionNumber_v1: ApiVersionNumber = ApiVersionNumber.V_1;\nconst peopleTelemetryVersionNumber_v2: ApiVersionNumber = ApiVersionNumber.V_2;\n\nexport namespace people {\n /** Select people callback function type */\n export type selectPeopleCallbackFunctionType = (error: SdkError, people: PeoplePickerResult[]) => void;\n /**\n * Launches a people picker and allows the user to select one or more people from the list\n * If the app is added to personal app scope the people picker launched is org wide and if the app is added to a chat/channel, people picker launched is also limited to the members of chat/channel\n \n * @param callback - Returns list of JSON object of type PeoplePickerResult which consists of Microsoft Entra IDs, display names and emails of the selected users\n * @param peoplePickerInputs - Input parameters to launch customized people picker\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function selectPeople(peoplePickerInputs?: PeoplePickerInputs): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link people.selectPeople people.selectPeople(peoplePickerInputs?: PeoplePickerInputs): Promise\\} instead.\n *\n * Launches a people picker and allows the user to select one or more people from the list\n * If the app is added to personal app scope the people picker launched is org wide and if the app is added to a chat/channel, people picker launched is also limited to the members of chat/channel\n \n * @param callback - Returns list of JSON object of type PeoplePickerResult which consists of Microsoft Entra IDs, display names and emails of the selected users\n * @param peoplePickerInputs - Input parameters to launch customized people picker\n */\n export function selectPeople(\n callback: selectPeopleCallbackFunctionType,\n peoplePickerInputs?: PeoplePickerInputs,\n ): void;\n /**\n * @hidden\n * This function is the overloaded implementation of selectPeople.\n * Since the method signatures of the v1 callback and v2 promise differ in the type of the first parameter,\n * we need to do an extra check to know the typeof the @param1 to set the proper arguments of the utility function.\n * @param param1\n * @param param2\n * @returns Promise of Array of PeoplePickerResult objects.\n */\n export function selectPeople(\n param1: PeoplePickerInputs | selectPeopleCallbackFunctionType | undefined,\n param2?: PeoplePickerInputs,\n ): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task, FrameContexts.settings);\n\n let callback: selectPeopleCallbackFunctionType | undefined = undefined;\n let peoplePickerInputs: PeoplePickerInputs | undefined = undefined;\n let apiVersionTag = '';\n\n if (typeof param1 === 'function') {\n [callback, peoplePickerInputs] = [param1, param2];\n apiVersionTag = getApiVersionTag(peopleTelemetryVersionNumber_v1, ApiName.People_SelectPeople);\n } else {\n peoplePickerInputs = param1;\n apiVersionTag = getApiVersionTag(peopleTelemetryVersionNumber_v2, ApiName.People_SelectPeople);\n }\n\n return callCallbackWithErrorOrResultFromPromiseAndReturnPromise(\n selectPeopleHelper,\n callback /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */,\n apiVersionTag,\n peoplePickerInputs,\n );\n }\n\n function selectPeopleHelper(\n apiVersionTag: string,\n peoplePickerInputs?: PeoplePickerInputs,\n ): Promise {\n return new Promise((resolve) => {\n if (!isCurrentSDKVersionAtLeast(peoplePickerRequiredVersion)) {\n throw { errorCode: ErrorCode.OLD_PLATFORM };\n }\n\n if (!validatePeoplePickerInput(peoplePickerInputs)) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS };\n }\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(sendAndHandleSdkErrorWithVersion(apiVersionTag, 'people.selectPeople', peoplePickerInputs));\n });\n }\n\n /**\n * Input parameter supplied to the People Picker API\n */\n export interface PeoplePickerInputs {\n /**\n * Optional; Set title for the people picker\n * Default value is \"Select people\" for multiselect and \"Select a person\" for single select\n */\n title?: string;\n\n /**\n * Optional; Microsoft Entra IDs of the users to be pre-populated in the search box of people picker control\n * If single select is enabled this value, only the first user in the list will be pre-populated\n * Default value is null\n */\n setSelected?: string[];\n\n /**\n * Optional; launches the people picker in org wide scope even if the app is added to a chat or channel\n * Default value is false\n */\n openOrgWideSearchInChatOrChannel?: boolean;\n\n /**\n * Optional; launches the people picker for which only 1 person can be selected\n * Default value is false\n */\n singleSelect?: boolean;\n }\n\n /**\n * Output user object of people picker API\n */\n export interface PeoplePickerResult {\n /**\n * user object ID (also known as Microsoft Entra ID) of the selected user\n */\n objectId: string;\n\n /**\n * Optional; display name of the selected user\n */\n displayName?: string;\n\n /**\n * Optional; email of the selected user\n */\n email?: string;\n }\n\n /**\n * Checks if the people capability is supported by the host\n * @returns boolean to represent whether the people capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.people ? true : false;\n }\n}\n","import { profile } from '../public/profile';\n\n/**\n * @hidden\n * Validates the request parameters\n * @param showProfileRequest The request parameters\n * @returns true if the parameters are valid, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateShowProfileRequest(\n showProfileRequest: profile.ShowProfileRequest,\n): [boolean, string | undefined] {\n if (!showProfileRequest) {\n return [false, 'A request object is required'];\n }\n\n // Validate modality\n if (showProfileRequest.modality && typeof showProfileRequest.modality !== 'string') {\n return [false, 'modality must be a string'];\n }\n\n // Validate targetElementBoundingRect\n if (\n !showProfileRequest.targetElementBoundingRect ||\n typeof showProfileRequest.targetElementBoundingRect !== 'object'\n ) {\n return [false, 'targetElementBoundingRect must be a DOMRect'];\n }\n\n // Validate triggerType\n if (!showProfileRequest.triggerType || typeof showProfileRequest.triggerType !== 'string') {\n return [false, 'triggerType must be a valid string'];\n }\n\n return validatePersona(showProfileRequest.persona);\n}\n\n/**\n * @hidden\n * Validates the persona that is used to resolve the profile target\n * @param persona The persona object\n * @returns true if the persona is valid, false otherwise\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nfunction validatePersona(persona: profile.Persona): [boolean, string | undefined] {\n if (!persona) {\n return [false, 'persona object must be provided'];\n }\n\n if (persona.displayName && typeof persona.displayName !== 'string') {\n return [false, 'displayName must be a string'];\n }\n\n if (!persona.identifiers || typeof persona.identifiers !== 'object') {\n return [false, 'persona identifiers object must be provided'];\n }\n\n if (!persona.identifiers.AadObjectId && !persona.identifiers.Smtp && !persona.identifiers.Upn) {\n return [false, 'at least one valid identifier must be provided'];\n }\n\n if (persona.identifiers.AadObjectId && typeof persona.identifiers.AadObjectId !== 'string') {\n return [false, 'AadObjectId identifier must be a string'];\n }\n\n if (persona.identifiers.Smtp && typeof persona.identifiers.Smtp !== 'string') {\n return [false, 'Smtp identifier must be a string'];\n }\n\n if (persona.identifiers.Upn && typeof persona.identifiers.Upn !== 'string') {\n return [false, 'Upn identifier must be a string'];\n }\n\n return [true, undefined];\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateShowProfileRequest } from '../internal/profileUtil';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { ErrorCode } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst profileTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace for profile related APIs.\n *\n * @beta\n */\nexport namespace profile {\n /**\n * Opens a profile card at a specified position to show profile information about a persona.\n * @param showProfileRequest The parameters to position the card and identify the target user.\n * @returns Promise that will be fulfilled when the operation has completed\n *\n * @beta\n */\n export function showProfile(showProfileRequest: ShowProfileRequest): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n return new Promise((resolve) => {\n const [isValid, message] = validateShowProfileRequest(showProfileRequest);\n if (!isValid) {\n throw { errorCode: ErrorCode.INVALID_ARGUMENTS, message };\n }\n\n // Convert the app provided parameters to the form suitable for postMessage.\n const requestInternal: ShowProfileRequestInternal = {\n modality: showProfileRequest.modality,\n persona: showProfileRequest.persona,\n triggerType: showProfileRequest.triggerType,\n targetRectangle: {\n x: showProfileRequest.targetElementBoundingRect.x,\n y: showProfileRequest.targetElementBoundingRect.y,\n width: showProfileRequest.targetElementBoundingRect.width,\n height: showProfileRequest.targetElementBoundingRect.height,\n },\n };\n\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(profileTelemetryVersionNumber, ApiName.Profile_ShowProfile),\n 'profile.showProfile',\n requestInternal,\n ),\n );\n });\n }\n\n /**\n * The type of modalities that are supported when showing a profile.\n * Can be provided as an optional hint with the request and will be\n * respected if the hosting M365 application supports it.\n *\n * @beta\n */\n export type Modality = 'Card' | 'Expanded';\n\n /**\n * The type of the profile trigger.\n * - MouseHover: The user hovered a target.\n * - Press: The target was pressed with either a mouse click or keyboard key press.\n * - AppRequest: The show profile request is happening programmatically, without direct user interaction.\n *\n * @beta\n */\n export type TriggerType = 'MouseHover' | 'Press' | 'AppRequest';\n\n /**\n * The set of identifiers that are supported for resolving the persona.\n *\n * At least one is required, and if multiple are provided then only the highest\n * priority one will be used (AadObjectId > Upn > Smtp). AAD is now known as \"Microsoft Entra ID\"\n *\n * @beta\n */\n export type PersonaIdentifiers = {\n /**\n * The object id in Microsoft Entra.\n *\n * This id is guaranteed to be unique for an object within a tenant,\n * and so if provided will lead to a more performant lookup. It can\n * be resolved via MS Graph (see https://learn.microsoft.com/graph/api/resources/users\n * for examples).\n */\n readonly AadObjectId?: string;\n\n /**\n * The primary SMTP address.\n */\n readonly Smtp?: string;\n\n /**\n * The user principle name.\n */\n readonly Upn?: string;\n };\n\n /**\n * The persona to show the profile for.\n *\n * @beta\n */\n export interface Persona {\n /**\n * The set of identifiers that are supported for resolving the persona.\n */\n identifiers: PersonaIdentifiers;\n\n /**\n * Optional display name override. If not specified the user's display name will be resolved normally.\n */\n displayName?: string;\n }\n\n /**\n * Input parameters provided to the showProfile API.\n *\n * @beta\n */\n export interface ShowProfileRequest {\n /**\n * An optional hint to the hosting M365 application about which modality of the profile you want to show.\n */\n modality?: Modality;\n\n /**\n * The information about the persona to show the profile for.\n */\n persona: Persona;\n\n /**\n * The bounding rectangle of the target.\n */\n targetElementBoundingRect: DOMRect;\n\n /**\n * Specifies which user interaction was used to trigger the API call.\n */\n triggerType: TriggerType;\n }\n\n /**\n * Checks if the profile capability is supported by the host\n * @returns boolean to represent whether the profile capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.profile ? true : false;\n }\n}\n\n/**\n * Internal representation of a DOMRect suitable for sending via postMessage.\n */\nexport type Rectangle = {\n x: number;\n y: number;\n width: number;\n height: number;\n};\n\n/**\n * @beta\n * @hidden\n * An internal representation of the showProfile parameters suitable for sending via postMessage.\n * The hub expects to receive an object of this type.\n */\nexport interface ShowProfileRequestInternal {\n modality?: profile.Modality;\n persona: profile.Persona;\n targetRectangle: Rectangle;\n triggerType: profile.TriggerType;\n}\n","import { videoEffectsEx } from '../private/videoEffectsEx';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { videoEffects } from '../public/videoEffects';\nimport { sendMessageToParentWithVersion } from './communication';\nimport { registerHandlerWithVersion } from './handlers';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from './telemetry';\nimport { inServerSideRenderingEnvironment, ssrSafeWindow } from './utils';\nimport {\n AllowSharedBufferSource,\n PlaneLayout,\n VideoFrameBufferInit,\n VideoFrameCopyToOptions,\n VideoFrameInit,\n VideoPixelFormat,\n} from './VideoFrameTypes';\nimport { VideoPerformanceMonitor } from './videoPerformanceMonitor';\n\n/**\n * @hidden\n * Align with the W3C spec: https://www.w3.org/TR/webcodecs/\n *\n * @internal\n * Limited to Microsoft-internal use\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst videoEffectsUtilTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\ninterface VideoFrame {\n /**\n * The width of the VideoFrame in pixels, potentially including non-visible padding, and prior to\n * considering potential ratio adjustments.\n */\n readonly codedWidth: number;\n /**\n * The height of the VideoFrame in pixels, potentially including non-visible padding, and prior to\n * considering potential ratio adjustments.\n */\n readonly codedHeight: number;\n /**\n * The pixel format of the VideoFrame.\n */\n readonly format: VideoPixelFormat | null;\n /**\n * An integer indicating the timestamp of the video in microseconds.\n */\n readonly timestamp: number;\n /**\n * Clears all states and releases the reference to the media resource\n */\n close(): void;\n /**\n * Copies the contents of the VideoFrame to an ArrayBuffer\n * @param destination An ArrayBuffer, a TypedArray, or a DataView to copy to.\n * @param options An object containing rect - the rectangle of pixels to copy from the VideoFrame.\n */\n copyTo(destination: AllowSharedBufferSource, options?: VideoFrameCopyToOptions): Promise;\n}\n\n/**\n * @hidden\n */\n// eslint-disable-next-line strict-null-checks/all\ndeclare const VideoFrame: {\n prototype: videoEffects.VideoFrame;\n new (source: CanvasImageSource, init?: VideoFrameInit): videoEffects.VideoFrame;\n new (data: AllowSharedBufferSource, init: VideoFrameBufferInit): videoEffects.VideoFrame;\n};\n\n/**\n * @hidden\n * Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.\n */\nexport async function processMediaStream(\n streamId: string,\n videoFrameHandler: videoEffects.VideoFrameHandler,\n notifyError: (string) => void,\n videoPerformanceMonitor?: VideoPerformanceMonitor,\n): Promise {\n const generator = createProcessedStreamGeneratorWithoutSource();\n !inServerSideRenderingEnvironment() && window['chrome']?.webview?.registerTextureStream(streamId, generator);\n pipeVideoSourceToGenerator(\n await getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor),\n new DefaultTransformer(notifyError, videoFrameHandler),\n generator.writable,\n );\n}\n\n/**\n * @hidden\n * Create a MediaStreamTrack from the media stream with the given streamId and processed by videoFrameHandler.\n * The videoFrameHandler will receive metadata of the video frame.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport async function processMediaStreamWithMetadata(\n streamId: string,\n videoFrameHandler: videoEffectsEx.VideoFrameHandler,\n notifyError: (string) => void,\n videoPerformanceMonitor?: VideoPerformanceMonitor,\n): Promise {\n const generator = createProcessedStreamGeneratorWithoutSource();\n !inServerSideRenderingEnvironment() && window['chrome']?.webview?.registerTextureStream(streamId, generator);\n pipeVideoSourceToGenerator(\n await getInputVideoTrack(streamId, notifyError, videoPerformanceMonitor),\n new TransformerWithMetadata(notifyError, videoFrameHandler),\n generator.writable,\n );\n}\n\n/**\n * Get the video track from the media stream gotten from chrome.webview.getTextureStream(streamId).\n */\nasync function getInputVideoTrack(\n streamId: string,\n notifyError: (string) => void,\n videoPerformanceMonitor?: VideoPerformanceMonitor,\n): Promise {\n if (inServerSideRenderingEnvironment()) {\n throw errorNotSupportedOnPlatform;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const chrome = ssrSafeWindow()['chrome'] as any;\n try {\n videoPerformanceMonitor?.reportGettingTextureStream(streamId);\n const mediaStream = await chrome.webview.getTextureStream(streamId);\n const tracks = mediaStream.getVideoTracks();\n if (tracks.length === 0) {\n throw new Error(`No video track in stream ${streamId}`);\n }\n videoPerformanceMonitor?.reportTextureStreamAcquired();\n return tracks[0];\n } catch (error) {\n const errorMsg = `Failed to get video track from stream ${streamId}, error: ${error}`;\n notifyError(errorMsg);\n throw new Error(`Internal error: can't get video track from stream ${streamId}`);\n }\n}\n\n/**\n * The function to create a MediaStreamTrack generator.\n * The generator can then get the processed frames as media stream source.\n * The generator can be registered back to the media stream so that the host can get the processed frames.\n */\nfunction createProcessedStreamGeneratorWithoutSource(): MediaStreamTrack & { writable: WritableStream } {\n if (inServerSideRenderingEnvironment()) {\n throw errorNotSupportedOnPlatform;\n }\n const MediaStreamTrackGenerator = window['MediaStreamTrackGenerator'];\n if (!MediaStreamTrackGenerator) {\n throw errorNotSupportedOnPlatform;\n }\n return new MediaStreamTrackGenerator({ kind: 'video' });\n}\n\n/**\n * The function to create a processed video track from the original video track.\n * It reads frames from the video track and pipes them to the video frame callback to process the frames.\n * The processed frames are then enqueued to the generator.\n */\nfunction pipeVideoSourceToGenerator(\n videoTrack: unknown,\n transformer: TransformerWithMetadata | DefaultTransformer,\n sink: WritableStream,\n): void {\n const MediaStreamTrackProcessor = ssrSafeWindow()['MediaStreamTrackProcessor'];\n const processor = new MediaStreamTrackProcessor({ track: videoTrack });\n const source = processor.readable;\n\n source.pipeThrough(new TransformStream(transformer)).pipeTo(sink);\n}\n\n/**\n * @hidden\n * Error messages during video frame transformation.\n */\nenum VideoFrameTransformErrors {\n TimestampIsNull = 'timestamp of the original video frame is null',\n UnsupportedVideoFramePixelFormat = 'Unsupported video frame pixel format',\n}\n\nclass DefaultTransformer {\n public constructor(\n private notifyError: (string) => void,\n private videoFrameHandler: videoEffects.VideoFrameHandler,\n ) {}\n\n public transform = async (originalFrame, controller): Promise => {\n const timestamp = originalFrame.timestamp;\n if (timestamp !== null) {\n try {\n const frameProcessedByApp = await this.videoFrameHandler({ videoFrame: originalFrame });\n // the current typescript version(4.6.4) dosn't support webcodecs API fully, we have to do type conversion here.\n const processedFrame = new VideoFrame(frameProcessedByApp as unknown as CanvasImageSource, {\n // we need the timestamp to be unchanged from the oirginal frame, so we explicitly set it here.\n timestamp: timestamp,\n });\n controller.enqueue(processedFrame);\n originalFrame.close();\n (frameProcessedByApp as VideoFrame).close();\n } catch (error) {\n originalFrame.close();\n this.notifyError(error);\n }\n } else {\n this.notifyError(VideoFrameTransformErrors.TimestampIsNull);\n }\n };\n}\n\n/**\n * @hidden\n * Utility class to parse the header of a one-texture-input texture.\n */\nclass OneTextureHeader {\n private readonly headerDataView: Uint32Array;\n // Identifier for the texture layout, which is the 4-byte ASCII string \"oti1\" hardcoded by the host\n // (oti1 stands for \"one texture input version 1\")\n private readonly ONE_TEXTURE_INPUT_ID = 0x6f746931;\n private readonly INVALID_HEADER_ERROR = 'Invalid video frame header';\n private readonly UNSUPPORTED_LAYOUT_ERROR = 'Unsupported texture layout';\n public constructor(private readonly headerBuffer: ArrayBuffer, private readonly notifyError: (string) => void) {\n this.headerDataView = new Uint32Array(headerBuffer);\n // headerDataView will contain the following data:\n // 0: oneTextureLayoutId\n // 1: version\n // 2: frameRowOffset\n // 3: frameFormat\n // 4: frameWidth\n // 5: frameHeight\n // 6: multiStreamHeaderRowOffset\n // 7: multiStreamCount\n if (this.headerDataView.length < 8) {\n this.notifyError(this.INVALID_HEADER_ERROR);\n throw new Error(this.INVALID_HEADER_ERROR);\n }\n // ensure the texture layout is supported\n if (this.headerDataView[0] !== this.ONE_TEXTURE_INPUT_ID) {\n this.notifyError(this.UNSUPPORTED_LAYOUT_ERROR);\n throw new Error(this.UNSUPPORTED_LAYOUT_ERROR);\n }\n }\n\n public get oneTextureLayoutId(): number {\n return this.headerDataView[0];\n }\n\n public get version(): number {\n return this.headerDataView[1];\n }\n\n public get frameRowOffset(): number {\n return this.headerDataView[2];\n }\n\n public get frameFormat(): number {\n return this.headerDataView[3];\n }\n\n public get frameWidth(): number {\n return this.headerDataView[4];\n }\n\n public get frameHeight(): number {\n return this.headerDataView[5];\n }\n\n public get multiStreamHeaderRowOffset(): number {\n return this.headerDataView[6];\n }\n\n public get multiStreamCount(): number {\n return this.headerDataView[7];\n }\n}\n\n/**\n * @hidden\n * Utility class to parse the metadata of a one-texture-input texture.\n */\nclass OneTextureMetadata {\n private readonly metadataMap: Map = new Map();\n // Stream id for audio inference metadata, which is the 4-byte ASCII string \"1dia\" hardcoded by the host\n // (1dia stands for \"audio inference data version 1\")\n private readonly AUDIO_INFERENCE_RESULT_STREAM_ID = 0x31646961;\n public constructor(metadataBuffer: ArrayBuffer, streamCount: number) {\n const metadataDataView = new Uint32Array(metadataBuffer);\n for (let i = 0, index = 0; i < streamCount; i++) {\n const streamId = metadataDataView[index++];\n const streamDataOffset = metadataDataView[index++];\n const streamDataSize = metadataDataView[index++];\n const streamData = new Uint8Array(metadataBuffer, streamDataOffset, streamDataSize);\n this.metadataMap.set(streamId, streamData);\n }\n }\n\n public get audioInferenceResult(): Uint8Array | undefined {\n return this.metadataMap.get(this.AUDIO_INFERENCE_RESULT_STREAM_ID);\n }\n}\n\nclass TransformerWithMetadata {\n private shouldDiscardAudioInferenceResult = false;\n\n public constructor(\n private notifyError: (string) => void,\n private videoFrameHandler: videoEffectsEx.VideoFrameHandler,\n ) {\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsUtilTelemetryVersionNumber,\n ApiName.VideoEffectsUtils_TransformerWithMetadata_Constructor,\n ),\n 'video.mediaStream.audioInferenceDiscardStatusChange',\n ({ discardAudioInferenceResult }: { discardAudioInferenceResult: boolean }) => {\n this.shouldDiscardAudioInferenceResult = discardAudioInferenceResult;\n },\n );\n }\n\n public transform = async (originalFrame, controller): Promise => {\n const timestamp = originalFrame.timestamp;\n if (timestamp !== null) {\n try {\n const { videoFrame, metadata: { audioInferenceResult } = {} } = await this.extractVideoFrameAndMetadata(\n originalFrame,\n );\n const frameProcessedByApp = await this.videoFrameHandler({ videoFrame, audioInferenceResult });\n // the current typescript version(4.6.4) dosn't support webcodecs API fully, we have to do type conversion here.\n const processedFrame = new VideoFrame(frameProcessedByApp as unknown as CanvasImageSource, {\n // we need the timestamp to be unchanged from the oirginal frame, so we explicitly set it here.\n timestamp: timestamp,\n });\n controller.enqueue(processedFrame);\n videoFrame.close();\n originalFrame.close();\n (frameProcessedByApp as VideoFrame).close();\n } catch (error) {\n originalFrame.close();\n this.notifyError(error);\n }\n } else {\n this.notifyError(VideoFrameTransformErrors.TimestampIsNull);\n }\n };\n\n /**\n * @hidden\n * Extract video frame and metadata from the given texture.\n * The given texure should be in NV12 format and the layout of the texture should be:\n * | Texture layout |\n * | :--- |\n * | Header |\n * | Real video frame data |\n * | Metadata |\n *\n * The header data is in the first two rows with the following format:\n * | oneTextureLayoutId | version | frameRowOffset | frameFormat | frameWidth | frameHeight | multiStreamHeaderRowOffset | multiStreamCount | ... |\n * | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n * | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | ... |\n *\n * After header, it comes with the real video frame data.\n * At the end of the texture, it comes with the metadata. The metadata section can contain multiple types of metadata.\n * Each type of metadata is called a stream. The section is in the following format:\n * | stream1.id | stream1.dataOffset | stream1.dataSize | stream2.id | stream2.dataOffset | stream2.dataSize | ... | stream1.data | stream2.data | ... |\n * | :---: | :---: | :---: | :---: | :---: | :---: |:---:| :---: | :---: |:---:|\n * | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | ... | ... | ... | ... |\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n private extractVideoFrameAndMetadata = async (\n texture: VideoFrame,\n ): Promise<{ videoFrame: VideoFrame; metadata: { audioInferenceResult?: Uint8Array } }> => {\n if (inServerSideRenderingEnvironment()) {\n throw errorNotSupportedOnPlatform;\n }\n if (texture.format !== 'NV12') {\n this.notifyError(VideoFrameTransformErrors.UnsupportedVideoFramePixelFormat);\n throw new Error(VideoFrameTransformErrors.UnsupportedVideoFramePixelFormat);\n }\n\n // The rectangle of pixels to copy from the texture. The first two rows are the header.\n const headerRect = { x: 0, y: 0, width: texture.codedWidth, height: 2 };\n // allocate buffer for the header\n // The texture is in NV12 format (https://learn.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#nv12).\n // NV12 has one luma \"luminance\" plane Y and one UV plane with U and V values interleaved.\n // In NV12, chroma planes (blue and red) are subsampled in both the horizontal and vertical dimensions by a factor of 2.\n // So for a 2×2 group of pixels, you have 4 Y samples and 1 U and 1 V sample, each sample being 1 byte.\n // for a 10×10 NV12 frame: there are 100 Y samples followed by 25 U and 25 V samples interleaved.\n // The graphical representation of the memory layout of a 2×2 NV12 frame is as follows:\n // | Y0 | Y1 | Y2 | Y3 | U0 | V0 |\n // The number of pixels of the header is (headerRect.width * headerRect.height), so the number of bytes of the header is\n // (the size of the Y plane + the size of the UV plane)\n // which is (headerRect.width * headerRect.height) + (headerRect.width * headerRect.height) / 2\n // = (headerRect.width * headerRect.height * 3) / 2\n const headerBuffer = new ArrayBuffer((headerRect.width * headerRect.height * 3) / 2);\n await texture.copyTo(headerBuffer, { rect: headerRect });\n const header = new OneTextureHeader(headerBuffer, this.notifyError);\n\n // The rectangle of pixels to copy from the texture. Metadata are at the bottom.\n const metadataRect = {\n x: 0,\n y: header.multiStreamHeaderRowOffset,\n width: texture.codedWidth,\n height: texture.codedHeight - header.multiStreamHeaderRowOffset,\n };\n // Allocate buffer for the metadata. The number of pixels of the metadata section is\n // (metadataRect.width * metadataRect.height), so the number of bytes of the metadata section is\n // (the size of the Y plane + the size of the UV plane), which is\n // (metadataRect.width * metadataRect.height) + (metadataRect.width * metadataRect.height) / 2\n // = (metadataRect.width * metadataRect.height * 3) / 2\n const metadataBuffer = new ArrayBuffer((metadataRect.width * metadataRect.height * 3) / 2);\n await texture.copyTo(metadataBuffer, { rect: metadataRect });\n const metadata = new OneTextureMetadata(metadataBuffer, header.multiStreamCount);\n return {\n videoFrame: new VideoFrame(texture as unknown as CanvasImageSource, {\n timestamp: texture.timestamp,\n visibleRect: {\n x: 0,\n y: header.frameRowOffset,\n width: header.frameWidth,\n height: header.frameHeight,\n },\n }) as VideoFrame,\n metadata: {\n audioInferenceResult: this.shouldDiscardAudioInferenceResult ? undefined : metadata.audioInferenceResult,\n },\n };\n };\n}\n\n/**\n * @hidden\n * Video effect change call back function definition\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\ntype VideoEffectCallBack = (effectId: string | undefined, effectParam?: string) => Promise;\n\n/**\n * @hidden\n */\nexport function createEffectParameterChangeCallback(\n callback: VideoEffectCallBack,\n videoPerformanceMonitor?: VideoPerformanceMonitor,\n) {\n return (effectId: string | undefined, effectParam?: string): void => {\n videoPerformanceMonitor?.reportApplyingVideoEffect(effectId || '', effectParam);\n\n callback(effectId, effectParam)\n .then(() => {\n videoPerformanceMonitor?.reportVideoEffectChanged(effectId || '', effectParam);\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsUtilTelemetryVersionNumber, ApiName.VideoEffectsUtils_ReportVideoEffectChanged),\n 'video.videoEffectReadiness',\n [true, effectId, undefined, effectParam],\n );\n })\n .catch((reason) => {\n const validReason =\n reason in videoEffects.EffectFailureReason ? reason : videoEffects.EffectFailureReason.InitializationFailure;\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsUtilTelemetryVersionNumber, ApiName.VideoEffectsUtils_EffectFailure),\n 'video.videoEffectReadiness',\n [false, effectId, validReason, effectParam],\n );\n });\n };\n}\n\nexport { VideoEffectCallBack as DefaultVideoEffectCallBack };\n","import { generateGUID } from './utils';\n\nexport class VideoFrameTick {\n private static readonly setTimeoutCallbacks: {\n [key: string]: {\n callback: () => void;\n startedAtInMs: number;\n timeoutInMs: number;\n };\n } = {};\n\n public static setTimeout(callback: () => void, timeoutInMs: number): string {\n const startedAtInMs = performance.now();\n const id = generateGUID();\n VideoFrameTick.setTimeoutCallbacks[id] = {\n callback,\n timeoutInMs,\n startedAtInMs,\n };\n return id;\n }\n\n public static clearTimeout(id: string): void {\n delete VideoFrameTick.setTimeoutCallbacks[id];\n }\n\n public static setInterval(callback: () => void, intervalInMs: number): void {\n VideoFrameTick.setTimeout(function next() {\n callback();\n VideoFrameTick.setTimeout(next, intervalInMs);\n }, intervalInMs);\n }\n\n /**\n * Call this function whenever a frame comes in, it will check if any timeout is due and call the callback\n */\n public static tick(): void {\n const now = performance.now();\n const timeoutIds: string[] = [];\n // find all the timeouts that are due,\n // not to invoke them in the loop to avoid modifying the collection while iterating\n for (const key in VideoFrameTick.setTimeoutCallbacks) {\n const callback = VideoFrameTick.setTimeoutCallbacks[key];\n const start = callback.startedAtInMs;\n if (now - start >= callback.timeoutInMs) {\n timeoutIds.push(key);\n }\n }\n // invoke the callbacks\n for (const id of timeoutIds) {\n const callback = VideoFrameTick.setTimeoutCallbacks[id];\n callback.callback();\n delete VideoFrameTick.setTimeoutCallbacks[id];\n }\n }\n}\n","import { VideoFrameTick } from './videoFrameTick';\n\nexport type VideoPerformanceStatisticsResult = {\n effectId: string;\n effectParam?: string;\n frameWidth: number;\n frameHeight: number;\n /**\n * The duration in milliseconds that the data were collected\n */\n duration: number;\n /**\n * The number of frames that were processed in the duration\n */\n sampleCount: number;\n /**\n * An array that presents counts of frames that were finished in n milliseconds:\n * distributionBins[frameProcessingDurationInMs]=frameCount.\n * For example, distributionBins[10] = 5 means that 5 frames were processed in 10 milliseconds.\n */\n distributionBins: Uint32Array;\n};\n\nexport class VideoPerformanceStatistics {\n private static readonly initialSessionTimeoutInMs = 1000;\n private static readonly maxSessionTimeoutInMs = 1000 * 30;\n\n private currentSession: {\n startedAtInMs: number;\n timeoutInMs: number;\n effectId: string;\n effectParam?: string;\n frameWidth: number;\n frameHeight: number;\n };\n\n private frameProcessingStartedAt: number;\n private distributionBins: Uint32Array;\n private sampleCount = 0;\n private timeoutId: string;\n\n public constructor(\n distributionBinSize: number,\n /**\n * Function to report the statistics result\n */\n private reportStatisticsResult: (result: VideoPerformanceStatisticsResult) => void,\n ) {\n this.distributionBins = new Uint32Array(distributionBinSize);\n }\n\n /**\n * Call this function before processing every frame\n */\n public processStarts(effectId: string, frameWidth: number, frameHeight: number, effectParam?: string): void {\n VideoFrameTick.tick();\n if (!this.suitableForThisSession(effectId, frameWidth, frameHeight, effectParam)) {\n this.reportAndResetSession(this.getStatistics(), effectId, effectParam, frameWidth, frameHeight);\n }\n this.start();\n }\n\n public processEnds(): void {\n // calculate duration of the process and record it\n const durationInMillisecond = performance.now() - this.frameProcessingStartedAt;\n const binIndex = Math.floor(Math.max(0, Math.min(this.distributionBins.length - 1, durationInMillisecond)));\n this.distributionBins[binIndex] += 1;\n this.sampleCount += 1;\n }\n\n private getStatistics(): VideoPerformanceStatisticsResult | null {\n if (!this.currentSession) {\n return null;\n }\n return {\n effectId: this.currentSession.effectId,\n effectParam: this.currentSession.effectParam,\n frameHeight: this.currentSession.frameHeight,\n frameWidth: this.currentSession.frameWidth,\n duration: performance.now() - this.currentSession.startedAtInMs,\n sampleCount: this.sampleCount,\n distributionBins: this.distributionBins.slice(),\n };\n }\n\n private start(): void {\n this.frameProcessingStartedAt = performance.now();\n }\n\n private suitableForThisSession(\n effectId: string,\n frameWidth: number,\n frameHeight: number,\n effectParam?: string,\n ): boolean {\n return (\n this.currentSession &&\n this.currentSession.effectId === effectId &&\n this.currentSession.effectParam === effectParam &&\n this.currentSession.frameWidth === frameWidth &&\n this.currentSession.frameHeight === frameHeight\n );\n }\n\n private reportAndResetSession(result, effectId, effectParam, frameWidth, frameHeight): void {\n result && this.reportStatisticsResult(result);\n this.resetCurrentSession(\n this.getNextTimeout(effectId, this.currentSession),\n effectId,\n effectParam,\n frameWidth,\n frameHeight,\n );\n if (this.timeoutId) {\n VideoFrameTick.clearTimeout(this.timeoutId);\n }\n this.timeoutId = VideoFrameTick.setTimeout(\n (() => this.reportAndResetSession(this.getStatistics(), effectId, effectParam, frameWidth, frameHeight)).bind(\n this,\n ),\n this.currentSession.timeoutInMs,\n );\n }\n\n private resetCurrentSession(\n timeoutInMs: number,\n effectId: string,\n effectParam: string,\n frameWidth: number,\n frameHeight: number,\n ): void {\n this.currentSession = {\n startedAtInMs: performance.now(),\n timeoutInMs,\n effectId,\n effectParam,\n frameWidth,\n frameHeight,\n };\n this.sampleCount = 0;\n this.distributionBins.fill(0);\n }\n\n // send the statistics result every n second, where n starts from 1, 2, 4...and finally stays at every 30 seconds.\n private getNextTimeout(effectId: string, currentSession?: { timeoutInMs: number; effectId: string }): number {\n // only reset timeout when new session or effect changed\n if (!currentSession || currentSession.effectId !== effectId) {\n return VideoPerformanceStatistics.initialSessionTimeoutInMs;\n }\n return Math.min(VideoPerformanceStatistics.maxSessionTimeoutInMs, currentSession.timeoutInMs * 2);\n }\n}\n","import { ApiName, ApiVersionNumber, getApiVersionTag } from './telemetry';\nimport { VideoFrameTick } from './videoFrameTick';\nimport { VideoPerformanceStatistics } from './videoPerformanceStatistics';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst videoPerformanceMonitorTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * This class is used to monitor the performance of video processing, and report performance events.\n */\nexport class VideoPerformanceMonitor {\n private static readonly distributionBinSize = 1000;\n private static readonly calculateFPSInterval = 1000;\n\n private isFirstFrameProcessed = false;\n\n // The effect that the user last selected:\n private applyingEffect?: {\n effectId: string;\n effectParam?: string;\n };\n\n // The effect that is currently applied to the video:\n private appliedEffect?: {\n effectId: string;\n effectParam?: string;\n };\n\n private frameProcessTimeLimit = 100;\n private gettingTextureStreamStartedAt: number;\n private currentStreamId: string;\n private frameProcessingStartedAt = 0;\n private frameProcessingTimeCost = 0;\n private processedFrameCount = 0;\n\n private performanceStatistics: VideoPerformanceStatistics;\n\n public constructor(\n private reportPerformanceEvent: (apiVersionTag: string, actionName: string, args: unknown[]) => void,\n ) {\n this.performanceStatistics = new VideoPerformanceStatistics(VideoPerformanceMonitor.distributionBinSize, (result) =>\n this.reportPerformanceEvent(\n getApiVersionTag(videoPerformanceMonitorTelemetryVersionNumber, ApiName.VideoPerformanceMonitor_Constructor),\n 'video.performance.performanceDataGenerated',\n [result],\n ),\n );\n }\n\n /**\n * Start to check frame processing time intervally\n * and report performance event if the average frame processing time is too long.\n */\n public startMonitorSlowFrameProcessing(): void {\n VideoFrameTick.setInterval(() => {\n if (this.processedFrameCount === 0) {\n return;\n }\n const averageFrameProcessingTime = this.frameProcessingTimeCost / this.processedFrameCount;\n if (averageFrameProcessingTime > this.frameProcessTimeLimit) {\n this.reportPerformanceEvent(\n getApiVersionTag(\n videoPerformanceMonitorTelemetryVersionNumber,\n ApiName.VideoPerformanceMonitor_StartMonitorSlowFrameProcessing,\n ),\n 'video.performance.frameProcessingSlow',\n [averageFrameProcessingTime],\n );\n }\n this.frameProcessingTimeCost = 0;\n this.processedFrameCount = 0;\n }, VideoPerformanceMonitor.calculateFPSInterval);\n }\n\n /**\n * Define the time limit of frame processing.\n * When the average frame processing time is longer than the time limit, a \"video.performance.frameProcessingSlow\" event will be reported.\n * @param timeLimit\n */\n public setFrameProcessTimeLimit(timeLimit: number): void {\n this.frameProcessTimeLimit = timeLimit;\n }\n\n /**\n * Call this function when the app starts to switch to the new video effect\n */\n public reportApplyingVideoEffect(effectId: string, effectParam?: string): void {\n if (this.applyingEffect?.effectId === effectId && this.applyingEffect?.effectParam === effectParam) {\n return;\n }\n this.applyingEffect = {\n effectId,\n effectParam,\n };\n this.appliedEffect = undefined;\n }\n\n /**\n * Call this function when the new video effect is ready\n */\n public reportVideoEffectChanged(effectId: string, effectParam?: string): void {\n if (\n this.applyingEffect === undefined ||\n (this.applyingEffect.effectId !== effectId && this.applyingEffect.effectParam !== effectParam)\n ) {\n // don't handle obsoleted event\n return;\n }\n this.appliedEffect = {\n effectId,\n effectParam,\n };\n this.applyingEffect = undefined;\n this.isFirstFrameProcessed = false;\n }\n\n /**\n * Call this function when the app starts to process a video frame\n */\n public reportStartFrameProcessing(frameWidth: number, frameHeight: number): void {\n VideoFrameTick.tick();\n if (!this.appliedEffect) {\n return;\n }\n this.frameProcessingStartedAt = performance.now();\n this.performanceStatistics.processStarts(\n this.appliedEffect.effectId,\n frameWidth,\n frameHeight,\n this.appliedEffect.effectParam,\n );\n }\n\n /**\n * Call this function when the app finishes successfully processing a video frame\n */\n public reportFrameProcessed(): void {\n if (!this.appliedEffect) {\n return;\n }\n this.processedFrameCount++;\n this.frameProcessingTimeCost += performance.now() - this.frameProcessingStartedAt;\n this.performanceStatistics.processEnds();\n if (!this.isFirstFrameProcessed) {\n this.isFirstFrameProcessed = true;\n this.reportPerformanceEvent(\n getApiVersionTag(\n videoPerformanceMonitorTelemetryVersionNumber,\n ApiName.VideoPerformanceMonitor_ReportFrameProcessed,\n ),\n 'video.performance.firstFrameProcessed',\n [Date.now(), this.appliedEffect.effectId, this.appliedEffect?.effectParam],\n );\n }\n }\n\n /**\n * Call this function when the app starts to get the texture stream\n */\n public reportGettingTextureStream(streamId: string): void {\n this.gettingTextureStreamStartedAt = performance.now();\n this.currentStreamId = streamId;\n }\n\n /**\n * Call this function when the app finishes successfully getting the texture stream\n */\n public reportTextureStreamAcquired(): void {\n if (this.gettingTextureStreamStartedAt !== undefined) {\n const timeTaken = performance.now() - this.gettingTextureStreamStartedAt;\n this.reportPerformanceEvent(\n getApiVersionTag(\n videoPerformanceMonitorTelemetryVersionNumber,\n ApiName.VideoPerformanceMonitor_ReportTextureStreamAcquired,\n ),\n 'video.performance.textureStreamAcquired',\n [this.currentStreamId, timeTaken],\n );\n }\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { inServerSideRenderingEnvironment, ssrSafeWindow } from '../internal/utils';\nimport { createEffectParameterChangeCallback, processMediaStream } from '../internal/videoEffectsUtils';\nimport { VideoPerformanceMonitor } from '../internal/videoPerformanceMonitor';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst videoEffectsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to video extensibility of the SDK\n * @beta\n */\nexport namespace videoEffects {\n const videoPerformanceMonitor = inServerSideRenderingEnvironment()\n ? undefined\n : new VideoPerformanceMonitor(sendMessageToParentWithVersion);\n\n /** Notify video frame processed function type */\n export type notifyVideoFrameProcessedFunctionType = () => void;\n /** Notify error function type */\n export type notifyErrorFunctionType = (errorMessage: string) => void;\n\n /**\n * Represents a video frame\n * @beta\n */\n export interface VideoBufferData {\n /**\n * Video frame width\n */\n width: number;\n /**\n * Video frame height\n */\n height: number;\n /**\n * Video frame buffer\n */\n videoFrameBuffer: Uint8ClampedArray;\n /**\n * NV12 luma stride, valid only when video frame format is NV12\n */\n lumaStride?: number;\n /**\n * NV12 chroma stride, valid only when video frame format is NV12\n */\n chromaStride?: number;\n /**\n * RGB stride, valid only when video frame format is RGB\n */\n stride?: number;\n /**\n * The time stamp of the current video frame\n */\n timestamp?: number;\n }\n\n /**\n * Video frame format enum, currently only support NV12\n * @beta\n */\n export enum VideoFrameFormat {\n /** Video format used for encoding and decoding YUV color data in video streaming and storage applications. */\n NV12 = 'NV12',\n }\n\n /**\n * Video frame configuration supplied to the host to customize the generated video frame parameters, like format\n * @beta\n */\n export interface VideoFrameConfig {\n /**\n * Video format\n */\n format: VideoFrameFormat;\n }\n\n /**\n * Video effect change type enum\n * @beta\n */\n export enum EffectChangeType {\n /**\n * Current video effect changed\n */\n EffectChanged = 'EffectChanged',\n /**\n * Disable the video effect\n */\n EffectDisabled = 'EffectDisabled',\n }\n\n /**\n * Predefined failure reasons for preparing the selected video effect\n * @beta\n */\n export enum EffectFailureReason {\n /**\n * A wrong effect id is provide.\n * Use this reason when the effect id is not found or empty, this may indicate a mismatch between the app and its manifest or a bug of the host.\n */\n InvalidEffectId = 'InvalidEffectId',\n /**\n * The effect can't be initialized\n */\n InitializationFailure = 'InitializationFailure',\n }\n\n /**\n * Video effect change call back function definition\n * Return a Promise which will be resolved when the effect is prepared, or throw an {@link EffectFailureReason} on error.\n * @beta\n */\n export type VideoEffectCallback = (effectId: string | undefined) => Promise;\n\n /**\n * @beta\n * Video frame call back function definition\n * The callback will be called on every frame when running on the supported host.\n * We require the frame rate of the video to be at least 22fps for 720p, thus the callback should process a frame timely.\n * The video app should call `notifyVideoFrameProcessed` to notify a successfully processed video frame.\n * The video app should call `notifyError` to notify a failure. When the failures accumulate to a certain number, the host will see the app is \"frozen\" and ask the user to close it or not.\n */\n export type VideoBufferHandler = (\n videoBufferData: VideoBufferData,\n notifyVideoFrameProcessed: notifyVideoFrameProcessedFunctionType,\n notifyError: notifyErrorFunctionType,\n ) => void;\n\n /**\n * @beta\n * VideoFrame definition, align with the W3C spec: https://www.w3.org/TR/webcodecs/#videoframe-interface.\n * The current version of typescript doesn't have the definition of VideoFrame so we have to define it here.\n * At runtime it can be cast to VideoFrame directly: `(videoFrame as VideoFrame)`.\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-interface\n export interface VideoFrame {}\n\n /**\n * @beta\n * Video frame data extracted from the media stream. More properties may be added in the future.\n */\n export type VideoFrameData = {\n /**\n * The video frame from the media stream.\n */\n videoFrame: VideoFrame;\n };\n\n /**\n * @beta\n * Video frame call back function definition.\n * The callback will be called on every frame when running on the supported host.\n * We require the frame rate of the video to be at least 22fps for 720p, thus the callback should process a frame timely.\n * The video app should resolve the promise to notify a successfully processed video frame.\n * The video app should reject the promise to notify a failure. When the failures accumulate to a certain number, the host will see the app is \"frozen\" and ask the user to close it or not.\n */\n export type VideoFrameHandler = (receivedVideoFrame: VideoFrameData) => Promise;\n\n /**\n * @beta\n * Callbacks and configuration supplied to the host to process the video frames.\n */\n export type RegisterForVideoFrameParameters = {\n /**\n * Callback function to process the video frames extracted from a media stream.\n */\n videoFrameHandler: VideoFrameHandler;\n /**\n * Callback function to process the video frames shared by the host.\n */\n videoBufferHandler: VideoBufferHandler;\n /**\n * Video frame configuration supplied to the host to customize the generated video frame parameters, like format\n */\n config: VideoFrameConfig;\n };\n\n /**\n * Register callbacks to process the video frames if the host supports it.\n * @beta\n * @param parameters - Callbacks and configuration to process the video frames. A host may support either {@link VideoFrameHandler} or {@link VideoBufferHandler}, but not both.\n * To ensure the video effect works on all supported hosts, the video app must provide both {@link VideoFrameHandler} and {@link VideoBufferHandler}.\n * The host will choose the appropriate callback based on the host's capability.\n *\n * @example\n * ```typescript\n * videoEffects.registerForVideoFrame({\n * videoFrameHandler: async (videoFrameData) => {\n * const originalFrame = videoFrameData.videoFrame as VideoFrame;\n * try {\n * const processedFrame = await processFrame(originalFrame);\n * return processedFrame;\n * } catch (e) {\n * throw e;\n * }\n * },\n * videoBufferHandler: (\n * bufferData: VideoBufferData,\n * notifyVideoFrameProcessed: notifyVideoFrameProcessedFunctionType,\n * notifyError: notifyErrorFunctionType\n * ) => {\n * try {\n * processFrameInplace(bufferData);\n * notifyVideoFrameProcessed();\n * } catch (e) {\n * notifyError(e);\n * }\n * },\n * config: {\n * format: videoEffects.VideoPixelFormat.NV12,\n * }\n * });\n * ```\n */\n export function registerForVideoFrame(parameters: RegisterForVideoFrameParameters): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!parameters.videoFrameHandler || !parameters.videoBufferHandler) {\n throw new Error('Both videoFrameHandler and videoBufferHandler must be provided');\n }\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsTelemetryVersionNumber,\n ApiName.VideoEffects_RegisterSetFrameProcessTimeLimitHandler,\n ),\n 'video.setFrameProcessTimeLimit',\n (timeLimitInfo: { timeLimit: number }) =>\n videoPerformanceMonitor?.setFrameProcessTimeLimit(timeLimitInfo.timeLimit),\n false,\n );\n if (doesSupportMediaStream()) {\n registerForMediaStream(parameters.videoFrameHandler, parameters.config);\n } else if (doesSupportSharedFrame()) {\n registerForVideoBuffer(parameters.videoBufferHandler, parameters.config);\n } else {\n // should not happen if isSupported() is true\n throw errorNotSupportedOnPlatform;\n }\n videoPerformanceMonitor?.startMonitorSlowFrameProcessing();\n }\n\n /**\n * Video extension should call this to notify host that the current selected effect parameter changed.\n * If it's pre-meeting, host will call videoEffectCallback immediately then use the videoEffect.\n * If it's the in-meeting scenario, we will call videoEffectCallback when apply button clicked.\n * @beta\n * @param effectChangeType - the effect change type.\n * @param effectId - Newly selected effect id.\n */\n export function notifySelectedVideoEffectChanged(\n effectChangeType: EffectChangeType,\n effectId: string | undefined,\n ): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_NotifySelectedVideoEffectChanged),\n 'video.videoEffectChanged',\n [effectChangeType, effectId],\n );\n }\n\n /**\n * Register a callback to be notified when a new video effect is applied.\n * @beta\n * @param callback - Function to be called when new video effect is applied.\n */\n export function registerForVideoEffect(callback: VideoEffectCallback): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_RegisterEffectParameterChangeHandler),\n 'video.effectParameterChange',\n createEffectParameterChangeCallback(callback, videoPerformanceMonitor),\n false,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_RegisterForVideoEffect),\n 'video.registerForVideoEffect',\n );\n }\n\n /**\n * Sending notification to host finished the video frame processing, now host can render this video frame\n * or pass the video frame to next one in video pipeline\n * @beta\n */\n function notifyVideoFrameProcessed(timestamp?: number): void {\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_NotifyVideoFrameProcessed),\n 'video.videoFrameProcessed',\n [timestamp],\n );\n }\n\n /**\n * Sending error notification to host\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n */\n function notifyError(errorMessage: string): void {\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_NotifyError),\n 'video.notifyError',\n [errorMessage],\n );\n }\n\n /**\n * Checks if video capability is supported by the host.\n * @beta\n * @returns boolean to represent whether the video capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return (\n ensureInitialized(runtime) &&\n !!runtime.supports.video &&\n /** A host should support either mediaStream or sharedFrame sub-capability to support the video capability */\n (!!runtime.supports.video.mediaStream || !!runtime.supports.video.sharedFrame)\n );\n }\n\n function registerForMediaStream(videoFrameHandler: VideoFrameHandler, config: VideoFrameConfig): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported() || !doesSupportMediaStream()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsTelemetryVersionNumber,\n ApiName.VideoEffects_RegisterStartVideoExtensibilityVideoStreamHandler,\n ),\n 'video.startVideoExtensibilityVideoStream',\n async (mediaStreamInfo: { streamId: string }) => {\n // when a new streamId is ready:\n const { streamId } = mediaStreamInfo;\n const monitoredVideoFrameHandler = createMonitoredVideoFrameHandler(videoFrameHandler, videoPerformanceMonitor);\n await processMediaStream(streamId, monitoredVideoFrameHandler, notifyError, videoPerformanceMonitor);\n },\n false,\n );\n\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_MediaStream_RegisterForVideoFrame),\n 'video.mediaStream.registerForVideoFrame',\n [config],\n );\n }\n\n function createMonitoredVideoFrameHandler(\n videoFrameHandler: VideoFrameHandler,\n videoPerformanceMonitor?: VideoPerformanceMonitor,\n ): VideoFrameHandler {\n return async (videoFrameData: VideoFrameData): Promise => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const originalFrame = videoFrameData.videoFrame as any;\n videoPerformanceMonitor?.reportStartFrameProcessing(originalFrame.codedWidth, originalFrame.codedHeight);\n const processedFrame = await videoFrameHandler(videoFrameData);\n videoPerformanceMonitor?.reportFrameProcessed();\n return processedFrame;\n };\n }\n\n /**\n * Old video frame data structure, almost identical to the {@link VideoBufferData} except `videoFrameBuffer` is named as `data`.\n * Old host like the old Teams passes this data to the SDK. It will be deprecated in the future.\n */\n type LegacyVideoBufferData = Omit & {\n /**\n * Video frame buffer\n */\n data: Uint8ClampedArray;\n };\n\n function registerForVideoBuffer(videoBufferHandler: VideoBufferHandler, config: VideoFrameConfig): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported() || !doesSupportSharedFrame()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_RegisterForVideoBufferHandler),\n 'video.newVideoFrame',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (videoBufferData: VideoBufferData | LegacyVideoBufferData) => {\n if (videoBufferData) {\n const timestamp = videoBufferData.timestamp;\n videoPerformanceMonitor?.reportStartFrameProcessing(videoBufferData.width, videoBufferData.height);\n videoBufferHandler(\n normalizeVideoBufferData(videoBufferData),\n () => {\n videoPerformanceMonitor?.reportFrameProcessed();\n notifyVideoFrameProcessed(timestamp);\n },\n notifyError,\n );\n }\n },\n false,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsTelemetryVersionNumber, ApiName.VideoEffects_RegisterForVideoFrame),\n 'video.registerForVideoFrame',\n [config],\n );\n }\n\n function normalizeVideoBufferData(videoBufferData: VideoBufferData | LegacyVideoBufferData): VideoBufferData {\n if ('videoFrameBuffer' in videoBufferData) {\n return videoBufferData;\n } else {\n // The host may pass the VideoFrame with the old definition which has `data` instead of `videoFrameBuffer`\n const { data, ...newVideoBufferData } = videoBufferData;\n return {\n ...newVideoBufferData,\n videoFrameBuffer: data,\n };\n }\n }\n\n function doesSupportMediaStream(): boolean {\n return (\n ensureInitialized(runtime, FrameContexts.sidePanel) &&\n isTextureStreamAvailable() &&\n !!runtime.supports.video?.mediaStream\n );\n }\n\n function isTextureStreamAvailable(): boolean {\n return !!(\n ssrSafeWindow()['chrome']?.webview?.getTextureStream && ssrSafeWindow()['chrome']?.webview?.registerTextureStream\n );\n }\n\n function doesSupportSharedFrame(): boolean {\n return ensureInitialized(runtime, FrameContexts.sidePanel) && !!runtime.supports.video?.sharedFrame;\n }\n} //end of video namespace\n","import { sendAndHandleStatusAndReasonWithVersion, sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion, removeHandler } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst searchTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Allows your application to interact with the host M365 application's search box.\n * By integrating your application with the host's search box, users can search\n * your app using the same search box they use elsewhere in Teams, Outlook, or Office.\n *\n * This functionality is in Beta.\n * @beta\n */\nexport namespace search {\n const onChangeHandlerName = 'search.queryChange';\n const onClosedHandlerName = 'search.queryClose';\n const onExecutedHandlerName = 'search.queryExecute';\n\n /**\n * This interface contains information pertaining to the contents of the host M365 application's search box\n *\n * @beta\n */\n export interface SearchQuery {\n /** The current search term in the host search experience */\n searchTerm: string;\n\n /** Timestamp sequence value to ensure messages are processed in correct order / combine them. */\n timestamp: number;\n }\n\n /**\n * This type will store the SearchQuery and allow other logic to be made inside the handler.\n *\n * @beta\n */\n export type SearchQueryHandler = (query: SearchQuery) => void;\n\n /**\n * Allows the caller to register for various events fired by the host search experience.\n * Calling this function indicates that your application intends to plug into the host's search box and handle search events,\n * when the user is actively using your page/tab.\n * \n * The host may visually update its search box, e.g. with the name or icon of your application.\n * \n * Your application should *not* re-render inside of these callbacks, there may be a large number\n * of onChangeHandler calls if the user is typing rapidly in the search box.\n *\n * @param onClosedHandler - This handler will be called when the user exits or cancels their search.\n * Should be used to return your application to its most recent, non-search state. The value of {@link SearchQuery.searchTerm} \n * will be whatever the last query was before ending search. \n * \n * @param onExecuteHandler - The handler will be called when the user executes their \n * search (by pressing Enter for example). Should be used to display the full list of search results. \n * The value of {@link SearchQuery.searchTerm} is the complete query the user entered in the search box.\n *\n * @param onChangeHandler - This optional handler will be called when the user first starts using the\n * host's search box and as the user types their query. Can be used to put your application into a \n * word-wheeling state or to display suggestions as the user is typing. \n * \n * This handler will be called with an empty {@link SearchQuery.searchTerm} when search is beginning, and subsequently,\n * with the current contents of the search box.\n * @example\n * ``` ts\n * search.registerHandlers(\n query => {\n console.log('Update your application to handle the search experience being closed. Last query: ${query.searchTerm}');\n },\n query => {\n console.log(`Update your application to handle an executed search result: ${query.searchTerm}`);\n },\n query => {\n console.log(`Update your application with the changed search query: ${query.searchTerm}`);\n },\n );\n * ```\n *\n * @beta\n */\n export function registerHandlers(\n onClosedHandler: SearchQueryHandler,\n onExecuteHandler: SearchQueryHandler,\n onChangeHandler?: SearchQueryHandler,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(searchTelemetryVersionNumber, ApiName.Search_RegisterOnClosedHandler),\n onClosedHandlerName,\n onClosedHandler,\n );\n registerHandlerWithVersion(\n getApiVersionTag(searchTelemetryVersionNumber, ApiName.Search_RegisterOnExecutedHandler),\n onExecutedHandlerName,\n onExecuteHandler,\n );\n if (onChangeHandler) {\n registerHandlerWithVersion(\n getApiVersionTag(searchTelemetryVersionNumber, ApiName.Search_RegisterOnChangeHandler),\n onChangeHandlerName,\n onChangeHandler,\n );\n }\n }\n\n /**\n * Allows the caller to unregister for all events fired by the host search experience. Calling\n * this function will cause your app to stop appearing in the set of search scopes in the hosts\n *\n * @beta\n */\n export function unregisterHandlers(): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n // This should let the host know to stop making the app scope show up in the search experience\n // Can also be used to clean up handlers on the host if desired\n sendMessageToParentWithVersion(\n getApiVersionTag(searchTelemetryVersionNumber, ApiName.Search_UnregisterHandlers),\n 'search.unregister',\n );\n removeHandler(onChangeHandlerName);\n removeHandler(onClosedHandlerName);\n removeHandler(onExecutedHandlerName);\n }\n\n /**\n * Checks if search capability is supported by the host\n * @returns boolean to represent whether the search capability is supported\n *\n * @throws Error if {@link app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.search ? true : false;\n }\n\n /**\n * Clear the host M365 application's search box\n *\n * @beta\n */\n export function closeSearch(): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw new Error('Not supported');\n }\n\n resolve(\n sendAndHandleStatusAndReasonWithVersion(\n getApiVersionTag(searchTelemetryVersionNumber, ApiName.Search_CloseSearch),\n 'search.closeSearch',\n ),\n );\n });\n }\n}\n","import { sendAndHandleSdkError } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiVersionNumber } from '../internal/telemetry';\nimport { callCallbackWithSdkErrorFromPromiseAndReturnPromise, InputFunction } from '../internal/utils';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\nconst sharingTelemetryVersionNumber_v1: ApiVersionNumber = ApiVersionNumber.V_1;\nconst sharingTelemetryVersionNumber_v2: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to open a share dialog for web content.\n * For more info, see [Share to Teams from personal app or tab](https://learn.microsoft.com/microsoftteams/platform/concepts/build-and-test/share-to-teams-from-personal-app-or-tab)\n */\nexport namespace sharing {\n /** shareWebContent callback function type */\n export type shareWebContentCallbackFunctionType = (err?: SdkError) => void;\n\n /** Type of message that can be sent or received by the sharing APIs */\n export const SharingAPIMessages = {\n /**\n * Share web content message.\n * @internal\n */\n shareWebContent: 'sharing.shareWebContent',\n };\n\n // More types can be added as we expand share capability\n type ContentType = 'URL';\n\n /** Represents parameters for base shared content. */\n interface IBaseSharedContent {\n /** Shared content type */\n type: ContentType;\n }\n\n // More types can be added as we expand share capability\n /** IShareRequestContentType defines share request type. */\n export type IShareRequestContentType = IURLContent;\n\n /** Represents IShareRequest parameters interface.\n * @typeparam T - The identity type\n */\n export interface IShareRequest {\n /** Content of the share request. */\n content: T[];\n }\n\n /** Represents IURLContent parameters. */\n export interface IURLContent extends IBaseSharedContent {\n /** Type */\n type: 'URL';\n\n /**\n * Required URL\n */\n url: string;\n\n /**\n * Default initial message text\n */\n message?: string;\n\n /**\n * Show URL preview, defaults to true\n */\n preview?: boolean;\n }\n\n /**\n * Feature is under development\n * Opens a share dialog for web content\n *\n * @param shareWebContentRequest - web content info\n * @returns Promise that will be fulfilled when the operation has completed\n */\n export function shareWebContent(shareWebContentRequest: IShareRequest): Promise;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link sharing.shareWebContent sharing.shareWebContent(shareWebContentRequest: IShareRequest\\): Promise\\} instead.\n *\n * Feature is under development\n * Opens a share dialog for web content\n *\n * @param shareWebContentRequest - web content info\n * @param callback - optional callback\n */\n export function shareWebContent(\n shareWebContentRequest: IShareRequest,\n callback: shareWebContentCallbackFunctionType,\n ): void;\n export function shareWebContent(\n shareWebContentRequest: IShareRequest,\n callback?: shareWebContentCallbackFunctionType,\n ): Promise {\n const apiVersionTag = '';\n // validate the given input (synchronous check)\n try {\n validateNonEmptyContent(shareWebContentRequest);\n validateTypeConsistency(shareWebContentRequest);\n validateContentForSupportedTypes(shareWebContentRequest);\n } catch (err) {\n //return the error via callback(v1) or rejected promise(v2)\n const wrappedFunction: InputFunction = () => Promise.reject(err);\n return callCallbackWithSdkErrorFromPromiseAndReturnPromise(wrappedFunction, callback);\n }\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n return callCallbackWithSdkErrorFromPromiseAndReturnPromise(shareWebContentHelper, callback, shareWebContentRequest);\n }\n\n function shareWebContentHelper(shareWebContentRequest: IShareRequest): Promise {\n return new Promise((resolve) => {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(sendAndHandleSdkError(SharingAPIMessages.shareWebContent, shareWebContentRequest));\n });\n }\n\n /**\n * Functions for validating the shareRequest input parameter\n */\n function validateNonEmptyContent(shareRequest: IShareRequest): void {\n if (!(shareRequest && shareRequest.content && shareRequest.content.length)) {\n const err: SdkError = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content is missing',\n };\n throw err;\n }\n }\n\n function validateTypeConsistency(shareRequest: IShareRequest): void {\n let err: SdkError | undefined;\n if (shareRequest.content.some((item) => !item.type)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content type cannot be undefined',\n };\n throw err;\n }\n if (shareRequest.content.some((item) => item.type !== shareRequest.content[0].type)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Shared content must be of the same type',\n };\n throw err;\n }\n }\n\n function validateContentForSupportedTypes(shareRequest: IShareRequest): void {\n let err: SdkError | undefined;\n if (shareRequest.content[0].type === 'URL') {\n if (shareRequest.content.some((item) => !item.url)) {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'URLs are required for URL content types',\n };\n throw err;\n }\n } else {\n err = {\n errorCode: ErrorCode.INVALID_ARGUMENTS,\n message: 'Content type is unsupported',\n };\n throw err;\n }\n }\n\n /**\n * Checks if the sharing capability is supported by the host\n * @returns boolean to represent whether the sharing capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.sharing ? true : false;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst stageViewTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Namespace to interact with the stage view specific part of the SDK.\n *\n * @beta\n */\nexport namespace stageView {\n /**\n * Parameters to open a stage view.\n */\n export interface StageViewParams {\n /**\n * The ID of the Teams application to be opened.\n */\n appId: string;\n\n /**\n * The URL of the content to display.\n */\n contentUrl: string;\n\n /**\n * The chat or channel ID.\n */\n threadId: string;\n\n /**\n * The title to give the stage view.\n */\n title?: string;\n\n /**\n * The Teams application website URL.\n */\n websiteUrl?: string;\n\n /**\n * The entity ID of the Teams application content being opened.\n */\n entityId?: string;\n\n /**\n * The open mode for stage content.\n * Optional param: if not passed, hosts can choose their default openMode.\n * If a host does not support any specific openMode, It will fallback to StageViewOpenMode.modal.\n */\n openMode?: StageViewOpenMode;\n }\n\n /**\n * The open mode for stage content.\n */\n export enum StageViewOpenMode {\n /**\n * Open the content in a modal.\n */\n modal = 'modal',\n /**\n * Open the content in a popped-out window.\n */\n popout = 'popout',\n /**\n * Open the content in a popped-out window with chat collaboration.\n */\n popoutWithChat = 'popoutWithChat',\n }\n\n /**\n * @hidden\n * Feature is under development\n *\n * Opens a stage view to display a Teams application\n * @beta\n * @param stageViewParams - The parameters to pass into the stage view.\n * @returns Promise that resolves or rejects with an error once the stage view is closed.\n */\n export function open(stageViewParams: StageViewParams): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!stageViewParams) {\n throw new Error('[stageView.open] Stage view params cannot be null');\n }\n\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(stageViewTelemetryVersionNumber, ApiName.StageView_Open),\n 'stageView.open',\n stageViewParams,\n ),\n );\n });\n }\n\n /**\n * Checks if stageView capability is supported by the host\n * @beta\n * @returns boolean to represent whether the stageView capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.stageView ? true : false;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorInvalidCount, errorInvalidResponse, errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { DevicePermission } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst visualMediaTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * @hidden\n * Interact with images. Allows the app developer ask the user to get images from their camera / camera roll / file system.\n *\n * @beta\n */\nexport namespace visualMedia {\n const maxVisualMediaSelectionLimit = 10;\n /**\n * @hidden\n * All properties common to Image and Video Props\n *\n * @beta\n */\n interface VisualMediaProps {\n /**\n * @hidden\n * The maximum number of media items that can be selected at once is limited to values that are less than or equal to the maximum visual media selection limit.\n */\n maxVisualMediaCount: number;\n }\n\n /**\n * @hidden\n * The required value of the visualMedia files from gallery\n *\n * @beta\n */\n export interface GalleryProps {\n /**\n * The visualMedia source\n */\n source: Source.Gallery;\n }\n /**\n * @hidden\n * The required value of the visualMedia files from camera\n *\n * @beta\n */\n export interface CameraProps {\n /**\n * @hidden\n * The visualMedia source\n */\n source: Source.Camera;\n /**\n * @hidden\n * Optional; Specify whether users have the option to switch between the front and rear cameras. The default setting is FrontOrRear.\n * Default value is FrontOrRear\n */\n cameraRestriction?: CameraRestriction;\n }\n\n /**\n * @hidden\n * Indicate if user is allowed to move between front and back camera or stay in front/back camera only\n * If the camera option requested by the app isn't available, the SDK will silently default to the platform's standard camera.\n *\n * @beta\n */\n export enum CameraRestriction {\n /** User can move between front and back camera */\n FrontOrRear = 1,\n /** User can only use the front camera */\n FrontOnly = 2,\n /** User can only use the back camera */\n RearOnly = 3,\n }\n /**\n * @hidden\n * Specifies the image source\n *\n * @beta\n */\n export enum Source {\n /** The camera is the source of visual media. */\n Camera = 1,\n /** The source of visual media is the gallery. */\n Gallery = 2,\n }\n\n /**\n * @hidden\n * VisualMediaFile object that can be used to represent image or video from host apps.\n *\n * @beta\n */\n export interface VisualMediaFile {\n /**\n * @hidden\n * This is the base64 content of file.\n * If app needs to use this directly in HTML tags, it should convert this to a data url.\n */\n content: string;\n /**\n * @hidden\n * The size of file represented in VisualMediaFile in KB\n */\n sizeInKB: number;\n\n /**\n * @hidden\n * Name of the file (does not include the extension)\n */\n name: string;\n\n /**\n * @hidden\n * File's MIME type. More information on supported `mimeTypes`(https://docs.lens.xyz/docs/metadata-standards#supported-mime-types-for-imagesaudiovideos).\n */\n mimeType: string;\n }\n\n /**\n * @hidden\n * Checks whether or not visualMedia has user permission\n * @returns Promise that will resolve with true if the user had granted the app permission to media information(including Camera and Gallery permission), or with false otherwise,\n * In case of an error, promise will reject with the error.\n * @throws NOT_SUPPORTED_ON_PLATFORM Error if the DevicePermission.Media permission has not successfully granted.\n *\n * @beta\n */\n export function hasPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!image.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(visualMediaTelemetryVersionNumber, ApiName.VisualMedia_HasPermission),\n 'permissions.has',\n permissions,\n );\n }\n\n /**\n * @hidden\n * Requests user permission for visualMedia\n * @returns Promise that will resolve with true if the user consented permission for media(including Camera and Gallery permission), or with false otherwise,\n * In case of an error, promise will reject with the error.\n * @throws NOT_SUPPORTED_ON_PLATFORM Error if the DevicePermission.Media permission has not successfully granted.\n *\n * @beta\n */\n export function requestPermission(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!image.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n const permissions: DevicePermission = DevicePermission.Media;\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(visualMediaTelemetryVersionNumber, ApiName.VisualMedia_RequestPermission),\n 'permissions.request',\n permissions,\n );\n }\n\n /**\n * @hidden\n * To enable this image capability will let the app developer ask the user to get images from camera/local storage\n *\n * @beta\n */\n export namespace image {\n /**\n * @hidden\n * CameraImageProperties is for the image taken from the camera\n *\n * @beta\n */\n export interface CameraImageProperties extends VisualMediaProps {\n /**\n * @hidden\n * The source in CameraImageProperties should always be CameraProps\n */\n sourceProps: CameraProps;\n }\n\n /**\n * @hidden\n * CameraImageProperties is for the image taken from the camera\n *\n * @beta\n */\n export interface GalleryImageProperties extends VisualMediaProps {\n /**\n * @hidden\n * The source in GalleryImageProperties should always be GalleryProps\n */\n sourceProps: GalleryProps;\n }\n\n /**\n * @hidden\n * Capture one or multiple image(s) using camera.\n * @param cameraImageInputs - The input params to customize the image(s) to be captured\n * @returns Promise that will resolve with {@link VisualMediaFile[]} object or reject with an error.\n * @throws INVALID_ARGUMENTS Error if imageInputs is null or imageInputs.maxVisualMediaCount is greater than maxVisualMediaSelectionLimit or lesser than 1.\n *\n * @beta\n */\n export async function captureImages(cameraImageInputs: CameraImageProperties): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n ensureSupported();\n ensureImageInputValid(cameraImageInputs);\n const files = await sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(visualMediaTelemetryVersionNumber, ApiName.VisualMedia_Image_CaptureImages),\n 'visualMedia.image.captureImages',\n cameraImageInputs,\n );\n ensureResponseValid(cameraImageInputs.maxVisualMediaCount, files);\n return files;\n }\n\n /**\n * @hidden\n * Upload the existing image(s) from the gallery.\n * @param galleryImageInputs - The input params to customize the image(s) to be captured\n * @returns Promise that will resolve with {@link VisualMediaFile[]} object or reject with an error.\n * @throws INVALID_ARGUMENTS Error if imageInputs is null or imageInputs.maxVisualMediaCount is greater than maxVisualMediaSelectionLimit or lesser than 1.\n *\n * @beta\n */\n export async function retrieveImages(galleryImageInputs: GalleryImageProperties): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n ensureSupported();\n ensureImageInputValid(galleryImageInputs);\n const files = await sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(visualMediaTelemetryVersionNumber, ApiName.VisualMedia_Image_RetrieveImages),\n 'visualMedia.image.retrieveImages',\n galleryImageInputs,\n );\n ensureResponseValid(galleryImageInputs.maxVisualMediaCount, files);\n return files;\n }\n\n /**\n * @hidden\n * Checks if visualMedia.image capability is supported by the host\n * @returns boolean to represent whether visualMedia.image is supported\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) &&\n runtime.supports.visualMedia &&\n runtime.supports.visualMedia.image &&\n runtime.supports.permissions\n ? true\n : false;\n }\n\n /**\n * @hidden\n * Ensure visualMedia.image capability is supported by the host\n * @throws errorNotSupportedOnPlatform error if isSupported() fails.\n *\n * @beta\n */\n function ensureSupported(): void {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n }\n /**\n * @hidden\n * @param imageInput the input can be either CameraImageProperties or GalleryImageProperties\n * @param source the expected Source\n * @throws error if the input check fails.\n * @beta\n */\n function ensureImageInputValid(imageInput: CameraImageProperties | GalleryImageProperties): void {\n if (\n !imageInput ||\n imageInput.maxVisualMediaCount > maxVisualMediaSelectionLimit ||\n imageInput.maxVisualMediaCount < 1\n ) {\n throw errorInvalidCount;\n }\n }\n\n /**\n * @hidden\n * Ensure the number of images in the response is within the maximum limit.\n * @throws error if length check fails.\n * @param maxCount the maxVisualMediaCount set in the imageInpus\n * @param response the response passed from host app\n *\n * @beta\n */\n function ensureResponseValid(maxCount: number, response: VisualMediaFile[]): void {\n // to ensure the number of images in the response is within the maximum limit.\n if (response.length > maxCount) {\n throw errorInvalidResponse;\n }\n }\n }\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { runtime } from './runtime';\n\n/**\n * Contains functionality to allow web apps to store data in webview cache\n *\n * @beta\n */\nexport namespace webStorage {\n /**\n * Checks if web storage gets cleared when a user logs out from host client\n *\n * @returns true is web storage gets cleared on logout and false if it does not\n *\n * @beta\n */\n export function isWebStorageClearedOnUserLogOut(): boolean {\n ensureInitialized(runtime);\n return isSupported();\n }\n\n /**\n * Checks if webStorage capability is supported by the host\n * @returns boolean to represent whether the webStorage capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.webStorage ? true : false;\n }\n}\n","import { sendAndUnwrapWithVersion, sendMessageToParentWithVersion } from '../internal/communication';\nimport { errorCallNotStarted } from '../internal/constants';\nimport { createTeamsDeepLinkForCall } from '../internal/deepLinkUtilities';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst callTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * Used to interact with call functionality, including starting calls with other users.\n */\nexport namespace call {\n /** Modalities that can be associated with a call. */\n export enum CallModalities {\n /** Indicates that the modality is unknown or undefined. */\n Unknown = 'unknown',\n /** Indicates that the call includes audio. */\n Audio = 'audio',\n /** Indicates that the call includes video. */\n Video = 'video',\n /** Indicates that the call includes video-based screen sharing. */\n VideoBasedScreenSharing = 'videoBasedScreenSharing',\n /** Indicates that the call includes data sharing or messaging. */\n Data = 'data',\n }\n\n /** Represents parameters for {@link startCall | StartCall}. */\n export interface StartCallParams {\n /**\n * Comma-separated list of user IDs representing the participants of the call.\n *\n * @remarks\n * Currently the User ID field supports the Microsoft Entra UserPrincipalName,\n * typically an email address, or in case of a PSTN call, it supports a pstn\n * mri 4:\\.\n */\n targets: string[];\n /**\n * List of modalities for the call. Defaults to [“audio”].\n */\n requestedModalities?: CallModalities[];\n /**\n * An optional parameter that informs about the source of the deep link\n */\n source?: string;\n }\n\n /**\n * Starts a call with other users\n *\n * @param startCallParams - Parameters for the call\n *\n * @throws Error if call capability is not supported\n * @throws Error if host notifies of a failed start call attempt in a legacy Teams environment\n * @returns always true if the host notifies of a successful call inititation\n */\n export function startCall(startCallParams: StartCallParams): Promise {\n const apiVersionTag = getApiVersionTag(callTelemetryVersionNumber, ApiName.Call_StartCall);\n return new Promise((resolve) => {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (runtime.isLegacyTeams) {\n resolve(\n sendAndUnwrapWithVersion(\n apiVersionTag,\n 'executeDeepLink',\n createTeamsDeepLinkForCall(\n startCallParams.targets,\n startCallParams.requestedModalities?.includes(CallModalities.Video),\n startCallParams.source,\n ),\n ).then((result: boolean) => {\n if (!result) {\n throw new Error(errorCallNotStarted);\n }\n return result;\n }),\n );\n } else {\n return sendMessageToParentWithVersion(apiVersionTag, 'call.startCall', [startCallParams], resolve);\n }\n });\n }\n\n /**\n * Checks if the call capability is supported by the host\n * @returns boolean to represent whether the call capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.call ? true : false;\n }\n}\n","import { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport {\n app,\n notifyAppLoadedHelper,\n notifyExpectedFailureHelper,\n notifyFailureHelper,\n notifySuccessHelper,\n} from './app';\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app} namespace instead.\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst appInitializationTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace appInitialization {\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.Messages} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import Messages = app.Messages;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.FailedReason} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import FailedReason = app.FailedReason;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.ExpectedFailureReason} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import ExpectedFailureReason = app.ExpectedFailureReason;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.IFailedRequest} instead.\n */\n export import IFailedRequest = app.IFailedRequest;\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.IExpectedFailureRequest} instead.\n */\n export import IExpectedFailureRequest = app.IExpectedFailureRequest;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyAppLoaded app.notifyAppLoaded(): void} instead.\n *\n * Notifies the frame that app has loaded and to hide the loading indicator if one is shown.\n */\n export function notifyAppLoaded(): void {\n notifyAppLoadedHelper(\n getApiVersionTag(appInitializationTelemetryVersionNumber, ApiName.AppInitialization_NotifyAppLoaded),\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifySuccess app.notifySuccess(): void} instead.\n *\n * Notifies the frame that app initialization is successful and is ready for user interaction.\n */\n export function notifySuccess(): void {\n notifySuccessHelper(\n getApiVersionTag(appInitializationTelemetryVersionNumber, ApiName.AppInitialization_NotifySuccess),\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyFailure app.notifyFailure(appInitializationFailedRequest: IFailedRequest): void} instead.\n *\n * Notifies the frame that app initialization has failed and to show an error page in its place.\n * @param appInitializationFailedRequest - The failure request containing the reason for why the app failed\n * during initialization as well as an optional message.\n */\n export function notifyFailure(appInitializationFailedRequest: IFailedRequest): void {\n notifyFailureHelper(\n getApiVersionTag(appInitializationTelemetryVersionNumber, ApiName.AppInitialization_NotifyFailure),\n appInitializationFailedRequest,\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link app.notifyExpectedFailure app.notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void} instead.\n *\n * Notifies the frame that app initialized with some expected errors.\n * @param expectedFailureRequest - The expected failure request containing the reason and an optional message\n */\n export function notifyExpectedFailure(expectedFailureRequest: IExpectedFailureRequest): void {\n notifyExpectedFailureHelper(\n getApiVersionTag(appInitializationTelemetryVersionNumber, ApiName.AppInitialization_NotifyExpectedFailure),\n expectedFailureRequest,\n );\n }\n}\n","import { sendMessageToParent } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { createFile, decodeAttachment } from '../internal/mediaUtil';\nimport { getLogger } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { ErrorCode, SdkError } from './interfaces';\nimport { runtime } from './runtime';\n\nconst Files3PLogger = getLogger('thirdPartyCloudStorage');\n\n/**\n * Extended files API 3P storage providers, features like sending Blob from Teams to 3P app on user\n * actions like drag and drop to compose\n * @beta\n */\nexport namespace thirdPartyCloudStorage {\n /**\n * Interface to assemble file chunks\n * @beta\n */\n export interface AssembleAttachment {\n /** A number representing the sequence of the attachment in the file chunks. */\n sequence: number;\n /** A Blob object representing the data of the file chunks. */\n file: Blob;\n }\n /**\n * Class to assemble files\n * @beta\n */\n class AttachmentListHelper {\n /** A string representing the MIME type of the file */\n public fileType: string;\n /** An array of {@link AssembleAttachment | AssembleAttachment} objects representing files to be sent as attachment */\n public assembleAttachment: AssembleAttachment[];\n\n public constructor(fileType: string, assembleAttachment: AssembleAttachment[]) {\n this.fileType = fileType;\n this.assembleAttachment = assembleAttachment;\n }\n }\n let files: FilesFor3PStorage[] = [];\n let helper: AttachmentListHelper | null = null;\n let lastChunkVal = true; // setting it to true so that the very first file and first chunk does not fail\n\n /**\n * Object used to represent a file\n * @beta\n *\n */\n export interface FilesFor3PStorage extends Blob {\n /**\n * A number that represents the number of milliseconds since the Unix epoch\n */\n lastModified: number;\n /**\n * Name of the file\n */\n name: string;\n /**\n * file type\n */\n type: string;\n /**\n * A string containing the path of the file relative to the ancestor directory the user selected\n */\n webkitRelativePath?: string;\n }\n\n /**\n * File chunks an output of getDragAndDropFiles API from platform\n * @beta\n */\n export interface FileChunk {\n /**\n * Base 64 data for the requested uri\n */\n chunk: string;\n /**\n * chunk sequence number\n */\n chunkSequence: number;\n /**\n * Indicates whether this chunk is the final segment of a file\n */\n endOfFile: boolean;\n }\n\n /**\n * Output of getDragAndDropFiles API from platform\n * @beta\n */\n export interface FileResult {\n /**\n * Error encountered in getDragAndDropFiles API\n */\n error?: SdkError;\n /**\n * File chunk which will be assemebled and converted into a blob\n */\n fileChunk: FileChunk;\n /**\n * File index of the file for which chunk data is getting recieved\n */\n fileIndex: number;\n /**\n * File type/MIME type which is getting recieved\n */\n fileType: string;\n /**\n * Indicates whether this file is the last one in a sequence.\n */\n isLastFile: boolean;\n /**\n * The name of the file.\n */\n fileName: string;\n }\n\n /**\n * Defines the callback function received from Third Party App\n * @beta\n */\n export interface DragAndDropFileCallback {\n /** Callback from third party app */\n (files: FilesFor3PStorage[], error?: SdkError): void;\n }\n\n let callback: DragAndDropFileCallback | null = null;\n\n /**\n * Get drag-and-drop files using a callback.\n *\n * @param {string} dragAndDropInput - Teams thread id or Teams conversation id from a Teams chat/channel\n * @param {DragAndDropFileCallback} dragAndDropFileCallback - callback\n * A callback function to handle the result of the operation\n * @beta\n */\n export function getDragAndDropFiles(\n dragAndDropInput: string,\n dragAndDropFileCallback: DragAndDropFileCallback,\n ): void {\n if (!dragAndDropFileCallback) {\n throw new Error('[getDragAndDropFiles] Callback cannot be null');\n }\n if (!dragAndDropInput || dragAndDropInput === '') {\n const invalidInput: SdkError = { errorCode: ErrorCode.INVALID_ARGUMENTS };\n dragAndDropFileCallback([], invalidInput);\n return;\n }\n\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (callback) {\n callback = null;\n throw new Error('getDragAndDropFiles cannot be called twice');\n } else {\n callback = dragAndDropFileCallback;\n }\n lastChunkVal = true;\n\n sendMessageToParent(\n 'thirdPartyCloudStorage.getDragAndDropFiles',\n [dragAndDropInput],\n handleGetDragAndDropFilesCallbackRequest,\n );\n }\n\n function handleGetDragAndDropFilesCallbackRequest(fileResult: FileResult): void {\n if (callback) {\n if (fileResult && fileResult.error) {\n callback([], fileResult.error);\n callback = null;\n } else {\n if (fileResult && fileResult.fileChunk) {\n try {\n if (!lastChunkVal && fileResult.fileChunk.chunkSequence === 0) {\n // last chunk value was false\n Files3PLogger(\"Last chunk is not received or 'endOfFile' value for previous chunk was not set to true\");\n lastChunkVal = true; // for next iteration\n\n callback([], {\n errorCode: ErrorCode.INTERNAL_ERROR,\n message: 'error occurred while receiving data',\n });\n files = [];\n callback = null;\n }\n const assemble: AssembleAttachment | null = decodeAttachment(fileResult.fileChunk, fileResult.fileType);\n if (assemble) {\n if (!helper) {\n // creating helper object for received file chunk\n helper = new AttachmentListHelper(fileResult.fileType, []);\n }\n helper.assembleAttachment.push(assemble);\n } else {\n Files3PLogger(\n `Received a null assemble attachment for when decoding chunk sequence ${fileResult.fileChunk.chunkSequence}; not including the chunk in the assembled file.`,\n );\n callback\n ? callback([], { errorCode: ErrorCode.INTERNAL_ERROR, message: 'error occurred while receiving data' })\n : (callback = null);\n files = [];\n callback = null;\n lastChunkVal = true;\n }\n\n // we will store this value to determine whether we received the last chunk of the previous file\n lastChunkVal = fileResult.fileChunk.endOfFile;\n if (fileResult.fileChunk.endOfFile && helper) {\n const fileBlob = createFile(helper.assembleAttachment, helper.fileType);\n\n if (fileBlob) {\n // Convert blob to File\n const receivedFile = new File([fileBlob], fileResult.fileName, {\n type: fileBlob.type,\n });\n files.push(receivedFile);\n }\n\n if (fileResult.isLastFile && callback) {\n callback(files, fileResult.error);\n files = [];\n callback = null;\n lastChunkVal = true;\n }\n\n helper = null;\n }\n } catch (e) {\n if (callback) {\n callback([], { errorCode: ErrorCode.INTERNAL_ERROR, message: e });\n files = [];\n callback = null;\n lastChunkVal = true;\n }\n }\n } else {\n callback([], { errorCode: ErrorCode.INTERNAL_ERROR, message: 'data received is null' });\n files = [];\n callback = null;\n lastChunkVal = true;\n }\n }\n }\n }\n\n /**\n * Checks if the thirdPartyCloudStorage capability is supported by the host\n * @returns boolean to represent whether the thirdPartyCloudStorage capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.thirdPartyCloudStorage ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { GlobalVars } from '../internal/globalVars';\nimport { registerHandlerHelperWithVersion } from '../internal/handlers';\nimport { ensureInitializeCalled, ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { appInitializeHelper, openLinkHelper, registerOnThemeChangeHandlerHelper } from './app';\nimport { FrameContexts } from './constants';\nimport {\n Context,\n DeepLinkParameters,\n FrameContext,\n LoadContext,\n TabInformation,\n TabInstanceParameters,\n} from './interfaces';\nimport { getMruTabInstancesHelper, getTabInstancesHelper, setCurrentFrameHelper, shareDeepLinkHelper } from './pages';\nimport { pages } from './pages';\nimport { runtime } from './runtime';\nimport { teamsCore } from './teamsAPIs';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst publicAPIsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/** Execute deep link on complete function type */\nexport type executeDeepLinkOnCompleteFunctionType = (status: boolean, reason?: string) => void;\n/** Callback function type */\nexport type callbackFunctionType = () => void;\n/** Get context callback function type */\nexport type getContextCallbackFunctionType = (context: Context) => void;\n/** Get tab instances callback function type */\nexport type getTabInstancesCallbackFunctionType = (tabInfo: TabInformation) => void;\n/** Register back button handler function type */\nexport type registerBackButtonHandlerFunctionType = () => boolean;\n/** Register full screen handler function type */\nexport type registerFullScreenHandlerFunctionType = (isFullScreen: boolean) => void;\n/** Register on theme change handler function type */\nexport type registerOnThemeChangeHandlerFunctionType = (theme: string) => void;\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.initialize app.initialize(validMessageOrigins?: string[]): Promise\\} instead.\n *\n * Initializes the library. This must be called before any other SDK calls\n * but after the frame is loaded successfully.\n * @param callback - Optionally specify a callback to invoke when Teams SDK has successfully initialized\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins. There must have\n * https: protocol otherwise they will be ignored. Example: https://www.example.com\n */\nexport function initialize(callback?: callbackFunctionType, validMessageOrigins?: string[]): void {\n appInitializeHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_Initialize),\n validMessageOrigins,\n ).then(() => {\n if (callback) {\n callback();\n }\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.enablePrintCapability teamsCore.enablePrintCapability(): void} instead.\n *\n * Enable print capability to support printing page using Ctrl+P and cmd+P\n */\nexport function enablePrintCapability(): void {\n teamsCore.enablePrintCapability();\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.print teamsCore.print(): void} instead.\n *\n * Default print handler\n */\nexport function print(): void {\n teamsCore.print();\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.getContext app.getContext(): Promise\\} instead.\n *\n * Retrieves the current context the frame is running in.\n *\n * @param callback - The callback to invoke when the {@link Context} object is retrieved.\n */\nexport function getContext(callback: getContextCallbackFunctionType): void {\n ensureInitializeCalled();\n sendMessageToParentWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_GetContext),\n 'getContext',\n (context: Context) => {\n if (!context.frameContext) {\n // Fallback logic for frameContext properties\n context.frameContext = GlobalVars.frameContext;\n }\n callback(context);\n },\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.registerOnThemeChangeHandler app.registerOnThemeChangeHandler(handler: registerOnThemeChangeHandlerFunctionType): void} instead.\n *\n * Registers a handler for theme changes.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user changes their theme.\n */\nexport function registerOnThemeChangeHandler(handler: registerOnThemeChangeHandlerFunctionType): void {\n registerOnThemeChangeHandlerHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterOnThemeChangeHandlerHelper),\n handler,\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.registerFullScreenHandler pages.registerFullScreenHandler(handler: registerFullScreenHandlerFunctionType): void} instead.\n *\n * Registers a handler for changes from or to full-screen view for a tab.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user toggles full-screen view for a tab.\n */\nexport function registerFullScreenHandler(handler: registerFullScreenHandlerFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterFullScreenHandler),\n 'fullScreenChange',\n handler,\n [],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onClick pages.appButton.onClick(handler: callbackFunctionType): void} instead.\n *\n * Registers a handler for clicking the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the personal app button is clicked in the app bar.\n */\nexport function registerAppButtonClickHandler(handler: callbackFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterAppButtonClickHandler),\n 'appButtonClick',\n handler,\n [FrameContexts.content],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onHoverEnter pages.appButton.onHoverEnter(handler: callbackFunctionType): void} instead.\n *\n * Registers a handler for entering hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when entering hover of the personal app button in the app bar.\n */\nexport function registerAppButtonHoverEnterHandler(handler: callbackFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterAppButtonHoverEnterHandler),\n 'appButtonHoverEnter',\n handler,\n [FrameContexts.content],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.appButton.onHoverLeave pages.appButton.onHoverLeave(handler: callbackFunctionType): void} instead.\n *\n * Registers a handler for exiting hover of the app button.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n * @param handler - The handler to invoke when exiting hover of the personal app button in the app bar.\n *\n */\nexport function registerAppButtonHoverLeaveHandler(handler: callbackFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterAppButtonHoverLeaveHandler),\n 'appButtonHoverLeave',\n handler,\n [FrameContexts.content],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.backStack.registerBackButtonHandler pages.backStack.registerBackButtonHandler(handler: registerBackButtonHandlerFunctionType): void} instead.\n *\n * Registers a handler for user presses of the Team client's back button. Experiences that maintain an internal\n * navigation stack should use this handler to navigate the user back within their frame. If an app finds\n * that after running its back button handler it cannot handle the event it should call the navigateBack\n * method to ask the Teams client to handle it instead.\n *\n * @param handler - The handler to invoke when the user presses their Team client's back button.\n */\nexport function registerBackButtonHandler(handler: registerBackButtonHandlerFunctionType): void {\n pages.backStack.registerBackButtonHandlerHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterBackButtonHandler),\n handler,\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.registerOnLoadHandler teamsCore.registerOnLoadHandler(handler: (context: LoadContext) => void): void} instead.\n *\n * @hidden\n * Registers a handler to be called when the page has been requested to load.\n *\n * @param handler - The handler to invoke when the page is loaded.\n */\nexport function registerOnLoadHandler(handler: (context: LoadContext) => void): void {\n teamsCore.registerOnLoadHandlerHelper(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link teamsCore.registerBeforeUnloadHandler teamsCore.registerBeforeUnloadHandler(handler: (readyToUnload: callbackFunctionType) => boolean): void} instead.\n *\n * @hidden\n * Registers a handler to be called before the page is unloaded.\n *\n * @param handler - The handler to invoke before the page is unloaded. If this handler returns true the page should\n * invoke the readyToUnload function provided to it once it's ready to be unloaded.\n */\nexport function registerBeforeUnloadHandler(handler: (readyToUnload: callbackFunctionType) => boolean): void {\n teamsCore.registerBeforeUnloadHandlerHelper(handler);\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.registerFocusEnterHandler pages.registerFocusEnterHandler(handler: (navigateForward: boolean) => void): void} instead.\n *\n * @hidden\n * Registers a handler when focus needs to be passed from teams to the place of choice on app.\n *\n * @param handler - The handler to invoked by the app when they want the focus to be in the place of their choice.\n */\nexport function registerFocusEnterHandler(handler: (navigateForward: boolean) => boolean): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterFocusEnterHandler),\n 'focusEnter',\n handler,\n [],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerChangeConfigHandler pages.config.registerChangeConfigHandler(handler: callbackFunctionType): void} instead.\n *\n * Registers a handler for when the user reconfigurated tab.\n *\n * @param handler - The handler to invoke when the user click on Settings.\n */\nexport function registerChangeSettingsHandler(handler: callbackFunctionType): void {\n registerHandlerHelperWithVersion(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_RegisterChangeSettingsHandler),\n 'changeSettings',\n handler,\n [FrameContexts.content],\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.getTabInstances pages.tabs.getTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\\} instead.\n *\n * Allows an app to retrieve for this user tabs that are owned by this app.\n * If no TabInstanceParameters are passed, the app defaults to favorite teams and favorite channels.\n *\n * @param callback - The callback to invoke when the {@link TabInstanceParameters} object is retrieved.\n * @param tabInstanceParameters - OPTIONAL Flags that specify whether to scope call to favorite teams or channels.\n */\nexport function getTabInstances(\n callback: getTabInstancesCallbackFunctionType,\n tabInstanceParameters?: TabInstanceParameters,\n): void {\n ensureInitialized(runtime);\n getTabInstancesHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_GetTabInstances),\n tabInstanceParameters,\n ).then((tabInfo: TabInformation) => {\n callback(tabInfo);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.getMruTabInstances pages.tabs.getMruTabInstances(tabInstanceParameters?: TabInstanceParameters): Promise\\} instead.\n *\n * Allows an app to retrieve the most recently used tabs for this user.\n *\n * @param callback - The callback to invoke when the {@link TabInformation} object is retrieved.\n * @param tabInstanceParameters - OPTIONAL Ignored, kept for future use\n */\nexport function getMruTabInstances(\n callback: getTabInstancesCallbackFunctionType,\n tabInstanceParameters?: TabInstanceParameters,\n): void {\n ensureInitialized(runtime);\n getMruTabInstancesHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_GetMruTabInstances),\n tabInstanceParameters,\n ).then((tabInfo: TabInformation) => {\n callback(tabInfo);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.shareDeepLink pages.shareDeepLink(deepLinkParameters: DeepLinkParameters): void} instead.\n *\n * Shares a deep link that a user can use to navigate back to a specific state in this page.\n *\n * @param deepLinkParameters - ID and label for the link and fallback URL.\n */\nexport function shareDeepLink(deepLinkParameters: DeepLinkParameters): void {\n shareDeepLinkHelper(getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_ShareDeepLink), {\n subPageId: deepLinkParameters.subEntityId,\n subPageLabel: deepLinkParameters.subEntityLabel,\n subPageWebUrl: deepLinkParameters.subEntityWebUrl,\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link app.openLink app.openLink(deepLink: string): Promise\\} instead.\n *\n * Execute deep link API.\n *\n * @param deepLink - deep link.\n */\nexport function executeDeepLink(deepLink: string, onComplete?: executeDeepLinkOnCompleteFunctionType): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n const completionHandler: executeDeepLinkOnCompleteFunctionType = onComplete ?? getGenericOnCompleteHandler();\n openLinkHelper(getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_ExecuteDeepLink), deepLink)\n .then(() => {\n completionHandler(true);\n })\n .catch((err: Error) => {\n completionHandler(false, err.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.setCurrentFrame pages.setCurrentFrame(frameInfo: FrameInfo): void} instead.\n *\n * Set the current Frame Context\n *\n * @param frameContext - FrameContext information to be set\n */\nexport function setFrameContext(frameContext: FrameContext): void {\n setCurrentFrameHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_SetFrameContext),\n frameContext,\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.initializeWithFrameContext pages.initializeWithFrameContext(frameInfo: FrameInfo, callback?: callbackFunctionType, validMessageOrigins?: string[],): void} instead.\n *\n * Initialize with FrameContext\n *\n * @param frameContext - FrameContext information to be set\n * @param callback - The optional callback to be invoked be invoked after initilizing the frame context\n * @param validMessageOrigins - Optionally specify a list of cross frame message origins.\n * They must have https: protocol otherwise they will be ignored. Example: https:www.example.com\n */\nexport function initializeWithFrameContext(\n frameContext: FrameContext,\n callback?: callbackFunctionType,\n validMessageOrigins?: string[],\n): void {\n appInitializeHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_Initialize),\n validMessageOrigins,\n ).then(() => callback && callback());\n setCurrentFrameHelper(\n getApiVersionTag(publicAPIsTelemetryVersionNumber, ApiName.PublicAPIs_SetFrameContext),\n frameContext,\n );\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { TabInstance } from './interfaces';\nimport {\n backStackNavigateBackHelper,\n navigateCrossDomainHelper,\n returnFocusHelper,\n tabsNavigateToTabHelper,\n} from './pages';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst navigationTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * Navigation specific part of the SDK.\n */\n\n/** Navigation on complete handler function type */\nexport type onCompleteHandlerFunctionType = (status: boolean, reason?: string) => void;\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.returnFocus pages.returnFocus(navigateForward?: boolean): void} instead.\n *\n * Return focus to the main Teams app. Will focus search bar if navigating foward and app bar if navigating back.\n *\n * @param navigateForward - Determines the direction to focus in teams app.\n */\nexport function returnFocus(navigateForward?: boolean): void {\n returnFocusHelper(\n getApiVersionTag(navigationTelemetryVersionNumber, ApiName.Navigation_ReturnFocus),\n navigateForward,\n );\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.tabs.navigateToTab pages.tabs.navigateToTab(tabInstance: TabInstance): Promise\\} instead.\n *\n * Navigates the Microsoft Teams app to the specified tab instance.\n *\n * @param tabInstance - The tab instance to navigate to.\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateToTab(tabInstance: TabInstance, onComplete?: onCompleteHandlerFunctionType): void {\n ensureInitialized(runtime);\n const completionHandler: onCompleteHandlerFunctionType = onComplete ?? getGenericOnCompleteHandler();\n tabsNavigateToTabHelper(\n getApiVersionTag(navigationTelemetryVersionNumber, ApiName.Navigation_NavigateToTab),\n tabInstance,\n )\n .then(() => {\n completionHandler(true);\n })\n .catch((error: Error) => {\n completionHandler(false, error.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.navigateCrossDomain pages.navigateCrossDomain(url: string): Promise\\} instead.\n *\n * Navigates the frame to a new cross-domain URL. The domain of this URL must match at least one of the\n * valid domains specified in the validDomains block of the manifest; otherwise, an exception will be\n * thrown. This function needs to be used only when navigating the frame to a URL in a different domain\n * than the current one in a way that keeps the app informed of the change and allows the SDK to\n * continue working.\n *\n * @param url - The URL to navigate the frame to.\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateCrossDomain(url: string, onComplete?: onCompleteHandlerFunctionType): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.sidePanel,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.task,\n FrameContexts.stage,\n FrameContexts.meetingStage,\n );\n const completionHandler: onCompleteHandlerFunctionType = onComplete ?? getGenericOnCompleteHandler();\n navigateCrossDomainHelper(\n getApiVersionTag(navigationTelemetryVersionNumber, ApiName.Navigation_NavigateCrossDomain),\n url,\n )\n .then(() => {\n completionHandler(true);\n })\n .catch((error: Error) => {\n completionHandler(false, error.message);\n });\n}\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.backStack.navigateBack pages.backStack.navigateBack(): Promise\\} instead.\n *\n * Navigates back in the Teams client.\n * See registerBackButtonHandler for more information on when it's appropriate to use this method.\n *\n * @param onComplete - The callback to invoke when the action is complete.\n */\nexport function navigateBack(onComplete?: onCompleteHandlerFunctionType): void {\n ensureInitialized(runtime);\n const completionHandler: onCompleteHandlerFunctionType = onComplete ?? getGenericOnCompleteHandler();\n backStackNavigateBackHelper(getApiVersionTag(navigationTelemetryVersionNumber, ApiName.Navigation_NavigateBack))\n .then(() => {\n completionHandler(true);\n })\n .catch((error: Error) => {\n completionHandler(false, error.message);\n });\n}\n","import { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { getGenericOnCompleteHandler } from '../internal/utils';\nimport { FrameContexts } from './constants';\nimport { configSetConfigHelper, configSetValidityStateHelper, getConfigHelper, pages } from './pages';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst settingsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config} namespace instead.\n *\n * Namespace to interact with the settings-specific part of the SDK.\n * This object is usable only on the settings frame.\n */\nexport namespace settings {\n /** Register on remove handler function type */\n export type registerOnRemoveHandlerFunctionType = (evt: RemoveEvent) => void;\n /** Register on save handler function type */\n export type registerOnSaveHandlerFunctionType = (evt: SaveEvent) => void;\n /** Set settings on complete function type */\n export type setSettingsOnCompleteFunctionType = (status: boolean, reason?: string) => void;\n /** Get settings callback function type */\n export type getSettingsCallbackFunctionType = (instanceSettings: Settings) => void;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.Config} instead.\n * @remarks\n * Renamed to config in pages.Config\n */\n export import Settings = pages.InstanceConfig;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.SaveEvent} instead.\n * @remarks\n * See pages.SaveEvent\n */\n export import SaveEvent = pages.config.SaveEvent;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.RemoveEvent} instead.\n * @remarks\n * See pages.RemoveEvent\n */\n export import RemoveEvent = pages.config.RemoveEvent;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.SaveParameters} instead.\n * @remarks\n * See pages.SaveParameters\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export import SaveParameters = pages.config.SaveParameters;\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.setValidityState pages.config.setValidityState(validityState: boolean): void} instead.\n *\n * Sets the validity state for the settings.\n * The initial value is false, so the user cannot save the settings until this is called with true.\n *\n * @param validityState - Indicates whether the save or remove button is enabled for the user.\n */\n export function setValidityState(validityState: boolean): void {\n configSetValidityStateHelper(\n getApiVersionTag(settingsTelemetryVersionNumber, ApiName.Settings_SetValidityState),\n validityState,\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.getConfig pages.getConfig(): Promise\\} instead.\n *\n * Gets the settings for the current instance.\n *\n * @param callback - The callback to invoke when the {@link Settings} object is retrieved.\n */\n export function getSettings(callback: getSettingsCallbackFunctionType): void {\n ensureInitialized(\n runtime,\n FrameContexts.content,\n FrameContexts.settings,\n FrameContexts.remove,\n FrameContexts.sidePanel,\n );\n getConfigHelper(getApiVersionTag(settingsTelemetryVersionNumber, ApiName.Settings_GetSettings)).then(\n (config: pages.InstanceConfig) => {\n callback(config);\n },\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.setConfig pages.config.setConfig(instanceSettings: Config): Promise\\} instead.\n *\n * Sets the settings for the current instance.\n * This is an asynchronous operation; calls to getSettings are not guaranteed to reflect the changed state.\n *\n * @param - Set the desired settings for this instance.\n */\n export function setSettings(instanceSettings: Settings, onComplete?: setSettingsOnCompleteFunctionType): void {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.settings, FrameContexts.sidePanel);\n const completionHandler: setSettingsOnCompleteFunctionType = onComplete ?? getGenericOnCompleteHandler();\n configSetConfigHelper(\n getApiVersionTag(settingsTelemetryVersionNumber, ApiName.Settings_SetSettings),\n instanceSettings,\n )\n .then(() => {\n completionHandler(true);\n })\n .catch((error: Error) => {\n completionHandler(false, error.message);\n });\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerOnSaveHandler pages.config.registerOnSaveHandler(handler: registerOnSaveHandlerFunctionType): void} instead.\n *\n * Registers a handler for when the user attempts to save the settings. This handler should be used\n * to create or update the underlying resource powering the content.\n * The object passed to the handler must be used to notify whether to proceed with the save.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the user selects the save button.\n */\n export function registerOnSaveHandler(handler: registerOnSaveHandlerFunctionType): void {\n pages.config.registerOnSaveHandlerHelper(\n getApiVersionTag(settingsTelemetryVersionNumber, ApiName.Settings_RegisterOnSaveHandler),\n handler,\n );\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link pages.config.registerOnRemoveHandler pages.config.registerOnRemoveHandler(handler: registerOnRemoveHandlerFunctionType): void} instead.\n *\n * Registers a handler for user attempts to remove content. This handler should be used\n * to remove the underlying resource powering the content.\n * The object passed to the handler must be used to indicate whether to proceed with the removal.\n * Only one handler may be registered at a time. Subsequent registrations will override the first.\n *\n * @param handler - The handler to invoke when the user selects the remove button.\n */\n export function registerOnRemoveHandler(handler: registerOnRemoveHandlerFunctionType): void {\n pages.config.registerOnRemoveHandlerHelper(\n getApiVersionTag(settingsTelemetryVersionNumber, ApiName.Settings_RegisterOnRemoveHandler),\n handler,\n );\n }\n}\n","/* eslint-disable @typescript-eslint/ban-types */\n\nimport { sendMessageToParentWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { ChildAppWindow, IAppWindow } from './appWindow';\nimport { FrameContexts, TaskModuleDimension } from './constants';\nimport { botUrlOpenHelper, updateResizeHelper, urlOpenHelper, urlSubmitHelper } from './dialog';\nimport { dialog } from './dialog';\nimport { BotUrlDialogInfo, DialogInfo, DialogSize, TaskInfo, UrlDialogInfo } from './interfaces';\nimport { runtime } from './runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst tasksTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * @deprecated\n * As of 2.0.0, please use {@link dialog} namespace instead.\n *\n * Namespace to interact with the task module-specific part of the SDK.\n * This object is usable only on the content frame.\n * The tasks namespace will be deprecated. Please use dialog for future developments.\n */\nexport namespace tasks {\n /**\n * Function type that is used to receive the result when a task module is submitted by\n * calling {@link tasks.submitTask tasks.submitTask(result?: string | object, appIds?: string | string[]): void}\n *\n * @param err - If the task module failed, this string contains the reason for failure. If the task module succeeded, this value is the empty string.\n * @param result - On success, this is the value passed to the `result` parameter of {@link tasks.submitTask tasks.submitTask(result?: string | object, appIds?: string | string[]): void}. On failure, this is the empty string.\n */\n export type startTaskSubmitHandlerFunctionType = (err: string, result: string | object) => void;\n\n /**\n * @deprecated\n * As of 2.8.0:\n * - For url-based dialogs, please use {@link dialog.url.open dialog.url.open(urlDialogInfo: UrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void} .\n * - For url-based dialogs with bot interaction, please use {@link dialog.url.bot.open dialog.url.bot.open(botUrlDialogInfo: BotUrlDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}\n * - For Adaptive Card-based dialogs:\n * - In Teams, please continue to use this function until the new functions in {@link dialog.adaptiveCard} have been fully implemented. You can tell at runtime when they are implemented in Teams by checking\n * the return value of the {@link dialog.adaptiveCard.isSupported} function. This documentation line will also be removed once they have been fully implemented in Teams.\n * - In all other hosts, please use {@link dialog.adaptiveCard.open dialog.adaptiveCard.open(cardDialogInfo: CardDialogInfo, submitHandler?: DialogSubmitHandler, messageFromChildHandler?: PostMessageChannel): void}\n *\n * Allows an app to open the task module.\n *\n * @param taskInfo - An object containing the parameters of the task module\n * @param submitHandler - Handler to call when the task module is completed\n */\n export function startTask(taskInfo: TaskInfo, submitHandler?: startTaskSubmitHandlerFunctionType): IAppWindow {\n const apiVersionTag: string = getApiVersionTag(tasksTelemetryVersionNumber, ApiName.Tasks_StartTask);\n const dialogSubmitHandler = submitHandler\n ? (sdkResponse: dialog.ISdkResponse) => submitHandler(sdkResponse.err ?? '', sdkResponse.result ?? '')\n : undefined;\n if (taskInfo.card === undefined && taskInfo.url === undefined) {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(apiVersionTag, 'tasks.startTask', [taskInfo as DialogInfo], submitHandler);\n } else if (taskInfo.card) {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.sidePanel, FrameContexts.meetingStage);\n sendMessageToParentWithVersion(apiVersionTag, 'tasks.startTask', [taskInfo as DialogInfo], submitHandler);\n } else if (taskInfo.completionBotId !== undefined) {\n botUrlOpenHelper(apiVersionTag, getBotUrlDialogInfoFromTaskInfo(taskInfo), dialogSubmitHandler);\n } else {\n urlOpenHelper(apiVersionTag, getUrlDialogInfoFromTaskInfo(taskInfo), dialogSubmitHandler);\n }\n return new ChildAppWindow();\n }\n\n /**\n * @deprecated\n * As of 2.0.0, please use {@link dialog.update.resize dialog.update.resize(dimensions: DialogSize): void} instead.\n *\n * Update height/width task info properties.\n *\n * @param taskInfo - An object containing width and height properties\n */\n export function updateTask(taskInfo: TaskInfo): void {\n taskInfo = getDefaultSizeIfNotProvided(taskInfo);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { width, height, ...extra } = taskInfo;\n\n if (Object.keys(extra).length) {\n throw new Error('resize requires a TaskInfo argument containing only width and height');\n }\n updateResizeHelper(getApiVersionTag(tasksTelemetryVersionNumber, ApiName.Tasks_UpdateTask), taskInfo as DialogSize);\n }\n\n /**\n * @deprecated\n * As of 2.8.0, please use {@link dialog.url.submit} instead.\n *\n * Submit the task module.\n *\n * @param result - Contains the result to be sent to the bot or the app. Typically a JSON object or a serialized version of it\n * @param appIds - Valid application(s) that can receive the result of the submitted dialogs. Specifying this parameter helps prevent malicious apps from retrieving the dialog result. Multiple app IDs can be specified because a web app from a single underlying domain can power multiple apps across different environments and branding schemes.\n */\n export function submitTask(result?: string | object, appIds?: string | string[]): void {\n urlSubmitHelper(getApiVersionTag(tasksTelemetryVersionNumber, ApiName.Tasks_SubmitTask), result, appIds);\n }\n\n /**\n * Converts {@link TaskInfo} to {@link UrlDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - Converted UrlDialogInfo object\n */\n function getUrlDialogInfoFromTaskInfo(taskInfo: TaskInfo): UrlDialogInfo {\n if (taskInfo.url === undefined) {\n throw new Error(\"url property of taskInfo object can't be undefined\");\n }\n\n const urldialogInfo: UrlDialogInfo = {\n url: taskInfo.url,\n size: {\n height: taskInfo.height ? taskInfo.height : TaskModuleDimension.Small,\n width: taskInfo.width ? taskInfo.width : TaskModuleDimension.Small,\n },\n title: taskInfo.title,\n fallbackUrl: taskInfo.fallbackUrl,\n };\n return urldialogInfo;\n }\n\n /**\n * Converts {@link TaskInfo} to {@link BotUrlDialogInfo}\n * @param taskInfo - TaskInfo object to convert\n * @returns - converted BotUrlDialogInfo object\n */\n function getBotUrlDialogInfoFromTaskInfo(taskInfo: TaskInfo): BotUrlDialogInfo {\n if (taskInfo.url === undefined || taskInfo.completionBotId === undefined) {\n throw new Error(\n `Both url ${taskInfo.url} and completionBotId ${taskInfo.completionBotId} are required for bot url dialog. At least one is undefined.`,\n );\n }\n\n const botUrldialogInfo: BotUrlDialogInfo = {\n url: taskInfo.url,\n size: {\n height: taskInfo.height ? taskInfo.height : TaskModuleDimension.Small,\n width: taskInfo.width ? taskInfo.width : TaskModuleDimension.Small,\n },\n title: taskInfo.title,\n fallbackUrl: taskInfo.fallbackUrl,\n completionBotId: taskInfo.completionBotId,\n };\n return botUrldialogInfo;\n }\n\n /**\n * Sets the height and width of the {@link TaskInfo} object to the original height and width, if initially specified,\n * otherwise uses the height and width values corresponding to {@link DialogDimension | TaskModuleDimension.Small}\n * @param taskInfo TaskInfo object from which to extract size info, if specified\n * @returns TaskInfo with height and width specified\n */\n export function getDefaultSizeIfNotProvided(taskInfo: TaskInfo): TaskInfo {\n taskInfo.height = taskInfo.height ? taskInfo.height : TaskModuleDimension.Small;\n taskInfo.width = taskInfo.width ? taskInfo.width : TaskModuleDimension.Small;\n return taskInfo;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst interactiveTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * APIs involving Live Share, a framework for building real-time collaborative apps.\n * For more information, visit https://aka.ms/teamsliveshare\n *\n * @see LiveShareHost\n */\nexport namespace liveShare {\n /**\n * @hidden\n * The meeting roles of a user.\n * Used in Live Share for its role verification feature.\n * For more information, visit https://learn.microsoft.com/microsoftteams/platform/apps-in-teams-meetings/teams-live-share-capabilities?tabs=javascript#role-verification-for-live-data-structures\n */\n export enum UserMeetingRole {\n /**\n * Guest role.\n */\n guest = 'Guest',\n /**\n * Attendee role.\n */\n attendee = 'Attendee',\n /**\n * Presenter role.\n */\n presenter = 'Presenter',\n /**\n * Organizer role.\n */\n organizer = 'Organizer',\n }\n\n /**\n * @hidden\n * State of the current Live Share session's Fluid container.\n * This is used internally by the `LiveShareClient` when joining a Live Share session.\n */\n export enum ContainerState {\n /**\n * The call to `LiveShareHost.setContainerId()` successfully created the container mapping\n * for the current Live Share session.\n */\n added = 'Added',\n\n /**\n * A container mapping for the current Live Share session already exists.\n * This indicates to Live Share that a new container does not need be created.\n */\n alreadyExists = 'AlreadyExists',\n\n /**\n * The call to `LiveShareHost.setContainerId()` failed to create the container mapping.\n * This happens when another client has already set the container ID for the session.\n */\n conflict = 'Conflict',\n\n /**\n * A container mapping for the current Live Share session does not yet exist.\n * This indicates to Live Share that a new container should be created.\n */\n notFound = 'NotFound',\n }\n\n /**\n * @hidden\n * Returned from `LiveShareHost.getFluidContainerId()` and `LiveShareHost.setFluidContainerId`.\n * This response specifies the container mapping information for the current Live Share session.\n */\n export interface IFluidContainerInfo {\n /**\n * State of the containerId mapping.\n */\n containerState: ContainerState;\n\n /**\n * ID of the container to join for the meeting. Undefined if the container hasn't been\n * created yet.\n */\n containerId: string | undefined;\n\n /**\n * If true, the local client should create the container and then save the created containers\n * ID to the mapping service.\n */\n shouldCreate: boolean;\n\n /**\n * If `containerId` is undefined and `shouldCreate` is false, the container isn't ready\n * but another client is creating it. In this case, the local client should wait the specified\n * amount of time before calling `LiveShareHost.getFluidContainerId()` again.\n */\n retryAfter: number;\n }\n\n /**\n * @hidden\n * Returned from `LiveShareHost.getNtpTime()` to specify the global timestamp for the current\n * Live Share session.\n */\n export interface INtpTimeInfo {\n /**\n * ISO 8601 formatted server time. For example: '2019-09-07T15:50-04:00'\n */\n ntpTime: string;\n\n /**\n * Server time expressed as the number of milliseconds since the ECMAScript epoch.\n */\n ntpTimeInUTC: number;\n }\n\n /**\n * @hidden\n * Returned from `LiveShareHost.getFluidTenantInfo()` to specify the Fluid service to use for the\n * current Live Share session.\n */\n export interface IFluidTenantInfo {\n /**\n * The Fluid Tenant ID Live Share should use.\n */\n tenantId: string;\n\n /**\n * The Fluid service endpoint Live Share should use.\n */\n serviceEndpoint: string;\n }\n\n /**\n * @hidden\n * Returned from `LiveShareHost.getClientInfo()` to specify the client info for a\n * particular client in a Live Share session.\n */\n export interface IClientInfo {\n /**\n * The host user's `userId` associated with a given `clientId`\n */\n userId: string;\n /**\n * User's meeting roles associated with a given `clientId`\n */\n roles: UserMeetingRole[];\n /**\n * The user's display name associated with a given `clientId`.\n * If this returns as `undefined`, the user may need to update their host client.\n */\n displayName?: string;\n }\n\n /**\n * Checks if the interactive capability is supported by the host\n * @returns boolean to represent whether the interactive capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime, FrameContexts.meetingStage, FrameContexts.sidePanel) &&\n runtime.supports.interactive\n ? true\n : false;\n }\n}\n\n/**\n * Live Share host implementation for connecting to real-time collaborative sessions.\n * Designed for use with the `LiveShareClient` class in the `@microsoft/live-share` package.\n * Learn more at https://aka.ms/teamsliveshare\n *\n * @remarks\n * The `LiveShareClient` class from Live Share uses the hidden API's to join/manage the session.\n * To create a new `LiveShareHost` instance use the static `LiveShareHost.create()` function.\n */\nexport class LiveShareHost {\n /**\n * @hidden\n * Returns the Fluid Tenant connection info for user's current context.\n */\n public getFluidTenantInfo(): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetFluidTenantInfo),\n 'interactive.getFluidTenantInfo',\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Returns the fluid access token for mapped container Id.\n *\n * @param containerId Fluid's container Id for the request. Undefined for new containers.\n * @returns token for connecting to Fluid's session.\n */\n public getFluidToken(containerId?: string): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetFluidToken),\n 'interactive.getFluidToken',\n // eslint-disable-next-line strict-null-checks/all\n containerId,\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Returns the ID of the fluid container associated with the user's current context.\n */\n public getFluidContainerId(): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetFluidContainerId),\n 'interactive.getFluidContainerId',\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Sets the ID of the fluid container associated with the current context.\n *\n * @remarks\n * If this returns false, the client should delete the container they created and then call\n * `getFluidContainerId()` to get the ID of the container being used.\n * @param containerId ID of the fluid container the client created.\n * @returns A data structure with a `containerState` indicating the success or failure of the request.\n */\n public setFluidContainerId(containerId: string): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_SetFluidContainerId),\n 'interactive.setFluidContainerId',\n containerId,\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Returns the shared clock server's current time.\n */\n public getNtpTime(): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetNtpTime),\n 'interactive.getNtpTime',\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Associates the fluid client ID with a set of user roles.\n *\n * @param clientId The ID for the current user's Fluid client. Changes on reconnects.\n * @returns The roles for the current user.\n */\n public registerClientId(clientId: string): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_RegisterClientId),\n 'interactive.registerClientId',\n clientId,\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Returns the roles associated with a client ID.\n *\n * @param clientId The Client ID the message was received from.\n * @returns The roles for a given client. Returns `undefined` if the client ID hasn't been registered yet.\n */\n public getClientRoles(clientId: string): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetClientRoles),\n 'interactive.getClientRoles',\n clientId,\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Returns the `IClientInfo` associated with a client ID.\n *\n * @param clientId The Client ID the message was received from.\n * @returns The info for a given client. Returns `undefined` if the client ID hasn't been registered yet.\n */\n public getClientInfo(clientId: string): Promise {\n ensureSupported();\n return new Promise((resolve) => {\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(interactiveTelemetryVersionNumber, ApiName.Interactive_GetClientInfo),\n 'interactive.getClientInfo',\n clientId,\n ),\n );\n });\n }\n\n /**\n * Factories a new `LiveShareHost` instance for use with the `LiveShareClient` class\n * in the `@microsoft/live-share` package.\n *\n * @remarks\n * `app.initialize()` must first be called before using this API.\n * This API can only be called from `meetingStage` or `sidePanel` contexts.\n */\n public static create(): LiveShareHost {\n ensureSupported();\n\n return new LiveShareHost();\n }\n}\n\nfunction ensureSupported(): void {\n if (!liveShare.isSupported()) {\n throw new Error('LiveShareHost Not supported');\n }\n}\n","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { validate } from 'uuid';\n\nimport { marketplace } from '../public';\n\n/**\n * @hidden\n * deserialize the cart data:\n * - convert url properties from string to URL\n * @param cartItems The cart items\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function deserializeCart(cartData: any): marketplace.Cart {\n try {\n cartData.cartItems = deserializeCartItems(cartData.cartItems);\n return cartData as marketplace.Cart;\n } catch (e) {\n throw new Error('Error deserializing cart');\n }\n}\n\n/**\n * @hidden\n * deserialize the cart items:\n * - convert url properties from string to URL\n * @param cartItems The cart items\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function deserializeCartItems(cartItemsData: any): marketplace.CartItem {\n return cartItemsData.map((cartItem) => {\n if (cartItem.imageURL) {\n const url = new URL(cartItem.imageURL);\n cartItem.imageURL = url;\n }\n if (cartItem.accessories) {\n cartItem.accessories = deserializeCartItems(cartItem.accessories);\n }\n return cartItem;\n }) as marketplace.CartItem;\n}\n\n/**\n * @hidden\n * serialize the cart items:\n * - make URL properties to string\n * @param cartItems The cart items\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport const serializeCartItems = (cartItems: marketplace.CartItem[]): any => {\n try {\n return cartItems.map((cartItem) => {\n const { imageURL, accessories, ...rest } = cartItem;\n const cartItemsData: any = { ...rest };\n if (imageURL) {\n cartItemsData.imageURL = imageURL.href;\n }\n if (accessories) {\n cartItemsData.accessories = serializeCartItems(accessories);\n }\n return cartItemsData;\n });\n } catch (e) {\n throw new Error('Error serializing cart items');\n }\n};\n\n/**\n * @hidden\n * Validate the cart item properties are valid\n * @param cartItems The cart items\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateCartItems(cartItems: marketplace.CartItem[]): void {\n if (!Array.isArray(cartItems) || cartItems.length === 0) {\n throw new Error('cartItems must be a non-empty array');\n }\n for (const cartItem of cartItems) {\n validateBasicCartItem(cartItem);\n validateAccessoryItems(cartItem.accessories);\n }\n}\n\n/**\n * @hidden\n * Validate accessories\n * @param accessoryItems The accessories to be validated\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateAccessoryItems(accessoryItems: marketplace.Item[] | undefined | null): void {\n if (accessoryItems === null || accessoryItems === undefined) {\n return;\n }\n if (!Array.isArray(accessoryItems) || accessoryItems.length === 0) {\n throw new Error('CartItem.accessories must be a non-empty array');\n }\n for (const accessoryItem of accessoryItems) {\n if (accessoryItem['accessories']) {\n throw new Error('Item in CartItem.accessories cannot have accessories');\n }\n validateBasicCartItem(accessoryItem);\n }\n}\n\n/**\n * @hidden\n * Validate the basic cart item properties are valid\n * @param basicCartItem The basic cart item\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateBasicCartItem(basicCartItem: marketplace.Item): void {\n if (!basicCartItem.id) {\n throw new Error('cartItem.id must not be empty');\n }\n if (!basicCartItem.name) {\n throw new Error('cartItem.name must not be empty');\n }\n validatePrice(basicCartItem.price);\n validateQuantity(basicCartItem.quantity);\n}\n\n/**\n * @hidden\n * Validate the id is valid\n * @param id A uuid string\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateUuid(id: string | undefined | null): void {\n if (id === undefined || id === null) {\n return;\n }\n if (!id) {\n throw new Error('id must not be empty');\n }\n if (validate(id) === false) {\n throw new Error('id must be a valid UUID');\n }\n}\n\n/**\n * @hidden\n * Validate the cart item properties are valid\n * @param price The price to be validated\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validatePrice(price: number): void {\n if (typeof price !== 'number' || price < 0) {\n throw new Error(`price ${price} must be a number not less than 0`);\n }\n if (parseFloat(price.toFixed(3)) !== price) {\n throw new Error(`price ${price} must have at most 3 decimal places`);\n }\n}\n\n/**\n * @hidden\n * Validate quantity\n * @param quantity The quantity to be validated\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateQuantity(quantity: number): void {\n if (typeof quantity !== 'number' || quantity <= 0 || parseInt(quantity.toString()) !== quantity) {\n throw new Error(`quantity ${quantity} must be an integer greater than 0`);\n }\n}\n\n/**\n * @hidden\n * Validate cart status\n * @param cartStatus The cartStatus to be validated\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport function validateCartStatus(cartStatus: marketplace.CartStatus): void {\n if (!Object.values(marketplace.CartStatus).includes(cartStatus)) {\n throw new Error(`cartStatus ${cartStatus} is not valid`);\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport {\n deserializeCart,\n serializeCartItems,\n validateCartItems,\n validateCartStatus,\n validateUuid,\n} from '../internal/marketplaceUtils';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from './constants';\nimport { runtime } from './runtime';\n\n/**\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst marketplaceTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\n/**\n * @hidden\n * Namespace for an app to support a checkout flow by interacting with the marketplace cart in the host.\n * @beta\n */\nexport namespace marketplace {\n /**\n * @hidden\n * the version of the current cart interface\n * which is forced to send to the host in the calls.\n * @internal\n * Limited to Microsoft-internal use\n * @beta\n */\n export const cartVersion: CartVersion = {\n /**\n * @hidden\n * Represents the major version of the current cart interface,\n * it is increased when incompatible interface update happens.\n */\n majorVersion: 1,\n /**\n * @hidden\n * The minor version of the current cart interface, which is compatible\n * with the previous minor version in the same major version.\n */\n minorVersion: 1,\n };\n\n /**\n * @hidden\n * Represents the cart object for the app checkout flow.\n * @beta\n */\n export interface Cart {\n /**\n * @hidden\n * Version of the cart.\n */\n readonly version: CartVersion;\n /**\n * @hidden\n * The uuid of the cart.\n */\n readonly id: string;\n /**\n * @hidden\n * The cart info.\n */\n readonly cartInfo: CartInfo;\n /**\n * @hidden\n * The cart items.\n */\n readonly cartItems: CartItem[];\n }\n\n /**\n * @hidden\n * Version of the cart that is used by the app.\n * @internal\n * Limited to Microsoft-internal use\n * @beta\n */\n interface CartVersion {\n /**\n * @hidden\n * Represents the major version of a cart, it\n * not compatible with the previous major version.\n */\n readonly majorVersion: number;\n /**\n * @hidden\n * The minor version of a cart, which is compatible\n * with the previous minor version in the same major version.\n */\n readonly minorVersion: number;\n }\n\n /**\n * @hidden\n * Represents the cart information\n * @beta\n */\n interface CartInfo {\n /**\n * @hidden\n * The country market where the products are selling.\n * Should be country code in ISO 3166-1 alpha-2 format, e.g. CA for Canada.\n * https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\n */\n readonly market: string;\n /**\n * @hidden\n * The identifier to tell the cart is checked out by admin or end user.\n */\n readonly intent: Intent;\n /**\n * @hidden\n * Locale the app should render for the user\n * Should be a BCP 47 language tag, e.g. en-US ([primary tag]-[ISO 3166-1 alpha-2 code]).\n * https://en.wikipedia.org/wiki/IETF_language_tag\n */\n readonly locale: string;\n /**\n * @hidden\n * The status of the cart.\n */\n readonly status: CartStatus;\n /**\n * @hidden\n * ISO 4217 currency code for the cart item price, e.g. USD for US Dollar.\n * https://en.wikipedia.org/wiki/ISO_4217\n */\n readonly currency: string;\n /**\n * @hidden\n * ISO 8601 timestamp string in UTC, indicates when the cart is created.\n * e.g. 2023-06-19T22:06:59Z\n * https://en.wikipedia.org/wiki/ISO_8601\n */\n readonly createdAt: string;\n /**\n * @hidden\n * ISO 8601 timestamp string in UTC, indicates when the cart is updated.\n * e.g. 2023-06-19T22:06:59Z\n * https://en.wikipedia.org/wiki/ISO_8601\n */\n readonly updatedAt: string;\n }\n\n /**\n * @hidden\n * Represents the basic cart item information.\n * @beta\n */\n export interface Item {\n /**\n * @hidden\n * The id of the cart item.\n */\n readonly id: string;\n /**\n * @hidden\n * The display name of the cart item.\n */\n readonly name: string;\n /**\n * @hidden\n * The quantity of the cart item.\n */\n readonly quantity: number;\n /**\n * @hidden\n * The price of the single cart item.\n */\n readonly price: number;\n /**\n * @hidden\n * The thumbnail imageURL of the cart item.\n */\n readonly imageURL?: URL;\n }\n\n /**\n * @hidden\n * Represents the cart item that could have accessories\n * @beta\n */\n export interface CartItem extends Item {\n /**\n * @hidden\n * Accessories to the item if existing.\n */\n readonly accessories?: Item[];\n /**\n * @hidden\n * The thumbnail imageURL of the cart item.\n */\n readonly imageURL?: URL;\n }\n\n /**\n * @hidden\n * Represents the persona creating the cart.\n * @beta\n */\n export enum Intent {\n /**\n * @hidden\n * The cart is created by admin of an organization in Teams Admin Center.\n */\n TACAdminUser = 'TACAdminUser',\n /**\n * @hidden\n * The cart is created by admin of an organization in Teams.\n */\n TeamsAdminUser = 'TeamsAdminUser',\n /**\n * @hidden\n * The cart is created by end user of an organization in Teams.\n */\n TeamsEndUser = 'TeamsEndUser',\n }\n\n /**\n * @hidden\n * Represents the status of the cart.\n * @beta\n */\n export enum CartStatus {\n /**\n * @hidden\n * Cart is created but not checked out yet.\n */\n Open = 'Open',\n /**\n * @hidden\n * Cart is checked out but not completed yet.\n */\n Processing = 'Processing',\n /**\n * @hidden\n * Indicate checking out is completed and the host should\n * return a new cart in the next getCart call.\n */\n Processed = 'Processed',\n /**\n * @hidden\n * Indicate checking out process is manually cancelled by the user\n */\n Closed = 'Closed',\n /**\n * @hidden\n * Indicate checking out is failed and the host should\n * return a new cart in the next getCart call.\n */\n Error = 'Error',\n }\n /**\n * @hidden\n * Represents the parameters to update the cart items.\n * @beta\n */\n export interface AddOrUpdateCartItemsParams {\n /**\n * @hidden\n * The uuid of the cart to be updated, target on the cart\n * being checked out if cartId is not provided.\n */\n cartId?: string;\n /**\n * @hidden\n * A list of cart items object, for each item,\n * if item id exists in the cart, overwrite the item price and quantity,\n * otherwise add new items to cart.\n */\n cartItems: CartItem[];\n }\n /**\n * @hidden\n * Represents the parameters to remove the cart items.\n * @beta\n */\n export interface RemoveCartItemsParams {\n /**\n * @hidden\n * The uuid of the cart to be updated, target on the cart\n * being checked out if cartId is not provided.\n */\n cartId?: string;\n /**\n * @hidden\n * A list of cart id, delete the cart item accordingly.\n */\n cartItemIds: string[];\n }\n /**\n * @hidden\n * Represents the parameters to update the cart status.\n * @beta\n */\n export interface UpdateCartStatusParams {\n /**\n * @hidden\n * The uuid of the cart to be updated, target on the cart\n * being checked out if cartId is not provided.\n */\n cartId?: string;\n /**\n * @hidden\n * Status of the cart.\n */\n cartStatus: CartStatus;\n /**\n * @hidden\n * Extra info to the status.\n */\n statusInfo?: string;\n }\n\n /**\n * @hidden\n * Get the cart object owned by the host to checkout.\n * @returns A promise of the cart object in the cartVersion.\n * @beta\n */\n export function getCart(): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(marketplaceTelemetryVersionNumber, ApiName.Marketplace_GetCart),\n 'marketplace.getCart',\n cartVersion,\n ).then(deserializeCart);\n }\n /**\n * @hidden\n * Add or update cart items in the cart owned by the host.\n * @param addOrUpdateCartItemsParams Represents the parameters to update the cart items.\n * @returns A promise of the updated cart object in the cartVersion.\n * @beta\n */\n export function addOrUpdateCartItems(addOrUpdateCartItemsParams: AddOrUpdateCartItemsParams): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!addOrUpdateCartItemsParams) {\n throw new Error('addOrUpdateCartItemsParams must be provided');\n }\n validateUuid(addOrUpdateCartItemsParams?.cartId);\n validateCartItems(addOrUpdateCartItemsParams?.cartItems);\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(marketplaceTelemetryVersionNumber, ApiName.Marketplace_AddOrUpdateCartItems),\n 'marketplace.addOrUpdateCartItems',\n {\n ...addOrUpdateCartItemsParams,\n cartItems: serializeCartItems(addOrUpdateCartItemsParams.cartItems),\n cartVersion,\n },\n ).then(deserializeCart);\n }\n\n /**\n * @hidden\n * Remove cart items from the cart owned by the host.\n * @param removeCartItemsParams The parameters to remove the cart items.\n * @returns A promise of the updated cart object in the cartVersion.\n * @beta\n */\n export function removeCartItems(removeCartItemsParams: RemoveCartItemsParams): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!removeCartItemsParams) {\n throw new Error('removeCartItemsParams must be provided');\n }\n validateUuid(removeCartItemsParams?.cartId);\n if (!Array.isArray(removeCartItemsParams?.cartItemIds) || removeCartItemsParams?.cartItemIds.length === 0) {\n throw new Error('cartItemIds must be a non-empty array');\n }\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(marketplaceTelemetryVersionNumber, ApiName.Marketplace_RemoveCardItems),\n 'marketplace.removeCartItems',\n {\n ...removeCartItemsParams,\n cartVersion,\n },\n ).then(deserializeCart);\n }\n /**\n * @hidden\n * Update cart status in the cart owned by the host.\n * @param updateCartStatusParams The parameters to update the cart status.\n * @returns A promise of the updated cart object in the cartVersion.\n * @beta\n */\n export function updateCartStatus(updateCartStatusParams: UpdateCartStatusParams): Promise {\n ensureInitialized(runtime, FrameContexts.content, FrameContexts.task);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!updateCartStatusParams) {\n throw new Error('updateCartStatusParams must be provided');\n }\n validateUuid(updateCartStatusParams?.cartId);\n validateCartStatus(updateCartStatusParams?.cartStatus);\n return sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(marketplaceTelemetryVersionNumber, ApiName.Marketplace_UpdateCartStatus),\n 'marketplace.updateCartStatus',\n {\n ...updateCartStatusParams,\n cartVersion,\n },\n ).then(deserializeCart);\n }\n /**\n * @hidden\n * Checks if the marketplace capability is supported by the host.\n * @returns Boolean to represent whether the marketplace capability is supported.\n * @throws Error if {@linkcode app.initialize} has not successfully completed.\n * @beta\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.marketplace ? true : false;\n }\n}\n","import { sendMessageToParentAsync } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateAppIdIsGuid } from '../internal/utils';\nimport { FrameContexts } from '../public';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n * Namespace to delegate authentication and message extension requests to the host\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace externalAppAuthentication {\n /*********** BEGIN REQUEST TYPE ************/\n /**\n * @hidden\n * Information about the bot request that should be resent by the host\n * @internal\n * Limited to Microsoft-internal use\n */\n export type IOriginalRequestInfo = IQueryMessageExtensionRequest | IActionExecuteInvokeRequest;\n\n /**\n * @hidden\n * Parameters for the authentication pop-up. This interface is used exclusively with the externalAppAuthentication APIs\n * @internal\n * Limited to Microsoft-internal use\n */\n export type AuthenticatePopUpParameters = {\n /**\n * The URL for the authentication pop-up.\n */\n url: URL;\n /**\n * The preferred width for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n width?: number;\n /**\n * The preferred height for the pop-up. This value can be ignored if outside the acceptable bounds.\n */\n height?: number;\n /**\n * Some identity providers restrict their authentication pages from being displayed in embedded browsers (e.g., a web view inside of a native application)\n * If the identity provider you are using prevents embedded browser usage, this flag should be set to `true` to enable the authentication page specified in\n * the {@link url} property to be opened in an external browser.\n * If this flag is `false`, the page will be opened directly within the current hosting application.\n *\n * This flag is ignored when the host for the application is a web app (as opposed to a native application) as the behavior is unnecessary in a web-only\n * environment without an embedded browser.\n */\n isExternal?: boolean;\n };\n\n /**\n * @hidden\n * Parameters for SSO authentication. This interface is used exclusively with the externalAppAuthentication APIs\n * @internal\n * Limited to Microsoft-internal use\n */\n export type AuthTokenRequestParameters = {\n /**\n * An optional list of claims which to pass to Microsoft Entra when requesting the access token.\n */\n claims?: string[];\n /**\n * An optional flag indicating whether to attempt the token acquisition silently or allow a prompt to be shown.\n */\n silent?: boolean;\n };\n\n /**\n * @hidden\n * Information about the message extension request that should be resent by the host. Corresponds to request schema in https://learn.microsoft.com/en-us/microsoftteams/platform/resources/messaging-extension-v3/search-extensions#receive-user-requests\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IQueryMessageExtensionRequest {\n requestType: OriginalRequestType.QueryMessageExtensionRequest;\n commandId: string;\n parameters: {\n name: string;\n value: string;\n }[];\n queryOptions?: {\n count: number;\n skip: number;\n };\n }\n\n /**\n * @hidden\n * Information about the Action.Execute request that should be resent by the host. Corresponds to schema in https://adaptivecards.io/explorer/Action.Execute.html\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IActionExecuteInvokeRequest {\n requestType: OriginalRequestType.ActionExecuteInvokeRequest;\n type: string; // This must be \"Action.Execute\"\n id: string; // The unique identifier associated with the action\n verb: string; // The card author defined verb associated with the action\n data: string | Record;\n }\n\n /**\n * @hidden\n * This is the only allowed value for IActionExecuteInvokeRequest.type. Used for validation\n * @internal\n * Limited to Microsoft-internal use\n */\n const ActionExecuteInvokeRequestType = 'Action.Execute';\n\n /**\n * @hidden\n * Used to differentiate between IOriginalRequestInfo types\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum OriginalRequestType {\n ActionExecuteInvokeRequest = 'ActionExecuteInvokeRequest',\n QueryMessageExtensionRequest = 'QueryMessageExtensionRequest',\n }\n /*********** END REQUEST TYPE ************/\n\n /*********** BEGIN RESPONSE TYPE ************/\n /**\n * @hidden\n * The response from the bot returned via the host\n * @internal\n * Limited to Microsoft-internal use\n */\n export type IInvokeResponse = IQueryMessageExtensionResponse | IActionExecuteResponse;\n\n /**\n * @hidden\n * Used to differentiate between IInvokeResponse types\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum InvokeResponseType {\n ActionExecuteInvokeResponse = 'ActionExecuteInvokeResponse',\n QueryMessageExtensionResponse = 'QueryMessageExtensionResponse',\n }\n\n /**\n * @hidden\n * The response from the bot returned via the host for a message extension query request.\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IQueryMessageExtensionResponse {\n responseType: InvokeResponseType.QueryMessageExtensionResponse;\n composeExtension?: ComposeExtensionResponse;\n }\n\n /**\n * @hidden\n * The response from the bot returned via the host for an Action.Execute request.\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IActionExecuteResponse {\n responseType: InvokeResponseType.ActionExecuteInvokeResponse;\n value: Record;\n signature?: string;\n statusCode: number;\n type: string;\n }\n\n /**\n * @hidden\n * The compose extension response returned for a message extension query request. `suggestedActions` will be present only when the type is is 'config' or 'auth'.\n * @internal\n * Limited to Microsoft-internal use\n */\n export type ComposeExtensionResponse = {\n attachmentLayout: AttachmentLayout;\n type: ComposeResultTypes;\n attachments?: QueryMessageExtensionAttachment[];\n suggestedActions?: QueryMessageExtensionSuggestedActions;\n text?: string;\n };\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type QueryMessageExtensionSuggestedActions = {\n actions: Action[];\n };\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type Action = {\n type: string;\n title: string;\n value: string;\n };\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type QueryMessageExtensionCard = {\n contentType: string;\n content: Record;\n fallbackHtml?: string;\n signature?: string;\n };\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type QueryMessageExtensionAttachment = QueryMessageExtensionCard & {\n preview?: QueryMessageExtensionCard;\n };\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type AttachmentLayout = 'grid' | 'list';\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type ComposeResultTypes = 'auth' | 'config' | 'message' | 'result' | 'silentAuth';\n /*********** END RESPONSE TYPE ************/\n\n /*********** BEGIN ERROR TYPE ***********/\n export interface InvokeError {\n errorCode: InvokeErrorCode;\n message?: string;\n }\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum InvokeErrorCode {\n INTERNAL_ERROR = 'INTERNAL_ERROR', // Generic error\n }\n\n /**\n * @hidden\n * Wrapper to differentiate between InvokeError and IInvokeResponse response from host\n * @internal\n * Limited to Microsoft-internal use\n */\n type InvokeErrorWrapper = InvokeError & { responseType: undefined };\n /*********** END ERROR TYPE ***********/\n\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use\n */\n function validateOriginalRequestInfo(originalRequestInfo: IOriginalRequestInfo): void {\n if (originalRequestInfo.requestType === OriginalRequestType.ActionExecuteInvokeRequest) {\n const actionExecuteRequest = originalRequestInfo as IActionExecuteInvokeRequest;\n if (actionExecuteRequest.type !== ActionExecuteInvokeRequestType) {\n const error: InvokeError = {\n errorCode: InvokeErrorCode.INTERNAL_ERROR,\n message: `Invalid action type ${actionExecuteRequest.type}. Action type must be \"${ActionExecuteInvokeRequestType}\"`,\n };\n throw error;\n }\n } else if (originalRequestInfo.requestType === OriginalRequestType.QueryMessageExtensionRequest) {\n if (originalRequestInfo.commandId.length > 64) {\n throw new Error('originalRequestInfo.commandId exceeds the maximum size of 64 characters');\n }\n if (originalRequestInfo.parameters.length > 5) {\n throw new Error('originalRequestInfo.parameters exceeds the maximum size of 5');\n }\n for (const parameter of originalRequestInfo.parameters) {\n if (parameter.name.length > 64) {\n throw new Error('originalRequestInfo.parameters.name exceeds the maximum size of 64 characters');\n }\n if (parameter.value.length > 512) {\n throw new Error('originalRequestInfo.parameters.value exceeds the maximum size of 512 characters');\n }\n }\n }\n }\n\n /**\n * @beta\n * @hidden\n * Signals to the host to perform authentication using the given authentication parameters and then resend the request to the application specified by the app ID with the authentication result.\n * @internal\n * Limited to Microsoft-internal use\n * @param appId ID of the application backend to which the request and authentication response should be sent. This must be a UUID\n * @param authenticateParameters Parameters for the authentication pop-up\n * @param originalRequestInfo Information about the original request that should be resent\n * @returns A promise that resolves to the IInvokeResponse from the application backend and rejects with InvokeError if the host encounters an error while authenticating or resending the request\n */\n export function authenticateAndResendRequest(\n appId: string,\n authenticateParameters: AuthenticatePopUpParameters,\n originalRequestInfo: IOriginalRequestInfo,\n ): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n validateAppIdIsGuid(appId);\n validateOriginalRequestInfo(originalRequestInfo);\n\n // Ask the parent window to open an authentication window with the parameters provided by the caller.\n return sendMessageToParentAsync<[boolean, IInvokeResponse | InvokeErrorWrapper]>(\n 'externalAppAuthentication.authenticateAndResendRequest',\n [\n appId,\n originalRequestInfo,\n authenticateParameters.url.href,\n authenticateParameters.width,\n authenticateParameters.height,\n authenticateParameters.isExternal,\n ],\n ).then(([wasSuccessful, response]: [boolean, IInvokeResponse | InvokeErrorWrapper]) => {\n if (wasSuccessful && response.responseType != null) {\n return response as IInvokeResponse;\n } else {\n const error = response as InvokeError;\n throw error;\n }\n });\n }\n\n /**\n * @beta\n * @hidden\n * Signals to the host to perform SSO authentication for the application specified by the app ID\n * @internal\n * Limited to Microsoft-internal use\n * @param appId ID of the application backend for which the host should attempt SSO authentication. This must be a UUID\n * @param authTokenRequest Parameters for SSO authentication\n * @returns A promise that resolves when authentication and succeeds and rejects with InvokeError on failure\n */\n export function authenticateWithSSO(appId: string, authTokenRequest: AuthTokenRequestParameters): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n validateAppIdIsGuid(appId);\n\n return sendMessageToParentAsync('externalAppAuthentication.authenticateWithSSO', [\n appId,\n authTokenRequest.claims,\n authTokenRequest.silent,\n ]).then(([wasSuccessful, error]: [boolean, InvokeError]) => {\n if (!wasSuccessful) {\n throw error;\n }\n });\n }\n\n /**\n * @beta\n * @hidden\n * Signals to the host to perform SSO authentication for the application specified by the app ID and then resend the request to the application backend with the authentication result\n * @internal\n * Limited to Microsoft-internal use\n * @param appId ID of the application backend for which the host should attempt SSO authentication and resend the request and authentication response. This must be a UUID.\n * @param authTokenRequest Parameters for SSO authentication\n * @param originalRequestInfo Information about the original request that should be resent\n * @returns A promise that resolves to the IInvokeResponse from the application backend and rejects with InvokeError if the host encounters an error while authenticating or resending the request\n */\n export function authenticateWithSSOAndResendRequest(\n appId: string,\n authTokenRequest: AuthTokenRequestParameters,\n originalRequestInfo: IOriginalRequestInfo,\n ): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n validateAppIdIsGuid(appId);\n validateOriginalRequestInfo(originalRequestInfo);\n\n return sendMessageToParentAsync<[boolean, IInvokeResponse | InvokeErrorWrapper]>(\n 'externalAppAuthentication.authenticateWithSSOAndResendRequest',\n [appId, originalRequestInfo, authTokenRequest.claims, authTokenRequest.silent],\n ).then(([wasSuccessful, response]: [boolean, IInvokeResponse | InvokeErrorWrapper]) => {\n if (wasSuccessful && response.responseType != null) {\n return response as IInvokeResponse;\n } else {\n const error = response as InvokeError;\n throw error;\n }\n });\n }\n\n /**\n * @hidden\n * Checks if the externalAppAuthentication capability is supported by the host\n * @returns boolean to represent whether externalAppAuthentication capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.externalAppAuthentication ? true : false;\n }\n}\n","import { sendMessageToParentAsync } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { validateAppIdIsGuid } from '../internal/utils';\nimport { FrameContexts } from '../public';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n * Namespace to delegate adaptive card action execution to the host\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace externalAppCardActions {\n /**\n * @hidden\n * The type of deeplink action that was executed by the host\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ActionOpenUrlType {\n DeepLinkDialog = 'DeepLinkDialog',\n DeepLinkOther = 'DeepLinkOther',\n DeepLinkStageView = 'DeepLinkStageView',\n GenericUrl = 'GenericUrl',\n }\n\n /**\n * @hidden\n * Error that can be thrown from IExternalAppCardActionService.handleActionOpenUrl\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ActionOpenUrlError {\n errorCode: ActionOpenUrlErrorCode;\n message?: string;\n }\n\n /**\n * @hidden\n * Error codes that can be thrown from IExternalAppCardActionService.handleActionOpenUrl\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ActionOpenUrlErrorCode {\n INTERNAL_ERROR = 'INTERNAL_ERROR', // Generic error\n INVALID_LINK = 'INVALID_LINK', // Deep link is invalid\n NOT_SUPPORTED = 'NOT_SUPPORTED', // Deep link is not supported\n }\n\n /**\n * @hidden\n * The payload that is used when executing an Adaptive Card Action.Submit\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IAdaptiveCardActionSubmit {\n id: string;\n data: string | Record;\n }\n\n /**\n *\n * @hidden\n * Error that can be thrown from IExternalAppCardActionService.handleActionSubmit\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ActionSubmitError {\n errorCode: ActionSubmitErrorCode;\n message?: string;\n }\n\n /**\n * @hidden\n * Error codes that can be thrown from IExternalAppCardActionService.handleActionSubmit\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ActionSubmitErrorCode {\n INTERNAL_ERROR = 'INTERNAL_ERROR', // Generic error\n }\n\n /**\n * @beta\n * @hidden\n * Delegates an Adaptive Card Action.Submit request to the host for the application with the provided app ID\n * @internal\n * Limited to Microsoft-internal use\n * @param appId ID of the application the request is intended for. This must be a UUID\n * @param actionSubmitPayload The Adaptive Card Action.Submit payload\n * @param cardActionsConfig The card actions configuration. This indicates which subtypes should be handled by this API\n * @returns Promise that resolves when the request is completed and rejects with ActionSubmitError if the request fails\n */\n export function processActionSubmit(appId: string, actionSubmitPayload: IAdaptiveCardActionSubmit): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n validateAppIdIsGuid(appId);\n\n return sendMessageToParentAsync<[boolean, ActionSubmitError]>('externalAppCardActions.processActionSubmit', [\n appId,\n actionSubmitPayload,\n ]).then(([wasSuccessful, error]: [boolean, ActionSubmitError]) => {\n if (!wasSuccessful) {\n throw error;\n }\n });\n }\n\n /**\n * @beta\n * @hidden\n * Delegates an Adaptive Card Action.OpenUrl request to the host for the application with the provided app ID\n * @internal\n * Limited to Microsoft-internal use\n * @param appId ID of the application the request is intended for. This must be a UUID\n * @param url The URL to open\n * @returns Promise that resolves to ActionOpenUrlType indicating the type of URL that was opened on success and rejects with ActionOpenUrlError if the request fails\n */\n export function processActionOpenUrl(appId: string, url: URL): Promise {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n validateAppIdIsGuid(appId);\n\n return sendMessageToParentAsync<[ActionOpenUrlError, ActionOpenUrlType]>(\n 'externalAppCardActions.processActionOpenUrl',\n [appId, url.href],\n ).then(([error, response]: [ActionOpenUrlError, ActionOpenUrlType]) => {\n if (error) {\n throw error;\n } else {\n return response;\n }\n });\n }\n\n /**\n * @hidden\n * Checks if the externalAppCardActions capability is supported by the host\n * @returns boolean to represent whether externalAppCardActions capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.externalAppCardActions ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { ErrorCode, FileOpenPreference, FrameContexts, SdkError } from '../public';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * Namespace to interact with the files specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst filesTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace files {\n /**\n * @hidden\n *\n * Cloud storage providers registered with Microsoft Teams\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProvider {\n Dropbox = 'DROPBOX',\n Box = 'BOX',\n Sharefile = 'SHAREFILE',\n GoogleDrive = 'GOOGLEDRIVE',\n Egnyte = 'EGNYTE',\n SharePoint = 'SharePoint',\n }\n interface IWopiThumbnail {\n size: number;\n url: string;\n }\n\n interface IWopiService {\n name: string;\n description: string;\n thumbnails: IWopiThumbnail[];\n }\n\n /**\n * @hidden\n *\n * External third-party cloud storages providers interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IExternalProvider extends IWopiService {\n providerType: CloudStorageProviderType;\n providerCode: CloudStorageProvider;\n }\n\n /**\n * @hidden\n *\n * Cloud storage provider type enums\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProviderType {\n Sharepoint = 0,\n WopiIntegration,\n Google,\n OneDrive,\n Recent,\n Aggregate,\n FileSystem, // Used for Downloaded files on Desktop\n Search, // Used by P2P files with OSearch\n AllFiles, // Used by P2P files with AllFiles API\n SharedWithMe,\n }\n\n /**\n * @hidden\n *\n * Cloud storage folder interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageFolder {\n /**\n * @hidden\n * ID of the cloud storage folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display Name/Title of the cloud storage folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * ID of the cloud storage folder in the provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n folderId: string;\n /**\n * @hidden\n * Type of the cloud storage folder provider integration\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n providerType: CloudStorageProviderType;\n /**\n * @hidden\n * Code of the supported cloud storage folder provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n providerCode: CloudStorageProvider;\n /**\n * @hidden\n * Display name of the owner of the cloud storage folder provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n ownerDisplayName: string;\n /**\n * @hidden\n * Sharepoint specific siteURL of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n siteUrl?: string;\n /**\n * @hidden\n * Sharepoint specific serverRelativeUrl of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n serverRelativeUrl?: string;\n /**\n * @hidden\n * Sharepoint specific libraryType of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n libraryType?: string;\n /**\n * @hidden\n * Sharepoint specific accessType of the folder\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n accessType?: string;\n }\n\n /**\n * @hidden\n *\n * Cloud storage item interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageFolderItem {\n /**\n * @hidden\n * ID of the item in the provider\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display name/title\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Key to differentiate files and subdirectory\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n isSubdirectory: boolean;\n /**\n * @hidden\n * File extension\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n type: string;\n /**\n * @hidden\n * Last modifed time of the item\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n lastModifiedTime: string;\n /**\n * @hidden\n * Display size of the items in bytes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n size: number;\n /**\n * @hidden\n * URL of the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectUrl: string;\n /**\n * @hidden\n * Temporary access token for the item\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n accessToken?: string;\n }\n\n /**\n * @hidden\n *\n * Files entity user interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IFilesEntityUser {\n /**\n * @hidden\n * User name.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName: string;\n /**\n * @hidden\n * User email.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n email: string;\n\n /**\n * @hidden\n * User MRI.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n mri: string;\n }\n\n /**\n * @hidden\n *\n * Special Document Library enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum SpecialDocumentLibraryType {\n ClassMaterials = 'classMaterials',\n }\n\n /**\n * @hidden\n *\n * Document Library Access enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum DocumentLibraryAccessType {\n Readonly = 'readonly',\n }\n\n /**\n * @hidden\n *\n * SharePoint file interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ISharePointFile {\n siteId?: string;\n siteUrl: string;\n objectId: string;\n objectUrl: string;\n openInWindowFileUrl: string;\n title: string;\n isFolder: boolean;\n serverRelativeUrl: string;\n lastModifiedByUser: IFilesEntityUser;\n lastModifiedTime: string;\n sentByUser: IFilesEntityUser;\n createdByUser: IFilesEntityUser;\n createdTime: string;\n size: number;\n type: string;\n spItemUrl?: string;\n libraryType?: SpecialDocumentLibraryType;\n accessType?: DocumentLibraryAccessType;\n etag?: string;\n remoteItem?: string;\n listUrl?: string;\n }\n\n /**\n * @hidden\n *\n * Download status enum\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum FileDownloadStatus {\n Downloaded = 'Downloaded',\n Downloading = 'Downloading',\n Failed = 'Failed',\n }\n\n /**\n * @hidden\n *\n * Download Files interface\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface IFileItem {\n /**\n * @hidden\n * ID of the file metadata\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n objectId?: string;\n /**\n * @hidden\n * Path of the file\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n path?: string;\n /**\n * @hidden\n * Size of the file in bytes\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n sizeInBytes?: number;\n /**\n * @hidden\n * Download status\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n status?: FileDownloadStatus;\n /**\n * @hidden\n * Download timestamp\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n timestamp: Date;\n /**\n * @hidden\n * File name\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n title: string;\n /**\n * @hidden\n * Type of file i.e. the file extension.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n extension: string;\n }\n\n /**\n * @hidden\n * Object used to represent a file\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface File extends Blob {\n /**\n * A number that represents the number of milliseconds since the Unix epoch\n */\n lastModified: number;\n /**\n * Name of the file\n */\n name: string;\n /**\n * A string containing the path of the file relative to the ancestor directory the user selected\n */\n webkitRelativePath?: string;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Actions specific to 3P cloud storage provider file and / or account\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum CloudStorageProviderFileAction {\n Download = 'DOWNLOAD',\n Upload = 'UPLOAD',\n Delete = 'DELETE',\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface for 3P cloud storage provider request content type\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderRequest {\n content: T;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Base interface for 3P cloud storage provider action request content\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderContent {\n providerCode: CloudStorageProvider;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider add new file action.\n * The file extension represents type of file e.g. docx, pptx etc. and need not be prefixed with dot(.)\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderNewFileContent extends CloudStorageProviderContent {\n newFileName: string;\n newFileExtension: string;\n destinationFolder: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider rename existing file action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderRenameFileContent extends CloudStorageProviderContent {\n existingFile: CloudStorageFolderItem | ISharePointFile;\n newFile: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider delete existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderDeleteFileContent extends CloudStorageProviderContent {\n itemList: CloudStorageFolderItem[] | ISharePointFile[];\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Interface representing 3P cloud storage provider download existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderDownloadFileContent extends CloudStorageProviderContent {\n itemList: CloudStorageFolderItem[] | ISharePointFile[];\n }\n\n /**\n * @hidden\n * Hide from docs\n * @beta\n *\n * Interface representing 3P cloud storage provider upload existing file(s) action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface CloudStorageProviderUploadFileContent extends CloudStorageProviderContent {\n itemList: File[];\n destinationFolder: CloudStorageFolderItem | ISharePointFile;\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Gets a list of cloud storage folders added to the channel. This function will not timeout;\n * the callback will only return when the host responds with a list of folders or error.\n *\n * @param channelId - ID of the channel whose cloud storage folders should be retrieved\n * @param callback - Callback that will be triggered post folders load\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCloudStorageFolders(\n channelId: string,\n callback: (error: SdkError, folders: CloudStorageFolder[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId || channelId.length === 0) {\n throw new Error('[files.getCloudStorageFolders] channelId name cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.getCloudStorageFolders] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_GetCloudStorageFolders),\n 'files.getCloudStorageFolders',\n [channelId],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n * Initiates the add cloud storage folder flow\n *\n * @param channelId - ID of the channel to add cloud storage folder\n * @param callback - Callback that will be triggered post add folder flow is compelete\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageFolder(\n channelId: string,\n callback: (error: SdkError, isFolderAdded: boolean, folders: CloudStorageFolder[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId || channelId.length === 0) {\n throw new Error('[files.addCloudStorageFolder] channelId name cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.addCloudStorageFolder] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_AddCloudStorageFolder),\n 'files.addCloudStorageFolder',\n [channelId],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Deletes a cloud storage folder from channel\n *\n * @param channelId - ID of the channel where folder is to be deleted\n * @param folderToDelete - cloud storage folder to be deleted\n * @param callback - Callback that will be triggered post delete\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function deleteCloudStorageFolder(\n channelId: string,\n folderToDelete: CloudStorageFolder,\n callback: (error: SdkError, isFolderDeleted: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!channelId) {\n throw new Error('[files.deleteCloudStorageFolder] channelId name cannot be null or empty');\n }\n if (!folderToDelete) {\n throw new Error('[files.deleteCloudStorageFolder] folderToDelete cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.deleteCloudStorageFolder] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_DeleteCloudStorageFolder),\n 'files.deleteCloudStorageFolder',\n [channelId, folderToDelete],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Fetches the contents of a Cloud storage folder (CloudStorageFolder) / sub directory\n *\n * @param folder - Cloud storage folder (CloudStorageFolder) / sub directory (CloudStorageFolderItem)\n * @param providerCode - Code of the cloud storage folder provider\n * @param callback - Callback that will be triggered post contents are loaded\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCloudStorageFolderContents(\n folder: CloudStorageFolder | CloudStorageFolderItem,\n providerCode: CloudStorageProvider,\n callback: (error: SdkError, items: CloudStorageFolderItem[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!folder || !providerCode) {\n throw new Error('[files.getCloudStorageFolderContents] folder/providerCode name cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[files.getCloudStorageFolderContents] Callback cannot be null');\n }\n\n if ('isSubdirectory' in folder && !folder.isSubdirectory) {\n throw new Error('[files.getCloudStorageFolderContents] provided folder is not a subDirectory');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_GetCloudStorageFolderContents),\n 'files.getCloudStorageFolderContents',\n [folder, providerCode],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Open a cloud storage file in Teams\n *\n * @param file - cloud storage file that should be opened\n * @param providerCode - Code of the cloud storage folder provider\n * @param fileOpenPreference - Whether file should be opened in web/inline\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openCloudStorageFile(\n file: CloudStorageFolderItem,\n providerCode: CloudStorageProvider,\n fileOpenPreference?: FileOpenPreference.Web | FileOpenPreference.Inline,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!file || !providerCode) {\n throw new Error('[files.openCloudStorageFile] file/providerCode cannot be null or empty');\n }\n\n if (file.isSubdirectory) {\n throw new Error('[files.openCloudStorageFile] provided file is a subDirectory');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_OpenCloudStorageFile),\n 'files.openCloudStorageFile',\n [file, providerCode, fileOpenPreference],\n );\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function to get the external\n * third party cloud storage accounts that the tenant supports\n * @param excludeAddedProviders: return a list of support third party\n * cloud storages that hasn't been added yet.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getExternalProviders(\n excludeAddedProviders = false,\n callback: (error: SdkError, providers: IExternalProvider[]) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.getExternalProviders] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_GetExternalProviders),\n 'files.getExternalProviders',\n [excludeAddedProviders],\n callback,\n );\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function to move files\n * among SharePoint and third party cloud storages.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function copyMoveFiles(\n selectedFiles: CloudStorageFolderItem[] | ISharePointFile[],\n providerCode: CloudStorageProvider,\n destinationFolder: CloudStorageFolderItem | ISharePointFile,\n destinationProviderCode: CloudStorageProvider,\n isMove = false,\n callback: (error?: SdkError) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!selectedFiles || selectedFiles.length === 0) {\n throw new Error('[files.copyMoveFiles] selectedFiles cannot be null or empty');\n }\n if (!providerCode) {\n throw new Error('[files.copyMoveFiles] providerCode cannot be null or empty');\n }\n if (!destinationFolder) {\n throw new Error('[files.copyMoveFiles] destinationFolder cannot be null or empty');\n }\n if (!destinationProviderCode) {\n throw new Error('[files.copyMoveFiles] destinationProviderCode cannot be null or empty');\n }\n if (!callback) {\n throw new Error('[files.copyMoveFiles] callback cannot be null');\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_CopyMoveFiles),\n 'files.copyMoveFiles',\n [selectedFiles, providerCode, destinationFolder, destinationProviderCode, isMove],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * ------\n *\n * Gets list of downloads for current user\n * @param callback Callback that will be triggered post downloads load\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getFileDownloads(callback: (error?: SdkError, files?: IFileItem[]) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.getFileDownloads] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_GetFileDownloads),\n 'files.getFileDownloads',\n [],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Open download preference folder if fileObjectId value is undefined else open folder containing the file with id fileObjectId\n * @param fileObjectId - Id of the file whose containing folder should be opened\n * @param callback Callback that will be triggered post open download folder/path\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function openDownloadFolder(\n fileObjectId: string | undefined = undefined,\n callback: (error?: SdkError) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw new Error('[files.openDownloadFolder] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_OpenDownloadFolder),\n 'files.openDownloadFolder',\n [fileObjectId],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates add 3P cloud storage provider flow, where a pop up window opens for user to select required\n * 3P provider from the configured policy supported 3P provider list, following which user authentication\n * for selected 3P provider is performed on success of which the selected 3P provider support is added for user\n * @beta\n *\n * @param callback Callback that will be triggered post add 3P cloud storage provider action.\n * If the error is encountered (and hence passed back), no provider value is sent back.\n * For success scenarios, error value will be passed as null and a valid provider value is sent.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageProvider(callback: (error?: SdkError, provider?: CloudStorageProvider) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.addCloudStorageProvider] callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_AddCloudStorageProvider),\n 'files.addCloudStorageProvider',\n [],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates signout of 3P cloud storage provider flow, which will remove the selected\n * 3P cloud storage provider from the list of added providers. No other user input and / or action\n * is required except the 3P cloud storage provider to signout from\n *\n * @param logoutRequest 3P cloud storage provider remove action request content\n * @param callback Callback that will be triggered post signout of 3P cloud storage provider action\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function removeCloudStorageProvider(\n logoutRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.removeCloudStorageProvider] callback cannot be null');\n }\n\n if (!(logoutRequest && logoutRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.removeCloudStorageProvider] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_RemoveCloudStorageProvider),\n 'files.removeCloudStorageProvider',\n [logoutRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the add 3P cloud storage file flow, which will add a new file for the given 3P provider\n *\n * @param addNewFileRequest 3P cloud storage provider add action request content\n * @param callback Callback that will be triggered post adding a new file flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function addCloudStorageProviderFile(\n addNewFileRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.addCloudStorageProviderFile] callback cannot be null');\n }\n\n if (!(addNewFileRequest && addNewFileRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.addCloudStorageProviderFile] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_AddCloudStorageProviderFile),\n 'files.addCloudStorageProviderFile',\n [addNewFileRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the rename 3P cloud storage file flow, which will rename an existing file in the given 3P provider\n *\n * @param renameFileRequest 3P cloud storage provider rename action request content\n * @param callback Callback that will be triggered post renaming an existing file flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function renameCloudStorageProviderFile(\n renameFileRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.renameCloudStorageProviderFile] callback cannot be null');\n }\n\n if (!(renameFileRequest && renameFileRequest.content)) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.renameCloudStorageProviderFile] 3P cloud storage provider request content is missing',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_RenameCloudStorageProviderFile),\n 'files.renameCloudStorageProviderFile',\n [renameFileRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the delete 3P cloud storage file(s) / folder (folder has to be empty) flow,\n * which will delete existing file(s) / folder from the given 3P provider\n *\n * @param deleteFileRequest 3P cloud storage provider delete action request content\n * @param callback Callback that will be triggered post deleting existing file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function deleteCloudStorageProviderFile(\n deleteFileRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.deleteCloudStorageProviderFile] callback cannot be null');\n }\n\n if (\n !(\n deleteFileRequest &&\n deleteFileRequest.content &&\n deleteFileRequest.content.itemList &&\n deleteFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.deleteCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_DeleteCloudStorageProviderFile),\n 'files.deleteCloudStorageProviderFile',\n [deleteFileRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the download 3P cloud storage file(s) flow,\n * which will download existing file(s) from the given 3P provider in the teams client side without sharing any file info in the callback\n *\n * @param downloadFileRequest 3P cloud storage provider download file(s) action request content\n * @param callback Callback that will be triggered post downloading existing file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function downloadCloudStorageProviderFile(\n downloadFileRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.downloadCloudStorageProviderFile] callback cannot be null',\n );\n }\n\n if (\n !(\n downloadFileRequest &&\n downloadFileRequest.content &&\n downloadFileRequest.content.itemList &&\n downloadFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.downloadCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_DownloadCloudStorageProviderFile),\n 'files.downloadCloudStorageProviderFile',\n [downloadFileRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Initiates the upload 3P cloud storage file(s) flow, which will upload file(s) to the given 3P provider\n * @beta\n *\n * @param uploadFileRequest 3P cloud storage provider upload file(s) action request content\n * @param callback Callback that will be triggered post uploading file(s) flow is finished\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function uploadCloudStorageProviderFile(\n uploadFileRequest: CloudStorageProviderRequest,\n callback: (error?: SdkError, actionStatus?: boolean) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!callback) {\n throw getSdkError(ErrorCode.INVALID_ARGUMENTS, '[files.uploadCloudStorageProviderFile] callback cannot be null');\n }\n\n if (\n !(\n uploadFileRequest &&\n uploadFileRequest.content &&\n uploadFileRequest.content.itemList &&\n uploadFileRequest.content.itemList.length > 0\n )\n ) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.uploadCloudStorageProviderFile] 3P cloud storage provider request content details are missing',\n );\n }\n\n if (!uploadFileRequest.content.destinationFolder) {\n throw getSdkError(\n ErrorCode.INVALID_ARGUMENTS,\n '[files.uploadCloudStorageProviderFile] Invalid destination folder details',\n );\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_UploadCloudStorageProviderFile),\n 'files.uploadCloudStorageProviderFile',\n [uploadFileRequest],\n callback,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Register a handler to be called when a user's 3P cloud storage provider list changes i.e.\n * post adding / removing a 3P provider, list is updated\n *\n * @param handler - When 3P cloud storage provider list is updated this handler is called\n *\n * @internal Limited to Microsoft-internal use\n */\n export function registerCloudStorageProviderListChangeHandler(handler: () => void): void {\n ensureInitialized(runtime);\n\n if (!handler) {\n throw new Error('[registerCloudStorageProviderListChangeHandler] Handler cannot be null');\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_RegisterCloudStorageProviderListChangeHandler),\n 'files.cloudStorageProviderListChange',\n handler,\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n *\n * Register a handler to be called when a user's 3P cloud storage provider content changes i.e.\n * when file(s) is/are added / renamed / deleted / uploaded, the list of files is updated\n *\n * @param handler - When 3P cloud storage provider content is updated this handler is called\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerCloudStorageProviderContentChangeHandler(handler: () => void): void {\n ensureInitialized(runtime);\n\n if (!handler) {\n throw new Error('[registerCloudStorageProviderContentChangeHandler] Handler cannot be null');\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(filesTelemetryVersionNumber, ApiName.Files_RegisterCloudStorageProviderContentChangeHandler),\n 'files.cloudStorageProviderContentChange',\n handler,\n );\n }\n\n function getSdkError(errorCode: ErrorCode, message: string): SdkError {\n const sdkError: SdkError = {\n errorCode: errorCode,\n message: message,\n };\n return sdkError;\n }\n}\n","import { sendAndHandleSdkErrorWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst meetingRoomTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace meetingRoom {\n /**\n * @hidden\n *\n * Data structure to represent a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomInfo {\n /**\n * @hidden\n * Endpoint id of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n endpointId: string;\n /**\n * @hidden\n * Device name of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n deviceName: string;\n /**\n * @hidden\n * Client type of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n clientType: string;\n /**\n * @hidden\n * Client version of the meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n clientVersion: string;\n }\n\n /**\n * @hidden\n * Type of Media control capabilities of a meeting room.\n */\n type MediaControls = 'toggleMute' | 'toggleCamera' | 'toggleCaptions' | 'volume';\n\n /**\n * @hidden\n * Types of Stage Layout control capabilities of a meeting room.\n */\n\n type StageLayoutControls =\n | 'showVideoGallery'\n | 'showContent'\n | 'showVideoGalleryAndContent'\n | 'showLargeGallery'\n | 'showTogether';\n\n /**\n * @hidden\n * Types of Meeting Control capabilities of a meeting room.\n */\n\n type MeetingControls = 'leaveMeeting';\n\n /**\n * @hidden\n * Types of Stage Layout State of a meeting room.\n */\n\n type StageLayoutStates = 'Gallery' | 'Content + gallery' | 'Content' | 'Large gallery' | 'Together mode';\n\n /**\n * @hidden\n * Data structure to represent capabilities of a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomCapability {\n /**\n * @hidden\n * Media control capabilities, value can be \"toggleMute\", \"toggleCamera\", \"toggleCaptions\", \"volume\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n mediaControls: MediaControls[];\n /**\n * @hidden\n * Main stage layout control capabilities, value can be \"showVideoGallery\", \"showContent\", \"showVideoGalleryAndContent\", \"showLargeGallery\", \"showTogether\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n stageLayoutControls: StageLayoutControls[];\n /**\n * @hidden\n * Meeting control capabilities, value can be \"leaveMeeting\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n meetingControls: MeetingControls[];\n }\n\n /**\n * @hidden\n * Data structure to represent states of a meeting room.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface MeetingRoomState {\n /**\n * @hidden\n * Current mute state, true: mute, false: unmute.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleMute: boolean;\n /**\n * @hidden\n * Current camera state, true: camera on, false: camera off.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleCamera: boolean;\n /**\n * @hidden\n * Current captions state, true: captions on, false: captions off.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n toggleCaptions: boolean;\n /**\n * @hidden\n * Current main stage layout state, value can be one of \"Gallery\", \"Content + gallery\", \"Content\", \"Large gallery\" and \"Together mode\".\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n stageLayout: StageLayoutStates;\n /**\n * @hidden\n * Current leaveMeeting state, true: leave, false: no-op.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n leaveMeeting: boolean;\n }\n\n /**\n * @hidden\n * Fetch the meeting room info that paired with current client.\n *\n * @returns Promise resolved with meeting room info or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getPairedMeetingRoomInfo(): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(meetingRoomTelemetryVersionNumber, ApiName.MeetingRoom_GetPairedMeetingRoomInfo),\n 'meetingRoom.getPairedMeetingRoomInfo',\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Send a command to paired meeting room.\n *\n * @param commandName The command name.\n * @returns Promise resolved upon completion or rejected with SdkError value\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function sendCommandToPairedMeetingRoom(commandName: string): Promise {\n return new Promise((resolve) => {\n if (!commandName || commandName.length == 0) {\n throw new Error('[meetingRoom.sendCommandToPairedMeetingRoom] Command name cannot be null or empty');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndHandleSdkErrorWithVersion(\n getApiVersionTag(meetingRoomTelemetryVersionNumber, ApiName.MeetingRoom_SendCommandToPairedMeetingRoom),\n 'meetingRoom.sendCommandToPairedMeetingRoom',\n commandName,\n ),\n );\n });\n }\n\n /**\n * @hidden\n * Registers a handler for meeting room capabilities update.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the capabilities of meeting room update.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerMeetingRoomCapabilitiesUpdateHandler(\n handler: (capabilities: MeetingRoomCapability) => void,\n ): void {\n if (!handler) {\n throw new Error('[meetingRoom.registerMeetingRoomCapabilitiesUpdateHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(\n meetingRoomTelemetryVersionNumber,\n ApiName.MeetingRoom_RegisterMeetingRoomCapabilitiesUpdateHandler,\n ),\n 'meetingRoom.meetingRoomCapabilitiesUpdate',\n (capabilities: MeetingRoomCapability) => {\n ensureInitialized(runtime);\n handler(capabilities);\n },\n );\n }\n\n /**\n * @hidden\n * Hide from docs\n * Registers a handler for meeting room states update.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler The handler to invoke when the states of meeting room update.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerMeetingRoomStatesUpdateHandler(handler: (states: MeetingRoomState) => void): void {\n if (!handler) {\n throw new Error('[meetingRoom.registerMeetingRoomStatesUpdateHandler] Handler cannot be null');\n }\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(meetingRoomTelemetryVersionNumber, ApiName.MeetingRoom_RegisterMeetingRoomStatesUpdateHandler),\n 'meetingRoom.meetingRoomStatesUpdate',\n (states: MeetingRoomState) => {\n ensureInitialized(runtime);\n handler(states);\n },\n );\n }\n\n /**\n * @hidden\n *\n * Checks if the meetingRoom capability is supported by the host\n * @returns boolean to represent whether the meetingRoom capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.meetingRoom ? true : false;\n }\n}\n","import { requestPortFromParentWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag, getLogger } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n * Namespace to request message ports from the host application.\n *\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace messageChannels {\n let telemetryPort: MessagePort | undefined;\n\n const messageChannelsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n const logger = getLogger('messageChannels');\n /**\n * @hidden\n * @beta\n *\n * Fetches a MessagePort to batch telemetry through the host's telemetry worker.\n * The port is cached once received, so subsequent calls return the same port.\n * @returns MessagePort.\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed,\n * if the host does not support the feature, or if the port request is rejected.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export async function getTelemetryPort(): Promise {\n // If the port has already been initialized, return it.\n if (telemetryPort) {\n logger('Returning telemetry port from cache');\n return telemetryPort;\n }\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n // Send request for telemetry port, will throw if the request is rejected\n telemetryPort = await requestPortFromParentWithVersion(\n getApiVersionTag(messageChannelsTelemetryVersionNumber, ApiName.MessageChannels_GetTelemetryPort),\n 'messageChannels.getTelemetryPort',\n );\n return telemetryPort;\n }\n\n /**\n * @hidden\n *\n * @beta\n *\n * Checks if the messageChannels capability is supported by the host\n * @returns boolean to represent whether the messageChannels capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.messageChannels ? true : false;\n }\n\n /**\n * @hidden\n * Undocumented function used to clear state between unit tests\n *\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function _clearTelemetryPort(): void {\n telemetryPort = undefined;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { ShowNotificationParameters } from './interfaces';\n/**\n * @hidden\n * Hidden from Docs\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst notificationsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace notifications {\n /**\n * @hidden\n * display notification API.\n *\n * @param message - Notification message.\n * @param notificationType - Notification type\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function showNotification(showNotificationParameters: ShowNotificationParameters): void {\n ensureInitialized(runtime, FrameContexts.content);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(notificationsTelemetryVersionNumber, ApiName.Notifications_ShowNotification),\n 'notifications.showNotification',\n [showNotificationParameters],\n );\n }\n\n /**\n * @hidden\n *\n * Checks if the notifications capability is supported by the host\n * @returns boolean to represent whether the notifications capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.notifications ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { SdkError } from '../public/interfaces';\nimport { runtime } from '../public/runtime';\n\n/**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst remoteCameraTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace remoteCamera {\n /**\n * @hidden\n * Data structure to represent patricipant details needed to request control of camera.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface Participant {\n /**\n * @hidden\n * Id of participant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n id: string;\n /**\n * @hidden\n * Display name of participant.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName?: string;\n /**\n * @hidden\n * Active indicates whether the participant's device is actively being controlled.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n active?: boolean;\n }\n\n /**\n * @hidden\n * Enum used to indicate possible camera control commands.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ControlCommand {\n Reset = 'Reset',\n ZoomIn = 'ZoomIn',\n ZoomOut = 'ZoomOut',\n PanLeft = 'PanLeft',\n PanRight = 'PanRight',\n TiltUp = 'TiltUp',\n TiltDown = 'TiltDown',\n }\n\n /**\n * @hidden\n * Data structure to indicate the current state of the device.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface DeviceState {\n /**\n * @hidden\n * All operation are available to apply.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n available: boolean;\n /**\n * @hidden\n * Either camera doesnt support to get state or It unable to apply command.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n error: boolean;\n /**\n * @hidden\n * Reset max out or already applied. Client Disable Reset.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n reset: boolean;\n /**\n * @hidden\n * ZoomIn maxed out.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n zoomIn: boolean;\n /**\n * @hidden\n * ZoomOut maxed out.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n zoomOut: boolean;\n /**\n * @hidden\n * PanLeft reached max left.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n panLeft: boolean;\n /**\n * @hidden\n * PanRight reached max right.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n panRight: boolean;\n /**\n * @hidden\n * TiltUp reached top.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n tiltUp: boolean;\n /**\n * @hidden\n * TiltDown reached bottom.\n *\n * @internal Limited to Microsoft-internal use\n */\n tiltDown: boolean;\n }\n\n /**\n * @hidden\n * Enum used to indicate the reason for the error.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ErrorReason {\n CommandResetError,\n CommandZoomInError,\n CommandZoomOutError,\n CommandPanLeftError,\n CommandPanRightError,\n CommandTiltUpError,\n CommandTiltDownError,\n SendDataError,\n }\n\n /**\n * @hidden\n * Data structure to indicate the status of the current session.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface SessionStatus {\n /**\n * @hidden\n * Whether the far-end user is controlling a device.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n inControl: boolean;\n /**\n * @hidden\n * Reason the control session was terminated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n terminatedReason?: SessionTerminatedReason;\n }\n\n /**\n * @hidden\n * Enum used to indicate the reason the session was terminated.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum SessionTerminatedReason {\n None,\n ControlDenied,\n ControlNoResponse,\n ControlBusy,\n AckTimeout,\n ControlTerminated,\n ControllerTerminated,\n DataChannelError,\n ControllerCancelled,\n ControlDisabled,\n ControlTerminatedToAllowOtherController,\n }\n\n /**\n * @hidden\n * Fetch a list of the participants with controllable-cameras in a meeting.\n *\n * @param callback - Callback contains 2 parameters, error and participants.\n * error can either contain an error of type SdkError, incase of an error, or null when fetch is successful\n * participants can either contain an array of Participant objects, incase of a successful fetch or null when it fails\n * participants: object that contains an array of participants with controllable-cameras\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getCapableParticipants(\n callback: (error: SdkError | null, participants: Participant[] | null) => void,\n ): void {\n if (!callback) {\n throw new Error('[remoteCamera.getCapableParticipants] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_GetCapableParticipants),\n 'remoteCamera.getCapableParticipants',\n callback,\n );\n }\n\n /**\n * @hidden\n * Request control of a participant's camera.\n *\n * @param participant - Participant specifies the participant to send the request for camera control.\n * @param callback - Callback contains 2 parameters, error and requestResponse.\n * error can either contain an error of type SdkError, incase of an error, or null when fetch is successful\n * requestResponse can either contain the true/false value, incase of a successful request or null when it fails\n * requestResponse: True means request was accepted and false means request was denied\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function requestControl(\n participant: Participant,\n callback: (error: SdkError | null, requestResponse: boolean | null) => void,\n ): void {\n if (!participant) {\n throw new Error('[remoteCamera.requestControl] Participant cannot be null');\n }\n if (!callback) {\n throw new Error('[remoteCamera.requestControl] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_RequestControl),\n 'remoteCamera.requestControl',\n [participant],\n callback,\n );\n }\n\n /**\n * @hidden\n * Send control command to the participant's camera.\n *\n * @param ControlCommand - ControlCommand specifies the command for controling the camera.\n * @param callback - Callback to invoke when the command response returns.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function sendControlCommand(ControlCommand: ControlCommand, callback: (error: SdkError | null) => void): void {\n if (!ControlCommand) {\n throw new Error('[remoteCamera.sendControlCommand] ControlCommand cannot be null');\n }\n if (!callback) {\n throw new Error('[remoteCamera.sendControlCommand] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_SendControlCommand),\n 'remoteCamera.sendControlCommand',\n [ControlCommand],\n callback,\n );\n }\n\n /**\n * @hidden\n * Terminate the remote session\n *\n * @param callback - Callback to invoke when the command response returns.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function terminateSession(callback: (error: SdkError | null) => void): void {\n if (!callback) {\n throw new Error('[remoteCamera.terminateSession] Callback cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_TerminateSession),\n 'remoteCamera.terminateSession',\n callback,\n );\n }\n\n /**\n * @hidden\n * Registers a handler for change in participants with controllable-cameras.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the list of participants with controllable-cameras changes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnCapableParticipantsChangeHandler(\n handler: (participantChange: Participant[]) => void,\n ): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnCapableParticipantsChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(\n remoteCameraTelemetryVersionNumber,\n ApiName.RemoteCamera_RegisterOnCapableParticipantsChangeHandler,\n ),\n 'remoteCamera.capableParticipantsChange',\n handler,\n );\n }\n\n /**\n * @hidden\n * Registers a handler for error.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when there is an error from the camera handler.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnErrorHandler(handler: (error: ErrorReason) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnErrorHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_RegisterOnErrorHandler),\n 'remoteCamera.handlerError',\n handler,\n );\n }\n\n /**\n * @hidden\n * Registers a handler for device state change.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the controlled device changes state.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnDeviceStateChangeHandler(handler: (deviceStateChange: DeviceState) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnDeviceStateChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_RegisterOnDeviceStateChangeHandler),\n 'remoteCamera.deviceStateChange',\n handler,\n );\n }\n\n /**\n * @hidden\n * Registers a handler for session status change.\n * Only one handler can be registered at a time. A subsequent registration replaces an existing registration.\n *\n * @param handler - The handler to invoke when the current session status changes.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerOnSessionStatusChangeHandler(handler: (sessionStatusChange: SessionStatus) => void): void {\n if (!handler) {\n throw new Error('[remoteCamera.registerOnSessionStatusChangeHandler] Handler cannot be null');\n }\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n registerHandlerWithVersion(\n getApiVersionTag(remoteCameraTelemetryVersionNumber, ApiName.RemoteCamera_RegisterOnSessionStatusChangeHandler),\n 'remoteCamera.sessionStatusChange',\n handler,\n );\n }\n\n /**\n * @hidden\n *\n * Checks if the remoteCamera capability is supported by the host\n * @returns boolean to represent whether the remoteCamera capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.remoteCamera ? true : false;\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { FrameContexts, SdkError } from '../public';\nimport { errorNotSupportedOnPlatform } from '../public/constants';\nimport { runtime } from '../public/runtime';\n\n/**\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst appEntityTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\n/**\n * @hidden\n * Namespace to interact with the application entities specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\nexport namespace appEntity {\n /**\n * @hidden\n *\n * Information on an app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface AppEntity {\n /**\n * @hidden\n * ID of the application\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n appId: string;\n\n /**\n * @hidden\n * URL for the application's icon\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n appIconUrl: string;\n\n /**\n * @hidden\n * Content URL for the app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n contentUrl: string;\n\n /**\n * @hidden\n * The display name for the app entity\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n displayName: string;\n\n /**\n * @hidden\n * Website URL for the app entity. It is meant to be opened by the user in a browser.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n websiteUrl: string;\n }\n\n /**\n * @hidden\n * Hide from docs\n * --------\n * Open the Tab Gallery and retrieve the app entity\n * @param threadId ID of the thread where the app entity will be created\n * @param categories A list of application categories that will be displayed in the opened tab gallery\n * @param subEntityId An object that will be made available to the application being configured\n * through the Context's subEntityId field.\n * @param callback Callback that will be triggered once the app entity information is available.\n * The callback takes two arguments: an SdkError in case something happened (i.e.\n * no permissions to execute the API) and the app entity configuration, if available\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function selectAppEntity(\n threadId: string,\n categories: string[],\n subEntityId: string,\n callback: (sdkError?: SdkError, appEntity?: AppEntity) => void,\n ): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!threadId || threadId.length == 0) {\n throw new Error('[appEntity.selectAppEntity] threadId name cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[appEntity.selectAppEntity] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(appEntityTelemetryVersionNumber, ApiName.AppEntity_SelectAppEntity),\n 'appEntity.selectAppEntity',\n [threadId, categories, subEntityId],\n callback,\n );\n }\n\n /**\n * @hidden\n *\n * Checks if the appEntity capability is supported by the host\n * @returns boolean to represent whether the appEntity capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.appEntity ? true : false;\n }\n}\n","import { sendAndUnwrapWithVersion, sendMessageToParentWithVersion } from '../internal/communication';\nimport { getUserJoinedTeamsSupportedAndroidClientVersion } from '../internal/constants';\nimport { GlobalVars } from '../internal/globalVars';\nimport { ensureInitialized, isCurrentSDKVersionAtLeast } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { errorNotSupportedOnPlatform, FrameContexts, HostClientType } from '../public/constants';\nimport { ErrorCode, SdkError } from '../public/interfaces';\nimport { runtime } from '../public/runtime';\nimport { TeamInstanceParameters, UserJoinedTeamsInformation } from './interfaces';\n\n/**\n * @hidden\n * Namespace to interact with the `teams` specific part of the SDK.\n *\n * @internal\n * Limited to Microsoft-internal use\n *\n * v1 APIs telemetry file: All of APIs in this capability file should send out API version v1 ONLY\n */\nconst teamsTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_1;\n\nexport namespace teams {\n export enum ChannelType {\n Regular = 0,\n Private = 1,\n Shared = 2,\n }\n\n /**\n * @hidden\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface ChannelInfo {\n siteUrl: string;\n objectId: string;\n folderRelativeUrl: string;\n displayName: string;\n channelType: ChannelType;\n }\n\n /**\n * @hidden\n * Get a list of channels belong to a Team\n *\n * @param groupId - a team's objectId\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getTeamChannels(groupId: string, callback: (error: SdkError, channels: ChannelInfo[]) => void): void {\n ensureInitialized(runtime, FrameContexts.content);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!groupId) {\n throw new Error('[teams.getTeamChannels] groupId cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[teams.getTeamChannels] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(teamsTelemetryVersionNumber, ApiName.Teams_GetTeamChannels),\n 'teams.getTeamChannels',\n [groupId],\n callback,\n );\n }\n\n /**\n * @hidden\n * Allow 1st party apps to call this function when they receive migrated errors to inform the Hub/Host to refresh the siteurl\n * when site admin renames siteurl.\n *\n * @param threadId - ID of the thread where the app entity will be created; if threadId is not\n * provided, the threadId from route params will be used.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function refreshSiteUrl(threadId: string, callback: (error: SdkError) => void): void {\n ensureInitialized(runtime);\n\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (!threadId) {\n throw new Error('[teams.refreshSiteUrl] threadId cannot be null or empty');\n }\n\n if (!callback) {\n throw new Error('[teams.refreshSiteUrl] Callback cannot be null');\n }\n\n sendMessageToParentWithVersion(\n getApiVersionTag(teamsTelemetryVersionNumber, ApiName.Teams_RefreshSiteUrl),\n 'teams.refreshSiteUrl',\n [threadId],\n callback,\n );\n }\n\n /**\n * @hidden\n *\n * Checks if teams capability is supported by the host\n * @returns boolean to represent whether the teams capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams ? true : false;\n }\n\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use\n */\n export namespace fullTrust {\n /**\n * @hidden\n * @internal\n * Limited to Microsoft-internal use\n */\n export namespace joinedTeams {\n /**\n * @hidden\n * Allows an app to retrieve information of all user joined teams\n *\n * @param teamInstanceParameters - Optional flags that specify whether to scope call to favorite teams\n * @returns Promise that resolves with information about the user joined teams or rejects with an error when the operation has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getUserJoinedTeams(\n teamInstanceParameters?: TeamInstanceParameters,\n ): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n if (\n (GlobalVars.hostClientType === HostClientType.android ||\n GlobalVars.hostClientType === HostClientType.teamsRoomsAndroid ||\n GlobalVars.hostClientType === HostClientType.teamsPhones ||\n GlobalVars.hostClientType === HostClientType.teamsDisplays) &&\n !isCurrentSDKVersionAtLeast(getUserJoinedTeamsSupportedAndroidClientVersion)\n ) {\n const oldPlatformError: SdkError = { errorCode: ErrorCode.OLD_PLATFORM };\n throw new Error(JSON.stringify(oldPlatformError));\n }\n\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n resolve(\n sendAndUnwrapWithVersion(\n getApiVersionTag(teamsTelemetryVersionNumber, ApiName.Teams_FullTrust_JoinedTeams_GetUserJoinedTeams),\n 'getUserJoinedTeams',\n /* eslint-disable-next-line strict-null-checks/all */ /* Fix tracked by 5730662 */\n teamInstanceParameters,\n ),\n );\n });\n }\n /**\n * @hidden\n *\n * Checks if teams.fullTrust.joinedTeams capability is supported by the host\n * @returns boolean to represent whether the teams.fullTrust.joinedTeams capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams\n ? runtime.supports.teams.fullTrust\n ? runtime.supports.teams.fullTrust.joinedTeams\n ? true\n : false\n : false\n : false;\n }\n }\n\n /**\n * @hidden\n * Allows an app to get the configuration setting value\n *\n * @param key - The key for the config setting\n * @returns Promise that resolves with the value for the provided configuration setting or rejects with an error when the operation has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function getConfigSetting(key: string): Promise {\n return new Promise((resolve) => {\n ensureInitialized(runtime);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n resolve(\n sendAndUnwrapWithVersion(\n getApiVersionTag(teamsTelemetryVersionNumber, ApiName.Teams_FullTrust_GetConfigSetting),\n 'getConfigSetting',\n key,\n ),\n );\n });\n }\n\n /**\n * @hidden\n *\n * Checks if teams.fullTrust capability is supported by the host\n * @returns boolean to represent whether the teams.fullTrust capability is supported\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n return ensureInitialized(runtime) && runtime.supports.teams\n ? runtime.supports.teams.fullTrust\n ? true\n : false\n : false;\n }\n }\n}\n","import { sendMessageToParentWithVersion } from '../internal/communication';\nimport { registerHandlerWithVersion } from '../internal/handlers';\nimport { ensureInitialized } from '../internal/internalAPIs';\nimport { ApiName, ApiVersionNumber, getApiVersionTag } from '../internal/telemetry';\nimport { inServerSideRenderingEnvironment } from '../internal/utils';\nimport {\n createEffectParameterChangeCallback,\n DefaultVideoEffectCallBack as VideoEffectCallBack,\n processMediaStream,\n processMediaStreamWithMetadata,\n} from '../internal/videoEffectsUtils';\nimport { VideoPerformanceMonitor } from '../internal/videoPerformanceMonitor';\nimport { errorNotSupportedOnPlatform, FrameContexts } from '../public/constants';\nimport { runtime } from '../public/runtime';\nimport { videoEffects } from '../public/videoEffects';\n\n/**\n * @hidden\n * Extended video API\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n * v2 APIs telemetry file: All of APIs in this capability file should send out API version v2 ONLY\n */\nconst videoEffectsExTelemetryVersionNumber: ApiVersionNumber = ApiVersionNumber.V_2;\n\nexport namespace videoEffectsEx {\n export const frameProcessingTimeoutInMs = 2000;\n\n const videoPerformanceMonitor = inServerSideRenderingEnvironment()\n ? undefined\n : new VideoPerformanceMonitor(sendMessageToParentWithVersion);\n /**\n * @hidden\n * Error level when notifying errors to the host, the host will decide what to do acording to the error level.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export enum ErrorLevel {\n Fatal = 'fatal',\n Warn = 'warn',\n }\n /**\n * @hidden\n * Video frame configuration supplied to the host to customize the generated video frame parameters\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface VideoFrameConfig extends videoEffects.VideoFrameConfig {\n /**\n * @hidden\n * Flag to indicate use camera stream to synthesize video frame or not.\n * Default value is true.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n requireCameraStream?: boolean;\n /**\n * @hidden\n * Machine learning model to run in the host to do audio inference for you\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n audioInferenceModel?: ArrayBuffer;\n }\n\n /**\n * @hidden\n * Represents a video frame\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface VideoBufferData extends videoEffects.VideoBufferData {\n /**\n * @hidden\n * The model output if you passed in an {@linkcode VideoFrameConfig.audioInferenceModel}\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n audioInferenceResult?: Uint8Array;\n }\n\n /**\n * Old video frame data structure, almost identical to the {@link VideoBufferData} except `videoFrameBuffer` is named as `data`.\n * Old host like the old Teams passes this data to the SDK. It will be deprecated in the future.\n */\n type LegacyVideoBufferData = Omit & {\n /**\n * Video frame buffer\n */\n data: Uint8ClampedArray;\n };\n\n /**\n * @hidden\n * The callback will be called on every frame when running on the supported host.\n * We require the frame rate of the video to be at least 22fps for 720p, thus the callback should process a frame timely.\n * The video app should call `notifyVideoFrameProcessed` to notify a successfully processed video frame.\n * The video app should call `notifyError` to notify a failure. When the failures accumulate to a certain number(determined by the host), the host will see the app is \"frozen\" and give the user the option to close the app.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type VideoBufferHandler = (\n videoBufferData: VideoBufferData,\n notifyVideoFrameProcessed: () => void,\n notifyError: (errorMessage: string) => void,\n ) => void;\n\n /**\n * @hidden\n * Video frame data extracted from the media stream. More properties may be added in the future.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type VideoFrameData = videoEffects.VideoFrameData & {\n /**\n * @hidden\n * The model output if you passed in an {@linkcode VideoFrameConfig.audioInferenceModel}\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n audioInferenceResult?: Uint8Array;\n };\n\n /**\n * @hidden\n * The callback will be called on every frame when running on the supported host.\n * We require the frame rate of the video to be at least 22fps for 720p, thus the callback should process a frame timely.\n * The video app should resolve the promise to notify a successfully processed video frame.\n * The video app should reject the promise to notify a failure. When the failures accumulate to a certain number(determined by the host), the host will see the app is \"frozen\" and give the user the option to close the app.\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export type VideoFrameHandler = (receivedVideoFrame: VideoFrameData) => Promise;\n\n /**\n * @hidden\n * @beta\n * Callbacks and configuration supplied to the host to process the video frames.\n * @internal\n * Limited to Microsoft-internal use\n */\n export type RegisterForVideoFrameParameters = {\n /**\n * Callback function to process the video frames extracted from a media stream.\n */\n videoFrameHandler: VideoFrameHandler;\n /**\n * Callback function to process the video frames shared by the host.\n */\n videoBufferHandler: VideoBufferHandler;\n /**\n * Video frame configuration supplied to the host to customize the generated video frame parameters, like format\n */\n config: VideoFrameConfig;\n };\n\n /**\n * @hidden\n * Register to process video frames\n * @beta\n *\n * @param parameters - Callbacks and configuration to process the video frames. A host may support either {@link VideoFrameHandler} or {@link VideoBufferHandler}, but not both.\n * To ensure the video effect works on all supported hosts, the video app must provide both {@link VideoFrameHandler} and {@link VideoBufferHandler}.\n * The host will choose the appropriate callback based on the host's capability.\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerForVideoFrame(parameters: RegisterForVideoFrameParameters): void {\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n if (!parameters.videoFrameHandler || !parameters.videoBufferHandler) {\n throw new Error('Both videoFrameHandler and videoBufferHandler must be provided');\n }\n\n if (ensureInitialized(runtime, FrameContexts.sidePanel)) {\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsExTelemetryVersionNumber,\n ApiName.VideoEffectsEx_RegisterSetFrameProcessTimeLimitHandler,\n ),\n 'video.setFrameProcessTimeLimit',\n (timeLimit: number) => videoPerformanceMonitor?.setFrameProcessTimeLimit(timeLimit),\n false,\n );\n if (runtime.supports.video?.mediaStream) {\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsExTelemetryVersionNumber,\n ApiName.VideoEffectsEx_RegisterStartVideoExtensibilityVideoStreamHandler,\n ),\n 'video.startVideoExtensibilityVideoStream',\n async (mediaStreamInfo: { streamId: string; metadataInTexture?: boolean }) => {\n const { streamId, metadataInTexture } = mediaStreamInfo;\n const handler = videoPerformanceMonitor\n ? createMonitoredVideoFrameHandler(parameters.videoFrameHandler, videoPerformanceMonitor)\n : parameters.videoFrameHandler;\n metadataInTexture\n ? await processMediaStreamWithMetadata(streamId, handler, notifyError, videoPerformanceMonitor)\n : await processMediaStream(streamId, handler, notifyError, videoPerformanceMonitor);\n },\n false,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(\n videoEffectsExTelemetryVersionNumber,\n ApiName.VideoEffectsEx_MediaStream_RegisterForVideoFrame,\n ),\n 'video.mediaStream.registerForVideoFrame',\n [parameters.config],\n );\n } else if (runtime.supports.video?.sharedFrame) {\n registerHandlerWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_RegisterNewVideoFrameHandler),\n 'video.newVideoFrame',\n (videoBufferData: VideoBufferData | LegacyVideoBufferData) => {\n if (videoBufferData) {\n videoPerformanceMonitor?.reportStartFrameProcessing(videoBufferData.width, videoBufferData.height);\n const clearProcessingTimeout = createFrameProcessingTimeout();\n const timestamp = videoBufferData.timestamp;\n parameters.videoBufferHandler(\n normalizedVideoBufferData(videoBufferData),\n () => {\n clearProcessingTimeout();\n videoPerformanceMonitor?.reportFrameProcessed();\n notifyVideoFrameProcessed(timestamp);\n },\n notifyError,\n );\n }\n },\n false,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_RegisterForVideoFrame),\n 'video.registerForVideoFrame',\n [parameters.config],\n );\n } else {\n // should not happen if isSupported() is true\n throw errorNotSupportedOnPlatform;\n }\n videoPerformanceMonitor?.startMonitorSlowFrameProcessing();\n }\n }\n\n function createFrameProcessingTimeout(): () => void {\n const frameProcessingTimer = setTimeout(() => {\n notifyError(`Frame not processed in ${frameProcessingTimeoutInMs}ms`, ErrorLevel.Warn);\n }, frameProcessingTimeoutInMs);\n\n return function clearTimer() {\n clearTimeout(frameProcessingTimer);\n };\n }\n\n function createMonitoredVideoFrameHandler(\n videoFrameHandler: VideoFrameHandler,\n videoPerformanceMonitor: VideoPerformanceMonitor,\n ): VideoFrameHandler {\n return async (receivedVideoFrame: VideoFrameData): Promise => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const originalFrame = receivedVideoFrame.videoFrame as any;\n videoPerformanceMonitor.reportStartFrameProcessing(originalFrame.codedWidth, originalFrame.codedHeight);\n const clearProcessingTimeout = createFrameProcessingTimeout();\n const processedFrame = await videoFrameHandler(receivedVideoFrame);\n clearProcessingTimeout();\n videoPerformanceMonitor.reportFrameProcessed();\n return processedFrame;\n };\n }\n\n function normalizedVideoBufferData(videoBufferData: VideoBufferData | LegacyVideoBufferData): VideoBufferData {\n videoBufferData['videoFrameBuffer'] = videoBufferData['videoFrameBuffer'] || videoBufferData['data'];\n delete videoBufferData['data'];\n return videoBufferData as VideoBufferData;\n }\n\n /**\n * @hidden\n * Video extension should call this to notify host that the current selected effect parameter changed.\n * If it's pre-meeting, host will call videoEffectCallback immediately then use the videoEffect.\n * If it's the in-meeting scenario, we will call videoEffectCallback when apply button clicked.\n * @beta\n * @param effectChangeType - the effect change type.\n * @param effectId - Newly selected effect id. {@linkcode VideoEffectCallBack}\n * @param effectParam Variant for the newly selected effect. {@linkcode VideoEffectCallBack}\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function notifySelectedVideoEffectChanged(\n effectChangeType: videoEffects.EffectChangeType,\n effectId: string | undefined,\n effectParam?: string,\n ): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_NotifySelectedVideoEffectChanged),\n 'video.videoEffectChanged',\n [effectChangeType, effectId, effectParam],\n );\n }\n\n /**\n * @hidden\n * Register the video effect callback, host uses this to notify the video extension the new video effect will by applied\n * @beta\n * @param callback - The VideoEffectCallback to invoke when registerForVideoEffect has completed\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function registerForVideoEffect(callback: VideoEffectCallBack): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n\n registerHandlerWithVersion(\n getApiVersionTag(\n videoEffectsExTelemetryVersionNumber,\n ApiName.VideoEffectsEx_RegisterEffectParameterChangeHandler,\n ),\n 'video.effectParameterChange',\n createEffectParameterChangeCallback(callback, videoPerformanceMonitor),\n false,\n );\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_RegisterForVideoEffect),\n 'video.registerForVideoEffect',\n );\n }\n\n /**\n * @hidden\n * Personalized video effect\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export interface PersonalizedEffect {\n /**\n * Personalized effect id\n */\n id: string;\n /**\n * Display name\n */\n name: string;\n /**\n * Effect type defined by app\n */\n type: string;\n /**\n * Data URI of the thumbnail image content encoded in ASCII format using the base64 scheme\n */\n thumbnail: string;\n }\n\n /**\n * @hidden\n * Send personalized effects to Teams client\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function updatePersonalizedEffects(effects: PersonalizedEffect[]): void {\n ensureInitialized(runtime, FrameContexts.sidePanel);\n if (!videoEffects.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_UpdatePersonalizedEffects),\n 'video.personalizedEffectsChanged',\n [effects],\n );\n }\n\n /**\n * @hidden\n *\n * Checks if video capability is supported by the host\n * @beta\n *\n * @throws Error if {@linkcode app.initialize} has not successfully completed\n *\n * @returns boolean to represent whether the video capability is supported\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function isSupported(): boolean {\n ensureInitialized(runtime);\n return videoEffects.isSupported();\n }\n\n /**\n * @hidden\n * Sending notification to host finished the video frame processing, now host can render this video frame\n * or pass the video frame to next one in video pipeline\n * @beta\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n function notifyVideoFrameProcessed(timestamp?: number): void {\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_NotifyVideoFrameProcessed),\n 'video.videoFrameProcessed',\n [timestamp],\n );\n }\n\n /**\n * @hidden\n * Sending error notification to host\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n * @param errorLevel - The error level that will be sent to the host\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n function notifyError(errorMessage: string, errorLevel: ErrorLevel = ErrorLevel.Warn): void {\n sendMessageToParentWithVersion(\n getApiVersionTag(videoEffectsExTelemetryVersionNumber, ApiName.VideoEffectsEx_NotifyError),\n 'video.notifyError',\n [errorMessage, errorLevel],\n );\n }\n\n /**\n * @hidden\n * Sending fatal error notification to host. Call this function only when your app meets fatal error and can't continue.\n * The host will stop the video pipeline and terminate this session, and optionally, show an error message to the user.\n * @beta\n * @param errorMessage - The error message that will be sent to the host\n *\n * @internal\n * Limited to Microsoft-internal use\n */\n export function notifyFatalError(errorMessage: string): void {\n ensureInitialized(runtime);\n if (!videoEffects.isSupported()) {\n throw errorNotSupportedOnPlatform;\n }\n notifyError(errorMessage, ErrorLevel.Fatal);\n }\n}\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport * from \"./card-elements\";\r\nexport * from \"./enums\";\r\nexport * from \"./host-config\";\r\nexport * from \"./shared\";\r\nexport * from \"./utils\";\r\nexport { IAdaptiveCard, ICardElement } from \"./schema\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as Enums from \"./enums\";\r\nimport * as Shared from \"./shared\";\r\nimport * as Utils from \"./utils\";\r\nimport * as HostConfig from \"./host-config\";\r\nimport * as TextFormatters from \"./text-formatters\";\r\n\r\nfunction invokeSetCollection(action: Action, collection: ActionCollection) {\r\n if (action) {\r\n // Closest emulation of \"internal\" in TypeScript.\r\n action[\"setCollection\"](collection);\r\n }\r\n}\r\n\r\nfunction isActionAllowed(action: Action, forbiddenActionTypes: Array): boolean {\r\n if (forbiddenActionTypes) {\r\n for (var i = 0; i < forbiddenActionTypes.length; i++) {\r\n if (action.getJsonTypeName() === forbiddenActionTypes[i]) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\nenum InstanceCreationErrorType {\r\n UnknownType,\r\n ForbiddenType\r\n}\r\n\r\nfunction createCardObjectInstance(\r\n parent: CardElement,\r\n json: any,\r\n forbiddenTypeNames: string[],\r\n allowFallback: boolean,\r\n createInstanceCallback: (typeName: string) => T,\r\n createValidationErrorCallback: (typeName: string, errorType: InstanceCreationErrorType) => HostConfig.IValidationError,\r\n errors: Array): T {\r\n let result: T = null;\r\n\r\n if (json && typeof json === \"object\") {\r\n let tryToFallback = false;\r\n\t\tlet typeName = Utils.getStringValue(json[\"type\"]);\r\n\r\n if (forbiddenTypeNames && forbiddenTypeNames.indexOf(typeName) >= 0) {\r\n raiseParseError(createValidationErrorCallback(typeName, InstanceCreationErrorType.ForbiddenType), errors);\r\n }\r\n else {\r\n result = createInstanceCallback(typeName);\r\n\r\n if (!result) {\r\n tryToFallback = allowFallback;\r\n\r\n raiseParseError(createValidationErrorCallback(typeName, InstanceCreationErrorType.UnknownType), errors);\r\n }\r\n else {\r\n result.setParent(parent);\r\n result.parse(json, errors);\r\n\r\n tryToFallback = result.shouldFallback() && allowFallback;\r\n }\r\n\r\n if (tryToFallback) {\r\n let fallback = json[\"fallback\"];\r\n\r\n if (!fallback) {\r\n parent.setShouldFallback(true);\r\n }\r\n if (typeof fallback === \"string\" && fallback.toLowerCase() === \"drop\") {\r\n result = null;\r\n }\r\n else if (typeof fallback === \"object\") {\r\n result = createCardObjectInstance(\r\n parent,\r\n fallback,\r\n forbiddenTypeNames,\r\n true,\r\n createInstanceCallback,\r\n createValidationErrorCallback,\r\n errors);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nexport function createActionInstance(\r\n parent: CardElement,\r\n json: any,\r\n forbiddenActionTypes: string[],\r\n allowFallback: boolean,\r\n errors: Array): Action {\r\n return createCardObjectInstance(\r\n parent,\r\n json,\r\n forbiddenActionTypes,\r\n allowFallback,\r\n (typeName: string) => { return AdaptiveCard.actionTypeRegistry.createInstance(typeName); },\r\n (typeName: string, errorType: InstanceCreationErrorType) => {\r\n if (errorType == InstanceCreationErrorType.UnknownType) {\r\n return {\r\n error: Enums.ValidationError.UnknownActionType,\r\n message: \"Unknown action type: \" + typeName + \". Fallback will be used if present.\"\r\n }\r\n }\r\n else {\r\n return {\r\n error: Enums.ValidationError.ActionTypeNotAllowed,\r\n message: \"Action type \" + typeName + \" is not allowed in this context.\"\r\n }\r\n }\r\n },\r\n errors);\r\n}\r\n\r\nexport function createElementInstance(\r\n parent: CardElement,\r\n json: any,\r\n allowFallback: boolean,\r\n errors: Array): CardElement {\r\n return createCardObjectInstance(\r\n parent,\r\n json,\r\n [], // Forbidden types not supported for elements for now\r\n allowFallback,\r\n (typeName: string) => { return AdaptiveCard.elementTypeRegistry.createInstance(typeName); },\r\n (typeName: string, errorType: InstanceCreationErrorType) => {\r\n if (errorType == InstanceCreationErrorType.UnknownType) {\r\n return {\r\n error: Enums.ValidationError.UnknownElementType,\r\n message: \"Unknown element type: \" + typeName + \". Fallback will be used if present.\"\r\n }\r\n }\r\n else {\r\n return {\r\n error: Enums.ValidationError.ElementTypeNotAllowed,\r\n message: \"Element type \" + typeName + \" is not allowed in this context.\"\r\n }\r\n }\r\n },\r\n errors);\r\n}\r\n\r\nexport abstract class SerializableObject {\r\n private _rawProperties = {};\r\n\r\n parse(json: any, errors?: Array) {\r\n this._rawProperties = AdaptiveCard.enableFullJsonRoundTrip ? json : {};\r\n }\r\n\r\n toJSON(): any {\r\n let result: any;\r\n\r\n if (AdaptiveCard.enableFullJsonRoundTrip && this._rawProperties && typeof this._rawProperties === \"object\") {\r\n result = this._rawProperties;\r\n }\r\n else {\r\n result = {};\r\n }\r\n\r\n return result;\r\n }\r\n\r\n setCustomProperty(name: string, value: any) {\r\n let shouldDeleteProperty = (typeof value === \"string\" && Utils.isNullOrEmpty(value)) || value === undefined || value === null;\r\n\r\n if (shouldDeleteProperty) {\r\n delete this._rawProperties[name];\r\n }\r\n else {\r\n this._rawProperties[name] = value;\r\n }\r\n }\r\n\r\n getCustomProperty(name: string): any {\r\n return this._rawProperties[name];\r\n }\r\n}\r\n\r\nexport class ValidationFailure {\r\n readonly errors: HostConfig.IValidationError[] = [];\r\n\r\n constructor(readonly cardObject: CardObject) { }\r\n}\r\n\r\nexport class ValidationResults {\r\n private getFailureIndex(cardObject: CardObject) {\r\n for (let i = 0; i < this.failures.length; i++) {\r\n if (this.failures[i].cardObject === cardObject) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n readonly allIds: Shared.Dictionary = {};\r\n readonly failures: ValidationFailure[] = [];\r\n\r\n addFailure(cardObject: CardObject, error: HostConfig.IValidationError) {\r\n let index = this.getFailureIndex(cardObject);\r\n let failure: ValidationFailure;\r\n\r\n if (index < 0) {\r\n failure = new ValidationFailure(cardObject);\r\n\r\n this.failures.push(failure);\r\n }\r\n else {\r\n failure = this.failures[index];\r\n }\r\n\r\n failure.errors.push(error);\r\n }\r\n}\r\n\r\nexport abstract class CardObject extends SerializableObject {\r\n abstract getJsonTypeName(): string;\r\n abstract shouldFallback(): boolean;\r\n abstract setParent(parent: CardElement);\r\n\r\n id: string;\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n if (!Utils.isNullOrEmpty(this.id)) {\r\n if (context.allIds.hasOwnProperty(this.id)) {\r\n if (context.allIds[this.id] == 1) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.DuplicateId,\r\n message: \"Duplicate Id: \" + this.id\r\n });\r\n }\r\n\r\n context.allIds[this.id] += 1;\r\n }\r\n else {\r\n context.allIds[this.id] = 1;\r\n }\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.id = Utils.getStringValue(json[\"id\"]);\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"type\", this.getJsonTypeName());\r\n Utils.setProperty(result, \"id\", this.id);\r\n\r\n return result;\r\n }\r\n\r\n validateProperties(): ValidationResults {\r\n let result = new ValidationResults();\r\n\r\n this.internalValidateProperties(result);\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport type CardElementHeight = \"auto\" | \"stretch\";\r\n\r\nexport abstract class CardElement extends CardObject {\r\n private _shouldFallback: boolean = false;\r\n private _lang: string = undefined;\r\n private _hostConfig?: HostConfig.HostConfig = null;\r\n private _parent: CardElement = null;\r\n private _renderedElement: HTMLElement = null;\r\n private _separatorElement: HTMLElement = null;\r\n private _isVisible: boolean = true;\r\n private _truncatedDueToOverflow: boolean = false;\r\n private _defaultRenderedElementDisplayMode: string = null;\r\n private _padding: Shared.PaddingDefinition = null;\r\n\r\n private internalRenderSeparator(): HTMLElement {\r\n let renderedSeparator = Utils.renderSeparation(\r\n this.hostConfig,\r\n {\r\n spacing: this.hostConfig.getEffectiveSpacing(this.spacing),\r\n lineThickness: this.separator ? this.hostConfig.separator.lineThickness : null,\r\n lineColor: this.separator ? this.hostConfig.separator.lineColor : null\r\n },\r\n this.separatorOrientation);\r\n\r\n if (AdaptiveCard.alwaysBleedSeparators && renderedSeparator && this.separatorOrientation == Enums.Orientation.Horizontal) {\r\n // Adjust separator's margins if the option to always bleed separators is turned on\r\n let parentContainer = this.getParentContainer();\r\n\r\n if (parentContainer && parentContainer.getEffectivePadding()) {\r\n let parentPhysicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(parentContainer.getEffectivePadding());\r\n\r\n renderedSeparator.style.marginLeft = \"-\" + parentPhysicalPadding.left + \"px\";\r\n renderedSeparator.style.marginRight = \"-\" + parentPhysicalPadding.right + \"px\";\r\n }\r\n }\r\n\r\n return renderedSeparator;\r\n }\r\n\r\n private updateRenderedElementVisibility() {\r\n let displayMode = this.isDesignMode() || this.isVisible ? this._defaultRenderedElementDisplayMode : \"none\";\r\n\r\n if (this._renderedElement) {\r\n this._renderedElement.style.display = displayMode;\r\n }\r\n\r\n if (this._separatorElement) {\r\n if (this.parent && this.parent.isFirstElement(this)) {\r\n this._separatorElement.style.display = \"none\";\r\n }\r\n else {\r\n this._separatorElement.style.display = displayMode;\r\n }\r\n }\r\n }\r\n\r\n private hideElementDueToOverflow() {\r\n if (this._renderedElement && this.isVisible) {\r\n this._renderedElement.style.visibility = 'hidden';\r\n this.isVisible = false;\r\n raiseElementVisibilityChangedEvent(this, false);\r\n }\r\n }\r\n\r\n private showElementHiddenDueToOverflow() {\r\n if (this._renderedElement && !this.isVisible) {\r\n this._renderedElement.style.visibility = null;\r\n this.isVisible = true;\r\n raiseElementVisibilityChangedEvent(this, false);\r\n }\r\n }\r\n\r\n // Marked private to emulate internal access\r\n private handleOverflow(maxHeight: number) {\r\n if (this.isVisible || this.isHiddenDueToOverflow()) {\r\n var handled = this.truncateOverflow(maxHeight);\r\n\r\n // Even if we were unable to truncate the element to fit this time,\r\n // it still could have been previously truncated\r\n this._truncatedDueToOverflow = handled || this._truncatedDueToOverflow;\r\n\r\n if (!handled) {\r\n this.hideElementDueToOverflow();\r\n }\r\n else if (handled && !this.isVisible) {\r\n this.showElementHiddenDueToOverflow();\r\n }\r\n }\r\n }\r\n\r\n // Marked private to emulate internal access\r\n private resetOverflow(): boolean {\r\n var sizeChanged = false;\r\n\r\n if (this._truncatedDueToOverflow) {\r\n this.undoOverflowTruncation();\r\n this._truncatedDueToOverflow = false;\r\n sizeChanged = true;\r\n }\r\n\r\n if (this.isHiddenDueToOverflow) {\r\n this.showElementHiddenDueToOverflow();\r\n }\r\n\r\n return sizeChanged;\r\n }\r\n\r\n protected createPlaceholderElement(): HTMLElement {\r\n var element = document.createElement(\"div\");\r\n element.style.border = \"1px dashed #DDDDDD\";\r\n element.style.padding = \"4px\";\r\n element.style.minHeight = \"32px\";\r\n element.style.fontSize = \"10px\";\r\n element.innerText = \"Empty \" + this.getJsonTypeName();\r\n\r\n return element;\r\n }\r\n\r\n protected adjustRenderedElementSize(renderedElement: HTMLElement) {\r\n if (this.height === \"auto\") {\r\n renderedElement.style.flex = \"0 0 auto\";\r\n }\r\n else {\r\n renderedElement.style.flex = \"1 1 auto\";\r\n }\r\n\r\n if (this.minPixelHeight) {\r\n renderedElement.style.minHeight = this.minPixelHeight + \"px\";\r\n }\r\n }\r\n\r\n protected abstract internalRender(): HTMLElement;\r\n\r\n protected overrideInternalRender(): HTMLElement {\r\n return this.internalRender();\r\n }\r\n\r\n protected applyPadding() {\r\n if (this.separatorElement) {\r\n if (AdaptiveCard.alwaysBleedSeparators && this.separatorOrientation == Enums.Orientation.Horizontal && !this.isBleeding()) {\r\n let padding = new Shared.PaddingDefinition();\r\n\r\n this.getImmediateSurroundingPadding(padding);\r\n\r\n let physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(padding);\r\n\r\n this.separatorElement.style.marginLeft = \"-\" + physicalPadding.left + \"px\";\r\n this.separatorElement.style.marginRight = \"-\" + physicalPadding.right + \"px\";\r\n }\r\n else {\r\n this.separatorElement.style.marginRight = \"0\";\r\n this.separatorElement.style.marginLeft = \"0\";\r\n }\r\n }\r\n }\r\n\r\n /*\r\n * Called when this element overflows the bottom of the card.\r\n * maxHeight will be the amount of space still available on the card (0 if\r\n * the element is fully off the card).\r\n */\r\n protected truncateOverflow(maxHeight: number): boolean {\r\n // Child implementations should return true if the element handled\r\n // the truncation request such that its content fits within maxHeight,\r\n // false if the element should fall back to being hidden\r\n return false;\r\n }\r\n\r\n /*\r\n * This should reverse any changes performed in truncateOverflow().\r\n */\r\n protected undoOverflowTruncation() { }\r\n\r\n protected getDefaultPadding(): Shared.PaddingDefinition {\r\n return new Shared.PaddingDefinition();\r\n }\r\n\r\n protected getHasBackground(): boolean {\r\n return false;\r\n }\r\n\r\n protected getPadding(): Shared.PaddingDefinition {\r\n return this._padding;\r\n }\r\n\r\n protected setPadding(value: Shared.PaddingDefinition) {\r\n this._padding = value;\r\n }\r\n\r\n protected get supportsMinHeight(): boolean {\r\n return false;\r\n }\r\n\r\n protected get useDefaultSizing(): boolean {\r\n return true;\r\n }\r\n\r\n protected get allowCustomPadding(): boolean {\r\n return true;\r\n }\r\n\r\n protected get separatorOrientation(): Enums.Orientation {\r\n return Enums.Orientation.Horizontal;\r\n }\r\n\r\n protected get defaultStyle(): string {\r\n return Enums.ContainerStyle.Default;\r\n }\r\n\r\n readonly requires = new HostConfig.HostCapabilities();\r\n\r\n horizontalAlignment?: Enums.HorizontalAlignment = null;\r\n spacing: Enums.Spacing = Enums.Spacing.Default;\r\n separator: boolean = false;\r\n customCssSelector: string = null;\r\n height: CardElementHeight = \"auto\";\r\n minPixelHeight?: number = null;\r\n\r\n abstract getJsonTypeName(): string;\r\n\r\n asString(): string {\r\n return \"\";\r\n }\r\n\r\n isBleeding(): boolean {\r\n return false;\r\n }\r\n\r\n\ttoJSON(): any {\r\n\t\tlet result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"isVisible\", this.isVisible, true);\r\n\r\n if (this.horizontalAlignment !== null) {\r\n Utils.setEnumProperty(Enums.HorizontalAlignment, result, \"horizontalAlignment\", this.horizontalAlignment);\r\n }\r\n\r\n Utils.setEnumProperty(Enums.Spacing, result, \"spacing\", this.spacing, Enums.Spacing.Default);\r\n Utils.setProperty(result, \"separator\", this.separator, false);\r\n Utils.setProperty(result, \"height\", this.height, \"auto\");\r\n\r\n if (this.supportsMinHeight) {\r\n Utils.setProperty(result, \"minHeight\", typeof this.minPixelHeight === \"number\" && !isNaN(this.minPixelHeight) ? this.minPixelHeight + \"px\" : undefined);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n setParent(value: CardElement) {\r\n this._parent = value;\r\n }\r\n\r\n getEffectiveStyle(): string {\r\n if (this.parent) {\r\n return this.parent.getEffectiveStyle();\r\n }\r\n\r\n return this.defaultStyle;\r\n }\r\n\r\n getForbiddenElementTypes(): Array {\r\n return null;\r\n }\r\n\r\n getForbiddenActionTypes(): Array {\r\n return null;\r\n }\r\n\r\n getImmediateSurroundingPadding(\r\n result: Shared.PaddingDefinition,\r\n processTop: boolean = true,\r\n processRight: boolean = true,\r\n processBottom: boolean = true,\r\n processLeft: boolean = true) {\r\n if (this.parent) {\r\n let doProcessTop = processTop && this.parent.isTopElement(this);\r\n let doProcessRight = processRight && this.parent.isRightMostElement(this);\r\n let doProcessBottom = processBottom && this.parent.isBottomElement(this);\r\n let doProcessLeft = processLeft && this.parent.isLeftMostElement(this);\r\n\r\n let effectivePadding = this.parent.getEffectivePadding();\r\n\r\n if (effectivePadding) {\r\n if (doProcessTop && effectivePadding.top != Enums.Spacing.None) {\r\n result.top = effectivePadding.top;\r\n\r\n doProcessTop = false;\r\n }\r\n\r\n if (doProcessRight && effectivePadding.right != Enums.Spacing.None) {\r\n result.right = effectivePadding.right;\r\n\r\n doProcessRight = false;\r\n }\r\n\r\n if (doProcessBottom && effectivePadding.bottom != Enums.Spacing.None) {\r\n result.bottom = effectivePadding.bottom;\r\n\r\n doProcessBottom = false;\r\n }\r\n\r\n if (doProcessLeft && effectivePadding.left != Enums.Spacing.None) {\r\n result.left = effectivePadding.left;\r\n\r\n doProcessLeft = false;\r\n }\r\n }\r\n\r\n if (doProcessTop || doProcessRight || doProcessBottom || doProcessLeft) {\r\n this.parent.getImmediateSurroundingPadding(\r\n result,\r\n doProcessTop,\r\n doProcessRight,\r\n doProcessBottom,\r\n doProcessLeft);\r\n }\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n\t\tsuper.parse(json, errors);\r\n\r\n raiseParseElementEvent(this, json, errors);\r\n\r\n this.requires.parse(json[\"requires\"], errors);\r\n this.isVisible = Utils.getBoolValue(json[\"isVisible\"], this.isVisible);\r\n this.horizontalAlignment = Utils.getEnumValue(Enums.HorizontalAlignment, json[\"horizontalAlignment\"], this.horizontalAlignment);\r\n\r\n this.spacing = Utils.getEnumValue(Enums.Spacing, json[\"spacing\"], Enums.Spacing.Default);\r\n this.separator = Utils.getBoolValue(json[\"separator\"], this.separator);\r\n\r\n let jsonSeparation = json[\"separation\"];\r\n\r\n if (jsonSeparation !== undefined) {\r\n if (jsonSeparation === \"none\") {\r\n this.spacing = Enums.Spacing.None;\r\n this.separator = false;\r\n }\r\n else if (jsonSeparation === \"strong\") {\r\n this.spacing = Enums.Spacing.Large;\r\n this.separator = true;\r\n }\r\n else if (jsonSeparation === \"default\") {\r\n this.spacing = Enums.Spacing.Default;\r\n this.separator = false;\r\n }\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The \\\"separation\\\" property is deprecated and will be removed. Use the \\\"spacing\\\" and \\\"separator\\\" properties instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n\r\n let jsonHeight = json[\"height\"];\r\n\r\n if (jsonHeight === \"auto\" || jsonHeight === \"stretch\") {\r\n this.height = jsonHeight;\r\n }\r\n\r\n if (this.supportsMinHeight) {\r\n let jsonMinHeight = json[\"minHeight\"];\r\n\r\n if (jsonMinHeight && typeof jsonMinHeight === \"string\") {\r\n let isValid = false;\r\n\r\n try {\r\n let size = Shared.SizeAndUnit.parse(jsonMinHeight, true);\r\n\r\n if (size.unit == Enums.SizeUnit.Pixel) {\r\n this.minPixelHeight = size.physicalSize;\r\n\r\n isValid = true;\r\n }\r\n }\r\n catch {\r\n // Do nothing. A parse error is emitted below\r\n }\r\n\r\n if (!isValid) {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: \"Invalid \\\"minHeight\\\" value: \" + jsonMinHeight\r\n },\r\n errors\r\n );\r\n }\r\n }\r\n }\r\n else {\r\n this.minPixelHeight = null;\r\n }\r\n }\r\n\r\n getActionCount(): number {\r\n return 0;\r\n }\r\n\r\n getActionAt(index: number): Action {\r\n throw new Error(\"Index out of range.\");\r\n }\r\n\r\n remove(): boolean {\r\n if (this.parent && this.parent instanceof CardElementContainer) {\r\n return this.parent.removeItem(this);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render(): HTMLElement {\r\n this._renderedElement = this.overrideInternalRender();\r\n this._separatorElement = this.internalRenderSeparator();\r\n\r\n if (this._renderedElement) {\r\n if (this.customCssSelector) {\r\n this._renderedElement.classList.add(this.customCssSelector);\r\n }\r\n\r\n this._renderedElement.style.boxSizing = \"border-box\";\r\n this._defaultRenderedElementDisplayMode = this._renderedElement.style.display;\r\n\r\n this.adjustRenderedElementSize(this._renderedElement);\r\n this.updateLayout(false);\r\n }\r\n else if (this.isDesignMode()) {\r\n this._renderedElement = this.createPlaceholderElement();\r\n }\r\n\r\n return this._renderedElement;\r\n }\r\n\r\n updateLayout(processChildren: boolean = true) {\r\n this.updateRenderedElementVisibility();\r\n this.applyPadding();\r\n }\r\n\r\n indexOf(cardElement: CardElement): number {\r\n return -1;\r\n }\r\n\r\n isDesignMode(): boolean {\r\n var rootElement = this.getRootElement();\r\n\r\n return rootElement instanceof AdaptiveCard && rootElement.designMode;\r\n }\r\n\r\n isRendered(): boolean {\r\n return this._renderedElement && this._renderedElement.offsetHeight > 0;\r\n }\r\n\r\n isFirstElement(element: CardElement): boolean {\r\n return true;\r\n }\r\n\r\n isLastElement(element: CardElement): boolean {\r\n return true;\r\n }\r\n\r\n isAtTheVeryLeft(): boolean {\r\n return this.parent ? this.parent.isLeftMostElement(this) && this.parent.isAtTheVeryLeft() : true;\r\n }\r\n\r\n isAtTheVeryRight(): boolean {\r\n return this.parent ? this.parent.isRightMostElement(this) && this.parent.isAtTheVeryRight() : true;\r\n }\r\n\r\n isAtTheVeryTop(): boolean {\r\n return this.parent ? this.parent.isFirstElement(this) && this.parent.isAtTheVeryTop() : true;\r\n }\r\n\r\n isAtTheVeryBottom(): boolean {\r\n return this.parent ? this.parent.isLastElement(this) && this.parent.isAtTheVeryBottom() : true;\r\n }\r\n\r\n isBleedingAtTop(): boolean {\r\n return false;\r\n }\r\n\r\n isBleedingAtBottom(): boolean {\r\n return false;\r\n }\r\n\r\n isLeftMostElement(element: CardElement): boolean {\r\n return true;\r\n }\r\n\r\n isRightMostElement(element: CardElement): boolean {\r\n return true;\r\n }\r\n\r\n isTopElement(element: CardElement): boolean {\r\n return this.isFirstElement(element);\r\n }\r\n\r\n isBottomElement(element: CardElement): boolean {\r\n return this.isLastElement(element);\r\n }\r\n\r\n isHiddenDueToOverflow(): boolean {\r\n return this._renderedElement && this._renderedElement.style.visibility == 'hidden';\r\n }\r\n\r\n getRootElement(): CardElement {\r\n var rootElement: CardElement = this;\r\n\r\n while (rootElement.parent) {\r\n rootElement = rootElement.parent;\r\n }\r\n\r\n return rootElement;\r\n }\r\n\r\n getParentContainer(): Container {\r\n var currentElement: CardElement = this.parent;\r\n\r\n while (currentElement) {\r\n if (currentElement instanceof Container) {\r\n return currentElement;\r\n }\r\n\r\n currentElement = currentElement.parent;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getAllInputs(): Array {\r\n return [];\r\n }\r\n\r\n getResourceInformation(): Array {\r\n return [];\r\n }\r\n\r\n getElementById(id: string): CardElement {\r\n return this.id === id ? this : null;\r\n }\r\n\r\n getActionById(id: string): Action {\r\n return null;\r\n }\r\n\r\n shouldFallback(): boolean {\r\n return this._shouldFallback || !this.requires.areAllMet(this.hostConfig.hostCapabilities);\r\n }\r\n\r\n setShouldFallback(value: boolean) {\r\n this._shouldFallback = value;\r\n }\r\n\r\n getEffectivePadding(): Shared.PaddingDefinition {\r\n let padding = this.getPadding();\r\n\r\n return (padding && this.allowCustomPadding) ? padding : this.getDefaultPadding();\r\n }\r\n\r\n get lang(): string {\r\n if (this._lang) {\r\n return this._lang;\r\n }\r\n else {\r\n if (this.parent) {\r\n return this.parent.lang;\r\n }\r\n else {\r\n return undefined;\r\n }\r\n }\r\n }\r\n\r\n set lang(value: string) {\r\n if (value && value != \"\") {\r\n var regEx = /^[a-z]{2,3}$/ig;\r\n\r\n var matches = regEx.exec(value);\r\n\r\n if (!matches) {\r\n throw new Error(\"Invalid language identifier: \" + value);\r\n }\r\n }\r\n\r\n this._lang = value;\r\n }\r\n\r\n get hostConfig(): HostConfig.HostConfig {\r\n if (this._hostConfig) {\r\n return this._hostConfig;\r\n }\r\n else {\r\n if (this.parent) {\r\n return this.parent.hostConfig;\r\n }\r\n else {\r\n return defaultHostConfig;\r\n }\r\n }\r\n }\r\n\r\n set hostConfig(value: HostConfig.HostConfig) {\r\n this._hostConfig = value;\r\n }\r\n\r\n get index(): number {\r\n if (this.parent) {\r\n return this.parent.indexOf(this);\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n\r\n get isInteractive(): boolean {\r\n return false;\r\n }\r\n\r\n get isStandalone(): boolean {\r\n return true;\r\n }\r\n\r\n get isInline(): boolean {\r\n return false;\r\n }\r\n\r\n get parent(): CardElement {\r\n return this._parent;\r\n }\r\n\r\n get isVisible(): boolean {\r\n return this._isVisible;\r\n }\r\n\r\n get hasVisibleSeparator(): boolean {\r\n if (this.parent && this.separatorElement) {\r\n return !this.parent.isFirstElement(this) && (this.isVisible || this.isDesignMode());\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n set isVisible(value: boolean) {\r\n // If the element is going to be hidden, reset any changes that were due\r\n // to overflow truncation (this ensures that if the element is later\r\n // un-hidden it has the right content)\r\n if (AdaptiveCard.useAdvancedCardBottomTruncation && !value) {\r\n this.undoOverflowTruncation();\r\n }\r\n\r\n if (this._isVisible != value) {\r\n this._isVisible = value;\r\n\r\n this.updateRenderedElementVisibility();\r\n\r\n if (this._renderedElement) {\r\n raiseElementVisibilityChangedEvent(this);\r\n }\r\n }\r\n }\r\n\r\n get renderedElement(): HTMLElement {\r\n return this._renderedElement;\r\n }\r\n\r\n get separatorElement(): HTMLElement {\r\n return this._separatorElement;\r\n }\r\n}\r\n\r\nexport abstract class BaseTextBlock extends CardElement {\r\n private _text: string;\r\n private _selectAction: Action = null;\r\n\r\n protected getEffectiveStyleDefinition() {\r\n return this.hostConfig.containerStyles.getStyleByName(this.getEffectiveStyle());\r\n }\r\n\r\n protected getFontSize(fontType: HostConfig.FontTypeDefinition): number {\r\n switch (this.size) {\r\n case Enums.TextSize.Small:\r\n return fontType.fontSizes.small;\r\n case Enums.TextSize.Medium:\r\n return fontType.fontSizes.medium;\r\n case Enums.TextSize.Large:\r\n return fontType.fontSizes.large;\r\n case Enums.TextSize.ExtraLarge:\r\n return fontType.fontSizes.extraLarge;\r\n default:\r\n return fontType.fontSizes.default;\r\n }\r\n }\r\n\r\n protected getColorDefinition(colorSet: HostConfig.ColorSetDefinition, color: Enums.TextColor): HostConfig.TextColorDefinition {\r\n switch (color) {\r\n case Enums.TextColor.Accent:\r\n return colorSet.accent;\r\n case Enums.TextColor.Dark:\r\n return colorSet.dark;\r\n case Enums.TextColor.Light:\r\n return colorSet.light;\r\n case Enums.TextColor.Good:\r\n return colorSet.good;\r\n case Enums.TextColor.Warning:\r\n return colorSet.warning;\r\n case Enums.TextColor.Attention:\r\n return colorSet.attention;\r\n default:\r\n return colorSet.default;\r\n }\r\n }\r\n\r\n protected setText(value: string) {\r\n this._text = value;\r\n }\r\n\r\n size: Enums.TextSize = Enums.TextSize.Default;\r\n weight: Enums.TextWeight = Enums.TextWeight.Default;\r\n color: Enums.TextColor = Enums.TextColor.Default;\r\n isSubtle: boolean = false;\r\n fontType?: Enums.FontType = null;\r\n\r\n asString(): string {\r\n return this.text;\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setEnumProperty(Enums.TextSize, result, \"size\", this.size, Enums.TextSize.Default);\r\n Utils.setEnumProperty(Enums.TextWeight, result, \"weight\", this.weight, Enums.TextWeight.Default);\r\n Utils.setEnumProperty(Enums.TextColor, result, \"color\", this.color, Enums.TextColor.Default);\r\n Utils.setProperty(result, \"text\", this.text);\r\n Utils.setProperty(result, \"isSubtle\", this.isSubtle, false);\r\n Utils.setEnumProperty(Enums.FontType, result, \"fontType\", this.fontType, Enums.FontType.Default);\r\n\r\n return result;\r\n }\r\n\r\n applyStylesTo(targetElement: HTMLElement) {\r\n let fontType = this.hostConfig.getFontTypeDefinition(this.fontType);\r\n\r\n if (fontType.fontFamily) {\r\n targetElement.style.fontFamily = fontType.fontFamily;\r\n }\r\n\r\n let fontSize: number;\r\n\r\n switch (this.size) {\r\n case Enums.TextSize.Small:\r\n fontSize = fontType.fontSizes.small;\r\n break;\r\n case Enums.TextSize.Medium:\r\n fontSize = fontType.fontSizes.medium;\r\n break;\r\n case Enums.TextSize.Large:\r\n fontSize = fontType.fontSizes.large;\r\n break;\r\n case Enums.TextSize.ExtraLarge:\r\n fontSize = fontType.fontSizes.extraLarge;\r\n break;\r\n default:\r\n fontSize = fontType.fontSizes.default;\r\n break;\r\n }\r\n\r\n targetElement.style.fontSize = fontSize + \"px\";\r\n\r\n let colorDefinition = this.getColorDefinition(this.getEffectiveStyleDefinition().foregroundColors, this.effectiveColor);\r\n\r\n targetElement.style.color = Utils.stringToCssColor(this.isSubtle ? colorDefinition.subtle : colorDefinition.default);\r\n\r\n let fontWeight: number;\r\n\r\n switch (this.weight) {\r\n case Enums.TextWeight.Lighter:\r\n fontWeight = fontType.fontWeights.lighter;\r\n break;\r\n case Enums.TextWeight.Bolder:\r\n fontWeight = fontType.fontWeights.bolder;\r\n break;\r\n default:\r\n fontWeight = fontType.fontWeights.default;\r\n break;\r\n }\r\n\r\n targetElement.style.fontWeight = fontWeight.toString();\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.text = Utils.getStringValue(json[\"text\"]);\r\n\r\n let sizeString = Utils.getStringValue(json[\"size\"]);\r\n\r\n if (sizeString && sizeString.toLowerCase() === \"normal\") {\r\n this.size = Enums.TextSize.Default;\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The TextBlock.size value \\\"normal\\\" is deprecated and will be removed. Use \\\"default\\\" instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n else {\r\n this.size = Utils.getEnumValue(Enums.TextSize, sizeString, this.size);\r\n }\r\n\r\n let weightString = Utils.getStringValue(json[\"weight\"]);\r\n\r\n if (weightString && weightString.toLowerCase() === \"normal\") {\r\n this.weight = Enums.TextWeight.Default;\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The TextBlock.weight value \\\"normal\\\" is deprecated and will be removed. Use \\\"default\\\" instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n else {\r\n this.weight = Utils.getEnumValue(Enums.TextWeight, weightString, this.weight);\r\n }\r\n\r\n this.color = Utils.getEnumValue(Enums.TextColor, json[\"color\"], this.color);\r\n this.isSubtle = Utils.getBoolValue(json[\"isSubtle\"], this.isSubtle);\r\n this.fontType = Utils.getEnumValue(Enums.FontType, json[\"fontType\"], this.fontType);\r\n }\r\n\r\n get effectiveColor(): Enums.TextColor {\r\n return this.color ? this.color : Enums.TextColor.Default;\r\n }\r\n\r\n get text(): string {\r\n return this._text;\r\n }\r\n\r\n set text(value: string) {\r\n this.setText(value);\r\n }\r\n\r\n get selectAction(): Action {\r\n return this._selectAction;\r\n }\r\n\r\n set selectAction(value: Action) {\r\n this._selectAction = value;\r\n\r\n if (this._selectAction) {\r\n this._selectAction.setParent(this);\r\n }\r\n }\r\n}\r\n\r\nexport class TextBlock extends BaseTextBlock {\r\n private _computedLineHeight: number;\r\n private _originalInnerHtml: string;\r\n private _processedText: string = null;\r\n private _treatAsPlainText: boolean = true;\r\n\r\n private restoreOriginalContent() {\r\n var maxHeight = this.maxLines\r\n ? (this._computedLineHeight * this.maxLines) + 'px'\r\n : null;\r\n\r\n this.renderedElement.style.maxHeight = maxHeight;\r\n this.renderedElement.innerHTML = this._originalInnerHtml;\r\n }\r\n\r\n private truncateIfSupported(maxHeight: number): boolean {\r\n // For now, only truncate TextBlocks that contain just a single\r\n // paragraph -- since the maxLines calculation doesn't take into\r\n // account Markdown lists\r\n var children = this.renderedElement.children;\r\n var isTextOnly = !children.length;\r\n\r\n var truncationSupported = isTextOnly || children.length == 1\r\n && (children[0]).tagName.toLowerCase() == 'p';\r\n\r\n if (truncationSupported) {\r\n var element = isTextOnly\r\n ? this.renderedElement\r\n : children[0];\r\n\r\n Utils.truncate(element, maxHeight, this._computedLineHeight);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected setText(value: string) {\r\n super.setText(value);\r\n\r\n this._processedText = null;\r\n }\r\n\r\n protected getRenderedDomElementType(): string {\r\n return \"div\";\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n this._processedText = null;\r\n\r\n if (!Utils.isNullOrEmpty(this.text)) {\r\n let hostConfig = this.hostConfig;\r\n\r\n let element = document.createElement(this.getRenderedDomElementType());\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-textBlock\"));\r\n element.style.overflow = \"hidden\";\r\n\r\n this.applyStylesTo(element);\r\n\r\n if (this.selectAction) {\r\n element.onclick = (e) => {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.selectAction.execute();\r\n }\r\n\r\n if (hostConfig.supportsInteractivity) {\r\n element.tabIndex = 0\r\n element.setAttribute(\"role\", this.selectAction.getAriaRole());\r\n element.setAttribute(\"aria-label\", this.selectAction.title);\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\r\n }\r\n }\r\n\r\n if (!this._processedText) {\r\n this._treatAsPlainText = true;\r\n\r\n let formattedText = TextFormatters.formatText(this.lang, this.text);\r\n\r\n if (this.useMarkdown) {\r\n if (AdaptiveCard.allowMarkForTextHighlighting) {\r\n formattedText = formattedText.replace(//g, \"===\").replace(/<\\/mark>/g, \"/==\");\r\n }\r\n\r\n let markdownProcessingResult = AdaptiveCard.applyMarkdown(formattedText);\r\n\r\n if (markdownProcessingResult.didProcess && markdownProcessingResult.outputHtml) {\r\n this._processedText = markdownProcessingResult.outputHtml;\r\n this._treatAsPlainText = false;\r\n\r\n // Only process tag if markdown processing was applied because\r\n // markdown processing is also responsible for sanitizing the input string\r\n if (AdaptiveCard.allowMarkForTextHighlighting) {\r\n let markStyle: string = \"\";\r\n let effectiveStyle = this.getEffectiveStyleDefinition();\r\n\r\n if (effectiveStyle.highlightBackgroundColor) {\r\n markStyle += \"background-color: \" + effectiveStyle.highlightBackgroundColor + \";\";\r\n }\r\n\r\n if (effectiveStyle.highlightForegroundColor) {\r\n markStyle += \"color: \" + effectiveStyle.highlightForegroundColor + \";\";\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(markStyle)) {\r\n markStyle = 'style=\"' + markStyle + '\"';\r\n }\r\n\r\n this._processedText = this._processedText.replace(/===/g, \"\").replace(/\\/==/g, \"\");\r\n }\r\n } else {\r\n this._processedText = formattedText;\r\n this._treatAsPlainText = true;\r\n }\r\n }\r\n else {\r\n this._processedText = formattedText;\r\n this._treatAsPlainText = true;\r\n }\r\n }\r\n\r\n if (this._treatAsPlainText) {\r\n element.innerText = this._processedText;\r\n }\r\n else {\r\n element.innerHTML = this._processedText;\r\n }\r\n\r\n if (element.firstElementChild instanceof HTMLElement) {\r\n let firstElementChild = element.firstElementChild;\r\n firstElementChild.style.marginTop = \"0px\";\r\n firstElementChild.style.width = \"100%\";\r\n\r\n if (!this.wrap) {\r\n firstElementChild.style.overflow = \"hidden\";\r\n firstElementChild.style.textOverflow = \"ellipsis\";\r\n }\r\n }\r\n\r\n if (element.lastElementChild instanceof HTMLElement) {\r\n (element.lastElementChild).style.marginBottom = \"0px\";\r\n }\r\n\r\n let anchors = element.getElementsByTagName(\"a\");\r\n\r\n for (let i = 0; i < anchors.length; i++) {\r\n let anchor = anchors[i];\r\n anchor.classList.add(hostConfig.makeCssClassName(\"ac-anchor\"));\r\n anchor.target = \"_blank\";\r\n anchor.onclick = (e) => {\r\n if (raiseAnchorClickedEvent(this, e.target as HTMLAnchorElement)) {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n }\r\n }\r\n }\r\n\r\n if (this.wrap) {\r\n element.style.wordWrap = \"break-word\";\r\n\r\n if (this.maxLines > 0) {\r\n element.style.maxHeight = (this._computedLineHeight * this.maxLines) + \"px\";\r\n element.style.overflow = \"hidden\";\r\n }\r\n }\r\n else {\r\n element.style.whiteSpace = \"nowrap\";\r\n element.style.textOverflow = \"ellipsis\";\r\n }\r\n\r\n if (AdaptiveCard.useAdvancedTextBlockTruncation || AdaptiveCard.useAdvancedCardBottomTruncation) {\r\n this._originalInnerHtml = element.innerHTML;\r\n }\r\n\r\n return element;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n protected truncateOverflow(maxHeight: number): boolean {\r\n if (maxHeight >= this._computedLineHeight) {\r\n return this.truncateIfSupported(maxHeight);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected undoOverflowTruncation() {\r\n this.restoreOriginalContent();\r\n\r\n if (AdaptiveCard.useAdvancedTextBlockTruncation && this.maxLines) {\r\n var maxHeight = this._computedLineHeight * this.maxLines;\r\n this.truncateIfSupported(maxHeight);\r\n }\r\n }\r\n\r\n wrap: boolean = false;\r\n maxLines: number;\r\n useMarkdown: boolean = true;\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"wrap\", this.wrap, false);\r\n Utils.setNumberProperty(result, \"maxLines\", this.maxLines);\r\n\r\n return result;\r\n }\r\n\r\n applyStylesTo(targetElement: HTMLElement) {\r\n super.applyStylesTo(targetElement);\r\n\r\n let parentContainer = this.getParentContainer();\r\n let isRtl = parentContainer ? parentContainer.isRtl() : false;\r\n\r\n switch (this.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n targetElement.style.textAlign = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n targetElement.style.textAlign = isRtl ? \"left\" : \"right\";\r\n break;\r\n default:\r\n targetElement.style.textAlign = isRtl ? \"right\" : \"left\";\r\n break;\r\n }\r\n\r\n let lineHeights = this.hostConfig.lineHeights;\r\n\r\n if (lineHeights) {\r\n switch (this.size) {\r\n case Enums.TextSize.Small:\r\n this._computedLineHeight = lineHeights.small;\r\n break;\r\n case Enums.TextSize.Medium:\r\n this._computedLineHeight = lineHeights.medium;\r\n break;\r\n case Enums.TextSize.Large:\r\n this._computedLineHeight = lineHeights.large;\r\n break;\r\n case Enums.TextSize.ExtraLarge:\r\n this._computedLineHeight = lineHeights.extraLarge;\r\n break;\r\n default:\r\n this._computedLineHeight = lineHeights.default;\r\n break;\r\n }\r\n }\r\n else {\r\n // Looks like 1.33 is the magic number to compute line-height\r\n // from font size.\r\n this._computedLineHeight = this.getFontSize(this.hostConfig.getFontTypeDefinition(this.fontType)) * 1.33;\r\n }\r\n\r\n targetElement.style.lineHeight = this._computedLineHeight + \"px\";\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.wrap = Utils.getBoolValue(json[\"wrap\"], this.wrap);\r\n this.maxLines = Utils.getNumberValue(json[\"maxLines\"]);\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"TextBlock\";\r\n }\r\n\r\n updateLayout(processChildren: boolean = false) {\r\n super.updateLayout(processChildren);\r\n\r\n if (AdaptiveCard.useAdvancedTextBlockTruncation && this.maxLines && this.isRendered()) {\r\n // Reset the element's innerHTML in case the available room for\r\n // content has increased\r\n this.restoreOriginalContent();\r\n this.truncateIfSupported(this._computedLineHeight * this.maxLines);\r\n }\r\n }\r\n}\r\n\r\nclass Label extends TextBlock {\r\n protected getRenderedDomElementType(): string {\r\n return \"label\";\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n let renderedElement = super.internalRender();\r\n\r\n if (renderedElement && !Utils.isNullOrEmpty(this.forElementId)) {\r\n renderedElement.htmlFor = this.forElementId;\r\n }\r\n\r\n return renderedElement;\r\n }\r\n\r\n forElementId: string;\r\n}\r\n\r\nexport class TextRun extends BaseTextBlock {\r\n protected internalRender(): HTMLElement {\r\n if (!Utils.isNullOrEmpty(this.text)) {\r\n let hostConfig = this.hostConfig;\r\n\r\n let formattedText = TextFormatters.formatText(this.lang, this.text);\r\n\r\n let element = document.createElement(\"span\");\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-textRun\"));\r\n\r\n this.applyStylesTo(element);\r\n\r\n if (this.selectAction && hostConfig.supportsInteractivity) {\r\n let anchor = document.createElement(\"a\");\r\n anchor.classList.add(hostConfig.makeCssClassName(\"ac-anchor\"));\r\n anchor.href = this.selectAction.getHref();\r\n anchor.target = \"_blank\";\r\n anchor.onclick = (e) => {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.selectAction.execute();\r\n }\r\n\r\n anchor.innerText = formattedText;\r\n\r\n element.appendChild(anchor);\r\n }\r\n else {\r\n element.innerText = formattedText;\r\n }\r\n\r\n return element;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n italic: boolean = false;\r\n strikethrough: boolean = false;\r\n highlight: boolean = false;\r\n\r\n applyStylesTo(targetElement: HTMLElement) {\r\n super.applyStylesTo(targetElement);\r\n\r\n if (this.italic) {\r\n targetElement.style.fontStyle = \"italic\";\r\n }\r\n\r\n if (this.strikethrough) {\r\n targetElement.style.textDecoration = \"line-through\";\r\n }\r\n\r\n if (this.highlight) {\r\n let colorDefinition = this.getColorDefinition(this.getEffectiveStyleDefinition().foregroundColors, this.effectiveColor);\r\n\r\n targetElement.style.backgroundColor = Utils.stringToCssColor(this.isSubtle ? colorDefinition.highlightColors.subtle : colorDefinition.highlightColors.default);\r\n }\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"italic\", this.italic, false);\r\n Utils.setProperty(result, \"strikethrough\", this.strikethrough, false);\r\n Utils.setProperty(result, \"highlight\", this.highlight, false);\r\n\r\n if (this.selectAction) {\r\n Utils.setProperty(result, \"selectAction\", this.selectAction.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.italic = Utils.getBoolValue(json[\"italic\"], this.italic);\r\n this.strikethrough = Utils.getBoolValue(json[\"strikethrough\"], this.strikethrough);\r\n this.highlight = Utils.getBoolValue(json[\"highlight\"], this.highlight);\r\n this.selectAction = createActionInstance(\r\n this,\r\n json[\"selectAction\"],\r\n [ShowCardAction.JsonTypeName],\r\n !this.isDesignMode(),\r\n errors);\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"TextRun\";\r\n }\r\n\r\n get isStandalone(): boolean {\r\n return false;\r\n }\r\n\r\n get isInline(): boolean {\r\n return true;\r\n }\r\n}\r\n\r\nexport class RichTextBlock extends CardElement {\r\n private _inlines: CardElement[] = [];\r\n\r\n private internalAddInline(inline: CardElement, forceAdd: boolean = false) {\r\n if (!inline.isInline) {\r\n throw new Error(\"RichTextBlock.addInline: the specified card element cannot be used as a RichTextBlock inline.\");\r\n }\r\n\r\n let doAdd: boolean = inline.parent == null || forceAdd;\r\n\r\n if (!doAdd && inline.parent != this) {\r\n throw new Error(\"RichTextBlock.addInline: the specified inline already belongs to another RichTextBlock.\");\r\n }\r\n else {\r\n inline.setParent(this);\r\n\r\n this._inlines.push(inline);\r\n }\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n if (this._inlines.length > 0) {\r\n let element = document.createElement(\"div\");\r\n element.className = this.hostConfig.makeCssClassName(\"ac-richTextBlock\");\r\n\r\n let parentContainer = this.getParentContainer();\r\n let isRtl = parentContainer ? parentContainer.isRtl() : false;\r\n\r\n switch (this.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n element.style.textAlign = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n element.style.textAlign = isRtl ? \"left\" : \"right\";\r\n break;\r\n default:\r\n element.style.textAlign = isRtl ? \"right\" : \"left\";\r\n break;\r\n }\r\n\r\n let renderedInlines: number = 0;\r\n\r\n for (let inline of this._inlines) {\r\n let renderedInline = inline.render();\r\n\r\n if (renderedInline) {\r\n element.appendChild(renderedInline);\r\n\r\n renderedInlines++;\r\n }\r\n }\r\n\r\n if (renderedInlines > 0) {\r\n return element;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n asString(): string {\r\n let result = \"\";\r\n\r\n for (let inline of this._inlines) {\r\n result += inline.asString();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this._inlines = [];\r\n\r\n if (Array.isArray(json[\"inlines\"])) {\r\n for (let jsonInline of json[\"inlines\"]) {\r\n let inline: CardElement;\r\n\r\n if (typeof jsonInline === \"string\") {\r\n let textRun = new TextRun();\r\n textRun.text = jsonInline;\r\n\r\n inline = textRun;\r\n }\r\n else {\r\n inline = createElementInstance(\r\n this,\r\n jsonInline,\r\n false, // No fallback for inlines in 1.2\r\n errors);\r\n }\r\n\r\n if (inline) {\r\n this.internalAddInline(inline, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n if (this._inlines.length > 0) {\r\n let jsonInlines: any[] = [];\r\n\r\n for (let inline of this._inlines) {\r\n jsonInlines.push(inline.toJSON());\r\n }\r\n\r\n Utils.setProperty(result, \"inlines\", jsonInlines);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"RichTextBlock\";\r\n }\r\n\r\n getInlineCount(): number {\r\n return this._inlines.length;\r\n }\r\n\r\n getInlineAt(index: number): CardElement {\r\n if (index >= 0 && index < this._inlines.length) {\r\n return this._inlines[index];\r\n }\r\n else {\r\n throw new Error(\"RichTextBlock.getInlineAt: Index out of range (\" + index + \")\");\r\n }\r\n }\r\n\r\n addInline(inline: CardElement) {\r\n this.internalAddInline(inline);\r\n }\r\n\r\n removeInline(inline: CardElement): boolean {\r\n let index = this._inlines.indexOf(inline);\r\n\r\n if (index >= 0) {\r\n this._inlines[index].setParent(null);\r\n this._inlines.splice(index, 1);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport class Fact extends SerializableObject {\r\n name: string;\r\n value: string;\r\n\r\n constructor(name: string = undefined, value: string = undefined) {\r\n super();\r\n\r\n this.name = name;\r\n this.value = value;\r\n }\r\n\r\n parse(json: any) {\r\n super.parse(json);\r\n\r\n this.name = Utils.getStringValue(json[\"title\"]);\r\n this.value = Utils.getStringValue(json[\"value\"]);\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"title\", this.name);\r\n Utils.setProperty(result, \"value\", this.value);\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport class FactSet extends CardElement {\r\n protected get useDefaultSizing(): boolean {\r\n return false;\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n let element: HTMLElement = null;\r\n let hostConfig = this.hostConfig;\r\n\r\n if (this.facts.length > 0) {\r\n element = document.createElement(\"table\");\r\n element.style.borderWidth = \"0px\";\r\n element.style.borderSpacing = \"0px\";\r\n element.style.borderStyle = \"none\";\r\n element.style.borderCollapse = \"collapse\";\r\n element.style.display = \"block\";\r\n element.style.overflow = \"hidden\";\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-factset\"));\r\n\r\n for (let i = 0; i < this.facts.length; i++) {\r\n let trElement = document.createElement(\"tr\");\r\n\r\n if (i > 0) {\r\n trElement.style.marginTop = hostConfig.factSet.spacing + \"px\";\r\n }\r\n\r\n // Title column\r\n let tdElement = document.createElement(\"td\");\r\n tdElement.style.padding = \"0\";\r\n tdElement.classList.add(hostConfig.makeCssClassName(\"ac-fact-title\"));\r\n\r\n if (hostConfig.factSet.title.maxWidth) {\r\n tdElement.style.maxWidth = hostConfig.factSet.title.maxWidth + \"px\";\r\n }\r\n\r\n tdElement.style.verticalAlign = \"top\";\r\n\r\n let textBlock = new TextBlock();\r\n textBlock.setParent(this);\r\n textBlock.text = (Utils.isNullOrEmpty(this.facts[i].name) && this.isDesignMode()) ? \"Title\" : this.facts[i].name;\r\n textBlock.size = hostConfig.factSet.title.size;\r\n textBlock.color = hostConfig.factSet.title.color;\r\n textBlock.isSubtle = hostConfig.factSet.title.isSubtle;\r\n textBlock.weight = hostConfig.factSet.title.weight;\r\n textBlock.wrap = hostConfig.factSet.title.wrap;\r\n textBlock.spacing = Enums.Spacing.None;\r\n\r\n Utils.appendChild(tdElement, textBlock.render());\r\n Utils.appendChild(trElement, tdElement);\r\n\r\n // Spacer column\r\n tdElement = document.createElement(\"td\");\r\n tdElement.style.width = \"10px\";\r\n\r\n Utils.appendChild(trElement, tdElement);\r\n\r\n // Value column\r\n tdElement = document.createElement(\"td\");\r\n tdElement.style.padding = \"0\";\r\n tdElement.style.verticalAlign = \"top\";\r\n tdElement.classList.add(hostConfig.makeCssClassName(\"ac-fact-value\"));\r\n\r\n textBlock = new TextBlock();\r\n textBlock.setParent(this);\r\n textBlock.text = this.facts[i].value;\r\n textBlock.size = hostConfig.factSet.value.size;\r\n textBlock.color = hostConfig.factSet.value.color;\r\n textBlock.isSubtle = hostConfig.factSet.value.isSubtle;\r\n textBlock.weight = hostConfig.factSet.value.weight;\r\n textBlock.wrap = hostConfig.factSet.value.wrap;\r\n textBlock.spacing = Enums.Spacing.None;\r\n\r\n Utils.appendChild(tdElement, textBlock.render());\r\n Utils.appendChild(trElement, tdElement);\r\n Utils.appendChild(element, trElement);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n facts: Array = [];\r\n\r\n getJsonTypeName(): string {\r\n return \"FactSet\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setArrayProperty(result, \"facts\", this.facts);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.facts = [];\r\n\r\n\t\tlet jsonFacts = json[\"facts\"];\r\n\r\n\t\tif (Array.isArray(jsonFacts)) {\r\n\t\t\tfor (let jsonFact of jsonFacts) {\r\n\t\t\t\tlet fact = new Fact();\r\n\t\t\t\tfact.parse(jsonFact);\r\n\r\n\t\t\t\tthis.facts.push(fact);\r\n\t\t\t}\r\n\t\t}\r\n }\r\n}\r\n\r\nexport class Image extends CardElement {\r\n private _selectAction: Action;\r\n\r\n private parseDimension(name: string, value: any, errors: Array): number {\r\n if (value) {\r\n if (typeof value === \"string\") {\r\n try {\r\n let size = Shared.SizeAndUnit.parse(value);\r\n\r\n if (size.unit == Enums.SizeUnit.Pixel) {\r\n return size.physicalSize;\r\n }\r\n }\r\n catch {\r\n // Ignore error\r\n }\r\n }\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: \"Invalid image \" + name + \": \" + value\r\n },\r\n errors\r\n );\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n private applySize(element: HTMLElement) {\r\n if (this.pixelWidth || this.pixelHeight) {\r\n if (this.pixelWidth) {\r\n element.style.width = this.pixelWidth + \"px\";\r\n }\r\n\r\n if (this.pixelHeight) {\r\n element.style.height = this.pixelHeight + \"px\";\r\n }\r\n }\r\n else {\r\n switch (this.size) {\r\n case Enums.Size.Stretch:\r\n element.style.width = \"100%\";\r\n break;\r\n case Enums.Size.Auto:\r\n element.style.maxWidth = \"100%\";\r\n break;\r\n case Enums.Size.Small:\r\n element.style.width = this.hostConfig.imageSizes.small + \"px\";\r\n break;\r\n case Enums.Size.Large:\r\n element.style.width = this.hostConfig.imageSizes.large + \"px\";\r\n break;\r\n case Enums.Size.Medium:\r\n element.style.width = this.hostConfig.imageSizes.medium + \"px\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n protected get useDefaultSizing() {\r\n return false;\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n var element: HTMLElement = null;\r\n\r\n if (!Utils.isNullOrEmpty(this.url)) {\r\n element = document.createElement(\"div\");\r\n element.style.display = \"flex\";\r\n element.style.alignItems = \"flex-start\";\r\n\r\n element.onkeypress = (e) => {\r\n if (this.selectAction && (e.keyCode == 13 || e.keyCode == 32)) { // enter or space pressed\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.selectAction.execute();\r\n }\r\n }\r\n\r\n element.onclick = (e) => {\r\n if (this.selectAction) {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.selectAction.execute();\r\n }\r\n }\r\n\r\n switch (this.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n element.style.justifyContent = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n element.style.justifyContent = \"flex-end\";\r\n break;\r\n default:\r\n element.style.justifyContent = \"flex-start\";\r\n break;\r\n }\r\n\r\n // Cache hostConfig to avoid walking the parent hierarchy multiple times\r\n let hostConfig = this.hostConfig;\r\n\r\n let imageElement = document.createElement(\"img\");\r\n imageElement.onload = (e: Event) => {\r\n raiseImageLoadedEvent(this);\r\n }\r\n imageElement.onerror = (e: Event) => {\r\n let card = this.getRootElement() as AdaptiveCard;\r\n\r\n this.renderedElement.innerHTML = \"\";\r\n\r\n if (card && card.designMode) {\r\n let errorElement = document.createElement(\"div\");\r\n errorElement.style.display = \"flex\";\r\n errorElement.style.alignItems = \"center\";\r\n errorElement.style.justifyContent = \"center\";\r\n errorElement.style.backgroundColor = \"#EEEEEE\";\r\n errorElement.style.color = \"black\";\r\n errorElement.innerText = \":-(\";\r\n errorElement.style.padding = \"10px\";\r\n\r\n this.applySize(errorElement);\r\n\r\n this.renderedElement.appendChild(errorElement);\r\n }\r\n\r\n raiseImageLoadedEvent(this);\r\n }\r\n imageElement.style.maxHeight = \"100%\";\r\n imageElement.style.minWidth = \"0\";\r\n imageElement.classList.add(hostConfig.makeCssClassName(\"ac-image\"));\r\n\r\n if (this.selectAction != null && hostConfig.supportsInteractivity) {\r\n imageElement.tabIndex = 0\r\n imageElement.setAttribute(\"role\", this.selectAction.getAriaRole());\r\n imageElement.setAttribute(\"aria-label\", this.selectAction.title);\r\n imageElement.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\r\n }\r\n\r\n this.applySize(imageElement);\r\n\r\n if (this.style === Enums.ImageStyle.Person) {\r\n imageElement.style.borderRadius = \"50%\";\r\n imageElement.style.backgroundPosition = \"50% 50%\";\r\n imageElement.style.backgroundRepeat = \"no-repeat\";\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.backgroundColor)) {\r\n imageElement.style.backgroundColor = Utils.stringToCssColor(this.backgroundColor);\r\n }\r\n\r\n imageElement.src = this.url;\r\n if (!Utils.isNullOrEmpty(this.altText)) {\r\n imageElement.alt = this.altText;\r\n }\r\n\r\n element.appendChild(imageElement);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n style: Enums.ImageStyle = Enums.ImageStyle.Default;\r\n backgroundColor: string;\r\n url: string;\r\n size: Enums.Size = Enums.Size.Auto;\r\n width: Shared.SizeAndUnit;\r\n pixelWidth?: number = null;\r\n pixelHeight?: number = null;\r\n altText: string = \"\";\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n if (this._selectAction) {\r\n Utils.setProperty(result, \"selectAction\", this._selectAction.toJSON());\r\n }\r\n\r\n Utils.setEnumProperty(Enums.ImageStyle, result, \"style\", this.style, Enums.ImageStyle.Default);\r\n Utils.setProperty(result, \"backgroundColor\", this.backgroundColor);\r\n Utils.setProperty(result, \"url\", this.url);\r\n Utils.setEnumProperty(Enums.Size, result, \"size\", this.size, Enums.Size.Auto);\r\n\r\n if (this.pixelWidth) {\r\n Utils.setProperty(result, \"width\", this.pixelWidth + \"px\");\r\n }\r\n\r\n if (this.pixelHeight) {\r\n Utils.setProperty(result, \"height\", this.pixelHeight + \"px\");\r\n }\r\n\r\n Utils.setProperty(result, \"altText\", this.altText);\r\n\r\n return result;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Image\";\r\n }\r\n\r\n getActionById(id: string) {\r\n var result = super.getActionById(id);\r\n\r\n if (!result && this.selectAction) {\r\n result = this.selectAction.getActionById(id);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.url = Utils.getStringValue(json[\"url\"]);\r\n this.backgroundColor = Utils.getStringValue(json[\"backgroundColor\"]);\r\n\r\n let styleString = Utils.getStringValue(json[\"style\"]);\r\n\r\n if (styleString && styleString.toLowerCase() === \"normal\") {\r\n this.style = Enums.ImageStyle.Default;\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The Image.style value \\\"normal\\\" is deprecated and will be removed. Use \\\"default\\\" instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n else {\r\n this.style = Utils.getEnumValue(Enums.ImageStyle, styleString, this.style);\r\n }\r\n\r\n this.size = Utils.getEnumValue(Enums.Size, json[\"size\"], this.size);\r\n\t\tthis.altText = Utils.getStringValue(json[\"altText\"]);\r\n\r\n // pixelWidth and pixelHeight are only parsed for backwards compatibility.\r\n // Payloads should use the width and height proerties instead.\r\n if (json[\"pixelWidth\"] && typeof json[\"pixelWidth\"] === \"number\") {\r\n this.pixelWidth = json[\"pixelWidth\"];\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The pixelWidth property is deprecated and will be removed. Use the width property instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n\r\n if (json[\"pixelHeight\"] && typeof json[\"pixelHeight\"] === \"number\") {\r\n this.pixelHeight = json[\"pixelHeight\"];\r\n\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The pixelHeight property is deprecated and will be removed. Use the height property instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n\r\n let size = this.parseDimension(\"width\", json[\"width\"], errors);\r\n\r\n if (size > 0) {\r\n this.pixelWidth = size;\r\n }\r\n\r\n size = this.parseDimension(\"height\", json[\"height\"], errors);\r\n\r\n if (size > 0) {\r\n this.pixelHeight = size;\r\n }\r\n\r\n this.selectAction = createActionInstance(\r\n this,\r\n json[\"selectAction\"],\r\n [ShowCardAction.JsonTypeName],\r\n !this.isDesignMode(),\r\n errors);\r\n }\r\n\r\n getResourceInformation(): Array {\r\n if (!Utils.isNullOrEmpty(this.url)) {\r\n return [{ url: this.url, mimeType: \"image\" }]\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n get selectAction(): Action {\r\n return this._selectAction;\r\n }\r\n\r\n set selectAction(value: Action) {\r\n this._selectAction = value;\r\n\r\n if (this._selectAction) {\r\n this._selectAction.setParent(this);\r\n }\r\n }\r\n}\r\n\r\nexport abstract class CardElementContainer extends CardElement {\r\n private _selectAction: Action = null;\r\n\r\n protected isElementAllowed(element: CardElement, forbiddenElementTypes: Array) {\r\n if (!this.hostConfig.supportsInteractivity && element.isInteractive) {\r\n return false;\r\n }\r\n\r\n if (forbiddenElementTypes) {\r\n for (let forbiddenElementType of forbiddenElementTypes) {\r\n if (element.getJsonTypeName() === forbiddenElementType) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected applyPadding() {\r\n super.applyPadding();\r\n\r\n if (!this.renderedElement) {\r\n return;\r\n }\r\n\r\n let physicalPadding = new Shared.SpacingDefinition();\r\n\r\n if (this.getEffectivePadding()) {\r\n physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(this.getEffectivePadding());\r\n }\r\n\r\n this.renderedElement.style.paddingTop = physicalPadding.top + \"px\";\r\n this.renderedElement.style.paddingRight = physicalPadding.right + \"px\";\r\n this.renderedElement.style.paddingBottom = physicalPadding.bottom + \"px\";\r\n this.renderedElement.style.paddingLeft = physicalPadding.left + \"px\";\r\n\r\n this.renderedElement.style.marginRight = \"0\";\r\n this.renderedElement.style.marginLeft = \"0\";\r\n }\r\n\r\n protected getSelectAction(): Action {\r\n return this._selectAction;\r\n }\r\n\r\n protected setSelectAction(value: Action) {\r\n this._selectAction = value;\r\n\r\n if (this._selectAction) {\r\n this._selectAction.setParent(this);\r\n }\r\n }\r\n\r\n protected get isSelectable(): boolean {\r\n return false;\r\n }\r\n\r\n abstract getItemCount(): number;\r\n abstract getItemAt(index: number): CardElement;\r\n abstract getFirstVisibleRenderedItem(): CardElement;\r\n abstract getLastVisibleRenderedItem(): CardElement;\r\n abstract removeItem(item: CardElement): boolean;\r\n\r\n allowVerticalOverflow: boolean = false;\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n if (this.isSelectable) {\r\n this._selectAction = createActionInstance(\r\n this,\r\n json[\"selectAction\"],\r\n [ShowCardAction.JsonTypeName],\r\n !this.isDesignMode(),\r\n errors);\r\n }\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n if (this._selectAction && this.isSelectable) {\r\n Utils.setProperty(result, \"selectAction\", this._selectAction.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n for (let i = 0; i < this.getItemCount(); i++) {\r\n let item = this.getItemAt(i);\r\n\r\n if (!this.hostConfig.supportsInteractivity && item.isInteractive) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.InteractivityNotAllowed,\r\n message: \"Interactivity is not allowed.\"\r\n });\r\n }\r\n\r\n if (!this.isElementAllowed(item, this.getForbiddenElementTypes())) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.InteractivityNotAllowed,\r\n message: \"Elements of type \" + item.getJsonTypeName() + \" are not allowed in this container.\"\r\n });\r\n }\r\n\r\n item.internalValidateProperties(context);\r\n }\r\n\r\n if (this._selectAction) {\r\n this._selectAction.internalValidateProperties(context);\r\n }\r\n }\r\n\r\n render(): HTMLElement {\r\n let element = super.render();\r\n let hostConfig = this.hostConfig;\r\n\r\n if (this.allowVerticalOverflow) {\r\n element.style.overflowX = \"hidden\";\r\n element.style.overflowY = \"auto\";\r\n }\r\n\r\n if (element && this.isSelectable && this._selectAction && hostConfig.supportsInteractivity) {\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-selectable\"));\r\n element.tabIndex = 0;\r\n element.setAttribute(\"role\", this._selectAction.getAriaRole());\r\n element.setAttribute(\"aria-label\", this._selectAction.title);\r\n\r\n element.onclick = (e) => {\r\n if (this._selectAction != null) {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this._selectAction.execute();\r\n }\r\n }\r\n\r\n element.onkeypress = (e) => {\r\n if (this._selectAction != null && (e.keyCode == 13 || e.keyCode == 32)) {\r\n // Enter or space pressed\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this._selectAction.execute();\r\n }\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n updateLayout(processChildren: boolean = true) {\r\n super.updateLayout(processChildren);\r\n\r\n if (processChildren) {\r\n for (var i = 0; i < this.getItemCount(); i++) {\r\n this.getItemAt(i).updateLayout();\r\n }\r\n }\r\n }\r\n\r\n getAllInputs(): Array {\r\n var result: Array = [];\r\n\r\n for (var i = 0; i < this.getItemCount(); i++) {\r\n result = result.concat(this.getItemAt(i).getAllInputs());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getResourceInformation(): Array {\r\n let result: Array = [];\r\n\r\n for (var i = 0; i < this.getItemCount(); i++) {\r\n result = result.concat(this.getItemAt(i).getResourceInformation());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getElementById(id: string): CardElement {\r\n let result = super.getElementById(id);\r\n\r\n if (!result) {\r\n for (var i = 0; i < this.getItemCount(); i++) {\r\n result = this.getItemAt(i).getElementById(id);\r\n\r\n if (result) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport class ImageSet extends CardElementContainer {\r\n private _images: Array = [];\r\n\r\n protected internalRender(): HTMLElement {\r\n let element: HTMLElement = null;\r\n\r\n if (this._images.length > 0) {\r\n element = document.createElement(\"div\");\r\n element.style.display = \"flex\";\r\n element.style.flexWrap = \"wrap\";\r\n\r\n for (var i = 0; i < this._images.length; i++) {\r\n this._images[i].size = this.imageSize;\r\n\r\n let renderedImage = this._images[i].render();\r\n\r\n renderedImage.style.display = \"inline-flex\";\r\n renderedImage.style.margin = \"0px\";\r\n renderedImage.style.marginRight = \"10px\";\r\n renderedImage.style.maxHeight = this.hostConfig.imageSet.maxImageHeight + \"px\";\r\n\r\n Utils.appendChild(element, renderedImage);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n imageSize: Enums.Size = Enums.Size.Medium;\r\n\r\n getItemCount(): number {\r\n return this._images.length;\r\n }\r\n\r\n getItemAt(index: number): CardElement {\r\n return this._images[index];\r\n }\r\n\r\n getFirstVisibleRenderedItem(): CardElement {\r\n return this._images && this._images.length > 0 ? this._images[0] : null;\r\n }\r\n\r\n getLastVisibleRenderedItem(): CardElement {\r\n return this._images && this._images.length > 0 ? this._images[this._images.length - 1] : null;\r\n }\r\n\r\n removeItem(item: CardElement): boolean {\r\n if (item instanceof Image) {\r\n var itemIndex = this._images.indexOf(item);\r\n\r\n if (itemIndex >= 0) {\r\n this._images.splice(itemIndex, 1);\r\n\r\n item.setParent(null);\r\n\r\n this.updateLayout();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"ImageSet\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setEnumProperty(Enums.Size, result, \"imageSize\", this.imageSize, Enums.Size.Medium);\r\n\r\n if (this._images.length > 0) {\r\n let images = [];\r\n\r\n for (let image of this._images) {\r\n images.push(image.toJSON());\r\n }\r\n\r\n Utils.setProperty(result, \"images\", images);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.imageSize = Utils.getEnumValue(Enums.Size, json[\"imageSize\"], Enums.Size.Medium);\r\n\r\n if (json[\"images\"] != null) {\r\n let jsonImages = json[\"images\"] as Array;\r\n\r\n this._images = [];\r\n\r\n for (let i = 0; i < jsonImages.length; i++) {\r\n var image = new Image();\r\n image.parse(jsonImages[i], errors);\r\n\r\n this.addImage(image);\r\n }\r\n }\r\n }\r\n\r\n addImage(image: Image) {\r\n if (!image.parent) {\r\n this._images.push(image);\r\n\r\n image.setParent(this);\r\n }\r\n else {\r\n throw new Error(\"This image already belongs to another ImageSet\");\r\n }\r\n }\r\n\r\n indexOf(cardElement: CardElement): number {\r\n return cardElement instanceof Image ? this._images.indexOf(cardElement) : -1;\r\n }\r\n}\r\n\r\nexport class MediaSource extends SerializableObject {\r\n mimeType: string;\r\n url: string;\r\n\r\n constructor(url: string = undefined, mimeType: string = undefined) {\r\n super();\r\n\r\n this.url = url;\r\n this.mimeType = mimeType;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n\t\tthis.mimeType = Utils.getStringValue(json[\"mimeType\"]);\r\n\t\tthis.url = Utils.getStringValue(json[\"url\"]);\r\n\t}\r\n\r\n\ttoJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"mimeType\", this.mimeType);\r\n Utils.setProperty(result, \"url\", this.url);\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport class Media extends CardElement {\r\n static readonly supportedMediaTypes = [\"audio\", \"video\"];\r\n\r\n private _selectedMediaType: string;\r\n private _selectedSources: Array;\r\n\r\n private getPosterUrl(): string {\r\n return this.poster ? this.poster : this.hostConfig.media.defaultPoster;\r\n }\r\n\r\n private processSources() {\r\n this._selectedSources = [];\r\n this._selectedMediaType = undefined;\r\n\r\n for (let source of this.sources) {\r\n let mimeComponents = source.mimeType ? source.mimeType.split('/') : [];\r\n\r\n if (mimeComponents.length == 2) {\r\n if (!this._selectedMediaType) {\r\n let index = Media.supportedMediaTypes.indexOf(mimeComponents[0]);\r\n\r\n if (index >= 0) {\r\n this._selectedMediaType = Media.supportedMediaTypes[index];\r\n }\r\n }\r\n if (mimeComponents[0] == this._selectedMediaType) {\r\n this._selectedSources.push(source);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private renderPoster(): HTMLElement {\r\n const playButtonArrowWidth = 12;\r\n const playButtonArrowHeight = 15;\r\n\r\n let posterRootElement = document.createElement(\"div\");\r\n posterRootElement.className = this.hostConfig.makeCssClassName(\"ac-media-poster\");\r\n posterRootElement.setAttribute(\"role\", \"contentinfo\");\r\n posterRootElement.setAttribute(\"aria-label\", this.altText ? this.altText : \"Media content\");\r\n posterRootElement.style.position = \"relative\";\r\n posterRootElement.style.display = \"flex\";\r\n\r\n let posterUrl = this.getPosterUrl();\r\n\r\n if (posterUrl) {\r\n let posterImageElement = document.createElement(\"img\");\r\n posterImageElement.style.width = \"100%\";\r\n posterImageElement.style.height = \"100%\";\r\n\r\n posterImageElement.onerror = (e: Event) => {\r\n posterImageElement.parentNode.removeChild(posterImageElement);\r\n posterRootElement.classList.add(\"empty\");\r\n posterRootElement.style.minHeight = \"150px\";\r\n }\r\n\r\n posterImageElement.src = posterUrl;\r\n\r\n posterRootElement.appendChild(posterImageElement);\r\n }\r\n else {\r\n posterRootElement.classList.add(\"empty\");\r\n posterRootElement.style.minHeight = \"150px\";\r\n }\r\n\r\n if (this.hostConfig.supportsInteractivity && this._selectedSources.length > 0) {\r\n let playButtonOuterElement = document.createElement(\"div\");\r\n playButtonOuterElement.setAttribute(\"role\", \"button\");\r\n playButtonOuterElement.setAttribute(\"aria-label\", \"Play media\");\r\n playButtonOuterElement.className = this.hostConfig.makeCssClassName(\"ac-media-playButton\");\r\n playButtonOuterElement.style.display = \"flex\";\r\n playButtonOuterElement.style.alignItems = \"center\";\r\n playButtonOuterElement.style.justifyContent = \"center\";\r\n playButtonOuterElement.onclick = (e) => {\r\n if (this.hostConfig.media.allowInlinePlayback) {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n let mediaPlayerElement = this.renderMediaPlayer();\r\n\r\n this.renderedElement.innerHTML = \"\";\r\n this.renderedElement.appendChild(mediaPlayerElement);\r\n\r\n mediaPlayerElement.play();\r\n }\r\n else {\r\n if (Media.onPlay) {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n Media.onPlay(this);\r\n }\r\n }\r\n }\r\n\r\n let playButtonInnerElement = document.createElement(\"div\");\r\n playButtonInnerElement.className = this.hostConfig.makeCssClassName(\"ac-media-playButton-arrow\");\r\n playButtonInnerElement.style.width = playButtonArrowWidth + \"px\";\r\n playButtonInnerElement.style.height = playButtonArrowHeight + \"px\";\r\n playButtonInnerElement.style.borderTopWidth = (playButtonArrowHeight / 2) + \"px\";\r\n playButtonInnerElement.style.borderBottomWidth = (playButtonArrowHeight / 2) + \"px\";\r\n playButtonInnerElement.style.borderLeftWidth = playButtonArrowWidth + \"px\";\r\n playButtonInnerElement.style.borderRightWidth = \"0\";\r\n playButtonInnerElement.style.borderStyle = \"solid\";\r\n playButtonInnerElement.style.borderTopColor = \"transparent\";\r\n playButtonInnerElement.style.borderRightColor = \"transparent\";\r\n playButtonInnerElement.style.borderBottomColor = \"transparent\";\r\n playButtonInnerElement.style.transform = \"translate(\" + (playButtonArrowWidth / 10) + \"px,0px)\";\r\n\r\n playButtonOuterElement.appendChild(playButtonInnerElement);\r\n\r\n let playButtonContainer = document.createElement(\"div\");\r\n playButtonContainer.style.position = \"absolute\";\r\n playButtonContainer.style.left = \"0\";\r\n playButtonContainer.style.top = \"0\";\r\n playButtonContainer.style.width = \"100%\";\r\n playButtonContainer.style.height = \"100%\";\r\n playButtonContainer.style.display = \"flex\";\r\n playButtonContainer.style.justifyContent = \"center\";\r\n playButtonContainer.style.alignItems = \"center\";\r\n\r\n playButtonContainer.appendChild(playButtonOuterElement);\r\n posterRootElement.appendChild(playButtonContainer);\r\n }\r\n\r\n return posterRootElement;\r\n }\r\n\r\n private renderMediaPlayer(): HTMLMediaElement {\r\n let mediaElement: HTMLMediaElement;\r\n\r\n if (this._selectedMediaType == \"video\") {\r\n let videoPlayer = document.createElement(\"video\");\r\n\r\n let posterUrl = this.getPosterUrl();\r\n\r\n if (posterUrl) {\r\n videoPlayer.poster = posterUrl;\r\n }\r\n\r\n mediaElement = videoPlayer;\r\n }\r\n else {\r\n mediaElement = document.createElement(\"audio\");\r\n }\r\n\r\n mediaElement.controls = true;\r\n mediaElement.preload = \"none\";\r\n mediaElement.style.width = \"100%\";\r\n\r\n for (let source of this.sources) {\r\n let src: HTMLSourceElement = document.createElement(\"source\");\r\n src.src = source.url;\r\n src.type = source.mimeType;\r\n\r\n mediaElement.appendChild(src);\r\n }\r\n\r\n return mediaElement;\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n let element = document.createElement(\"div\");\r\n element.className = this.hostConfig.makeCssClassName(\"ac-media\");\r\n\r\n this.processSources();\r\n\r\n element.appendChild(this.renderPoster());\r\n\r\n return element;\r\n }\r\n\r\n static onPlay: (sender: Media) => void;\r\n\r\n sources: Array = [];\r\n poster: string;\r\n altText: string;\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n\t\tthis.poster = Utils.getStringValue(json[\"poster\"]);\r\n\t\tthis.altText = Utils.getStringValue(json[\"altText\"]);\r\n\r\n this.sources = [];\r\n\r\n if (Array.isArray(json[\"sources\"])) {\r\n for (let jsonSource of json[\"sources\"]) {\r\n let source = new MediaSource();\r\n source.parse(jsonSource, errors);\r\n\r\n this.sources.push(source);\r\n }\r\n }\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"poster\", this.poster);\r\n Utils.setProperty(result, \"altText\", this.altText);\r\n\r\n /*\r\n if (this.sources.length > 0) {\r\n let serializedSources = [];\r\n\r\n for (let source of this.sources) {\r\n serializedSources.push(source.toJSON());\r\n }\r\n\r\n Utils.setProperty(result, \"sources\", serializedSources);\r\n }\r\n */\r\n\r\n Utils.setArrayProperty(result, \"sources\", this.sources);\r\n\r\n return result;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Media\";\r\n }\r\n\r\n getResourceInformation(): Array {\r\n let result: Array = [];\r\n\r\n let posterUrl = this.getPosterUrl();\r\n\r\n if (!Utils.isNullOrEmpty(posterUrl)) {\r\n result.push({ url: posterUrl, mimeType: \"image\" });\r\n }\r\n\r\n for (let mediaSource of this.sources) {\r\n if (!Utils.isNullOrEmpty(mediaSource.url)) {\r\n result.push({ url: mediaSource.url, mimeType: mediaSource.mimeType });\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n get selectedMediaType(): string {\r\n return this._selectedMediaType;\r\n }\r\n}\r\n\r\nexport class InputValidationOptions extends SerializableObject {\r\n necessity: Enums.InputValidationNecessity = Enums.InputValidationNecessity.Optional;\r\n errorMessage: string = undefined;\r\n\r\n parse(json: any) {\r\n super.parse(json);\r\n\r\n this.necessity = Utils.getEnumValue(Enums.InputValidationNecessity, json[\"necessity\"], this.necessity);\r\n this.errorMessage = Utils.getStringValue(json[\"errorMessage\"]);\r\n }\r\n\r\n toJSON() {\r\n if (this.necessity != Enums.InputValidationNecessity.Optional || !Utils.isNullOrEmpty(this.errorMessage)) {\r\n let result = super.toJSON();\r\n\r\n Utils.setEnumProperty(Enums.InputValidationNecessity, result, \"necessity\", this.necessity, Enums.InputValidationNecessity.Optional);\r\n Utils.setProperty(result, \"errorMessage\", this.errorMessage);\r\n\r\n return result;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport abstract class Input extends CardElement implements Shared.IInput {\r\n private _outerContainerElement: HTMLElement;\r\n private _inputControlContainerElement: HTMLElement;\r\n private _errorMessageElement: HTMLElement;\r\n private _renderedInputControlElement: HTMLElement;\r\n private _defaultValue: string;\r\n\r\n protected get isNullable(): boolean {\r\n return true;\r\n }\r\n\r\n protected get renderedInputControlElement(): HTMLElement {\r\n return this._renderedInputControlElement;\r\n }\r\n\r\n protected get inputControlContainerElement(): HTMLElement {\r\n return this._inputControlContainerElement;\r\n }\r\n\r\n protected overrideInternalRender(): HTMLElement {\r\n let hostConfig = this.hostConfig;\r\n\r\n this._outerContainerElement = document.createElement(\"div\");\r\n this._outerContainerElement.style.display = \"flex\";\r\n this._outerContainerElement.style.flexDirection = \"column\";\r\n\r\n this._inputControlContainerElement = document.createElement(\"div\");\r\n this._inputControlContainerElement.className = hostConfig.makeCssClassName(\"ac-input-container\");\r\n this._inputControlContainerElement.style.display = \"flex\";\r\n\r\n this._renderedInputControlElement = this.internalRender();\r\n this._renderedInputControlElement.style.minWidth = \"0px\";\r\n\r\n if (AdaptiveCard.useBuiltInInputValidation && this.isNullable && this.validation.necessity == Enums.InputValidationNecessity.RequiredWithVisualCue) {\r\n this._renderedInputControlElement.classList.add(hostConfig.makeCssClassName(\"ac-input-required\"));\r\n }\r\n\r\n this._inputControlContainerElement.appendChild(this._renderedInputControlElement);\r\n\r\n this._outerContainerElement.appendChild(this._inputControlContainerElement);\r\n\r\n return this._outerContainerElement;\r\n }\r\n\r\n protected valueChanged() {\r\n this.resetValidationFailureCue();\r\n\r\n if (this.onValueChanged) {\r\n this.onValueChanged(this);\r\n }\r\n\r\n raiseInputValueChangedEvent(this);\r\n }\r\n\r\n protected resetValidationFailureCue() {\r\n if (AdaptiveCard.useBuiltInInputValidation && this.renderedElement) {\r\n this._renderedInputControlElement.classList.remove(this.hostConfig.makeCssClassName(\"ac-input-validation-failed\"));\r\n\r\n if (this._errorMessageElement) {\r\n this._outerContainerElement.removeChild(this._errorMessageElement);\r\n\r\n this._errorMessageElement = null;\r\n }\r\n }\r\n }\r\n\r\n protected showValidationErrorMessage() {\r\n if (this.renderedElement && AdaptiveCard.useBuiltInInputValidation && AdaptiveCard.displayInputValidationErrors && !Utils.isNullOrEmpty(this.validation.errorMessage)) {\r\n this._errorMessageElement = document.createElement(\"span\");\r\n this._errorMessageElement.className = this.hostConfig.makeCssClassName(\"ac-input-validation-error-message\");\r\n this._errorMessageElement.textContent = this.validation.errorMessage;\r\n\r\n this._outerContainerElement.appendChild(this._errorMessageElement);\r\n }\r\n }\r\n\r\n protected parseInputValue(value: string): string {\r\n return value;\r\n }\r\n\r\n abstract get value(): string;\r\n\r\n onValueChanged: (sender: Input) => void;\r\n\r\n readonly validation = new InputValidationOptions();\r\n\r\n title: string;\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"title\", this.title);\r\n Utils.setProperty(result, \"value\", this.renderedElement && !Utils.isNullOrEmpty(this.value) ? this.value : this.defaultValue);\r\n\r\n if (AdaptiveCard.useBuiltInInputValidation) {\r\n Utils.setProperty(result, \"validation\", this.validation.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (Utils.isNullOrEmpty(this.id)) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"All inputs must have a unique Id\"\r\n });\r\n }\r\n }\r\n\r\n validateValue(): boolean {\r\n if (AdaptiveCard.useBuiltInInputValidation) {\r\n this.resetValidationFailureCue();\r\n\r\n let result = this.validation.necessity != Enums.InputValidationNecessity.Optional ? !Utils.isNullOrEmpty(this.value) : true;\r\n\r\n if (!result && this.renderedElement) {\r\n this._renderedInputControlElement.classList.add(this.hostConfig.makeCssClassName(\"ac-input-validation-failed\"));\r\n\r\n this.showValidationErrorMessage();\r\n }\r\n\r\n return result;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.id = Utils.getStringValue(json[\"id\"]);\r\n this.defaultValue = Utils.getStringValue(json[\"value\"]);\r\n\r\n if (AdaptiveCard.useBuiltInInputValidation) {\r\n let jsonValidation = json[\"validation\"];\r\n\r\n if (jsonValidation) {\r\n this.validation.parse(jsonValidation);\r\n }\r\n }\r\n }\r\n\r\n getAllInputs(): Array {\r\n return [this];\r\n }\r\n\r\n get defaultValue(): string {\r\n return this._defaultValue;\r\n }\r\n\r\n set defaultValue(value: string) {\r\n this._defaultValue = this.parseInputValue(value);\r\n }\r\n\r\n get isInteractive(): boolean {\r\n return true;\r\n }\r\n}\r\n\r\nexport class TextInput extends Input {\r\n private _inlineAction: Action;\r\n\r\n protected internalRender(): HTMLElement {\r\n if (this.isMultiline) {\r\n let textareaElement = document.createElement(\"textarea\");\r\n textareaElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-textInput\", \"ac-multiline\");\r\n textareaElement.style.flex = \"1 1 auto\";\r\n textareaElement.tabIndex = 0;\r\n\r\n if (!Utils.isNullOrEmpty(this.placeholder)) {\r\n textareaElement.placeholder = this.placeholder;\r\n textareaElement.setAttribute(\"aria-label\", this.placeholder)\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.defaultValue)) {\r\n textareaElement.value = this.defaultValue;\r\n }\r\n\r\n if (this.maxLength && this.maxLength > 0) {\r\n textareaElement.maxLength = this.maxLength;\r\n }\r\n\r\n textareaElement.oninput = () => { this.valueChanged(); }\r\n textareaElement.onkeypress = (e: KeyboardEvent) => {\r\n // Ctrl+Enter pressed\r\n if (e.keyCode == 10 && this.inlineAction) {\r\n this.inlineAction.execute();\r\n }\r\n }\r\n\r\n return textareaElement;\r\n }\r\n else {\r\n let inputElement = document.createElement(\"input\");\r\n inputElement.type = Enums.InputTextStyle[this.style].toLowerCase();\r\n inputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-textInput\");\r\n inputElement.style.flex = \"1 1 auto\";\r\n inputElement.tabIndex = 0;\r\n\r\n if (!Utils.isNullOrEmpty(this.placeholder)) {\r\n inputElement.placeholder = this.placeholder;\r\n inputElement.setAttribute(\"aria-label\", this.placeholder)\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.defaultValue)) {\r\n inputElement.value = this.defaultValue;\r\n }\r\n\r\n if (this.maxLength && this.maxLength > 0) {\r\n inputElement.maxLength = this.maxLength;\r\n }\r\n\r\n inputElement.oninput = () => { this.valueChanged(); }\r\n inputElement.onkeypress = (e: KeyboardEvent) => {\r\n // Enter pressed\r\n if (e.keyCode == 13 && this.inlineAction) {\r\n this.inlineAction.execute();\r\n }\r\n }\r\n\r\n return inputElement;\r\n }\r\n }\r\n\r\n protected overrideInternalRender(): HTMLElement {\r\n let renderedInputControl = super.overrideInternalRender();\r\n\r\n if (this.inlineAction) {\r\n let button = document.createElement(\"button\");\r\n button.className = this.hostConfig.makeCssClassName(\"ac-inlineActionButton\");\r\n button.onclick = (e) => {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.inlineAction.execute();\r\n };\r\n\r\n if (!Utils.isNullOrEmpty(this.inlineAction.iconUrl)) {\r\n button.classList.add(\"iconOnly\");\r\n\r\n let icon = document.createElement(\"img\");\r\n icon.style.height = \"100%\";\r\n\r\n // The below trick is necessary as a workaround in Chrome where the icon is initially displayed\r\n // at its native size then resized to 100% of the button's height. This cfreates an unpleasant\r\n // flicker. On top of that, Chrome's flex implementation fails to prperly re-layout the button\r\n // after the image has loaded and been gicven its final size. The below trick also fixes that.\r\n icon.style.display = \"none\";\r\n icon.onload = () => {\r\n icon.style.removeProperty(\"display\");\r\n };\r\n icon.onerror = () => {\r\n button.removeChild(icon);\r\n button.classList.remove(\"iconOnly\");\r\n button.classList.add(\"textOnly\");\r\n button.textContent = !Utils.isNullOrEmpty(this.inlineAction.title) ? this.inlineAction.title : \"Title\";\r\n }\r\n icon.src = this.inlineAction.iconUrl;\r\n\r\n button.appendChild(icon);\r\n\r\n if (!Utils.isNullOrEmpty(this.inlineAction.title)) {\r\n button.title = this.inlineAction.title;\r\n }\r\n }\r\n else {\r\n button.classList.add(\"textOnly\");\r\n button.textContent = !Utils.isNullOrEmpty(this.inlineAction.title) ? this.inlineAction.title : \"Title\";\r\n }\r\n\r\n button.style.marginLeft = \"8px\";\r\n\r\n this.inputControlContainerElement.appendChild(button);\r\n }\r\n\r\n return renderedInputControl;\r\n }\r\n\r\n maxLength: number;\r\n isMultiline: boolean = false;\r\n placeholder: string;\r\n style: Enums.InputTextStyle = Enums.InputTextStyle.Text;\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.Text\";\r\n }\r\n\r\n getActionById(id: string) {\r\n let result = super.getActionById(id);\r\n\r\n if (!result && this.inlineAction) {\r\n result = this.inlineAction.getActionById(id);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"placeholder\", this.placeholder);\r\n Utils.setNumberProperty(result, \"maxLength\", this.maxLength);\r\n Utils.setProperty(result, \"isMultiline\", this.isMultiline, false);\r\n Utils.setEnumProperty(Enums.InputTextStyle, result, \"style\", this.style, Enums.InputTextStyle.Text);\r\n\r\n if (this._inlineAction) {\r\n Utils.setProperty(result, \"inlineAction\", this._inlineAction.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.maxLength = Utils.getNumberValue(json[\"maxLength\"]);\r\n this.isMultiline = Utils.getBoolValue(json[\"isMultiline\"], this.isMultiline);\r\n this.placeholder = Utils.getStringValue(json[\"placeholder\"]);\r\n this.style = Utils.getEnumValue(Enums.InputTextStyle, json[\"style\"], this.style);\r\n this.inlineAction = createActionInstance(\r\n this,\r\n json[\"inlineAction\"],\r\n [ShowCardAction.JsonTypeName],\r\n !this.isDesignMode(),\r\n errors);\r\n }\r\n\r\n get inlineAction(): Action {\r\n return this._inlineAction;\r\n }\r\n\r\n set inlineAction(value: Action) {\r\n this._inlineAction = value;\r\n\r\n if (this._inlineAction) {\r\n this._inlineAction.setParent(this);\r\n }\r\n }\r\n\r\n get value(): string {\r\n if (this.renderedInputControlElement) {\r\n if (this.isMultiline) {\r\n return (this.renderedInputControlElement).value;\r\n }\r\n else {\r\n return (this.renderedInputControlElement).value;\r\n }\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport class ToggleInput extends Input {\r\n private _checkboxInputElement: HTMLInputElement;\r\n\r\n protected internalRender(): HTMLElement {\r\n let element = document.createElement(\"div\");\r\n element.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-toggleInput\");\r\n element.style.width = \"100%\";\r\n element.style.display = \"flex\";\r\n element.style.alignItems = \"center\";\r\n\r\n this._checkboxInputElement = document.createElement(\"input\");\r\n this._checkboxInputElement.id = Utils.generateUniqueId();\r\n this._checkboxInputElement.type = \"checkbox\";\r\n this._checkboxInputElement.style.display = \"inline-block\";\r\n this._checkboxInputElement.style.verticalAlign = \"middle\";\r\n this._checkboxInputElement.style.margin = \"0\";\r\n this._checkboxInputElement.style.flex = \"0 0 auto\";\r\n this._checkboxInputElement.setAttribute(\"aria-label\", this.title);\r\n this._checkboxInputElement.tabIndex = 0;\r\n\r\n if (this.defaultValue == this.valueOn) {\r\n this._checkboxInputElement.checked = true;\r\n }\r\n\r\n this._checkboxInputElement.onchange = () => { this.valueChanged(); }\r\n\r\n Utils.appendChild(element, this._checkboxInputElement);\r\n\r\n if (!Utils.isNullOrEmpty(this.title) || this.isDesignMode()) {\r\n let label = new Label();\r\n label.setParent(this);\r\n label.forElementId = this._checkboxInputElement.id;\r\n label.hostConfig = this.hostConfig;\r\n label.text = Utils.isNullOrEmpty(this.title) ? this.getJsonTypeName() : this.title;\r\n label.useMarkdown = AdaptiveCard.useMarkdownInRadioButtonAndCheckbox;\r\n label.wrap = this.wrap;\r\n\r\n let labelElement = label.render();\r\n labelElement.style.display = \"inline-block\";\r\n labelElement.style.flex = \"1 1 auto\";\r\n labelElement.style.marginLeft = \"6px\";\r\n labelElement.style.verticalAlign = \"middle\";\r\n\r\n let spacerElement = document.createElement(\"div\");\r\n spacerElement.style.width = \"6px\";\r\n\r\n Utils.appendChild(element, spacerElement);\r\n Utils.appendChild(element, labelElement);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n protected get isNullable(): boolean {\r\n return false;\r\n }\r\n\r\n valueOn: string = \"true\";\r\n valueOff: string = \"false\";\r\n wrap: boolean = false;\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.Toggle\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"valueOn\", this.valueOn, \"true\");\r\n Utils.setProperty(result, \"valueOff\", this.valueOff, \"false\");\r\n Utils.setProperty(result, \"wrap\", this.wrap);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.title = Utils.getStringValue(json[\"title\"]);\r\n this.valueOn = Utils.getStringValue(json[\"valueOn\"], this.valueOn);\r\n this.valueOff = Utils.getStringValue(json[\"valueOff\"], this.valueOff);\r\n this.wrap = Utils.getBoolValue(json[\"wrap\"], this.wrap);\r\n }\r\n\r\n get value(): string {\r\n if (this._checkboxInputElement) {\r\n return this._checkboxInputElement.checked ? this.valueOn : this.valueOff;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport class Choice extends SerializableObject {\r\n title: string;\r\n value: string;\r\n\r\n constructor(title: string = undefined, value: string = undefined) {\r\n super();\r\n\r\n this.title = title;\r\n this.value = value;\r\n }\r\n\r\n parse(json: any) {\r\n super.parse(json);\r\n\r\n this.title = Utils.getStringValue(json[\"title\"], \"\");\r\n this.value = Utils.getStringValue(json[\"value\"], \"\");\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"title\", this.title);\r\n Utils.setProperty(result, \"value\", this.value);\r\n\r\n return result;\r\n }\r\n}\r\n\r\nexport class ChoiceSetInput extends Input {\r\n private static uniqueCategoryCounter = 0;\r\n\r\n private static getUniqueCategoryName(): string {\r\n let uniqueCwtegoryName = \"__ac-category\" + ChoiceSetInput.uniqueCategoryCounter;\r\n\r\n ChoiceSetInput.uniqueCategoryCounter++;\r\n\r\n return uniqueCwtegoryName;\r\n }\r\n\r\n private _selectElement: HTMLSelectElement;\r\n private _toggleInputs: Array;\r\n\r\n // Make sure `aria-current` is applied to the currently-selected item\r\n protected internalApplyAriaCurrent(): void {\r\n const options = this._selectElement.options;\r\n\r\n if (options) {\r\n for (let i = 0; i < options.length; i++) {\r\n if (options[i].selected) {\r\n options[i].setAttribute(\"aria-current\", \"true\");\r\n }\r\n else {\r\n options[i].removeAttribute(\"aria-current\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n if (!this.isMultiSelect) {\r\n if (this.isCompact) {\r\n // Render as a combo box\r\n this._selectElement = document.createElement(\"select\");\r\n this._selectElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-multichoiceInput\", \"ac-choiceSetInput-compact\");\r\n this._selectElement.style.width = \"100%\";\r\n\r\n let option = document.createElement(\"option\");\r\n option.selected = true;\r\n option.disabled = true;\r\n option.hidden = true;\r\n option.value = \"\";\r\n\r\n if (this.placeholder) {\r\n option.text = this.placeholder;\r\n }\r\n\r\n Utils.appendChild(this._selectElement, option);\r\n\r\n for (var i = 0; i < this.choices.length; i++) {\r\n let option = document.createElement(\"option\");\r\n option.value = this.choices[i].value;\r\n option.text = this.choices[i].title;\r\n option.setAttribute(\"aria-label\", this.choices[i].title);\r\n\r\n if (this.choices[i].value == this.defaultValue) {\r\n option.selected = true;\r\n }\r\n\r\n Utils.appendChild(this._selectElement, option);\r\n }\r\n\r\n this._selectElement.onchange = () => {\r\n this.internalApplyAriaCurrent();\r\n this.valueChanged();\r\n }\r\n\r\n this.internalApplyAriaCurrent();\r\n return this._selectElement;\r\n }\r\n else {\r\n // Render as a series of radio buttons\r\n let uniqueCategoryName = ChoiceSetInput.getUniqueCategoryName();\r\n\r\n let element = document.createElement(\"div\");\r\n element.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-choiceSetInput-expanded\");\r\n element.style.width = \"100%\";\r\n\r\n this._toggleInputs = [];\r\n\r\n for (let i = 0; i < this.choices.length; i++) {\r\n let radioInput = document.createElement(\"input\");\r\n radioInput.id = Utils.generateUniqueId();\r\n radioInput.type = \"radio\";\r\n radioInput.style.margin = \"0\";\r\n radioInput.style.display = \"inline-block\";\r\n radioInput.style.verticalAlign = \"middle\";\r\n radioInput.name = Utils.isNullOrEmpty(this.id) ? uniqueCategoryName : this.id;\r\n radioInput.value = this.choices[i].value;\r\n radioInput.style.flex = \"0 0 auto\";\r\n radioInput.setAttribute(\"aria-label\", this.choices[i].title);\r\n\r\n if (this.choices[i].value == this.defaultValue) {\r\n radioInput.checked = true;\r\n }\r\n\r\n radioInput.onchange = () => { this.valueChanged(); }\r\n\r\n this._toggleInputs.push(radioInput);\r\n\r\n let label = new Label();\r\n label.setParent(this);\r\n label.forElementId = radioInput.id;\r\n label.hostConfig = this.hostConfig;\r\n label.text = Utils.isNullOrEmpty(this.choices[i].title) ? \"Choice \" + i : this.choices[i].title;\r\n label.useMarkdown = AdaptiveCard.useMarkdownInRadioButtonAndCheckbox;\r\n label.wrap = this.wrap;\r\n\r\n let labelElement = label.render();\r\n labelElement.style.display = \"inline-block\";\r\n labelElement.style.flex = \"1 1 auto\";\r\n labelElement.style.marginLeft = \"6px\";\r\n labelElement.style.verticalAlign = \"middle\";\r\n\r\n let spacerElement = document.createElement(\"div\");\r\n spacerElement.style.width = \"6px\";\r\n\r\n let compoundInput = document.createElement(\"div\");\r\n compoundInput.style.display = \"flex\";\r\n compoundInput.style.alignItems = \"center\";\r\n\r\n Utils.appendChild(compoundInput, radioInput);\r\n Utils.appendChild(compoundInput, spacerElement);\r\n Utils.appendChild(compoundInput, labelElement);\r\n\r\n Utils.appendChild(element, compoundInput);\r\n }\r\n\r\n return element;\r\n }\r\n }\r\n else {\r\n // Render as a list of toggle inputs\r\n let defaultValues = this.defaultValue ? this.defaultValue.split(this.hostConfig.choiceSetInputValueSeparator) : null;\r\n\r\n let element = document.createElement(\"div\");\r\n element.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-choiceSetInput-multiSelect\");\r\n element.style.width = \"100%\";\r\n\r\n this._toggleInputs = [];\r\n\r\n for (let i = 0; i < this.choices.length; i++) {\r\n let checkboxInput = document.createElement(\"input\");\r\n checkboxInput.id = Utils.generateUniqueId();\r\n checkboxInput.type = \"checkbox\";\r\n checkboxInput.style.margin = \"0\";\r\n checkboxInput.style.display = \"inline-block\";\r\n checkboxInput.style.verticalAlign = \"middle\";\r\n checkboxInput.value = this.choices[i].value;\r\n checkboxInput.style.flex = \"0 0 auto\";\r\n checkboxInput.setAttribute(\"aria-label\", this.choices[i].title);\r\n\r\n if (defaultValues) {\r\n if (defaultValues.indexOf(this.choices[i].value) >= 0) {\r\n checkboxInput.checked = true;\r\n }\r\n }\r\n\r\n checkboxInput.onchange = () => { this.valueChanged(); }\r\n\r\n this._toggleInputs.push(checkboxInput);\r\n\r\n let label = new Label();\r\n label.setParent(this);\r\n label.forElementId = checkboxInput.id;\r\n label.hostConfig = this.hostConfig;\r\n label.text = Utils.isNullOrEmpty(this.choices[i].title) ? \"Choice \" + i : this.choices[i].title;\r\n label.useMarkdown = AdaptiveCard.useMarkdownInRadioButtonAndCheckbox;\r\n label.wrap = this.wrap;\r\n\r\n let labelElement = label.render();\r\n labelElement.style.display = \"inline-block\";\r\n labelElement.style.flex = \"1 1 auto\";\r\n labelElement.style.marginLeft = \"6px\";\r\n labelElement.style.verticalAlign = \"middle\";\r\n\r\n let spacerElement = document.createElement(\"div\");\r\n spacerElement.style.width = \"6px\";\r\n\r\n let compoundInput = document.createElement(\"div\");\r\n compoundInput.style.display = \"flex\";\r\n compoundInput.style.alignItems = \"center\";\r\n\r\n Utils.appendChild(compoundInput, checkboxInput);\r\n Utils.appendChild(compoundInput, spacerElement);\r\n Utils.appendChild(compoundInput, labelElement);\r\n\r\n Utils.appendChild(element, compoundInput);\r\n }\r\n\r\n return element;\r\n }\r\n }\r\n\r\n choices: Array = [];\r\n isCompact: boolean = false;\r\n isMultiSelect: boolean = false;\r\n placeholder: string;\r\n wrap: boolean = false;\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.ChoiceSet\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"placeholder\", this.placeholder);\r\n\r\n /*\r\n let choices = [];\r\n\r\n if (this.choices) {\r\n for (let choice of this.choices) {\r\n choices.push(choice.toJSON());\r\n }\r\n }\r\n\r\n Utils.setProperty(result, \"choices\", choices);\r\n */\r\n\r\n Utils.setArrayProperty(result, \"choices\", this.choices);\r\n\r\n Utils.setProperty(result, \"style\", this.isCompact ? null : \"expanded\");\r\n Utils.setProperty(result, \"isMultiSelect\", this.isMultiSelect, false);\r\n Utils.setProperty(result, \"wrap\", this.wrap, false);\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (this.choices.length == 0) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.CollectionCantBeEmpty,\r\n message: \"An Input.ChoiceSet must have at least one choice defined.\"\r\n });\r\n }\r\n\r\n for (let choice of this.choices) {\r\n if (!choice.title || !choice.value) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"All choices in an Input.ChoiceSet must have their title and value properties set.\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.isCompact = !(json[\"style\"] === \"expanded\");\r\n this.isMultiSelect = Utils.getBoolValue(json[\"isMultiSelect\"], this.isMultiSelect);\r\n this.placeholder = Utils.getStringValue(json[\"placeholder\"]);\r\n\r\n this.choices = [];\r\n\r\n if (Array.isArray(json[\"choices\"])) {\r\n for (let jsonChoice of json[\"choices\"]) {\r\n let choice = new Choice();\r\n choice.parse(jsonChoice);\r\n\r\n this.choices.push(choice);\r\n }\r\n }\r\n\r\n this.wrap = Utils.getBoolValue(json[\"wrap\"], this.wrap);\r\n }\r\n\r\n get value(): string {\r\n if (!this.isMultiSelect) {\r\n if (this.isCompact) {\r\n if (this._selectElement) {\r\n return this._selectElement.selectedIndex > 0 ? this._selectElement.value : null;\r\n }\r\n\r\n return null;\r\n }\r\n else {\r\n if (!this._toggleInputs || this._toggleInputs.length == 0) {\r\n return null;\r\n }\r\n\r\n for (var i = 0; i < this._toggleInputs.length; i++) {\r\n if (this._toggleInputs[i].checked) {\r\n return this._toggleInputs[i].value;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n }\r\n else {\r\n if (!this._toggleInputs || this._toggleInputs.length == 0) {\r\n return null;\r\n }\r\n\r\n var result: string = \"\";\r\n\r\n for (var i = 0; i < this._toggleInputs.length; i++) {\r\n if (this._toggleInputs[i].checked) {\r\n if (result != \"\") {\r\n result += this.hostConfig.choiceSetInputValueSeparator;\r\n }\r\n\r\n result += this._toggleInputs[i].value;\r\n }\r\n }\r\n\r\n return result == \"\" ? null : result;\r\n }\r\n }\r\n}\r\n\r\nexport class NumberInput extends Input {\r\n private _numberInputElement: HTMLInputElement;\r\n private _min: number;\r\n private _max: number;\r\n\r\n protected internalRender(): HTMLElement {\r\n this._numberInputElement = document.createElement(\"input\");\r\n this._numberInputElement.setAttribute(\"type\", \"number\");\r\n\r\n if (this.min) {\r\n this._numberInputElement.setAttribute(\"min\", this.min.toString());\r\n }\r\n\r\n if (this.max) {\r\n this._numberInputElement.setAttribute(\"max\", this.max.toString());\r\n }\r\n\r\n this._numberInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-numberInput\");\r\n this._numberInputElement.style.width = \"100%\";\r\n this._numberInputElement.tabIndex = 0;\r\n\r\n if (!Utils.isNullOrEmpty(this.defaultValue)) {\r\n this._numberInputElement.value = this.defaultValue;\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.placeholder)) {\r\n this._numberInputElement.placeholder = this.placeholder;\r\n this._numberInputElement.setAttribute(\"aria-label\", this.placeholder);\r\n }\r\n\r\n this._numberInputElement.oninput = () => { this.valueChanged(); }\r\n\r\n return this._numberInputElement;\r\n }\r\n\r\n placeholder: string;\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.Number\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"placeholder\", this.placeholder);\r\n Utils.setNumberProperty(result, \"min\", this.min);\r\n Utils.setNumberProperty(result, \"max\", this.max);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.placeholder = Utils.getStringValue(json[\"placeholder\"]);\r\n this.min = Utils.getNumberValue(json[\"min\"]);\r\n this.max = Utils.getNumberValue(json[\"max\"]);\r\n }\r\n\r\n get min(): number {\r\n return this._min;\r\n }\r\n\r\n set min(value: number) {\r\n this._min = value;\r\n }\r\n\r\n get max(): number {\r\n return this._max;\r\n }\r\n\r\n set max(value: number) {\r\n this._max = value;\r\n }\r\n\r\n get value(): string {\r\n return this._numberInputElement ? this._numberInputElement.value : undefined;\r\n }\r\n\r\n get valueAsNumber(): number {\r\n return this._numberInputElement ? this._numberInputElement.valueAsNumber : undefined;\r\n }\r\n}\r\n\r\nexport class DateInput extends Input {\r\n private _dateInputElement: HTMLInputElement;\r\n private _min: string;\r\n private _max: string;\r\n\r\n protected internalRender(): HTMLElement {\r\n this._dateInputElement = document.createElement(\"input\");\r\n this._dateInputElement.setAttribute(\"type\", \"date\");\r\n this._dateInputElement.setAttribute(\"min\", this.min);\r\n this._dateInputElement.setAttribute(\"max\", this.max);\r\n this._dateInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-dateInput\");\r\n this._dateInputElement.style.width = \"100%\";\r\n\r\n this._dateInputElement.oninput = () => { this.valueChanged(); }\r\n\r\n if (!Utils.isNullOrEmpty(this.defaultValue)) {\r\n this._dateInputElement.value = this.defaultValue;\r\n }\r\n\r\n return this._dateInputElement;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.Date\";\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"min\", this.min);\r\n Utils.setProperty(result, \"max\", this.max);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.min = Utils.getStringValue(json[\"min\"]);\r\n this.max = Utils.getStringValue(json[\"max\"]);\r\n }\r\n\r\n get min(): string {\r\n return this._min;\r\n }\r\n\r\n set min(value: string) {\r\n this._min = this.parseInputValue(value);\r\n }\r\n\r\n get max(): string {\r\n return this._max;\r\n }\r\n\r\n set max(value: string) {\r\n this._max = this.parseInputValue(value);\r\n }\r\n\r\n get value(): string {\r\n return this._dateInputElement ? this._dateInputElement.value : null;\r\n }\r\n}\r\n\r\nexport class TimeInput extends Input {\r\n private _timeInputElement: HTMLInputElement;\r\n private _min: string;\r\n private _max: string;\r\n\r\n protected internalRender(): HTMLElement {\r\n this._timeInputElement = document.createElement(\"input\");\r\n this._timeInputElement.setAttribute(\"type\", \"time\");\r\n this._timeInputElement.setAttribute(\"min\", this.min);\r\n this._timeInputElement.setAttribute(\"max\", this.max);\r\n this._timeInputElement.className = this.hostConfig.makeCssClassName(\"ac-input\", \"ac-timeInput\");\r\n this._timeInputElement.style.width = \"100%\";\r\n this._timeInputElement.oninput = () => { this.valueChanged(); }\r\n\r\n if (!Utils.isNullOrEmpty(this.defaultValue)) {\r\n this._timeInputElement.value = this.defaultValue;\r\n }\r\n\r\n return this._timeInputElement;\r\n }\r\n\r\n protected parseInputValue(value: string): string {\r\n if (/^[0-9]{2}:[0-9]{2}$/.test(value)) {\r\n return value;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Input.Time\";\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"min\", this.min);\r\n Utils.setProperty(result, \"max\", this.max);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.min = Utils.getStringValue(json[\"min\"]);\r\n this.max = Utils.getStringValue(json[\"max\"]);\r\n }\r\n\r\n get min(): string {\r\n return this._min;\r\n }\r\n\r\n set min(value: string) {\r\n this._min = this.parseInputValue(value);\r\n }\r\n\r\n get max(): string {\r\n return this._max;\r\n }\r\n\r\n set max(value: string) {\r\n this._max = this.parseInputValue(value);\r\n }\r\n\r\n get value(): string {\r\n return this._timeInputElement ? this._timeInputElement.value : null;\r\n }\r\n}\r\n\r\nenum ActionButtonState {\r\n Normal,\r\n Expanded,\r\n Subdued\r\n}\r\n\r\nclass ActionButton {\r\n private _parentContainerStyle: string;\r\n private _state: ActionButtonState = ActionButtonState.Normal;\r\n\r\n private updateCssStyle() {\r\n let hostConfig = this.action.parent.hostConfig;\r\n\r\n this.action.renderedElement.className = hostConfig.makeCssClassName(\"ac-pushButton\");\r\n\r\n if (!Utils.isNullOrEmpty(this._parentContainerStyle)) {\r\n this.action.renderedElement.classList.add(\"style-\" + this._parentContainerStyle);\r\n }\r\n\r\n if (this.action instanceof ShowCardAction) {\r\n this.action.renderedElement.classList.add(hostConfig.makeCssClassName(\"expandable\"));\r\n }\r\n\r\n this.action.renderedElement.classList.remove(hostConfig.makeCssClassName(\"expanded\"));\r\n this.action.renderedElement.classList.remove(hostConfig.makeCssClassName(\"subdued\"));\r\n\r\n switch (this._state) {\r\n case ActionButtonState.Expanded:\r\n this.action.renderedElement.classList.add(hostConfig.makeCssClassName(\"expanded\"));\r\n break;\r\n case ActionButtonState.Subdued:\r\n this.action.renderedElement.classList.add(hostConfig.makeCssClassName(\"subdued\"));\r\n break;\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.action.style)) {\r\n if (this.action.style === Enums.ActionStyle.Positive) {\r\n this.action.renderedElement.classList.add(...hostConfig.makeCssClassNames(\"primary\", \"style-positive\"));\r\n }\r\n else {\r\n this.action.renderedElement.classList.add(...hostConfig.makeCssClassNames(\"style-\" + this.action.style.toLowerCase()));\r\n }\r\n }\r\n }\r\n\r\n readonly action: Action;\r\n\r\n constructor(action: Action, parentContainerStyle: string) {\r\n this.action = action;\r\n this._parentContainerStyle = parentContainerStyle;\r\n }\r\n\r\n onClick: (actionButton: ActionButton) => void = null;\r\n\r\n render() {\r\n this.action.render();\r\n this.action.renderedElement.onclick = (e) => {\r\n e.preventDefault();\r\n e.cancelBubble = true;\r\n\r\n this.click();\r\n };\r\n\r\n this.updateCssStyle();\r\n }\r\n\r\n click() {\r\n if (this.onClick != null) {\r\n this.onClick(this);\r\n }\r\n }\r\n\r\n get state(): ActionButtonState {\r\n return this._state;\r\n }\r\n\r\n set state(value: ActionButtonState) {\r\n this._state = value;\r\n\r\n this.updateCssStyle();\r\n }\r\n}\r\n\r\nexport abstract class Action extends CardObject {\r\n private _shouldFallback: boolean = false;\r\n private _parent: CardElement = null;\r\n private _actionCollection: ActionCollection = null; // hold the reference to its action collection\r\n private _renderedElement: HTMLElement = null;\r\n\r\n private setCollection(actionCollection: ActionCollection) {\r\n this._actionCollection = actionCollection;\r\n }\r\n\r\n protected addCssClasses(element: HTMLElement) {\r\n // Do nothing in base implementation\r\n }\r\n\r\n protected internalGetReferencedInputs(allInputs: Array): Shared.Dictionary {\r\n return {};\r\n }\r\n\r\n protected internalPrepareForExecution(inputs: Shared.Dictionary) {\r\n // Do nothing in base implementation\r\n }\r\n\r\n protected internalValidateInputs(referencedInputs: Shared.Dictionary): Array {\r\n let result: Input[] = [];\r\n\r\n if (AdaptiveCard.useBuiltInInputValidation && !this.ignoreInputValidation) {\r\n for (let key of Object.keys(referencedInputs)) {\r\n let input = referencedInputs[key];\r\n\r\n if (!input.validateValue()) {\r\n result.push(input);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n abstract getJsonTypeName(): string;\r\n\r\n readonly requires = new HostConfig.HostCapabilities();\r\n\r\n title: string;\r\n iconUrl: string;\r\n style: string = Enums.ActionStyle.Default;\r\n\r\n onExecute: (sender: Action) => void;\r\n\r\n getAriaRole(): string {\r\n return \"button\";\r\n }\r\n\r\n getHref(): string {\r\n return \"\";\r\n }\r\n\r\n toJSON(): any {\r\n\t\tlet result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"type\", this.getJsonTypeName());\r\n Utils.setProperty(result, \"title\", this.title);\r\n Utils.setProperty(result, \"iconUrl\", this.iconUrl);\r\n Utils.setProperty(result, \"style\", this.style, Enums.ActionStyle.Default);\r\n\r\n return result;\r\n }\r\n\r\n render(baseCssClass: string = \"ac-pushButton\") {\r\n // Cache hostConfig for perf\r\n let hostConfig = this.parent.hostConfig;\r\n\r\n let buttonElement = document.createElement(\"button\");\r\n\r\n this.addCssClasses(buttonElement);\r\n\r\n buttonElement.setAttribute(\"aria-label\", this.title);\r\n buttonElement.type = \"button\";\r\n buttonElement.style.display = \"flex\";\r\n buttonElement.style.alignItems = \"center\";\r\n buttonElement.style.justifyContent = \"center\";\r\n\r\n buttonElement.setAttribute(\"role\", this.getAriaRole());\r\n\r\n let hasTitle = !Utils.isNullOrEmpty(this.title);\r\n\r\n let titleElement = document.createElement(\"div\");\r\n titleElement.style.overflow = \"hidden\";\r\n titleElement.style.textOverflow = \"ellipsis\";\r\n\r\n if (!(hostConfig.actions.iconPlacement == Enums.ActionIconPlacement.AboveTitle || hostConfig.actions.allowTitleToWrap)) {\r\n titleElement.style.whiteSpace = \"nowrap\";\r\n }\r\n\r\n if (hasTitle) {\r\n titleElement.innerText = this.title;\r\n }\r\n\r\n if (Utils.isNullOrEmpty(this.iconUrl)) {\r\n buttonElement.classList.add(\"noIcon\");\r\n\r\n buttonElement.appendChild(titleElement);\r\n }\r\n else {\r\n let iconElement = document.createElement(\"img\");\r\n iconElement.src = this.iconUrl;\r\n iconElement.style.width = hostConfig.actions.iconSize + \"px\";\r\n iconElement.style.height = hostConfig.actions.iconSize + \"px\";\r\n iconElement.style.flex = \"0 0 auto\";\r\n\r\n if (hostConfig.actions.iconPlacement == Enums.ActionIconPlacement.AboveTitle) {\r\n buttonElement.classList.add(\"iconAbove\");\r\n buttonElement.style.flexDirection = \"column\";\r\n\r\n if (hasTitle) {\r\n iconElement.style.marginBottom = \"4px\";\r\n }\r\n }\r\n else {\r\n buttonElement.classList.add(\"iconLeft\");\r\n\r\n if (hasTitle) {\r\n iconElement.style.marginRight = \"4px\";\r\n }\r\n }\r\n\r\n buttonElement.appendChild(iconElement);\r\n buttonElement.appendChild(titleElement);\r\n }\r\n\r\n this._renderedElement = buttonElement;\r\n }\r\n\r\n setParent(value: CardElement) {\r\n this._parent = value;\r\n }\r\n\r\n execute() {\r\n if (this.onExecute) {\r\n this.onExecute(this);\r\n }\r\n\r\n raiseExecuteActionEvent(this);\r\n }\r\n\r\n prepareForExecution(): boolean {\r\n let referencedInputs = this.getReferencedInputs();\r\n\r\n if (this.internalValidateInputs(referencedInputs).length > 0) {\r\n return false;\r\n }\r\n\r\n this.internalPrepareForExecution(referencedInputs);\r\n\r\n return true;\r\n };\r\n\r\n parse(json: any, errors?: Array) {\r\n\t\tsuper.parse(json, errors);\r\n\r\n raiseParseActionEvent(this, json, errors);\r\n\r\n this.requires.parse(json[\"requires\"], errors);\r\n\r\n if (!json[\"title\"] && json[\"title\"] !== \"\") {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"Actions should always have a title.\"\r\n },\r\n errors\r\n );\r\n }\r\n\r\n this.title = Utils.getStringValue(json[\"title\"]);\r\n this.iconUrl = Utils.getStringValue(json[\"iconUrl\"]);\r\n this.style = Utils.getStringValue(json[\"style\"], this.style);\r\n }\r\n\r\n remove(): boolean {\r\n if (this._actionCollection) {\r\n return this._actionCollection.removeAction(this);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getAllInputs(): Array {\r\n return [];\r\n }\r\n\r\n getResourceInformation(): Array {\r\n if (!Utils.isNullOrEmpty(this.iconUrl)) {\r\n return [{ url: this.iconUrl, mimeType: \"image\" }]\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n\r\n getActionById(id: string): Action {\r\n if (this.id == id) {\r\n return this;\r\n }\r\n }\r\n\r\n getReferencedInputs(): Shared.Dictionary {\r\n return this.internalGetReferencedInputs(this.parent.getRootElement().getAllInputs());\r\n }\r\n\r\n validateInputs() {\r\n return this.internalValidateInputs(this.getReferencedInputs());\r\n }\r\n\r\n shouldFallback(): boolean {\r\n return this._shouldFallback || !this.requires.areAllMet(this.parent.hostConfig.hostCapabilities);\r\n }\r\n\r\n get isPrimary(): boolean {\r\n return this.style == Enums.ActionStyle.Positive;\r\n }\r\n\r\n set isPrimary(value: boolean) {\r\n if (value) {\r\n this.style = Enums.ActionStyle.Positive;\r\n }\r\n else {\r\n if (this.style == Enums.ActionStyle.Positive) {\r\n this.style = Enums.ActionStyle.Default;\r\n }\r\n }\r\n }\r\n\r\n get ignoreInputValidation(): boolean {\r\n return true;\r\n }\r\n\r\n get parent(): CardElement {\r\n return this._parent;\r\n }\r\n\r\n get renderedElement(): HTMLElement {\r\n return this._renderedElement;\r\n }\r\n}\r\n\r\nexport class SubmitAction extends Action {\r\n // Note the \"weird\" way this field is declared is to work around a breaking\r\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n static readonly JsonTypeName: \"Action.Submit\" = \"Action.Submit\";\r\n\r\n private _isPrepared: boolean = false;\r\n private _originalData: Object;\r\n private _processedData: Object;\r\n private _ignoreInputValidation: boolean = false;\r\n\r\n protected internalGetReferencedInputs(allInputs: Array): Shared.Dictionary {\r\n let result: Shared.Dictionary = {};\r\n\r\n for (let input of allInputs) {\r\n result[input.id] = input;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n protected internalPrepareForExecution(inputs: Shared.Dictionary) {\r\n if (this._originalData) {\r\n this._processedData = JSON.parse(JSON.stringify(this._originalData));\r\n }\r\n else {\r\n this._processedData = {};\r\n }\r\n\r\n for (let key of Object.keys(inputs)) {\r\n let input = inputs[key];\r\n\r\n if (input.value != null) {\r\n this._processedData[input.id] = input.value;\r\n }\r\n }\r\n\r\n this._isPrepared = true;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return SubmitAction.JsonTypeName;\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"ignoreInputValidation\", this.ignoreInputValidation, false);\r\n Utils.setProperty(result, \"data\", this._originalData);\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this._ignoreInputValidation = Utils.getBoolValue(json[\"ignoreInputValidation\"], this._ignoreInputValidation);\r\n this.data = json[\"data\"];\r\n }\r\n\r\n get ignoreInputValidation(): boolean {\r\n return this._ignoreInputValidation;\r\n }\r\n\r\n set ignoreInputValidation(value: boolean) {\r\n this._ignoreInputValidation = value;\r\n }\r\n\r\n get data(): Object {\r\n return this._isPrepared ? this._processedData : this._originalData;\r\n }\r\n\r\n set data(value: Object) {\r\n this._originalData = value;\r\n this._isPrepared = false;\r\n }\r\n}\r\n\r\nexport class OpenUrlAction extends Action {\r\n // Note the \"weird\" way this field is declared is to work around a breaking\r\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n static readonly JsonTypeName: \"Action.OpenUrl\" = \"Action.OpenUrl\";\r\n\r\n url: string;\r\n\r\n getJsonTypeName(): string {\r\n return OpenUrlAction.JsonTypeName;\r\n }\r\n\r\n getAriaRole(): string {\r\n return \"link\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"url\", this.url);\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (Utils.isNullOrEmpty(this.url)) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"An Action.OpenUrl must have its url property set.\"\r\n });\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.url = Utils.getStringValue(json[\"url\"]);\r\n }\r\n\r\n getHref(): string {\r\n return this.url;\r\n }\r\n}\r\n\r\nexport class ToggleVisibilityAction extends Action {\r\n // Note the \"weird\" way this field is declared is to work around a breaking\r\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n static readonly JsonTypeName: \"Action.ToggleVisibility\" = \"Action.ToggleVisibility\";\r\n\r\n targetElements = {}\r\n\r\n getJsonTypeName(): string {\r\n return ToggleVisibilityAction.JsonTypeName;\r\n }\r\n\r\n execute() {\r\n for (let elementId of Object.keys(this.targetElements)) {\r\n let targetElement = this.parent.getRootElement().getElementById(elementId);\r\n\r\n if (targetElement) {\r\n if (typeof this.targetElements[elementId] === \"boolean\") {\r\n targetElement.isVisible = this.targetElements[elementId];\r\n }\r\n else {\r\n targetElement.isVisible = !targetElement.isVisible;\r\n }\r\n }\r\n }\r\n }\r\n\r\n parse(json: any) {\r\n super.parse(json);\r\n\r\n this.targetElements = {};\r\n\r\n let jsonTargetElements = json[\"targetElements\"];\r\n\r\n if (jsonTargetElements && Array.isArray(jsonTargetElements)) {\r\n for (let item of jsonTargetElements) {\r\n if (typeof item === \"string\") {\r\n this.targetElements[item] = undefined;\r\n }\r\n else if (typeof item === \"object\") {\r\n let jsonElementId = item[\"elementId\"];\r\n\r\n if (jsonElementId && typeof jsonElementId === \"string\") {\r\n this.targetElements[jsonElementId] = Utils.getBoolValue(item[\"isVisible\"], undefined);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON() {\r\n let result = super.toJSON();\r\n\r\n let targetElements: any[] = [];\r\n\r\n for (let id of Object.keys(this.targetElements)) {\r\n if (typeof this.targetElements[id] === \"boolean\") {\r\n targetElements.push(\r\n {\r\n elementId: id,\r\n isVisible: this.targetElements[id]\r\n }\r\n );\r\n }\r\n else {\r\n targetElements.push(id);\r\n }\r\n }\r\n\r\n result[\"targetElements\"] = targetElements;\r\n\r\n return result;\r\n }\r\n\r\n addTargetElement(elementId: string, isVisible: boolean = undefined) {\r\n this.targetElements[elementId] = isVisible;\r\n }\r\n\r\n removeTargetElement(elementId) {\r\n delete this.targetElements[elementId];\r\n }\r\n}\r\n\r\nexport class HttpHeader extends SerializableObject {\r\n private _value = new Shared.StringWithSubstitutions();\r\n\r\n name: string;\r\n\r\n constructor(name: string = \"\", value: string = \"\") {\r\n super();\r\n\r\n this.name = name;\r\n this.value = value;\r\n }\r\n\r\n parse(json: any) {\r\n super.parse(json);\r\n\r\n this.name = Utils.getStringValue(json[\"name\"]);\r\n this.value = Utils.getStringValue(json[\"value\"]);\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"name\", this.name);\r\n Utils.setProperty(result, \"value\", this._value.getOriginal());\r\n\r\n return result;\r\n }\r\n\r\n getReferencedInputs(inputs: Array, referencedInputs: Shared.Dictionary) {\r\n this._value.getReferencedInputs(inputs, referencedInputs);\r\n }\r\n\r\n prepareForExecution(inputs: Shared.Dictionary) {\r\n this._value.substituteInputValues(inputs, Shared.ContentTypes.applicationXWwwFormUrlencoded);\r\n }\r\n\r\n get value(): string {\r\n return this._value.get();\r\n }\r\n\r\n set value(newValue: string) {\r\n this._value.set(newValue);\r\n }\r\n}\r\n\r\nexport class HttpAction extends Action {\r\n // Note the \"weird\" way this field is declared is to work around a breaking\r\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n static readonly JsonTypeName: \"Action.Http\" = \"Action.Http\";\r\n\r\n private _url = new Shared.StringWithSubstitutions();\r\n private _body = new Shared.StringWithSubstitutions();\r\n private _headers: Array = [];\r\n private _ignoreInputValidation: boolean = false;\r\n\r\n protected internalGetReferencedInputs(allInputs: Array): Shared.Dictionary {\r\n let result: Shared.Dictionary = {};\r\n\r\n this._url.getReferencedInputs(allInputs, result);\r\n\r\n for (let header of this._headers) {\r\n header.getReferencedInputs(allInputs, result);\r\n }\r\n\r\n this._body.getReferencedInputs(allInputs, result);\r\n\r\n return result;\r\n }\r\n\r\n protected internalPrepareForExecution(inputs: Shared.Dictionary) {\r\n this._url.substituteInputValues(inputs, Shared.ContentTypes.applicationXWwwFormUrlencoded);\r\n\r\n let contentType = Shared.ContentTypes.applicationJson;\r\n\r\n for (let header of this._headers) {\r\n header.prepareForExecution(inputs);\r\n\r\n if (header.name && header.name.toLowerCase() == \"content-type\") {\r\n contentType = header.value;\r\n }\r\n }\r\n\r\n this._body.substituteInputValues(inputs, contentType);\r\n };\r\n\r\n method: string;\r\n\r\n getJsonTypeName(): string {\r\n return HttpAction.JsonTypeName;\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"method\", this.method);\r\n Utils.setProperty(result, \"url\", this._url.getOriginal());\r\n Utils.setProperty(result, \"body\", this._body.getOriginal());\r\n Utils.setProperty(result, \"ignoreInputValidation\", this.ignoreInputValidation, false);\r\n Utils.setArrayProperty(result, \"headers\", this.headers);\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (Utils.isNullOrEmpty(this.url)) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"An Action.Http must have its url property set.\"\r\n });\r\n }\r\n\r\n if (this.headers.length > 0) {\r\n for (let header of this.headers) {\r\n if (!header.name) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"All headers of an Action.Http must have their name and value properties set.\"\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.url = Utils.getStringValue(json[\"url\"]);\r\n this.method = Utils.getStringValue(json[\"method\"]);\r\n this.body = Utils.getStringValue(json[\"body\"]);\r\n this._ignoreInputValidation = Utils.getBoolValue(json[\"ignoreInputValidation\"], this._ignoreInputValidation);\r\n\r\n this._headers = [];\r\n\r\n if (Array.isArray(json[\"headers\"])) {\r\n for (let jsonHeader of json[\"headers\"]) {\r\n let httpHeader = new HttpHeader();\r\n httpHeader.parse(jsonHeader);\r\n\r\n this.headers.push(httpHeader);\r\n }\r\n }\r\n }\r\n\r\n get ignoreInputValidation(): boolean {\r\n return this._ignoreInputValidation;\r\n }\r\n\r\n set ignoreInputValidation(value: boolean) {\r\n this._ignoreInputValidation = value;\r\n }\r\n\r\n get url(): string {\r\n return this._url.get();\r\n }\r\n\r\n set url(value: string) {\r\n this._url.set(value);\r\n }\r\n\r\n get body(): string {\r\n return this._body.get();\r\n }\r\n\r\n set body(value: string) {\r\n this._body.set(value);\r\n }\r\n\r\n get headers(): Array {\r\n return this._headers ? this._headers : [];\r\n }\r\n\r\n set headers(value: Array) {\r\n this._headers = value;\r\n }\r\n}\r\n\r\nexport class ShowCardAction extends Action {\r\n // Note the \"weird\" way this field is declared is to work around a breaking\r\n // change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n static readonly JsonTypeName: \"Action.ShowCard\" = \"Action.ShowCard\";\r\n\r\n protected addCssClasses(element: HTMLElement) {\r\n super.addCssClasses(element);\r\n\r\n element.classList.add(this.parent.hostConfig.makeCssClassName(\"expandable\"));\r\n }\r\n\r\n readonly card: AdaptiveCard = new InlineAdaptiveCard();\r\n\r\n getJsonTypeName(): string {\r\n return ShowCardAction.JsonTypeName;\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n if (this.card) {\r\n Utils.setProperty(result, \"card\", this.card.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n this.card.internalValidateProperties(context);\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n let jsonCard = json[\"card\"];\r\n\r\n if (jsonCard) {\r\n this.card.parse(jsonCard, errors);\r\n }\r\n else {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"An Action.ShowCard must have its \\\"card\\\" property set to a valid AdaptiveCard object.\"\r\n },\r\n errors\r\n );\r\n }\r\n }\r\n\r\n setParent(value: CardElement) {\r\n super.setParent(value);\r\n\r\n this.card.setParent(value);\r\n }\r\n\r\n getAllInputs(): Array {\r\n return this.card.getAllInputs();\r\n }\r\n\r\n getResourceInformation(): Array {\r\n return super.getResourceInformation().concat(this.card.getResourceInformation());\r\n }\r\n\r\n getActionById(id: string): Action {\r\n var result = super.getActionById(id);\r\n\r\n if (!result) {\r\n result = this.card.getActionById(id);\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\nclass ActionCollection {\r\n private _owner: CardElement;\r\n private _actionCardContainer: HTMLDivElement;\r\n private _expandedAction: ShowCardAction = null;\r\n private _renderedActionCount: number = 0;\r\n private _actionCard: HTMLElement = null;\r\n\r\n private refreshContainer() {\r\n this._actionCardContainer.innerHTML = \"\";\r\n\r\n if (this._actionCard === null) {\r\n this._actionCardContainer.style.marginTop = \"0px\";\r\n\r\n return;\r\n }\r\n\r\n this._actionCardContainer.style.marginTop = this._renderedActionCount > 0 ? this._owner.hostConfig.actions.showCard.inlineTopMargin + \"px\" : \"0px\";\r\n\r\n let padding = this._owner.getEffectivePadding();\r\n\r\n this._owner.getImmediateSurroundingPadding(padding);\r\n\r\n let physicalPadding = this._owner.hostConfig.paddingDefinitionToSpacingDefinition(padding);\r\n\r\n if (this._actionCard !== null) {\r\n this._actionCard.style.paddingLeft = physicalPadding.left + \"px\";\r\n this._actionCard.style.paddingRight = physicalPadding.right + \"px\";\r\n\r\n this._actionCard.style.marginLeft = \"-\" + physicalPadding.left + \"px\";\r\n this._actionCard.style.marginRight = \"-\" + physicalPadding.right + \"px\";\r\n\r\n if (physicalPadding.bottom != 0 && !this._owner.isDesignMode()) {\r\n this._actionCard.style.paddingBottom = physicalPadding.bottom + \"px\";\r\n this._actionCard.style.marginBottom = \"-\" + physicalPadding.bottom + \"px\";\r\n }\r\n\r\n Utils.appendChild(this._actionCardContainer, this._actionCard);\r\n }\r\n }\r\n\r\n private layoutChanged() {\r\n this._owner.getRootElement().updateLayout();\r\n }\r\n\r\n private hideActionCard() {\r\n var previouslyExpandedAction = this._expandedAction;\r\n\r\n this._expandedAction = null;\r\n this._actionCard = null;\r\n\r\n this.refreshContainer();\r\n\r\n if (previouslyExpandedAction) {\r\n this.layoutChanged();\r\n\r\n raiseInlineCardExpandedEvent(previouslyExpandedAction, false);\r\n }\r\n }\r\n\r\n private showActionCard(action: ShowCardAction, suppressStyle: boolean = false, raiseEvent: boolean = true) {\r\n if (action.card == null) {\r\n return;\r\n }\r\n\r\n (action.card).suppressStyle = suppressStyle;\r\n\r\n var renderedCard = action.card.renderedElement ? action.card.renderedElement : action.card.render();\r\n\r\n this._actionCard = renderedCard;\r\n this._expandedAction = action;\r\n\r\n this.refreshContainer();\r\n\r\n if (raiseEvent) {\r\n this.layoutChanged();\r\n\r\n raiseInlineCardExpandedEvent(action, true);\r\n }\r\n }\r\n\r\n private collapseExpandedAction() {\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n this.buttons[i].state = ActionButtonState.Normal;\r\n }\r\n\r\n this.hideActionCard();\r\n }\r\n\r\n private expandShowCardAction(action: ShowCardAction, raiseEvent: boolean) {\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n if (this.buttons[i].action !== action) {\r\n this.buttons[i].state = ActionButtonState.Subdued;\r\n }\r\n else {\r\n this.buttons[i].state = ActionButtonState.Expanded;\r\n }\r\n }\r\n\r\n this.showActionCard(\r\n action,\r\n !(this._owner.isAtTheVeryLeft() && this._owner.isAtTheVeryRight()),\r\n raiseEvent);\r\n }\r\n\r\n private actionClicked(actionButton: ActionButton) {\r\n if (!(actionButton.action instanceof ShowCardAction)) {\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n this.buttons[i].state = ActionButtonState.Normal;\r\n }\r\n\r\n this.hideActionCard();\r\n\r\n actionButton.action.execute();\r\n }\r\n else {\r\n if (this._owner.hostConfig.actions.showCard.actionMode === Enums.ShowCardActionMode.Popup) {\r\n actionButton.action.execute();\r\n }\r\n else if (actionButton.action === this._expandedAction) {\r\n this.collapseExpandedAction();\r\n }\r\n else {\r\n this.expandShowCardAction(actionButton.action, true);\r\n }\r\n }\r\n }\r\n\r\n private getParentContainer(): Container {\r\n if (this._owner instanceof Container) {\r\n return this._owner;\r\n }\r\n else {\r\n return this._owner.getParentContainer();\r\n }\r\n }\r\n\r\n private findActionButton(action: Action): ActionButton {\r\n for (let actionButton of this.buttons) {\r\n if (actionButton.action == action) {\r\n return actionButton;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n items: Array = [];\r\n buttons: Array = [];\r\n\r\n constructor(owner: CardElement) {\r\n this._owner = owner;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n this.clear();\r\n\r\n if (json && json instanceof Array) {\r\n for (let jsonAction of json) {\r\n let action = createActionInstance(\r\n this._owner,\r\n jsonAction,\r\n [],\r\n !this._owner.isDesignMode(),\r\n errors);\r\n\r\n if (action) {\r\n this.addAction(action);\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON(): any {\r\n if (this.items.length > 0) {\r\n let result = [];\r\n\r\n for (let action of this.items) {\r\n result.push(action.toJSON());\r\n }\r\n\r\n return result;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n getActionById(id: string): Action {\r\n var result: Action = null;\r\n\r\n for (var i = 0; i < this.items.length; i++) {\r\n result = this.items[i].getActionById(id);\r\n\r\n if (result) {\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n validateProperties(context: ValidationResults) {\r\n if (this._owner.hostConfig.actions.maxActions && this.items.length > this._owner.hostConfig.actions.maxActions) {\r\n context.addFailure(\r\n this._owner,\r\n {\r\n error: Enums.ValidationError.TooManyActions,\r\n message: \"A maximum of \" + this._owner.hostConfig.actions.maxActions + \" actions are allowed.\"\r\n });\r\n }\r\n\r\n if (this.items.length > 0 && !this._owner.hostConfig.supportsInteractivity) {\r\n context.addFailure(\r\n this._owner,\r\n {\r\n error: Enums.ValidationError.InteractivityNotAllowed,\r\n message: \"Interactivity is not allowed.\"\r\n });\r\n }\r\n\r\n for (let item of this.items) {\r\n if (!isActionAllowed(item, this._owner.getForbiddenActionTypes())) {\r\n context.addFailure(\r\n this._owner,\r\n {\r\n error: Enums.ValidationError.ActionTypeNotAllowed,\r\n message: \"Actions of type \" + item.getJsonTypeName() + \" are not allowe.\"\r\n });\r\n }\r\n\r\n item.internalValidateProperties(context);\r\n }\r\n }\r\n\r\n render(orientation: Enums.Orientation, isDesignMode: boolean): HTMLElement {\r\n // Cache hostConfig for better perf\r\n let hostConfig = this._owner.hostConfig;\r\n\r\n if (!hostConfig.supportsInteractivity) {\r\n return null;\r\n }\r\n\r\n let element = document.createElement(\"div\");\r\n let maxActions = hostConfig.actions.maxActions ? Math.min(hostConfig.actions.maxActions, this.items.length) : this.items.length;\r\n let forbiddenActionTypes = this._owner.getForbiddenActionTypes();\r\n\r\n this._actionCardContainer = document.createElement(\"div\");\r\n this._renderedActionCount = 0;\r\n\r\n if (hostConfig.actions.preExpandSingleShowCardAction && maxActions == 1 && this.items[0] instanceof ShowCardAction && isActionAllowed(this.items[0], forbiddenActionTypes)) {\r\n this.showActionCard(this.items[0], true);\r\n this._renderedActionCount = 1;\r\n }\r\n else {\r\n let buttonStrip = document.createElement(\"div\");\r\n buttonStrip.className = hostConfig.makeCssClassName(\"ac-actionSet\");\r\n buttonStrip.style.display = \"flex\";\r\n\r\n if (orientation == Enums.Orientation.Horizontal) {\r\n buttonStrip.style.flexDirection = \"row\";\r\n\r\n if (this._owner.horizontalAlignment && hostConfig.actions.actionAlignment != Enums.ActionAlignment.Stretch) {\r\n switch (this._owner.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n buttonStrip.style.justifyContent = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n buttonStrip.style.justifyContent = \"flex-end\";\r\n break;\r\n default:\r\n buttonStrip.style.justifyContent = \"flex-start\";\r\n break;\r\n }\r\n }\r\n else {\r\n switch (hostConfig.actions.actionAlignment) {\r\n case Enums.ActionAlignment.Center:\r\n buttonStrip.style.justifyContent = \"center\";\r\n break;\r\n case Enums.ActionAlignment.Right:\r\n buttonStrip.style.justifyContent = \"flex-end\";\r\n break;\r\n default:\r\n buttonStrip.style.justifyContent = \"flex-start\";\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n buttonStrip.style.flexDirection = \"column\";\r\n\r\n if (this._owner.horizontalAlignment && hostConfig.actions.actionAlignment != Enums.ActionAlignment.Stretch) {\r\n switch (this._owner.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n buttonStrip.style.alignItems = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n buttonStrip.style.alignItems = \"flex-end\";\r\n break;\r\n default:\r\n buttonStrip.style.alignItems = \"flex-start\";\r\n break;\r\n }\r\n }\r\n else {\r\n switch (hostConfig.actions.actionAlignment) {\r\n case Enums.ActionAlignment.Center:\r\n buttonStrip.style.alignItems = \"center\";\r\n break;\r\n case Enums.ActionAlignment.Right:\r\n buttonStrip.style.alignItems = \"flex-end\";\r\n break;\r\n case Enums.ActionAlignment.Stretch:\r\n buttonStrip.style.alignItems = \"stretch\";\r\n break;\r\n default:\r\n buttonStrip.style.alignItems = \"flex-start\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let parentContainerStyle = this.getParentContainer().getEffectiveStyle();\r\n\r\n for (let i = 0; i < this.items.length; i++) {\r\n if (isActionAllowed(this.items[i], forbiddenActionTypes)) {\r\n let actionButton: ActionButton = this.findActionButton(this.items[i]);\r\n\r\n if (!actionButton) {\r\n actionButton = new ActionButton(this.items[i], parentContainerStyle);\r\n actionButton.onClick = (ab) => { this.actionClicked(ab); };\r\n\r\n this.buttons.push(actionButton);\r\n }\r\n\r\n actionButton.render();\r\n\r\n if (hostConfig.actions.actionsOrientation == Enums.Orientation.Horizontal && hostConfig.actions.actionAlignment == Enums.ActionAlignment.Stretch) {\r\n actionButton.action.renderedElement.style.flex = \"0 1 100%\";\r\n }\r\n else {\r\n actionButton.action.renderedElement.style.flex = \"0 1 auto\";\r\n }\r\n\r\n buttonStrip.appendChild(actionButton.action.renderedElement);\r\n\r\n this._renderedActionCount++;\r\n\r\n if (this._renderedActionCount >= hostConfig.actions.maxActions || i == this.items.length - 1) {\r\n break;\r\n }\r\n else if (hostConfig.actions.buttonSpacing > 0) {\r\n var spacer = document.createElement(\"div\");\r\n\r\n if (orientation === Enums.Orientation.Horizontal) {\r\n spacer.style.flex = \"0 0 auto\";\r\n spacer.style.width = hostConfig.actions.buttonSpacing + \"px\";\r\n }\r\n else {\r\n spacer.style.height = hostConfig.actions.buttonSpacing + \"px\";\r\n }\r\n\r\n Utils.appendChild(buttonStrip, spacer);\r\n }\r\n }\r\n }\r\n\r\n let buttonStripContainer = document.createElement(\"div\");\r\n buttonStripContainer.style.overflow = \"hidden\";\r\n buttonStripContainer.appendChild(buttonStrip);\r\n\r\n Utils.appendChild(element, buttonStripContainer);\r\n }\r\n\r\n Utils.appendChild(element, this._actionCardContainer);\r\n\r\n for (let i = 0; i < this.buttons.length; i++) {\r\n if (this.buttons[i].state == ActionButtonState.Expanded) {\r\n this.expandShowCardAction(this.buttons[i].action, false);\r\n\r\n break;\r\n }\r\n }\r\n\r\n return this._renderedActionCount > 0 ? element : null;\r\n }\r\n\r\n addAction(action: Action) {\r\n if (!action) {\r\n throw new Error(\"The action parameter cannot be null.\");\r\n }\r\n\r\n if ((!action.parent || action.parent === this._owner) && this.items.indexOf(action) < 0) {\r\n this.items.push(action);\r\n\r\n if (!action.parent) {\r\n action.setParent(this._owner);\r\n }\r\n\r\n invokeSetCollection(action, this);\r\n }\r\n else {\r\n throw new Error(\"The action already belongs to another element.\");\r\n }\r\n }\r\n\r\n removeAction(action: Action): boolean {\r\n if (this.expandedAction && this._expandedAction == action) {\r\n this.collapseExpandedAction();\r\n }\r\n\r\n var actionIndex = this.items.indexOf(action);\r\n\r\n if (actionIndex >= 0) {\r\n this.items.splice(actionIndex, 1);\r\n\r\n action.setParent(null);\r\n\r\n invokeSetCollection(action, null);\r\n\r\n for (let i = 0; i < this.buttons.length; i++) {\r\n if (this.buttons[i].action == action) {\r\n this.buttons.splice(i, 1);\r\n\r\n break;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n clear() {\r\n this.items = [];\r\n this.buttons = [];\r\n\r\n this._expandedAction = null;\r\n this._renderedActionCount = 0;\r\n }\r\n\r\n getAllInputs(): Array {\r\n var result: Array = [];\r\n\r\n for (var i = 0; i < this.items.length; i++) {\r\n var action = this.items[i];\r\n\r\n result = result.concat(action.getAllInputs());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getResourceInformation(): Array {\r\n let result: Array = [];\r\n\r\n for (var i = 0; i < this.items.length; i++) {\r\n result = result.concat(this.items[i].getResourceInformation());\r\n }\r\n\r\n return result;\r\n }\r\n\r\n get renderedActionCount(): number {\r\n return this._renderedActionCount;\r\n }\r\n\r\n get expandedAction(): ShowCardAction {\r\n return this._expandedAction;\r\n }\r\n}\r\n\r\nexport class ActionSet extends CardElement {\r\n private _actionCollection: ActionCollection;\r\n\r\n protected internalRender(): HTMLElement {\r\n return this._actionCollection.render(this.orientation ? this.orientation : this.hostConfig.actions.actionsOrientation, this.isDesignMode());\r\n }\r\n\r\n orientation?: Enums.Orientation = null;\r\n\r\n constructor() {\r\n super();\r\n\r\n this._actionCollection = new ActionCollection(this);\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setEnumProperty(Enums.Orientation, result, \"orientation\", this.orientation);\r\n Utils.setProperty(result, \"actions\", this._actionCollection.toJSON());\r\n\r\n return result;\r\n }\r\n\r\n isBleedingAtBottom(): boolean {\r\n if (this._actionCollection.renderedActionCount == 0) {\r\n return super.isBleedingAtBottom();\r\n }\r\n else {\r\n if (this._actionCollection.items.length == 1) {\r\n return this._actionCollection.expandedAction != null && !this.hostConfig.actions.preExpandSingleShowCardAction;\r\n }\r\n else {\r\n return this._actionCollection.expandedAction != null;\r\n }\r\n }\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"ActionSet\";\r\n }\r\n\r\n getActionCount(): number {\r\n return this._actionCollection.items.length;\r\n }\r\n\r\n getActionAt(index: number): Action {\r\n if (index >= 0 && index < this.getActionCount()) {\r\n return this._actionCollection.items[index];\r\n }\r\n else {\r\n super.getActionAt(index);\r\n }\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n this._actionCollection.validateProperties(context);\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n var jsonOrientation = json[\"orientation\"];\r\n\r\n if (jsonOrientation) {\r\n this.orientation = Utils.getEnumValue(Enums.Orientation, jsonOrientation, Enums.Orientation.Horizontal);\r\n }\r\n\r\n this._actionCollection.parse(json[\"actions\"], errors);\r\n }\r\n\r\n addAction(action: Action) {\r\n this._actionCollection.addAction(action);\r\n }\r\n\r\n getAllInputs(): Array {\r\n return this._actionCollection.getAllInputs();\r\n }\r\n\r\n getResourceInformation(): Array {\r\n return this._actionCollection.getResourceInformation();\r\n }\r\n\r\n get isInteractive(): boolean {\r\n return true;\r\n }\r\n}\r\n\r\nexport abstract class StylableCardElementContainer extends CardElementContainer {\r\n private _style?: string = null;\r\n private _bleed: boolean = false;\r\n\r\n protected applyBackground() {\r\n let styleDefinition = this.hostConfig.containerStyles.getStyleByName(this.style, this.hostConfig.containerStyles.getStyleByName(this.defaultStyle));\r\n\r\n if (!Utils.isNullOrEmpty(styleDefinition.backgroundColor)) {\r\n this.renderedElement.style.backgroundColor = Utils.stringToCssColor(styleDefinition.backgroundColor);\r\n }\r\n }\r\n\r\n protected applyPadding() {\r\n super.applyPadding();\r\n\r\n if (!this.renderedElement) {\r\n return;\r\n }\r\n\r\n let physicalPadding = new Shared.SpacingDefinition();\r\n\r\n if (this.getEffectivePadding()) {\r\n physicalPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(this.getEffectivePadding());\r\n }\r\n\r\n this.renderedElement.style.paddingTop = physicalPadding.top + \"px\";\r\n this.renderedElement.style.paddingRight = physicalPadding.right + \"px\";\r\n this.renderedElement.style.paddingBottom = physicalPadding.bottom + \"px\";\r\n this.renderedElement.style.paddingLeft = physicalPadding.left + \"px\";\r\n\r\n if (this.isBleeding()) {\r\n // Bleed into the first parent that does have padding\r\n let padding = new Shared.PaddingDefinition();\r\n\r\n this.getImmediateSurroundingPadding(padding);\r\n\r\n let surroundingPadding = this.hostConfig.paddingDefinitionToSpacingDefinition(padding);\r\n\r\n this.renderedElement.style.marginRight = \"-\" + surroundingPadding.right + \"px\";\r\n this.renderedElement.style.marginLeft = \"-\" + surroundingPadding.left + \"px\";\r\n\r\n if (!this.isDesignMode()) {\r\n this.renderedElement.style.marginTop = \"-\" + surroundingPadding.top + \"px\";\r\n this.renderedElement.style.marginBottom = \"-\" + surroundingPadding.bottom + \"px\";\r\n }\r\n\r\n if (this.separatorElement && this.separatorOrientation == Enums.Orientation.Horizontal) {\r\n this.separatorElement.style.marginLeft = \"-\" + surroundingPadding.left + \"px\";\r\n this.separatorElement.style.marginRight = \"-\" + surroundingPadding.right + \"px\";\r\n }\r\n }\r\n else {\r\n this.renderedElement.style.marginRight = \"0\";\r\n this.renderedElement.style.marginLeft = \"0\";\r\n this.renderedElement.style.marginTop = \"0\";\r\n this.renderedElement.style.marginBottom = \"0\";\r\n\r\n if (this.separatorElement) {\r\n this.separatorElement.style.marginRight = \"0\";\r\n this.separatorElement.style.marginLeft = \"0\";\r\n }\r\n }\r\n }\r\n\r\n protected getHasBackground(): boolean {\r\n let currentElement: CardElement = this.parent;\r\n\r\n while (currentElement) {\r\n let currentElementHasBackgroundImage = currentElement instanceof Container ? currentElement.backgroundImage.isValid() : false;\r\n\r\n if (currentElement instanceof StylableCardElementContainer) {\r\n if (this.hasExplicitStyle && (currentElement.getEffectiveStyle() != this.getEffectiveStyle() || currentElementHasBackgroundImage)) {\r\n return true;\r\n }\r\n }\r\n\r\n currentElement = currentElement.parent;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n protected getDefaultPadding(): Shared.PaddingDefinition {\r\n return this.getHasBackground() ?\r\n new Shared.PaddingDefinition(\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding) : super.getDefaultPadding();\r\n }\r\n\r\n protected getHasExpandedAction(): boolean {\r\n return false;\r\n }\r\n\r\n protected getBleed(): boolean {\r\n return this._bleed;\r\n }\r\n\r\n protected setBleed(value: boolean) {\r\n this._bleed = value;\r\n }\r\n\r\n protected get renderedActionCount(): number {\r\n return 0;\r\n }\r\n\r\n protected get hasExplicitStyle(): boolean {\r\n return this._style != null;\r\n }\r\n\r\n protected get allowCustomStyle(): boolean {\r\n return true;\r\n }\r\n\r\n protected get supportsMinHeight(): boolean {\r\n return true;\r\n }\r\n\r\n isBleeding(): boolean {\r\n\t\treturn (this.getHasBackground() || this.hostConfig.alwaysAllowBleed) && this.getBleed();\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"style\", this.style);\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (this._style) {\r\n let styleDefinition = this.hostConfig.containerStyles.getStyleByName(this._style);\r\n\r\n if (!styleDefinition) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: \"Unknown container style: \" + this._style\r\n });\r\n }\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this._style = Utils.getStringValue(json[\"style\"]);\r\n }\r\n\r\n render(): HTMLElement {\r\n let renderedElement = super.render();\r\n\r\n if (renderedElement && this.getHasBackground()) {\r\n this.applyBackground();\r\n }\r\n\r\n return renderedElement;\r\n }\r\n\r\n getEffectiveStyle(): string {\r\n let effectiveStyle = this.style;\r\n\r\n return effectiveStyle ? effectiveStyle : super.getEffectiveStyle();\r\n }\r\n\r\n get style(): string {\r\n if (this.allowCustomStyle) {\r\n if (this._style && this.hostConfig.containerStyles.getStyleByName(this._style)) {\r\n return this._style;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n set style(value: string) {\r\n this._style = value;\r\n }\r\n}\r\n\r\nexport class BackgroundImage extends SerializableObject {\r\n private static readonly defaultFillMode = Enums.FillMode.Cover;\r\n private static readonly defaultHorizontalAlignment = Enums.HorizontalAlignment.Left;\r\n private static readonly defaultVerticalAlignment = Enums.VerticalAlignment.Top;\r\n\r\n url: string;\r\n fillMode: Enums.FillMode = BackgroundImage.defaultFillMode;\r\n horizontalAlignment: Enums.HorizontalAlignment = BackgroundImage.defaultHorizontalAlignment;\r\n verticalAlignment: Enums.VerticalAlignment = BackgroundImage.defaultVerticalAlignment;\r\n\r\n reset() {\r\n this.url = undefined;\r\n this.fillMode = BackgroundImage.defaultFillMode;\r\n this.horizontalAlignment = BackgroundImage.defaultHorizontalAlignment;\r\n this.verticalAlignment = BackgroundImage.defaultVerticalAlignment;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.url = Utils.getStringValue(json[\"url\"]);\r\n this.fillMode = Utils.getEnumValue(Enums.FillMode, json[\"fillMode\"], this.fillMode);\r\n this.horizontalAlignment = Utils.getEnumValue(Enums.HorizontalAlignment, json[\"horizontalAlignment\"], this.horizontalAlignment);\r\n this.verticalAlignment = Utils.getEnumValue(Enums.VerticalAlignment, json[\"verticalAlignment\"], this.verticalAlignment);\r\n }\r\n\r\n toJSON(): any {\r\n if (!this.isValid()) {\r\n return null;\r\n }\r\n\r\n if (this.fillMode == BackgroundImage.defaultFillMode &&\r\n this.horizontalAlignment == BackgroundImage.defaultHorizontalAlignment &&\r\n this.verticalAlignment == BackgroundImage.defaultVerticalAlignment) {\r\n\r\n return this.url;\r\n }\r\n else {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"url\", this.url);\r\n Utils.setEnumProperty(Enums.FillMode, result, \"fillMode\", this.fillMode, BackgroundImage.defaultFillMode);\r\n Utils.setEnumProperty(Enums.HorizontalAlignment, result, \"horizontalAlignment\", this.horizontalAlignment, BackgroundImage.defaultHorizontalAlignment);\r\n Utils.setEnumProperty(Enums.VerticalAlignment, result, \"verticalAlignment\", this.verticalAlignment, BackgroundImage.defaultVerticalAlignment);\r\n\r\n return result;\r\n }\r\n }\r\n\r\n apply(element: HTMLElement) {\r\n if (this.url) {\r\n element.style.backgroundImage = \"url('\" + this.url + \"')\";\r\n\r\n switch (this.fillMode) {\r\n case Enums.FillMode.Repeat:\r\n element.style.backgroundRepeat = \"repeat\";\r\n break;\r\n case Enums.FillMode.RepeatHorizontally:\r\n element.style.backgroundRepeat = \"repeat-x\";\r\n break;\r\n case Enums.FillMode.RepeatVertically:\r\n element.style.backgroundRepeat = \"repeat-y\";\r\n break;\r\n case Enums.FillMode.Cover:\r\n default:\r\n element.style.backgroundRepeat = \"no-repeat\";\r\n element.style.backgroundSize = \"cover\";\r\n break;\r\n }\r\n\r\n switch (this.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n element.style.backgroundPositionX = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n element.style.backgroundPositionX = \"right\";\r\n break;\r\n }\r\n\r\n switch (this.verticalAlignment) {\r\n case Enums.VerticalAlignment.Center:\r\n element.style.backgroundPositionY = \"center\";\r\n break;\r\n case Enums.VerticalAlignment.Bottom:\r\n element.style.backgroundPositionY = \"bottom\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n return !Utils.isNullOrEmpty(this.url);\r\n }\r\n}\r\n\r\nexport class Container extends StylableCardElementContainer {\r\n private _items: Array = [];\r\n private _renderedItems: Array = [];\r\n\r\n private insertItemAt(\r\n item: CardElement,\r\n index: number,\r\n forceInsert: boolean) {\r\n if (!item.parent || forceInsert) {\r\n if (item.isStandalone) {\r\n if (index < 0 || index >= this._items.length) {\r\n this._items.push(item);\r\n }\r\n else {\r\n this._items.splice(index, 0, item);\r\n }\r\n\r\n item.setParent(this);\r\n }\r\n else {\r\n throw new Error(\"Elements of type \" + item.getJsonTypeName() + \" cannot be used as standalone elements.\");\r\n }\r\n }\r\n else {\r\n throw new Error(\"The element already belongs to another container.\")\r\n }\r\n }\r\n\r\n protected supportsExcplitiHeight(): boolean {\r\n return true;\r\n }\r\n\r\n protected getItemsCollectionPropertyName(): string {\r\n return \"items\";\r\n }\r\n\r\n protected applyBackground() {\r\n if (this.backgroundImage.isValid()) {\r\n this.backgroundImage.apply(this.renderedElement);\r\n }\r\n\r\n super.applyBackground();\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n this._renderedItems = [];\r\n\r\n // Cache hostConfig to avoid walking the parent hierarchy several times\r\n let hostConfig = this.hostConfig;\r\n\r\n var element = document.createElement(\"div\");\r\n\r\n if (this.rtl != null && this.rtl) {\r\n element.dir = \"rtl\";\r\n }\r\n\r\n element.classList.add(hostConfig.makeCssClassName(\"ac-container\"));\r\n element.style.display = \"flex\";\r\n element.style.flexDirection = \"column\";\r\n\r\n if (AdaptiveCard.useAdvancedCardBottomTruncation) {\r\n // Forces the container to be at least as tall as its content.\r\n //\r\n // Fixes a quirk in Chrome where, for nested flex elements, the\r\n // inner element's height would never exceed the outer element's\r\n // height. This caused overflow truncation to break -- containers\r\n // would always be measured as not overflowing, since their heights\r\n // were constrained by their parents as opposed to truly reflecting\r\n // the height of their content.\r\n //\r\n // See the \"Browser Rendering Notes\" section of this answer:\r\n // https://stackoverflow.com/questions/36247140/why-doesnt-flex-item-shrink-past-content-size\r\n element.style.minHeight = '-webkit-min-content';\r\n }\r\n\r\n switch (this.verticalContentAlignment) {\r\n case Enums.VerticalAlignment.Center:\r\n element.style.justifyContent = \"center\";\r\n break;\r\n case Enums.VerticalAlignment.Bottom:\r\n element.style.justifyContent = \"flex-end\";\r\n break;\r\n default:\r\n element.style.justifyContent = \"flex-start\";\r\n break;\r\n }\r\n\r\n if (this._items.length > 0) {\r\n for (var i = 0; i < this._items.length; i++) {\r\n var renderedElement = this.isElementAllowed(this._items[i], this.getForbiddenElementTypes()) ? this._items[i].render() : null;\r\n\r\n if (renderedElement) {\r\n if (this._renderedItems.length > 0 && this._items[i].separatorElement) {\r\n this._items[i].separatorElement.style.flex = \"0 0 auto\";\r\n\r\n Utils.appendChild(element, this._items[i].separatorElement);\r\n }\r\n\r\n Utils.appendChild(element, renderedElement);\r\n\r\n this._renderedItems.push(this._items[i]);\r\n }\r\n }\r\n }\r\n else {\r\n if (this.isDesignMode()) {\r\n var placeholderElement = this.createPlaceholderElement();\r\n placeholderElement.style.width = \"100%\";\r\n placeholderElement.style.height = \"100%\";\r\n\r\n element.appendChild(placeholderElement);\r\n }\r\n }\r\n\r\n return element;\r\n }\r\n\r\n protected truncateOverflow(maxHeight: number): boolean {\r\n // Add 1 to account for rounding differences between browsers\r\n var boundary = this.renderedElement.offsetTop + maxHeight + 1;\r\n\r\n var handleElement = (cardElement: CardElement) => {\r\n let elt = cardElement.renderedElement;\r\n\r\n if (elt) {\r\n switch (Utils.getFitStatus(elt, boundary)) {\r\n case Enums.ContainerFitStatus.FullyInContainer:\r\n let sizeChanged = cardElement['resetOverflow']();\r\n // If the element's size changed after resetting content,\r\n // we have to check if it still fits fully in the card\r\n if (sizeChanged) {\r\n handleElement(cardElement);\r\n }\r\n break;\r\n case Enums.ContainerFitStatus.Overflowing:\r\n let maxHeight = boundary - elt.offsetTop;\r\n cardElement['handleOverflow'](maxHeight);\r\n break;\r\n case Enums.ContainerFitStatus.FullyOutOfContainer:\r\n cardElement['handleOverflow'](0);\r\n break;\r\n }\r\n }\r\n };\r\n\r\n for (let item of this._items) {\r\n handleElement(item);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected undoOverflowTruncation() {\r\n for (let item of this._items) {\r\n item['resetOverflow']();\r\n }\r\n }\r\n\r\n protected getHasBackground(): boolean {\r\n return this.backgroundImage.isValid() || super.getHasBackground();\r\n }\r\n\r\n protected get isSelectable(): boolean {\r\n return true;\r\n }\r\n\r\n readonly backgroundImage: BackgroundImage = new BackgroundImage();\r\n\r\n verticalContentAlignment: Enums.VerticalAlignment = Enums.VerticalAlignment.Top;\r\n rtl?: boolean = null;\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"backgroundImage\", this.backgroundImage.toJSON());\r\n\r\n Utils.setEnumProperty(Enums.VerticalAlignment, result, \"verticalContentAlignment\", this.verticalContentAlignment, Enums.VerticalAlignment.Top);\r\n\r\n if (this._items.length > 0) {\r\n let elements = [];\r\n\r\n for (let element of this._items) {\r\n elements.push(element.toJSON());\r\n }\r\n\r\n Utils.setProperty(result, this.getItemsCollectionPropertyName(), elements);\r\n }\r\n\r\n Utils.setProperty(result, \"bleed\", this.bleed, false);\r\n\r\n return result;\r\n }\r\n\r\n getItemCount(): number {\r\n return this._items.length;\r\n }\r\n\r\n getItemAt(index: number): CardElement {\r\n return this._items[index];\r\n }\r\n\r\n getFirstVisibleRenderedItem(): CardElement {\r\n if (this.renderedElement && this._renderedItems && this._renderedItems.length > 0) {\r\n for (let item of this._renderedItems) {\r\n if (item.isVisible) {\r\n return item;\r\n }\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getLastVisibleRenderedItem(): CardElement {\r\n if (this.renderedElement && this._renderedItems && this._renderedItems.length > 0) {\r\n for (let i = this._renderedItems.length - 1; i >= 0; i--) {\r\n if (this._renderedItems[i].isVisible) {\r\n return this._renderedItems[i];\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Container\";\r\n }\r\n\r\n isFirstElement(element: CardElement): boolean {\r\n let designMode = this.isDesignMode();\r\n\r\n for (var i = 0; i < this._items.length; i++) {\r\n if (this._items[i].isVisible || designMode) {\r\n return this._items[i] == element;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isLastElement(element: CardElement): boolean {\r\n let designMode = this.isDesignMode();\r\n\r\n for (var i = this._items.length - 1; i >= 0; i--) {\r\n if (this._items[i].isVisible || designMode) {\r\n return this._items[i] == element;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isRtl(): boolean {\r\n if (this.rtl != null) {\r\n return this.rtl;\r\n }\r\n else {\r\n let parentContainer = this.getParentContainer();\r\n\r\n return parentContainer ? parentContainer.isRtl() : false;\r\n }\r\n }\r\n\r\n isBleedingAtTop(): boolean {\r\n let firstRenderedItem = this.getFirstVisibleRenderedItem();\r\n\r\n return this.isBleeding() || (firstRenderedItem ? firstRenderedItem.isBleedingAtTop() : false);\r\n }\r\n\r\n isBleedingAtBottom(): boolean {\r\n let lastRenderedItem = this.getLastVisibleRenderedItem();\r\n\r\n return this.isBleeding() || (lastRenderedItem ? lastRenderedItem.isBleedingAtBottom() && lastRenderedItem.getEffectiveStyle() == this.getEffectiveStyle() : false);\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this.setShouldFallback(false);\r\n\r\n this._items = [];\r\n this._renderedItems = [];\r\n\r\n this.backgroundImage.reset();\r\n\r\n let jsonBackgroundImage = json[\"backgroundImage\"];\r\n\r\n if (jsonBackgroundImage) {\r\n if (typeof jsonBackgroundImage === \"string\") {\r\n this.backgroundImage.url = jsonBackgroundImage;\r\n this.backgroundImage.fillMode = Enums.FillMode.Cover;\r\n }\r\n else if (typeof jsonBackgroundImage === \"object\") {\r\n this.backgroundImage.parse(jsonBackgroundImage, errors);\r\n }\r\n }\r\n\r\n this.verticalContentAlignment = Utils.getEnumValue(Enums.VerticalAlignment, json[\"verticalContentAlignment\"], this.verticalContentAlignment);\r\n\r\n if (json[this.getItemsCollectionPropertyName()] != null) {\r\n let items = json[this.getItemsCollectionPropertyName()] as Array;\r\n\r\n this.clear();\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n let element = createElementInstance(\r\n this,\r\n items[i],\r\n !this.isDesignMode(),\r\n errors);\r\n\r\n if (element) {\r\n this.insertItemAt(element, -1, true);\r\n }\r\n }\r\n }\r\n\r\n this.bleed = Utils.getBoolValue(json[\"bleed\"], this.bleed);\r\n }\r\n\r\n indexOf(cardElement: CardElement): number {\r\n return this._items.indexOf(cardElement);\r\n }\r\n\r\n addItem(item: CardElement) {\r\n this.insertItemAt(item, -1, false);\r\n }\r\n\r\n insertItemBefore(item: CardElement, insertBefore: CardElement) {\r\n this.insertItemAt(item, this._items.indexOf(insertBefore), false);\r\n }\r\n\r\n insertItemAfter(item: CardElement, insertAfter: CardElement) {\r\n this.insertItemAt(item, this._items.indexOf(insertAfter) + 1, false);\r\n }\r\n\r\n removeItem(item: CardElement): boolean {\r\n var itemIndex = this._items.indexOf(item);\r\n\r\n if (itemIndex >= 0) {\r\n this._items.splice(itemIndex, 1);\r\n\r\n item.setParent(null);\r\n\r\n this.updateLayout();\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n clear() {\r\n this._items = [];\r\n }\r\n\r\n getResourceInformation(): Array {\r\n let result = super.getResourceInformation();\r\n\r\n if (this.backgroundImage.isValid()) {\r\n result.push({ url: this.backgroundImage.url, mimeType: \"image\" });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getActionById(id: string): Action {\r\n var result: Action = super.getActionById(id);\r\n\r\n if (!result) {\r\n if (this.selectAction) {\r\n result = this.selectAction.getActionById(id);\r\n }\r\n\r\n if (!result) {\r\n for (var i = 0; i < this._items.length; i++) {\r\n result = this._items[i].getActionById(id);\r\n\r\n if (result) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n get padding(): Shared.PaddingDefinition {\r\n return this.getPadding();\r\n }\r\n\r\n set padding(value: Shared.PaddingDefinition) {\r\n this.setPadding(value);\r\n }\r\n\r\n get selectAction(): Action {\r\n return this.getSelectAction();\r\n }\r\n\r\n set selectAction(value: Action) {\r\n this.setSelectAction(value);\r\n }\r\n\r\n get bleed(): boolean {\r\n return this.getBleed();\r\n }\r\n\r\n set bleed(value: boolean) {\r\n this.setBleed(value);\r\n }\r\n}\r\n\r\nexport type ColumnWidth = Shared.SizeAndUnit | \"auto\" | \"stretch\";\r\n\r\nexport class Column extends Container {\r\n private _computedWeight: number = 0;\r\n\r\n protected adjustRenderedElementSize(renderedElement: HTMLElement) {\r\n const minDesignTimeColumnHeight = 20;\r\n\r\n if (this.isDesignMode()) {\r\n renderedElement.style.minWidth = \"20px\";\r\n renderedElement.style.minHeight = (!this.minPixelHeight ? minDesignTimeColumnHeight : Math.max(this.minPixelHeight, minDesignTimeColumnHeight)) + \"px\";\r\n }\r\n else {\r\n renderedElement.style.minWidth = \"0\";\r\n\r\n if (this.minPixelHeight) {\r\n renderedElement.style.minHeight = this.minPixelHeight + \"px\";\r\n }\r\n }\r\n\r\n if (this.width === \"auto\") {\r\n renderedElement.style.flex = \"0 1 auto\";\r\n }\r\n else if (this.width === \"stretch\") {\r\n renderedElement.style.flex = \"1 1 50px\";\r\n }\r\n else {\r\n let sizeAndUnit = this.width;\r\n\r\n if (sizeAndUnit.unit == Enums.SizeUnit.Pixel) {\r\n renderedElement.style.flex = \"0 0 auto\";\r\n renderedElement.style.width = sizeAndUnit.physicalSize + \"px\";\r\n }\r\n else {\r\n renderedElement.style.flex = \"1 1 \" + (this._computedWeight > 0 ? this._computedWeight : sizeAndUnit.physicalSize) + \"%\";\r\n }\r\n }\r\n }\r\n\r\n protected get separatorOrientation(): Enums.Orientation {\r\n return Enums.Orientation.Vertical;\r\n }\r\n\r\n width: ColumnWidth = \"stretch\";\r\n\r\n constructor(width: ColumnWidth = \"stretch\") {\r\n super();\r\n\r\n this.width = width;\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"Column\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n if (this.width instanceof Shared.SizeAndUnit) {\r\n if (this.width.unit == Enums.SizeUnit.Pixel) {\r\n Utils.setProperty(result, \"width\", this.width.physicalSize + \"px\");\r\n }\r\n else {\r\n Utils.setNumberProperty(result, \"width\", this.width.physicalSize);\r\n }\r\n }\r\n else {\r\n Utils.setProperty(result, \"width\", this.width);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n var jsonWidth = json[\"width\"];\r\n\r\n if (jsonWidth === undefined) {\r\n jsonWidth = json[\"size\"];\r\n\r\n if (jsonWidth !== undefined) {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.Deprecated,\r\n message: \"The \\\"Column.size\\\" property is deprecated and will be removed. Use the \\\"Column.width\\\" property instead.\"\r\n },\r\n errors\r\n );\r\n }\r\n }\r\n\r\n if (jsonWidth) {\r\n var invalidWidth = false;\r\n\r\n try {\r\n this.width = Shared.SizeAndUnit.parse(jsonWidth);\r\n }\r\n catch (e) {\r\n if (typeof jsonWidth === \"string\" && (jsonWidth === \"auto\" || jsonWidth === \"stretch\")) {\r\n this.width = jsonWidth;\r\n }\r\n else {\r\n invalidWidth = true;\r\n }\r\n }\r\n\r\n if (invalidWidth) {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: \"Invalid column width:\" + jsonWidth + \" - defaulting to \\\"auto\\\"\"\r\n },\r\n errors\r\n );\r\n }\r\n }\r\n }\r\n\r\n get hasVisibleSeparator(): boolean {\r\n if (this.parent && this.parent instanceof ColumnSet) {\r\n return this.separatorElement && !this.parent.isLeftMostElement(this);\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n\r\n get isStandalone(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\nexport class ColumnSet extends StylableCardElementContainer {\r\n private _columns: Array = [];\r\n private _renderedColumns: Array;\r\n\r\n private createColumnInstance(json: any, errors: Array): Column {\r\n return createCardObjectInstance(\r\n this,\r\n json,\r\n [], // Forbidden types not supported for elements for now\r\n !this.isDesignMode(),\r\n (typeName: string) => {\r\n return !typeName || typeName === \"Column\" ? new Column() : null;\r\n },\r\n (typeName: string, errorType: InstanceCreationErrorType) => {\r\n if (errorType == InstanceCreationErrorType.UnknownType) {\r\n return {\r\n error: Enums.ValidationError.UnknownElementType,\r\n message: \"Unknown element type: \" + typeName + \". Fallback will be used if present.\"\r\n }\r\n }\r\n else {\r\n return {\r\n error: Enums.ValidationError.ElementTypeNotAllowed,\r\n message: \"Element type \" + typeName + \" isn't allowed in a ColumnSet.\"\r\n }\r\n }\r\n },\r\n errors);\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n this._renderedColumns = [];\r\n\r\n if (this._columns.length > 0) {\r\n // Cache hostConfig to avoid walking the parent hierarchy several times\r\n let hostConfig = this.hostConfig;\r\n\r\n let element = document.createElement(\"div\");\r\n element.className = hostConfig.makeCssClassName(\"ac-columnSet\");\r\n element.style.display = \"flex\";\r\n\r\n if (AdaptiveCard.useAdvancedCardBottomTruncation) {\r\n // See comment in Container.internalRender()\r\n element.style.minHeight = '-webkit-min-content';\r\n }\r\n\r\n switch (this.horizontalAlignment) {\r\n case Enums.HorizontalAlignment.Center:\r\n element.style.justifyContent = \"center\";\r\n break;\r\n case Enums.HorizontalAlignment.Right:\r\n element.style.justifyContent = \"flex-end\";\r\n break;\r\n default:\r\n element.style.justifyContent = \"flex-start\";\r\n break;\r\n }\r\n\r\n let totalWeight: number = 0;\r\n\r\n for (let column of this._columns) {\r\n if (column.width instanceof Shared.SizeAndUnit && (column.width.unit == Enums.SizeUnit.Weight)) {\r\n totalWeight += column.width.physicalSize;\r\n }\r\n }\r\n\r\n for (let column of this._columns) {\r\n if (column.width instanceof Shared.SizeAndUnit && column.width.unit == Enums.SizeUnit.Weight && totalWeight > 0) {\r\n let computedWeight = 100 / totalWeight * column.width.physicalSize;\r\n\r\n // Best way to emulate \"internal\" access I know of\r\n column[\"_computedWeight\"] = computedWeight;\r\n }\r\n\r\n let renderedColumn = column.render();\r\n\r\n if (renderedColumn) {\r\n if (this._renderedColumns.length > 0 && column.separatorElement) {\r\n column.separatorElement.style.flex = \"0 0 auto\";\r\n\r\n Utils.appendChild(element, column.separatorElement);\r\n }\r\n\r\n Utils.appendChild(element, renderedColumn);\r\n\r\n this._renderedColumns.push(column);\r\n }\r\n }\r\n\r\n return this._renderedColumns.length > 0 ? element : null;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n protected truncateOverflow(maxHeight: number): boolean {\r\n for (let column of this._columns) {\r\n column['handleOverflow'](maxHeight);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected undoOverflowTruncation() {\r\n for (let column of this._columns) {\r\n column['resetOverflow']();\r\n }\r\n }\r\n\r\n protected get isSelectable(): boolean {\r\n return true;\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n if (this._columns.length > 0) {\r\n let columns = [];\r\n\r\n for (let column of this._columns) {\r\n columns.push(column.toJSON());\r\n }\r\n\r\n Utils.setProperty(result, \"columns\", columns);\r\n }\r\n\r\n Utils.setProperty(result, \"bleed\", this.bleed, false);\r\n\r\n return result;\r\n }\r\n\r\n isFirstElement(element: CardElement): boolean {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i].isVisible) {\r\n return this._columns[i] == element;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isBleedingAtTop(): boolean {\r\n if (this.isBleeding()) {\r\n return true;\r\n }\r\n\r\n if (this._renderedColumns && this._renderedColumns.length > 0) {\r\n for (let column of this._columns) {\r\n if (column.isBleedingAtTop()) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n isBleedingAtBottom(): boolean {\r\n if (this.isBleeding()) {\r\n return true;\r\n }\r\n\r\n if (this._renderedColumns && this._renderedColumns.length > 0) {\r\n for (let column of this._columns) {\r\n if (column.isBleedingAtBottom()) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getCount(): number {\r\n return this._columns.length;\r\n }\r\n\r\n getItemCount(): number {\r\n return this.getCount();\r\n }\r\n\r\n getFirstVisibleRenderedItem(): CardElement {\r\n if (this.renderedElement && this._renderedColumns && this._renderedColumns.length > 0) {\r\n return this._renderedColumns[0];\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n getLastVisibleRenderedItem(): CardElement {\r\n if (this.renderedElement && this._renderedColumns && this._renderedColumns.length > 0) {\r\n return this._renderedColumns[this._renderedColumns.length - 1];\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n getColumnAt(index: number): Column {\r\n return this._columns[index];\r\n }\r\n\r\n getItemAt(index: number): CardElement {\r\n return this.getColumnAt(index);\r\n }\r\n\r\n getJsonTypeName(): string {\r\n return \"ColumnSet\";\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n if (json[\"columns\"] != null) {\r\n let jsonColumns = json[\"columns\"] as Array;\r\n\r\n this._columns = [];\r\n\r\n for (let i = 0; i < jsonColumns.length; i++) {\r\n let column = this.createColumnInstance(jsonColumns[i], errors);\r\n\r\n if (column) {\r\n this._columns.push(column);\r\n }\r\n }\r\n }\r\n\r\n this.bleed = Utils.getBoolValue(json[\"bleed\"], this.bleed);\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n let weightedColumns: number = 0;\r\n let stretchedColumns: number = 0;\r\n\r\n for (let column of this._columns) {\r\n if (typeof column.width === \"number\") {\r\n weightedColumns++;\r\n }\r\n else if (column.width === \"stretch\") {\r\n stretchedColumns++;\r\n }\r\n }\r\n\r\n if (weightedColumns > 0 && stretchedColumns > 0) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.Hint,\r\n message: \"It is not recommended to use weighted and stretched columns in the same ColumnSet, because in such a situation stretched columns will always get the minimum amount of space.\"\r\n });\r\n }\r\n }\r\n\r\n addColumn(column: Column) {\r\n if (!column.parent) {\r\n this._columns.push(column);\r\n\r\n column.setParent(this);\r\n }\r\n else {\r\n throw new Error(\"This column already belongs to another ColumnSet.\");\r\n }\r\n }\r\n\r\n removeItem(item: CardElement): boolean {\r\n if (item instanceof Column) {\r\n var itemIndex = this._columns.indexOf(item);\r\n\r\n if (itemIndex >= 0) {\r\n this._columns.splice(itemIndex, 1);\r\n\r\n item.setParent(null);\r\n\r\n this.updateLayout();\r\n\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n indexOf(cardElement: CardElement): number {\r\n return cardElement instanceof Column ? this._columns.indexOf(cardElement) : -1;\r\n }\r\n\r\n isLeftMostElement(element: CardElement): boolean {\r\n return this._columns.indexOf(element) == 0;\r\n }\r\n\r\n isRightMostElement(element: CardElement): boolean {\r\n return this._columns.indexOf(element) == this._columns.length - 1;\r\n }\r\n\r\n isTopElement(element: CardElement): boolean {\r\n return this._columns.indexOf(element) >= 0;\r\n }\r\n\r\n isBottomElement(element: CardElement): boolean {\r\n return this._columns.indexOf(element) >= 0;\r\n }\r\n\r\n getActionById(id: string): Action {\r\n var result: Action = null;\r\n\r\n for (var i = 0; i < this._columns.length; i++) {\r\n result = this._columns[i].getActionById(id);\r\n\r\n if (result) {\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n get bleed(): boolean {\r\n return this.getBleed();\r\n }\r\n\r\n set bleed(value: boolean) {\r\n this.setBleed(value);\r\n }\r\n\r\n get padding(): Shared.PaddingDefinition {\r\n return this.getPadding();\r\n }\r\n\r\n set padding(value: Shared.PaddingDefinition) {\r\n this.setPadding(value);\r\n }\r\n\r\n get selectAction(): Action {\r\n return this.getSelectAction();\r\n }\r\n\r\n set selectAction(value: Action) {\r\n this.setSelectAction(value);\r\n }\r\n}\r\n\r\nfunction raiseImageLoadedEvent(image: Image) {\r\n let card = image.getRootElement() as AdaptiveCard;\r\n let onImageLoadedHandler = (card && card.onImageLoaded) ? card.onImageLoaded : AdaptiveCard.onImageLoaded;\r\n\r\n if (onImageLoadedHandler) {\r\n onImageLoadedHandler(image);\r\n }\r\n}\r\n\r\nfunction raiseAnchorClickedEvent(element: CardElement, anchor: HTMLAnchorElement): boolean {\r\n let card = element.getRootElement() as AdaptiveCard;\r\n let onAnchorClickedHandler = (card && card.onAnchorClicked) ? card.onAnchorClicked : AdaptiveCard.onAnchorClicked;\r\n\r\n return onAnchorClickedHandler != null ? onAnchorClickedHandler(element, anchor) : false;\r\n}\r\n\r\nfunction raiseExecuteActionEvent(action: Action) {\r\n let card = action.parent.getRootElement() as AdaptiveCard;\r\n let onExecuteActionHandler = (card && card.onExecuteAction) ? card.onExecuteAction : AdaptiveCard.onExecuteAction;\r\n\r\n if (onExecuteActionHandler) {\r\n if (action.prepareForExecution()) {\r\n onExecuteActionHandler(action);\r\n }\r\n }\r\n}\r\n\r\nfunction raiseInlineCardExpandedEvent(action: ShowCardAction, isExpanded: boolean) {\r\n let card = action.parent.getRootElement() as AdaptiveCard;\r\n let onInlineCardExpandedHandler = (card && card.onInlineCardExpanded) ? card.onInlineCardExpanded : AdaptiveCard.onInlineCardExpanded;\r\n\r\n if (onInlineCardExpandedHandler) {\r\n onInlineCardExpandedHandler(action, isExpanded);\r\n }\r\n}\r\n\r\nfunction raiseInputValueChangedEvent(input: Input) {\r\n let card = input.getRootElement() as AdaptiveCard;\r\n let onInputValueChangedHandler = (card && card.onInputValueChanged) ? card.onInputValueChanged : AdaptiveCard.onInputValueChanged;\r\n\r\n if (onInputValueChangedHandler) {\r\n onInputValueChangedHandler(input);\r\n }\r\n}\r\n\r\nfunction raiseElementVisibilityChangedEvent(element: CardElement, shouldUpdateLayout: boolean = true) {\r\n let rootElement = element.getRootElement();\r\n\r\n if (shouldUpdateLayout) {\r\n rootElement.updateLayout();\r\n }\r\n\r\n let card = rootElement as AdaptiveCard;\r\n let onElementVisibilityChangedHandler = (card && card.onElementVisibilityChanged) ? card.onElementVisibilityChanged : AdaptiveCard.onElementVisibilityChanged;\r\n\r\n if (onElementVisibilityChangedHandler != null) {\r\n onElementVisibilityChangedHandler(element);\r\n }\r\n}\r\n\r\nfunction raiseParseElementEvent(element: CardElement, json: any, errors?: Array) {\r\n let card = element.getRootElement() as AdaptiveCard;\r\n let onParseElementHandler = (card && card.onParseElement) ? card.onParseElement : AdaptiveCard.onParseElement;\r\n\r\n if (onParseElementHandler != null) {\r\n onParseElementHandler(element, json, errors);\r\n }\r\n}\r\n\r\nfunction raiseParseActionEvent(action: Action, json: any, errors?: Array) {\r\n let card = action.parent ? action.parent.getRootElement() as AdaptiveCard : null;\r\n let onParseActionHandler = (card && card.onParseAction) ? card.onParseAction : AdaptiveCard.onParseAction;\r\n\r\n if (onParseActionHandler != null) {\r\n onParseActionHandler(action, json, errors);\r\n }\r\n}\r\n\r\nfunction raiseParseError(error: HostConfig.IValidationError, errors: Array) {\r\n if (errors) {\r\n errors.push(error);\r\n }\r\n\r\n if (AdaptiveCard.onParseError != null) {\r\n AdaptiveCard.onParseError(error);\r\n }\r\n}\r\n\r\nexport interface ITypeRegistration {\r\n typeName: string,\r\n createInstance: () => T;\r\n}\r\n\r\nexport abstract class ContainerWithActions extends Container {\r\n private _actionCollection: ActionCollection;\r\n\r\n protected internalRender(): HTMLElement {\r\n var element = super.internalRender();\r\n\r\n var renderedActions = this._actionCollection.render(this.hostConfig.actions.actionsOrientation, false);\r\n\r\n if (renderedActions) {\r\n Utils.appendChild(\r\n element,\r\n Utils.renderSeparation(\r\n this.hostConfig,\r\n {\r\n spacing: this.hostConfig.getEffectiveSpacing(this.hostConfig.actions.spacing),\r\n lineThickness: null,\r\n lineColor: null\r\n },\r\n Enums.Orientation.Horizontal));\r\n Utils.appendChild(element, renderedActions);\r\n }\r\n\r\n if (this.renderIfEmpty) {\r\n return element;\r\n }\r\n else {\r\n return element.children.length > 0 ? element : null;\r\n }\r\n }\r\n\r\n protected getHasExpandedAction(): boolean {\r\n if (this.renderedActionCount == 0) {\r\n return false;\r\n }\r\n else if (this.renderedActionCount == 1) {\r\n return this._actionCollection.expandedAction != null && !this.hostConfig.actions.preExpandSingleShowCardAction;\r\n }\r\n else {\r\n return this._actionCollection.expandedAction != null;\r\n }\r\n }\r\n\r\n protected get renderedActionCount(): number {\r\n return this._actionCollection.renderedActionCount;\r\n }\r\n\r\n protected get renderIfEmpty(): boolean {\r\n return false;\r\n }\r\n\r\n constructor() {\r\n super();\r\n\r\n this._actionCollection = new ActionCollection(this);\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"actions\", this._actionCollection.toJSON());\r\n\r\n return result;\r\n }\r\n\r\n getActionCount(): number {\r\n return this._actionCollection.items.length;\r\n }\r\n\r\n getActionAt(index: number): Action {\r\n if (index >= 0 && index < this.getActionCount()) {\r\n return this._actionCollection.items[index];\r\n }\r\n else {\r\n super.getActionAt(index);\r\n }\r\n }\r\n\r\n getActionById(id: string): Action {\r\n var result: Action = this._actionCollection.getActionById(id);\r\n\r\n return result ? result : super.getActionById(id);\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n super.parse(json, errors);\r\n\r\n this._actionCollection.parse(json[\"actions\"], errors);\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (this._actionCollection) {\r\n this._actionCollection.validateProperties(context);\r\n }\r\n }\r\n\r\n isLastElement(element: CardElement): boolean {\r\n return super.isLastElement(element) && this._actionCollection.items.length == 0;\r\n }\r\n\r\n addAction(action: Action) {\r\n this._actionCollection.addAction(action);\r\n }\r\n\r\n clear() {\r\n super.clear();\r\n\r\n this._actionCollection.clear();\r\n }\r\n\r\n getAllInputs(): Array {\r\n return super.getAllInputs().concat(this._actionCollection.getAllInputs());\r\n }\r\n\r\n getResourceInformation(): Array {\r\n return super.getResourceInformation().concat(this._actionCollection.getResourceInformation());\r\n }\r\n\r\n isBleedingAtBottom(): boolean {\r\n if (this._actionCollection.renderedActionCount == 0) {\r\n return super.isBleedingAtBottom();\r\n }\r\n else {\r\n if (this._actionCollection.items.length == 1) {\r\n return this._actionCollection.expandedAction != null && !this.hostConfig.actions.preExpandSingleShowCardAction;\r\n }\r\n else {\r\n return this._actionCollection.expandedAction != null;\r\n }\r\n }\r\n }\r\n\r\n get isStandalone(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\nexport abstract class TypeRegistry {\r\n private _items: Array> = [];\r\n\r\n private findTypeRegistration(typeName: string): ITypeRegistration {\r\n for (var i = 0; i < this._items.length; i++) {\r\n if (this._items[i].typeName === typeName) {\r\n return this._items[i];\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor() {\r\n this.reset();\r\n }\r\n\r\n clear() {\r\n this._items = [];\r\n }\r\n\r\n abstract reset();\r\n\r\n registerType(typeName: string, createInstance: () => T) {\r\n var registrationInfo = this.findTypeRegistration(typeName);\r\n\r\n if (registrationInfo != null) {\r\n registrationInfo.createInstance = createInstance;\r\n }\r\n else {\r\n registrationInfo = {\r\n typeName: typeName,\r\n createInstance: createInstance\r\n }\r\n\r\n this._items.push(registrationInfo);\r\n }\r\n }\r\n\r\n unregisterType(typeName: string) {\r\n for (var i = 0; i < this._items.length; i++) {\r\n if (this._items[i].typeName === typeName) {\r\n this._items.splice(i, 1);\r\n\r\n return;\r\n }\r\n }\r\n }\r\n\r\n createInstance(typeName: string): T {\r\n var registrationInfo = this.findTypeRegistration(typeName);\r\n\r\n return registrationInfo ? registrationInfo.createInstance() : null;\r\n }\r\n\r\n getItemCount(): number {\r\n return this._items.length;\r\n }\r\n\r\n getItemAt(index: number): ITypeRegistration {\r\n return this._items[index];\r\n }\r\n}\r\n\r\nexport class ElementTypeRegistry extends TypeRegistry {\r\n reset() {\r\n this.clear();\r\n\r\n this.registerType(\"Container\", () => { return new Container(); });\r\n this.registerType(\"TextBlock\", () => { return new TextBlock(); });\r\n this.registerType(\"RichTextBlock\", () => { return new RichTextBlock(); });\r\n this.registerType(\"TextRun\", () => { return new TextRun(); });\r\n this.registerType(\"Image\", () => { return new Image(); });\r\n this.registerType(\"ImageSet\", () => { return new ImageSet(); });\r\n this.registerType(\"Media\", () => { return new Media(); });\r\n this.registerType(\"FactSet\", () => { return new FactSet(); });\r\n this.registerType(\"ColumnSet\", () => { return new ColumnSet(); });\r\n this.registerType(\"ActionSet\", () => { return new ActionSet(); });\r\n this.registerType(\"Input.Text\", () => { return new TextInput(); });\r\n this.registerType(\"Input.Date\", () => { return new DateInput(); });\r\n this.registerType(\"Input.Time\", () => { return new TimeInput(); });\r\n this.registerType(\"Input.Number\", () => { return new NumberInput(); });\r\n this.registerType(\"Input.ChoiceSet\", () => { return new ChoiceSetInput(); });\r\n this.registerType(\"Input.Toggle\", () => { return new ToggleInput(); });\r\n }\r\n}\r\n\r\nexport class ActionTypeRegistry extends TypeRegistry {\r\n reset() {\r\n this.clear();\r\n\r\n this.registerType(OpenUrlAction.JsonTypeName, () => { return new OpenUrlAction(); });\r\n this.registerType(SubmitAction.JsonTypeName, () => { return new SubmitAction(); });\r\n this.registerType(ShowCardAction.JsonTypeName, () => { return new ShowCardAction(); });\r\n this.registerType(ToggleVisibilityAction.JsonTypeName, () => { return new ToggleVisibilityAction(); });\r\n }\r\n}\r\n\r\nexport interface IMarkdownProcessingResult {\r\n didProcess: boolean;\r\n outputHtml?: any;\r\n}\r\n\r\nexport class AdaptiveCard extends ContainerWithActions {\r\n private static currentVersion: HostConfig.Version = new HostConfig.Version(1, 2);\r\n\r\n static useAdvancedTextBlockTruncation: boolean = true;\r\n static useAdvancedCardBottomTruncation: boolean = false;\r\n static useMarkdownInRadioButtonAndCheckbox: boolean = true;\r\n static allowMarkForTextHighlighting: boolean = false;\r\n static alwaysBleedSeparators: boolean = false;\r\n static enableFullJsonRoundTrip: boolean = false;\r\n static useBuiltInInputValidation: boolean = true;\r\n static displayInputValidationErrors: boolean = true;\r\n\r\n static readonly elementTypeRegistry = new ElementTypeRegistry();\r\n static readonly actionTypeRegistry = new ActionTypeRegistry();\r\n\r\n static onAnchorClicked: (element: CardElement, anchor: HTMLAnchorElement) => boolean = null;\r\n static onExecuteAction: (action: Action) => void = null;\r\n static onElementVisibilityChanged: (element: CardElement) => void = null;\r\n static onImageLoaded: (image: Image) => void = null;\r\n static onInlineCardExpanded: (action: ShowCardAction, isExpanded: boolean) => void = null;\r\n static onInputValueChanged: (input: Input) => void = null;\r\n static onParseElement: (element: CardElement, json: any, errors?: Array) => void = null;\r\n static onParseAction: (element: Action, json: any, errors?: Array) => void = null;\r\n static onParseError: (error: HostConfig.IValidationError) => void = null;\r\n static onProcessMarkdown: (text: string, result: IMarkdownProcessingResult) => void = null;\r\n\r\n static get processMarkdown(): (text: string) => string {\r\n throw new Error(\"The processMarkdown event has been removed. Please update your code and set onProcessMarkdown instead.\")\r\n }\r\n\r\n static set processMarkdown(value: (text: string) => string) {\r\n throw new Error(\"The processMarkdown event has been removed. Please update your code and set onProcessMarkdown instead.\")\r\n }\r\n\r\n static applyMarkdown(text: string): IMarkdownProcessingResult {\r\n let result: IMarkdownProcessingResult = {\r\n didProcess: false\r\n };\r\n\r\n if (AdaptiveCard.onProcessMarkdown) {\r\n AdaptiveCard.onProcessMarkdown(text, result);\r\n }\r\n else if (window[\"markdownit\"]) {\r\n // Check for markdownit\r\n result.outputHtml = window[\"markdownit\"]().render(text);\r\n result.didProcess = true;\r\n }\r\n else {\r\n console.warn(\"Markdown processing isn't enabled. Please see https://www.npmjs.com/package/adaptivecards#supporting-markdown\")\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private _cardTypeName?: string = \"AdaptiveCard\";\r\n private _fallbackCard: AdaptiveCard = null;\r\n\r\n private isVersionSupported(): boolean {\r\n if (this.bypassVersionCheck) {\r\n return true;\r\n }\r\n else {\r\n let unsupportedVersion: boolean =\r\n !this.version ||\r\n !this.version.isValid ||\r\n (AdaptiveCard.currentVersion.major < this.version.major) ||\r\n (AdaptiveCard.currentVersion.major == this.version.major && AdaptiveCard.currentVersion.minor < this.version.minor);\r\n\r\n return !unsupportedVersion;\r\n }\r\n }\r\n\r\n protected getItemsCollectionPropertyName(): string {\r\n return \"body\";\r\n }\r\n\r\n protected internalRender(): HTMLElement {\r\n var renderedElement = super.internalRender();\r\n\r\n if (AdaptiveCard.useAdvancedCardBottomTruncation) {\r\n // Unlike containers, the root card element should be allowed to\r\n // be shorter than its content (otherwise the overflow truncation\r\n // logic would never get triggered)\r\n renderedElement.style.minHeight = null;\r\n }\r\n\r\n return renderedElement;\r\n }\r\n\r\n protected getHasBackground(): boolean {\r\n return true;\r\n }\r\n\r\n protected getDefaultPadding(): Shared.PaddingDefinition {\r\n return new Shared.PaddingDefinition(\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding,\r\n Enums.Spacing.Padding);\r\n }\r\n\r\n protected get renderIfEmpty(): boolean {\r\n return true;\r\n }\r\n\r\n protected get bypassVersionCheck(): boolean {\r\n return false;\r\n }\r\n\r\n protected get allowCustomStyle() {\r\n return this.hostConfig.adaptiveCard && this.hostConfig.adaptiveCard.allowCustomStyle;\r\n }\r\n\r\n protected get hasBackground(): boolean {\r\n return true;\r\n }\r\n\r\n onAnchorClicked: (element: CardElement, anchor: HTMLAnchorElement) => boolean = null;\r\n onExecuteAction: (action: Action) => void = null;\r\n onElementVisibilityChanged: (element: CardElement) => void = null;\r\n onImageLoaded: (image: Image) => void = null;\r\n onInlineCardExpanded: (action: ShowCardAction, isExpanded: boolean) => void = null;\r\n onInputValueChanged: (input: Input) => void = null;\r\n onParseElement: (element: CardElement, json: any, errors?: Array) => void = null;\r\n onParseAction: (element: Action, json: any, errors?: Array) => void = null;\r\n\r\n version?: HostConfig.Version = new HostConfig.Version(1, 0);\r\n fallbackText: string;\r\n speak: string;\r\n designMode: boolean = false;\r\n\r\n getJsonTypeName(): string {\r\n return \"AdaptiveCard\";\r\n }\r\n\r\n toJSON(): any {\r\n let result = super.toJSON();\r\n\r\n Utils.setProperty(result, \"$schema\", \"http://adaptivecards.io/schemas/adaptive-card.json\");\r\n\r\n if (!this.bypassVersionCheck && this.version) {\r\n Utils.setProperty(result, \"version\", this.version.toString());\r\n }\r\n\r\n Utils.setProperty(result, \"fallbackText\", this.fallbackText);\r\n Utils.setProperty(result, \"lang\", this.lang);\r\n Utils.setProperty(result, \"speak\", this.speak);\r\n\r\n return result;\r\n }\r\n\r\n internalValidateProperties(context: ValidationResults) {\r\n super.internalValidateProperties(context);\r\n\r\n if (this._cardTypeName != \"AdaptiveCard\") {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.MissingCardType,\r\n message: \"Invalid or missing card type. Make sure the card's type property is set to \\\"AdaptiveCard\\\".\"\r\n });\r\n }\r\n\r\n if (!this.bypassVersionCheck && !this.version) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.PropertyCantBeNull,\r\n message: \"The version property must be specified.\"\r\n });\r\n }\r\n else if (!this.isVersionSupported()) {\r\n context.addFailure(\r\n this,\r\n {\r\n error: Enums.ValidationError.UnsupportedCardVersion,\r\n message: \"The specified card version (\" + this.version + \") is not supported. The maximum supported card version is \" + AdaptiveCard.currentVersion\r\n });\r\n }\r\n }\r\n\r\n parse(json: any, errors?: Array) {\r\n this._fallbackCard = null;\r\n\r\n this._cardTypeName = Utils.getStringValue(json[\"type\"]);\r\n this.speak = Utils.getStringValue(json[\"speak\"]);\r\n\r\n\t\tvar langId = Utils.getStringValue(json[\"lang\"]);\r\n\r\n if (langId && typeof langId === \"string\") {\r\n try {\r\n this.lang = langId;\r\n }\r\n catch (e) {\r\n raiseParseError(\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: e.message\r\n },\r\n errors\r\n );\r\n }\r\n }\r\n\r\n this.version = HostConfig.Version.parse(json[\"version\"], errors);\r\n\r\n this.fallbackText = Utils.getStringValue(json[\"fallbackText\"]);\r\n\r\n let fallbackElement = createElementInstance(\r\n null,\r\n json[\"fallback\"],\r\n !this.isDesignMode(),\r\n errors);\r\n\r\n if (fallbackElement) {\r\n this._fallbackCard = new AdaptiveCard();\r\n this._fallbackCard.addItem(fallbackElement);\r\n }\r\n\r\n super.parse(json, errors);\r\n }\r\n\r\n render(target?: HTMLElement): HTMLElement {\r\n let renderedCard: HTMLElement;\r\n\r\n if (this.shouldFallback() && this._fallbackCard) {\r\n this._fallbackCard.hostConfig = this.hostConfig;\r\n\r\n renderedCard = this._fallbackCard.render();\r\n }\r\n else {\r\n renderedCard = super.render();\r\n\r\n if (renderedCard) {\r\n renderedCard.classList.add(this.hostConfig.makeCssClassName(\"ac-adaptiveCard\"));\r\n\r\n // Having a tabIndex on the root container for a card can mess up accessibility in some scenarios.\r\n // However, we've shipped this behavior before, and so can't just turn it off in a point release. For\r\n // now, to unblock accessibility scenarios for our customers, we've got an option to turn it off. In a\r\n // future release, we should strongly consider flipping the default such that we *don't* emit a tabIndex\r\n // by default.\r\n if (Shared.GlobalSettings.setTabIndexAtCardRoot) {\r\n renderedCard.tabIndex = 0;\r\n }\r\n\r\n if (!Utils.isNullOrEmpty(this.speak)) {\r\n renderedCard.setAttribute(\"aria-label\", this.speak);\r\n }\r\n }\r\n }\r\n\r\n if (target) {\r\n target.appendChild(renderedCard);\r\n\r\n this.updateLayout();\r\n }\r\n\r\n return renderedCard;\r\n }\r\n\r\n updateLayout(processChildren: boolean = true) {\r\n super.updateLayout(processChildren);\r\n\r\n if (AdaptiveCard.useAdvancedCardBottomTruncation && this.isRendered()) {\r\n var card = this.renderedElement;\r\n var padding = this.hostConfig.getEffectiveSpacing(Enums.Spacing.Default);\r\n\r\n this['handleOverflow'](card.offsetHeight - padding);\r\n }\r\n }\r\n\r\n shouldFallback(): boolean {\r\n return super.shouldFallback() || !this.isVersionSupported();\r\n }\r\n\r\n get hasVisibleSeparator(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\nclass InlineAdaptiveCard extends AdaptiveCard {\r\n protected getDefaultPadding(): Shared.PaddingDefinition {\r\n return new Shared.PaddingDefinition(\r\n this.suppressStyle ? Enums.Spacing.None : Enums.Spacing.Padding,\r\n Enums.Spacing.Padding,\r\n this.suppressStyle ? Enums.Spacing.None : Enums.Spacing.Padding,\r\n Enums.Spacing.Padding);\r\n }\r\n\r\n protected get bypassVersionCheck(): boolean {\r\n return true;\r\n }\r\n\r\n protected get defaultStyle(): string {\r\n if (this.suppressStyle) {\r\n return Enums.ContainerStyle.Default;\r\n }\r\n else {\r\n return this.hostConfig.actions.showCard.style ? this.hostConfig.actions.showCard.style : Enums.ContainerStyle.Emphasis;\r\n }\r\n }\r\n\r\n suppressStyle: boolean = false;\r\n\r\n render(target?: HTMLElement) {\r\n var renderedCard = super.render(target);\r\n renderedCard.setAttribute(\"aria-live\", \"polite\");\r\n renderedCard.removeAttribute(\"tabindex\");\r\n\r\n return renderedCard;\r\n }\r\n\r\n getForbiddenActionTypes(): Array {\r\n return [ShowCardAction];\r\n }\r\n}\r\n\r\nconst defaultHostConfig: HostConfig.HostConfig = new HostConfig.HostConfig(\r\n {\r\n supportsInteractivity: true,\r\n spacing: {\r\n small: 10,\r\n default: 20,\r\n medium: 30,\r\n large: 40,\r\n extraLarge: 50,\r\n padding: 20\r\n },\r\n separator: {\r\n lineThickness: 1,\r\n lineColor: \"#EEEEEE\"\r\n },\r\n fontTypes: {\r\n default: {\r\n fontFamily: \"'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\",\r\n fontSizes: {\r\n small: 12,\r\n default: 14,\r\n medium: 17,\r\n large: 21,\r\n extraLarge: 26\r\n },\r\n fontWeights: {\r\n lighter: 200,\r\n default: 400,\r\n bolder: 600\r\n }\r\n },\r\n monospace: {\r\n fontFamily: \"'Courier New', Courier, monospace\",\r\n fontSizes: {\r\n small: 12,\r\n default: 14,\r\n medium: 17,\r\n large: 21,\r\n extraLarge: 26\r\n },\r\n fontWeights: {\r\n lighter: 200,\r\n default: 400,\r\n bolder: 600\r\n }\r\n }\r\n },\r\n imageSizes: {\r\n small: 40,\r\n medium: 80,\r\n large: 160\r\n },\r\n containerStyles: {\r\n default: {\r\n backgroundColor: \"#FFFFFF\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n },\r\n emphasis: {\r\n backgroundColor: \"#08000000\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n },\r\n accent: {\r\n backgroundColor: \"#C7DEF9\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n },\r\n good: {\r\n backgroundColor: \"#CCFFCC\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n },\r\n attention: {\r\n backgroundColor: \"#FFC5B2\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n },\r\n warning: {\r\n backgroundColor: \"#FFE2B2\",\r\n foregroundColors: {\r\n default: {\r\n default: \"#333333\",\r\n subtle: \"#EE333333\"\r\n },\r\n dark: {\r\n default: \"#000000\",\r\n subtle: \"#66000000\"\r\n },\r\n light: {\r\n default: \"#FFFFFF\",\r\n subtle: \"#33000000\"\r\n },\r\n accent: {\r\n default: \"#2E89FC\",\r\n subtle: \"#882E89FC\"\r\n },\r\n attention: {\r\n default: \"#cc3300\",\r\n subtle: \"#DDcc3300\"\r\n },\r\n good: {\r\n default: \"#54a254\",\r\n subtle: \"#DD54a254\"\r\n },\r\n warning: {\r\n default: \"#e69500\",\r\n subtle: \"#DDe69500\"\r\n }\r\n }\r\n }\r\n },\r\n actions: {\r\n maxActions: 5,\r\n spacing: Enums.Spacing.Default,\r\n buttonSpacing: 10,\r\n showCard: {\r\n actionMode: Enums.ShowCardActionMode.Inline,\r\n inlineTopMargin: 16\r\n },\r\n actionsOrientation: Enums.Orientation.Horizontal,\r\n actionAlignment: Enums.ActionAlignment.Left\r\n },\r\n adaptiveCard: {\r\n allowCustomStyle: false\r\n },\r\n imageSet: {\r\n imageSize: Enums.Size.Medium,\r\n maxImageHeight: 100\r\n },\r\n factSet: {\r\n title: {\r\n color: Enums.TextColor.Default,\r\n size: Enums.TextSize.Default,\r\n isSubtle: false,\r\n weight: Enums.TextWeight.Bolder,\r\n wrap: true,\r\n maxWidth: 150,\r\n },\r\n value: {\r\n color: Enums.TextColor.Default,\r\n size: Enums.TextSize.Default,\r\n isSubtle: false,\r\n weight: Enums.TextWeight.Default,\r\n wrap: true,\r\n },\r\n spacing: 10\r\n }\r\n });\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\n\r\n// Note the \"weird\" way these readonly fields are declared is to work around\r\n// a breaking change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n// and adopt this syntax for all other static readonly fields.\r\nexport class ActionStyle {\r\n static readonly Default: \"default\" = \"default\";\r\n static readonly Positive: \"positive\" = \"positive\";\r\n static readonly Destructive: \"destructive\" = \"destructive\";\r\n}\r\n\r\nexport enum Size {\r\n Auto,\r\n Stretch,\r\n Small,\r\n Medium,\r\n Large\r\n}\r\n\r\nexport enum SizeUnit {\r\n Weight,\r\n Pixel\r\n}\r\n\r\nexport enum TextSize {\r\n Small,\r\n Default,\r\n Medium,\r\n Large,\r\n ExtraLarge\r\n}\r\n\r\nexport enum TextWeight {\r\n Lighter,\r\n Default,\r\n Bolder\r\n}\r\n\r\nexport enum FontType {\r\n Default,\r\n Monospace\r\n}\r\n\r\nexport enum Spacing {\r\n None,\r\n Small,\r\n Default,\r\n Medium,\r\n Large,\r\n ExtraLarge,\r\n Padding\r\n}\r\n\r\nexport enum TextColor {\r\n Default,\r\n Dark,\r\n Light,\r\n Accent,\r\n Good,\r\n Warning,\r\n Attention\r\n}\r\n\r\nexport enum HorizontalAlignment {\r\n Left,\r\n Center,\r\n Right\r\n}\r\n\r\nexport enum VerticalAlignment {\r\n Top,\r\n Center,\r\n Bottom\r\n}\r\n\r\nexport enum ActionAlignment {\r\n Left,\r\n Center,\r\n Right,\r\n Stretch\r\n}\r\n\r\nexport enum ImageStyle {\r\n Default,\r\n Person\r\n}\r\n\r\nexport enum ShowCardActionMode {\r\n Inline,\r\n Popup\r\n}\r\n\r\nexport enum Orientation {\r\n Horizontal,\r\n Vertical\r\n}\r\n\r\nexport enum FillMode {\r\n Cover,\r\n RepeatHorizontally,\r\n RepeatVertically,\r\n Repeat\r\n}\r\n\r\nexport enum ActionIconPlacement {\r\n LeftOfTitle,\r\n AboveTitle\r\n}\r\n\r\nexport enum InputTextStyle {\r\n Text,\r\n Tel,\r\n Url,\r\n Email\r\n}\r\n\r\nexport enum InputValidationNecessity {\r\n Optional,\r\n Required,\r\n RequiredWithVisualCue\r\n}\r\n\r\n/*\r\n This should really be a string enum, e.g.\r\n\r\n export enum ContainerStyle {\r\n Default = \"default\",\r\n Emphasis = \"emphasis\"\r\n }\r\n\r\n However, some hosts do not use a version of TypeScript\r\n recent enough to understand string enums. This is\r\n a compatible construct that does not require using\r\n a more recent version of TypeScript.\r\n\r\n Also note the \"weird\" way these readonly fields are declared is to work around\r\n a breaking change introduced in TS 3.1 wrt d.ts generation. DO NOT CHANGE\r\n and adopt this syntax for all other static readonly fields.\r\n*/\r\nexport class ContainerStyle {\r\n static readonly Default: \"default\" = \"default\";\r\n static readonly Emphasis: \"emphasis\" = \"emphasis\";\r\n static readonly Accent: \"accent\" = \"accent\";\r\n static readonly Good: \"good\" = \"good\";\r\n static readonly Attention: \"attention\" = \"attention\";\r\n static readonly Warning: \"warning\" = \"warning\";\r\n}\r\n\r\nexport enum ValidationError {\r\n Hint,\r\n ActionTypeNotAllowed,\r\n CollectionCantBeEmpty,\r\n Deprecated,\r\n ElementTypeNotAllowed,\r\n InteractivityNotAllowed,\r\n InvalidPropertyValue,\r\n MissingCardType,\r\n PropertyCantBeNull,\r\n TooManyActions,\r\n UnknownActionType,\r\n UnknownElementType,\r\n UnsupportedCardVersion,\r\n DuplicateId\r\n}\r\n\r\nexport enum ContainerFitStatus {\r\n FullyInContainer,\r\n Overflowing,\r\n FullyOutOfContainer\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as Enums from \"./enums\";\r\nimport * as Utils from \"./utils\";\r\nimport * as Shared from \"./shared\";\r\n\r\nexport interface IValidationError {\r\n error: Enums.ValidationError,\r\n message: string;\r\n}\r\n\r\nexport class ColorDefinition {\r\n default: string = \"#000000\";\r\n subtle: string = \"#666666\";\r\n\r\n constructor(defaultColor?: string, subtleColor?: string) {\r\n if (defaultColor) {\r\n this.default = defaultColor;\r\n }\r\n\r\n if (subtleColor) {\r\n this.subtle = subtleColor;\r\n }\r\n }\r\n\r\n parse(obj?: any) {\r\n if (obj) {\r\n this.default = obj[\"default\"] || this.default;\r\n this.subtle = obj[\"subtle\"] || this.subtle;\r\n }\r\n }\r\n}\r\n\r\nexport class TextColorDefinition extends ColorDefinition {\r\n readonly highlightColors = new ColorDefinition(\"#22000000\", \"#11000000\");\r\n\r\n parse(obj?: any) {\r\n super.parse(obj);\r\n\r\n if (obj) {\r\n this.highlightColors.parse(obj[\"highlightColors\"]);\r\n }\r\n }\r\n}\r\n\r\nexport class AdaptiveCardConfig {\r\n allowCustomStyle: boolean = false;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.allowCustomStyle = obj[\"allowCustomStyle\"] || this.allowCustomStyle;\r\n }\r\n }\r\n}\r\n\r\nexport class ImageSetConfig {\r\n imageSize: Enums.Size = Enums.Size.Medium;\r\n maxImageHeight: number = 100;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.imageSize = obj[\"imageSize\"] != null ? obj[\"imageSize\"] : this.imageSize;\r\n this.maxImageHeight = Utils.getNumberValue(obj[\"maxImageHeight\"], 100);\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n imageSize: Enums.Size[this.imageSize],\r\n maxImageHeight: this.maxImageHeight\r\n }\r\n }\r\n}\r\n\r\nexport class MediaConfig {\r\n defaultPoster: string;\r\n allowInlinePlayback: boolean = true;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.defaultPoster = obj[\"defaultPoster\"];\r\n this.allowInlinePlayback = obj[\"allowInlinePlayback\"] || this.allowInlinePlayback;\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n defaultPoster: this.defaultPoster,\r\n allowInlinePlayback: this.allowInlinePlayback\r\n }\r\n }\r\n}\r\n\r\nexport class FactTextDefinition {\r\n size: Enums.TextSize = Enums.TextSize.Default;\r\n color: Enums.TextColor = Enums.TextColor.Default;;\r\n isSubtle: boolean = false;\r\n weight: Enums.TextWeight = Enums.TextWeight.Default;\r\n wrap: boolean = true;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.size = Utils.parseHostConfigEnum(Enums.TextSize, obj[\"size\"], Enums.TextSize.Default);\r\n this.color = Utils.parseHostConfigEnum(Enums.TextColor, obj[\"color\"], Enums.TextColor.Default);\r\n this.isSubtle = obj[\"isSubtle\"] || this.isSubtle;\r\n this.weight = Utils.parseHostConfigEnum(Enums.TextWeight, obj[\"weight\"], this.getDefaultWeight());\r\n this.wrap = obj[\"wrap\"] != null ? obj[\"wrap\"] : this.wrap;\r\n }\r\n }\r\n\r\n getDefaultWeight() {\r\n\t\treturn Enums.TextWeight.Default;\r\n }\r\n\r\n toJSON(): any {\r\n return {\r\n size: Enums.TextSize[this.size],\r\n color: Enums.TextColor[this.color],\r\n isSubtle: this.isSubtle,\r\n weight: Enums.TextWeight[this.weight],\r\n wrap: this.wrap\r\n }\r\n }\r\n}\r\n\r\nexport class FactTitleDefinition extends FactTextDefinition {\r\n maxWidth?: number = 150;\r\n weight: Enums.TextWeight = Enums.TextWeight.Bolder;\r\n\r\n constructor(obj?: any) {\r\n super(obj);\r\n\r\n if (obj) {\r\n this.maxWidth = obj[\"maxWidth\"] != null ? obj[\"maxWidth\"] : this.maxWidth;\r\n\t\t\tthis.weight = Utils.parseHostConfigEnum(Enums.TextWeight, obj[\"weight\"], Enums.TextWeight.Bolder);\r\n }\r\n }\r\n\r\n getDefaultWeight() {\r\n return Enums.TextWeight.Bolder;\r\n }\r\n}\r\n\r\nexport class FactSetConfig {\r\n readonly title: FactTitleDefinition = new FactTitleDefinition();\r\n readonly value: FactTextDefinition = new FactTextDefinition();\r\n spacing: number = 10;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.title = new FactTitleDefinition(obj[\"title\"]);\r\n this.value = new FactTextDefinition(obj[\"value\"]);\r\n this.spacing = obj.spacing && obj.spacing != null ? obj.spacing && obj.spacing : this.spacing;\r\n }\r\n }\r\n}\r\n\r\nexport class ShowCardActionConfig {\r\n actionMode: Enums.ShowCardActionMode = Enums.ShowCardActionMode.Inline;\r\n inlineTopMargin: number = 16;\r\n style?: string = Enums.ContainerStyle.Emphasis;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.actionMode = Utils.parseHostConfigEnum(Enums.ShowCardActionMode, obj[\"actionMode\"], Enums.ShowCardActionMode.Inline);\r\n this.inlineTopMargin = obj[\"inlineTopMargin\"] != null ? obj[\"inlineTopMargin\"] : this.inlineTopMargin;\r\n this.style = obj[\"style\"] && typeof obj[\"style\"] === \"string\" ? obj[\"style\"] : Enums.ContainerStyle.Emphasis;\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n actionMode: Enums.ShowCardActionMode[this.actionMode],\r\n inlineTopMargin: this.inlineTopMargin,\r\n style: this.style\r\n }\r\n }\r\n}\r\n\r\nexport class ActionsConfig {\r\n maxActions: number = 5;\r\n spacing: Enums.Spacing = Enums.Spacing.Default;\r\n buttonSpacing: number = 20;\r\n readonly showCard: ShowCardActionConfig = new ShowCardActionConfig();\r\n preExpandSingleShowCardAction?: boolean = false;\r\n actionsOrientation: Enums.Orientation = Enums.Orientation.Horizontal;\r\n actionAlignment: Enums.ActionAlignment = Enums.ActionAlignment.Left;\r\n iconPlacement: Enums.ActionIconPlacement = Enums.ActionIconPlacement.LeftOfTitle;\r\n allowTitleToWrap: boolean = false;\r\n iconSize: number = 24;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n this.maxActions = obj[\"maxActions\"] != null ? obj[\"maxActions\"] : this.maxActions;\r\n this.spacing = Utils.parseHostConfigEnum(Enums.Spacing, obj.spacing && obj.spacing, Enums.Spacing.Default);\r\n this.buttonSpacing = obj[\"buttonSpacing\"] != null ? obj[\"buttonSpacing\"] : this.buttonSpacing;\r\n this.showCard = new ShowCardActionConfig(obj[\"showCard\"]);\r\n this.preExpandSingleShowCardAction = Utils.getBoolValue(obj[\"preExpandSingleShowCardAction\"], false);\r\n this.actionsOrientation = Utils.parseHostConfigEnum(Enums.Orientation, obj[\"actionsOrientation\"], Enums.Orientation.Horizontal);\r\n this.actionAlignment = Utils.parseHostConfigEnum(Enums.ActionAlignment, obj[\"actionAlignment\"], Enums.ActionAlignment.Left);\r\n this.iconPlacement = Utils.parseHostConfigEnum(Enums.ActionIconPlacement, obj[\"iconPlacement\"], Enums.ActionIconPlacement.LeftOfTitle);\r\n this.allowTitleToWrap = obj[\"allowTitleToWrap\"] != null ? obj[\"allowTitleToWrap\"] : this.allowTitleToWrap;\r\n\r\n try {\r\n let sizeAndUnit = Shared.SizeAndUnit.parse(obj[\"iconSize\"]);\r\n\r\n if (sizeAndUnit.unit == Enums.SizeUnit.Pixel) {\r\n this.iconSize = sizeAndUnit.physicalSize;\r\n }\r\n }\r\n catch (e) {\r\n // Swallow this, keep default icon size\r\n }\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n maxActions: this.maxActions,\r\n spacing: Enums.Spacing[this.spacing],\r\n buttonSpacing: this.buttonSpacing,\r\n showCard: this.showCard,\r\n preExpandSingleShowCardAction: this.preExpandSingleShowCardAction,\r\n actionsOrientation: Enums.Orientation[this.actionsOrientation],\r\n actionAlignment: Enums.ActionAlignment[this.actionAlignment]\r\n }\r\n }\r\n}\r\n\r\nexport class ColorSetDefinition {\r\n private parseSingleColor(obj: any, propertyName: string) {\r\n if (obj) {\r\n (this[propertyName] as TextColorDefinition).parse(obj[propertyName]);\r\n }\r\n }\r\n\r\n default: TextColorDefinition = new TextColorDefinition();\r\n dark: TextColorDefinition = new TextColorDefinition();\r\n light: TextColorDefinition = new TextColorDefinition();\r\n accent: TextColorDefinition = new TextColorDefinition();\r\n good: TextColorDefinition = new TextColorDefinition();\r\n warning: TextColorDefinition = new TextColorDefinition();\r\n attention: TextColorDefinition = new TextColorDefinition();\r\n\r\n constructor(obj?: any) {\r\n this.parse(obj);\r\n }\r\n\r\n parse(obj: any) {\r\n if (obj) {\r\n this.parseSingleColor(obj, \"default\");\r\n this.parseSingleColor(obj, \"dark\");\r\n this.parseSingleColor(obj, \"light\");\r\n this.parseSingleColor(obj, \"accent\");\r\n this.parseSingleColor(obj, \"good\");\r\n this.parseSingleColor(obj, \"warning\");\r\n this.parseSingleColor(obj, \"attention\");\r\n }\r\n }\r\n}\r\n\r\nexport class ContainerStyleDefinition {\r\n backgroundColor?: string;\r\n\r\n readonly foregroundColors: ColorSetDefinition = new ColorSetDefinition(\r\n {\r\n \"default\": { default: \"#333333\", subtle: \"#EE333333\" },\r\n \"dark\": { default: \"#000000\", subtle: \"#66000000\" },\r\n \"light\": { default: \"#FFFFFF\", subtle: \"#33000000\" },\r\n \"accent\": { default: \"#2E89FC\", subtle: \"#882E89FC\" },\r\n \"good\": { default: \"#54A254\", subtle: \"#DD54A254\" },\r\n \"warning\": { default: \"#E69500\", subtle: \"#DDE69500\" },\r\n \"attention\": { default: \"#CC3300\", subtle: \"#DDCC3300\" }\r\n }\r\n );\r\n\r\n highlightBackgroundColor?: string;\r\n highlightForegroundColor?: string;\r\n\r\n parse(obj: any) {\r\n if (obj) {\r\n this.backgroundColor = obj[\"backgroundColor\"];\r\n\r\n this.foregroundColors.parse(obj[\"foregroundColors\"]);\r\n\r\n this.highlightBackgroundColor = obj[\"highlightBackgroundColor\"];\r\n this.highlightForegroundColor = obj[\"highlightForegroundColor\"];\r\n }\r\n }\r\n\r\n constructor(obj?: any) {\r\n this.parse(obj);\r\n }\r\n\r\n get isBuiltIn(): boolean {\r\n return false;\r\n }\r\n}\r\n\r\nclass BuiltInContainerStyleDefinition extends ContainerStyleDefinition {\r\n get isBuiltIn(): boolean {\r\n return true;\r\n }\r\n}\r\n\r\nexport interface ILineHeightDefinitions {\r\n small: number;\r\n medium: number;\r\n default: number;\r\n large: number;\r\n extraLarge: number;\r\n}\r\n\r\nexport class ContainerStyleSet {\r\n private _allStyles: object = {};\r\n\r\n constructor(obj?: any) {\r\n this._allStyles[Enums.ContainerStyle.Default] = new BuiltInContainerStyleDefinition();\r\n this._allStyles[Enums.ContainerStyle.Emphasis] = new BuiltInContainerStyleDefinition();\r\n this._allStyles[Enums.ContainerStyle.Accent] = new BuiltInContainerStyleDefinition();\r\n this._allStyles[Enums.ContainerStyle.Good] = new BuiltInContainerStyleDefinition();\r\n this._allStyles[Enums.ContainerStyle.Attention] = new BuiltInContainerStyleDefinition();\r\n this._allStyles[Enums.ContainerStyle.Warning] = new BuiltInContainerStyleDefinition();\r\n\r\n if (obj) {\r\n this._allStyles[Enums.ContainerStyle.Default].parse(obj[Enums.ContainerStyle.Default]);\r\n this._allStyles[Enums.ContainerStyle.Emphasis].parse(obj[Enums.ContainerStyle.Emphasis]);\r\n this._allStyles[Enums.ContainerStyle.Accent].parse(obj[Enums.ContainerStyle.Accent]);\r\n this._allStyles[Enums.ContainerStyle.Good].parse(obj[Enums.ContainerStyle.Good]);\r\n this._allStyles[Enums.ContainerStyle.Attention].parse(obj[Enums.ContainerStyle.Attention]);\r\n this._allStyles[Enums.ContainerStyle.Warning].parse(obj[Enums.ContainerStyle.Warning]);\r\n\r\n const customStyleArray = obj[\"customStyles\"];\r\n\r\n if (customStyleArray && Array.isArray(customStyleArray)) {\r\n for (var customStyle of customStyleArray) {\r\n if (customStyle) {\r\n var styleName = customStyle[\"name\"];\r\n\r\n if (styleName && typeof styleName === \"string\") {\r\n if (this._allStyles.hasOwnProperty(styleName)) {\r\n this._allStyles[styleName].parse(customStyle[\"style\"]);\r\n }\r\n else {\r\n this._allStyles[styleName] = new ContainerStyleDefinition(customStyle[\"style\"]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n toJSON() {\r\n var customStyleArray: Array = [];\r\n\r\n Object.keys(this._allStyles).forEach(\r\n (key) => {\r\n if (!this._allStyles[key].isBuiltIn) {\r\n customStyleArray.push({\r\n name: key,\r\n style: this._allStyles[key]\r\n });\r\n }\r\n });\r\n\r\n var result: any = {\r\n default: this.default,\r\n emphasis: this.emphasis\r\n }\r\n\r\n if (customStyleArray.length > 0) {\r\n result.customStyles = customStyleArray;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getStyleByName(name: string, defaultValue: ContainerStyleDefinition = null): ContainerStyleDefinition {\r\n return this._allStyles.hasOwnProperty(name) ? this._allStyles[name] : defaultValue;\r\n }\r\n\r\n get default(): ContainerStyleDefinition {\r\n return this._allStyles[Enums.ContainerStyle.Default];\r\n }\r\n\r\n get emphasis(): ContainerStyleDefinition {\r\n return this._allStyles[Enums.ContainerStyle.Emphasis];\r\n }\r\n}\r\n\r\nexport class Version {\r\n private _versionString: string;\r\n private _major: number;\r\n private _minor: number;\r\n private _isValid: boolean = true;\r\n private _label: string;\r\n\r\n constructor(major: number = 1, minor: number = 1, label?: string) {\r\n this._major = major;\r\n this._minor = minor;\r\n this._label = label;\r\n }\r\n\r\n static parse(versionString: string, errors?: Array): Version {\r\n if (!versionString) {\r\n return null;\r\n }\r\n\r\n var result = new Version();\r\n result._versionString = versionString;\r\n\r\n var regEx = /(\\d+).(\\d+)/gi;\r\n var matches = regEx.exec(versionString);\r\n\r\n if (matches != null && matches.length == 3) {\r\n result._major = parseInt(matches[1]);\r\n result._minor = parseInt(matches[2]);\r\n }\r\n else {\r\n result._isValid = false;\r\n }\r\n\r\n if (!result._isValid && errors) {\r\n errors.push(\r\n {\r\n error: Enums.ValidationError.InvalidPropertyValue,\r\n message: \"Invalid version string: \" + result._versionString\r\n }\r\n );\r\n }\r\n\r\n return result;\r\n }\r\n\r\n toString(): string {\r\n return !this._isValid ? this._versionString : this._major + \".\" + this._minor;\r\n }\r\n\r\n compareTo(otherVersion: Version): number {\r\n if (!this.isValid || !otherVersion.isValid) {\r\n throw new Error(\"Cannot compare invalid version.\");\r\n }\r\n\r\n if (this.major > otherVersion.major) {\r\n return 1;\r\n }\r\n else if (this.major < otherVersion.major) {\r\n return -1;\r\n }\r\n else if (this.minor > otherVersion.minor) {\r\n return 1;\r\n }\r\n else if (this.minor < otherVersion.minor) {\r\n return -1;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n get label(): string {\r\n return this._label ? this._label : this.toString();\r\n }\r\n\r\n get major(): number {\r\n return this._major;\r\n }\r\n\r\n get minor(): number {\r\n return this._minor;\r\n }\r\n\r\n get isValid(): boolean {\r\n return this._isValid;\r\n }\r\n}\r\n\r\nexport type HostCapabilityVersion = Version | \"*\";\r\nexport type HostCapabilityMap = { [key: string]: HostCapabilityVersion };\r\n\r\nexport class HostCapabilities {\r\n private setCapability(name: string, version: HostCapabilityVersion) {\r\n if (!this.capabilities) {\r\n this.capabilities = { };\r\n }\r\n\r\n this.capabilities[name] = version;\r\n }\r\n\r\n capabilities: HostCapabilityMap = null;\r\n\r\n parse(json: any, errors?: Array) {\r\n if (json) {\r\n for (let name in json) {\r\n let jsonVersion = json[name];\r\n\r\n if (typeof jsonVersion === \"string\") {\r\n if (jsonVersion == \"*\") {\r\n this.setCapability(name, \"*\");\r\n }\r\n else {\r\n let version = Version.parse(jsonVersion, errors);\r\n\r\n if (version.isValid) {\r\n this.setCapability(name, version);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n hasCapability(name: string, version: HostCapabilityVersion): boolean {\r\n if (this.capabilities && this.capabilities.hasOwnProperty(name)) {\r\n if (version == \"*\" || this.capabilities[name] == \"*\") {\r\n return true;\r\n }\r\n\r\n return version.compareTo(this.capabilities[name]) <= 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n areAllMet(hostCapabilities: HostCapabilities): boolean {\r\n if (this.capabilities) {\r\n for (let capabilityName in this.capabilities) {\r\n if (!hostCapabilities.hasCapability(capabilityName, this.capabilities[capabilityName])) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\nexport interface IFontSizeDefinitions {\r\n small: number;\r\n default: number;\r\n medium: number;\r\n large: number;\r\n extraLarge: number;\r\n}\r\n\r\nexport interface IFontWeightDefinitions {\r\n lighter: number;\r\n default: number;\r\n bolder: number;\r\n}\r\n\r\nexport class FontTypeDefinition {\r\n static readonly monospace = new FontTypeDefinition(\"'Courier New', Courier, monospace\");\r\n\r\n fontFamily?: string = \"Segoe UI,Segoe,Segoe WP,Helvetica Neue,Helvetica,sans-serif\";\r\n\r\n fontSizes: IFontSizeDefinitions = {\r\n small: 12,\r\n default: 14,\r\n medium: 17,\r\n large: 21,\r\n extraLarge: 26\r\n };\r\n\r\n fontWeights: IFontWeightDefinitions = {\r\n lighter: 200,\r\n default: 400,\r\n bolder: 600\r\n };\r\n\r\n constructor(fontFamily?: string) {\r\n if (fontFamily) {\r\n this.fontFamily = fontFamily;\r\n }\r\n }\r\n\r\n parse(obj?: any) {\r\n this.fontFamily = obj[\"fontFamily\"] || this.fontFamily;\r\n this.fontSizes = {\r\n small: obj.fontSizes && obj.fontSizes[\"small\"] || this.fontSizes.small,\r\n default: obj.fontSizes && obj.fontSizes[\"default\"] || this.fontSizes.default,\r\n medium: obj.fontSizes && obj.fontSizes[\"medium\"] || this.fontSizes.medium,\r\n large: obj.fontSizes && obj.fontSizes[\"large\"] || this.fontSizes.large,\r\n extraLarge: obj.fontSizes && obj.fontSizes[\"extraLarge\"] || this.fontSizes.extraLarge\r\n };\r\n this.fontWeights = {\r\n lighter: obj.fontWeights && obj.fontWeights[\"lighter\"] || this.fontWeights.lighter,\r\n default: obj.fontWeights && obj.fontWeights[\"default\"] || this.fontWeights.default,\r\n bolder: obj.fontWeights && obj.fontWeights[\"bolder\"] || this.fontWeights.bolder\r\n };\r\n }\r\n}\r\n\r\nexport class FontTypeSet {\r\n default: FontTypeDefinition;\r\n monospace: FontTypeDefinition;\r\n\r\n constructor(obj?: any) {\r\n this.default = new FontTypeDefinition();\r\n this.monospace = new FontTypeDefinition(\"'Courier New', Courier, monospace\");\r\n\r\n if (obj) {\r\n this.default.parse(obj[\"default\"]);\r\n this.monospace.parse(obj[\"monospace\"]);\r\n }\r\n }\r\n\r\n getStyleDefinition(style: Enums.FontType): FontTypeDefinition {\r\n switch (style) {\r\n case Enums.FontType.Monospace:\r\n return this.monospace;\r\n case Enums.FontType.Default:\r\n default:\r\n return this.default;\r\n }\r\n }\r\n}\r\n\r\nexport class HostConfig {\r\n readonly hostCapabilities = new HostCapabilities();\r\n\r\n private _legacyFontType: FontTypeDefinition;\r\n\r\n choiceSetInputValueSeparator: string = \",\";\r\n supportsInteractivity: boolean = true;\r\n lineHeights?: ILineHeightDefinitions;\r\n fontTypes: FontTypeSet = null;\r\n\r\n readonly spacing = {\r\n small: 3,\r\n default: 8,\r\n medium: 20,\r\n large: 30,\r\n extraLarge: 40,\r\n padding: 15\r\n };\r\n\r\n readonly separator = {\r\n lineThickness: 1,\r\n lineColor: \"#EEEEEE\"\r\n };\r\n\r\n readonly imageSizes = {\r\n small: 40,\r\n medium: 80,\r\n large: 160\r\n };\r\n\r\n readonly containerStyles: ContainerStyleSet = new ContainerStyleSet();\r\n readonly actions: ActionsConfig = new ActionsConfig();\r\n readonly adaptiveCard: AdaptiveCardConfig = new AdaptiveCardConfig();\r\n readonly imageSet: ImageSetConfig = new ImageSetConfig();\r\n readonly media: MediaConfig = new MediaConfig();\r\n readonly factSet: FactSetConfig = new FactSetConfig();\r\n\r\n cssClassNamePrefix: string = null;\r\n alwaysAllowBleed: boolean = false;\r\n\r\n constructor(obj?: any) {\r\n if (obj) {\r\n if (typeof obj === \"string\" || obj instanceof String) {\r\n obj = JSON.parse(obj as string);\r\n }\r\n\r\n this.choiceSetInputValueSeparator = (obj && typeof obj[\"choiceSetInputValueSeparator\"] === \"string\") ? obj[\"choiceSetInputValueSeparator\"] : this.choiceSetInputValueSeparator;\r\n this.supportsInteractivity = (obj && typeof obj[\"supportsInteractivity\"] === \"boolean\") ? obj[\"supportsInteractivity\"] : this.supportsInteractivity;\r\n\r\n this._legacyFontType = new FontTypeDefinition();\r\n this._legacyFontType.parse(obj);\r\n\r\n if (obj.fontTypes) {\r\n this.fontTypes = new FontTypeSet(obj.fontTypes);\r\n }\r\n\r\n if (obj.lineHeights) {\r\n this.lineHeights = {\r\n small: obj.lineHeights[\"small\"],\r\n default: obj.lineHeights[\"default\"],\r\n medium: obj.lineHeights[\"medium\"],\r\n large: obj.lineHeights[\"large\"],\r\n extraLarge: obj.lineHeights[\"extraLarge\"]\r\n };\r\n };\r\n\r\n this.imageSizes = {\r\n small: obj.imageSizes && obj.imageSizes[\"small\"] || this.imageSizes.small,\r\n medium: obj.imageSizes && obj.imageSizes[\"medium\"] || this.imageSizes.medium,\r\n large: obj.imageSizes && obj.imageSizes[\"large\"] || this.imageSizes.large,\r\n };\r\n\r\n this.containerStyles = new ContainerStyleSet(obj[\"containerStyles\"]);\r\n this.spacing = {\r\n small: obj.spacing && obj.spacing[\"small\"] || this.spacing.small,\r\n default: obj.spacing && obj.spacing[\"default\"] || this.spacing.default,\r\n medium: obj.spacing && obj.spacing[\"medium\"] || this.spacing.medium,\r\n large: obj.spacing && obj.spacing[\"large\"] || this.spacing.large,\r\n extraLarge: obj.spacing && obj.spacing[\"extraLarge\"] || this.spacing.extraLarge,\r\n padding: obj.spacing && obj.spacing[\"padding\"] || this.spacing.padding\r\n };\r\n\r\n this.separator = {\r\n lineThickness: obj.separator && obj.separator[\"lineThickness\"] || this.separator.lineThickness,\r\n lineColor: obj.separator && obj.separator[\"lineColor\"] || this.separator.lineColor\r\n }\r\n\r\n this.actions = new ActionsConfig(obj.actions || this.actions);\r\n this.adaptiveCard = new AdaptiveCardConfig(obj.adaptiveCard || this.adaptiveCard);\r\n this.imageSet = new ImageSetConfig(obj[\"imageSet\"]);\r\n this.factSet = new FactSetConfig(obj[\"factSet\"])\r\n }\r\n }\r\n\r\n getFontTypeDefinition(style?: Enums.FontType): FontTypeDefinition {\r\n if (this.fontTypes) {\r\n return this.fontTypes.getStyleDefinition(style);\r\n }\r\n else {\r\n return style == Enums.FontType.Monospace ? FontTypeDefinition.monospace : this._legacyFontType;\r\n }\r\n }\r\n\r\n getEffectiveSpacing(spacing: Enums.Spacing): number {\r\n switch (spacing) {\r\n case Enums.Spacing.Small:\r\n return this.spacing.small;\r\n case Enums.Spacing.Default:\r\n return this.spacing.default;\r\n case Enums.Spacing.Medium:\r\n return this.spacing.medium;\r\n case Enums.Spacing.Large:\r\n return this.spacing.large;\r\n case Enums.Spacing.ExtraLarge:\r\n return this.spacing.extraLarge;\r\n case Enums.Spacing.Padding:\r\n return this.spacing.padding;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n\tpaddingDefinitionToSpacingDefinition(paddingDefinition: Shared.PaddingDefinition): Shared.SpacingDefinition {\r\n\t\treturn new Shared.SpacingDefinition(\r\n\t\t\tthis.getEffectiveSpacing(paddingDefinition.top),\r\n\t\t\tthis.getEffectiveSpacing(paddingDefinition.right),\r\n\t\t\tthis.getEffectiveSpacing(paddingDefinition.bottom),\r\n\t\t\tthis.getEffectiveSpacing(paddingDefinition.left));\r\n }\r\n\r\n makeCssClassNames(...classNames: string[]): string[] {\r\n let result: string[] = [];\r\n\r\n for (let className of classNames) {\r\n result.push((this.cssClassNamePrefix ? this.cssClassNamePrefix + \"-\" : \"\") + className);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n makeCssClassName(...classNames: string[]): string {\r\n let result = this.makeCssClassNames(...classNames).join(\" \");\r\n\r\n return result ? result : \"\";\r\n }\r\n\r\n get fontFamily(): string {\r\n return this._legacyFontType.fontFamily;\r\n }\r\n\r\n set fontFamily(value: string) {\r\n this._legacyFontType.fontFamily = value;\r\n }\r\n\r\n get fontSizes(): IFontSizeDefinitions {\r\n return this._legacyFontType.fontSizes;\r\n }\r\n\r\n get fontWeights(): IFontWeightDefinitions {\r\n return this._legacyFontType.fontWeights;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as Enums from \"./enums\";\r\n\r\nexport class GlobalSettings {\r\n static setTabIndexAtCardRoot: boolean = true;\r\n}\r\n\r\nexport const ContentTypes = {\r\n\tapplicationJson: \"application/json\",\r\n\tapplicationXWwwFormUrlencoded: \"application/x-www-form-urlencoded\"\r\n}\r\n\r\nexport interface ISeparationDefinition {\r\n\tspacing: number,\r\n\tlineThickness?: number,\r\n\tlineColor?: string\r\n}\r\n\r\nexport interface IInput {\r\n\tid: string;\r\n value: string;\r\n validateValue(): boolean;\r\n}\r\n\r\nexport type Dictionary = { [key: string]: T };\r\n\r\nexport class StringWithSubstitutions {\r\n\tprivate _isProcessed: boolean = false;\r\n\tprivate _original: string = null;\r\n private _processed: string = null;\r\n\r\n getReferencedInputs(inputs: IInput[], referencedInputs: Dictionary) {\r\n if (!referencedInputs) {\r\n throw new Error(\"The referencedInputs parameter cannot be null.\")\r\n }\r\n\r\n for (let input of inputs) {\r\n let matches = new RegExp(\"\\\\{{2}(\" + input.id + \").value\\\\}{2}\", \"gi\").exec(this._original);\r\n\r\n if (matches != null) {\r\n referencedInputs[input.id] = input;\r\n }\r\n }\r\n }\r\n\r\n\tsubstituteInputValues(inputs: Dictionary, contentType: string) {\r\n\t\tthis._processed = this._original;\r\n\r\n\t\tlet regEx = /\\{{2}([a-z0-9_$@]+).value\\}{2}/gi;\r\n\t\tlet matches;\r\n\r\n\t\twhile ((matches = regEx.exec(this._original)) != null) {\r\n\t\t\tlet matchedInput: IInput = null;\r\n\r\n\t\t\tfor (let key of Object.keys(inputs)) {\r\n\t\t\t\tif (key.toLowerCase() == matches[1].toLowerCase()) {\r\n\t\t\t\t\tmatchedInput = inputs[key];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n }\r\n\r\n if (matchedInput) {\r\n\t\t\t\tvar valueForReplace = \"\";\r\n\r\n\t\t\t\tif (matchedInput.value) {\r\n\t\t\t\t\tvalueForReplace = matchedInput.value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (contentType === ContentTypes.applicationJson) {\r\n\t\t\t\t\tvalueForReplace = JSON.stringify(valueForReplace);\r\n\t\t\t\t\tvalueForReplace = valueForReplace.slice(1, -1);\r\n\t\t\t\t}\r\n\t\t\t\telse if (contentType === ContentTypes.applicationXWwwFormUrlencoded) {\r\n\t\t\t\t\tvalueForReplace = encodeURIComponent(valueForReplace);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._processed = this._processed.replace(matches[0], valueForReplace);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis._isProcessed = true;\r\n\t}\r\n\r\n\tgetOriginal(): string {\r\n\t\treturn this._original;\r\n\t}\r\n\r\n\tget(): string {\r\n\t\tif (!this._isProcessed) {\r\n\t\t\treturn this._original;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn this._processed;\r\n\t\t}\r\n\t}\r\n\r\n\tset(value: string) {\r\n\t\tthis._original = value;\r\n\t\tthis._isProcessed = false;\r\n\t}\r\n}\r\n\r\nexport class SpacingDefinition {\r\n\tleft: number = 0;\r\n\ttop: number = 0;\r\n\tright: number = 0;\r\n\tbottom: number = 0;\r\n\r\n\tconstructor(top: number = 0,\r\n\t\tright: number = 0,\r\n\t\tbottom: number = 0,\r\n\t\tleft: number = 0) {\r\n\t\tthis.top = top;\r\n\t\tthis.right = right;\r\n\t\tthis.bottom = bottom;\r\n\t\tthis.left = left;\r\n\t}\r\n}\r\n\r\nexport class PaddingDefinition {\r\n\ttop: Enums.Spacing = Enums.Spacing.None;\r\n\tright: Enums.Spacing = Enums.Spacing.None;\r\n\tbottom: Enums.Spacing = Enums.Spacing.None;\r\n\tleft: Enums.Spacing = Enums.Spacing.None;\r\n\r\n\tconstructor(top: Enums.Spacing = Enums.Spacing.None,\r\n\t\tright: Enums.Spacing = Enums.Spacing.None,\r\n\t\tbottom: Enums.Spacing = Enums.Spacing.None,\r\n\t\tleft: Enums.Spacing = Enums.Spacing.None) {\r\n\t\tthis.top = top;\r\n\t\tthis.right = right;\r\n\t\tthis.bottom = bottom;\r\n\t\tthis.left = left;\r\n\t}\r\n}\r\n\r\nexport class SizeAndUnit {\r\n\tphysicalSize: number;\r\n\tunit: Enums.SizeUnit;\r\n\r\n\tstatic parse(input: any, requireUnitSpecifier: boolean = false): SizeAndUnit {\r\n\t\tlet result = new SizeAndUnit(0, Enums.SizeUnit.Weight);\r\n\r\n if (typeof input === \"number\") {\r\n result.physicalSize = input;\r\n\r\n return result;\r\n }\r\n else if (typeof input === \"string\") {\r\n let regExp = /^([0-9]+)(px|\\*)?$/g;\r\n let matches = regExp.exec(input);\r\n let expectedMatchCount = requireUnitSpecifier ? 3 : 2;\r\n\r\n if (matches && matches.length >= expectedMatchCount) {\r\n result.physicalSize = parseInt(matches[1]);\r\n\r\n if (matches.length == 3) {\r\n if (matches[2] == \"px\") {\r\n result.unit = Enums.SizeUnit.Pixel;\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n }\r\n\r\n\t\tthrow new Error(\"Invalid size: \" + input);\r\n\t}\r\n\r\n\tconstructor(physicalSize: number, unit: Enums.SizeUnit) {\r\n\t\tthis.physicalSize = physicalSize;\r\n\t\tthis.unit = unit;\r\n\t}\r\n}\r\n\r\nexport interface IResourceInformation {\r\n\turl: string;\r\n\tmimeType: string;\r\n}\r\n\r\n/**\r\n * Fast UUID generator, RFC4122 version 4 compliant.\r\n * @author Jeff Ward (jcward.com).\r\n * @license MIT license\r\n * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\r\n **/\r\nexport class UUID {\r\n\tprivate static lut = [];\r\n\r\n\tstatic generate(): string {\r\n\t\tlet d0 = Math.random() * 0xffffffff | 0;\r\n\t\tlet d1 = Math.random() * 0xffffffff | 0;\r\n\t\tlet d2 = Math.random() * 0xffffffff | 0;\r\n\t\tlet d3 = Math.random() * 0xffffffff | 0;\r\n\r\n\t\treturn UUID.lut[d0 & 0xff] + UUID.lut[d0 >> 8 & 0xff] + UUID.lut[d0 >> 16 & 0xff] + UUID.lut[d0 >> 24 & 0xff] + '-' +\r\n\t\t\tUUID.lut[d1 & 0xff] + UUID.lut[d1 >> 8 & 0xff] + '-' + UUID.lut[d1 >> 16 & 0x0f | 0x40] + UUID.lut[d1 >> 24 & 0xff] + '-' +\r\n\t\t\tUUID.lut[d2 & 0x3f | 0x80] + UUID.lut[d2 >> 8 & 0xff] + '-' + UUID.lut[d2 >> 16 & 0xff] + UUID.lut[d2 >> 24 & 0xff] +\r\n\t\t\tUUID.lut[d3 & 0xff] + UUID.lut[d3 >> 8 & 0xff] + UUID.lut[d3 >> 16 & 0xff] + UUID.lut[d3 >> 24 & 0xff];\r\n\t}\r\n\r\n\tstatic initialize() {\r\n\t\tfor (let i = 0; i < 256; i++) {\r\n\t\t\tUUID.lut[i] = (i < 16 ? '0' : '') + i.toString(16);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nUUID.initialize();\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nabstract class AbstractTextFormatter {\r\n private _regularExpression: RegExp;\r\n\r\n protected abstract internalFormat(lang: string, matches: RegExpExecArray): string;\r\n\r\n constructor(regularExpression: RegExp) {\r\n this._regularExpression = regularExpression;\r\n }\r\n\r\n format(lang: string, input: string): string {\r\n var matches;\r\n var result = input;\r\n\r\n while ((matches = this._regularExpression.exec(input)) != null) {\r\n result = result.replace(matches[0], this.internalFormat(lang, matches));\r\n };\r\n\r\n return result;\r\n }\r\n}\r\n\r\nclass DateFormatter extends AbstractTextFormatter {\r\n protected internalFormat(lang: string, matches: RegExpExecArray): string {\r\n var date = new Date(Date.parse(matches[1]));\r\n var format = matches[2] != undefined ? matches[2].toLowerCase() : \"compact\";\r\n\r\n if (format != \"compact\") {\r\n return date.toLocaleDateString(lang, { day: \"numeric\", weekday: format, month: format, year: \"numeric\" });\r\n }\r\n else {\r\n return date.toLocaleDateString();\r\n }\r\n }\r\n}\r\n\r\nclass TimeFormatter extends AbstractTextFormatter {\r\n protected internalFormat(lang: string, matches: RegExpExecArray): string {\r\n var date = new Date(Date.parse(matches[1]));\r\n\r\n return date.toLocaleTimeString(lang, { hour: 'numeric', minute: '2-digit' });\r\n }\r\n}\r\n\r\nexport function formatText(lang: string, text: string): string {\r\n const formatters: Array = [\r\n new DateFormatter(/\\{{2}DATE\\((\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:Z|(?:(?:-|\\+)\\d{2}:\\d{2})))(?:, ?(COMPACT|LONG|SHORT))?\\)\\}{2}/g),\r\n new TimeFormatter(/\\{{2}TIME\\((\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:Z|(?:(?:-|\\+)\\d{2}:\\d{2})))\\)\\}{2}/g)\r\n ];\r\n\r\n var result = text;\r\n\r\n for (var i = 0; i < formatters.length; i++) {\r\n result = formatters[i].format(lang, result);\r\n }\r\n\r\n return result;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport * as Enums from \"./enums\";\r\nimport * as Shared from \"./shared\";\r\nimport { HostConfig } from \"./host-config\";\r\n\r\nexport function generateUniqueId(): string {\r\n return \"__ac-\" + Shared.UUID.generate();\r\n}\r\n\r\nexport function isNullOrEmpty(value: string): boolean {\r\n return value === undefined || value === null || value === \"\";\r\n}\r\n\r\nexport function appendChild(node: Node, child: Node) {\r\n if (child != null && child != undefined) {\r\n node.appendChild(child);\r\n }\r\n}\r\n\r\nexport function getStringValue(obj: any, defaultValue: string = undefined): string {\r\n return typeof obj === \"string\" ? obj.toString() : defaultValue;\r\n}\r\n\r\nexport function getNumberValue(obj: any, defaultValue: number = undefined): number {\r\n return typeof obj === \"number\" ? obj : defaultValue;\r\n}\r\n\r\nexport function getBoolValue(value: any, defaultValue: boolean): boolean {\r\n if (typeof value === \"boolean\") {\r\n return value;\r\n }\r\n else if (typeof value === \"string\") {\r\n switch (value.toLowerCase()) {\r\n case \"true\":\r\n return true;\r\n case \"false\":\r\n return false;\r\n default:\r\n return defaultValue;\r\n }\r\n }\r\n\r\n return defaultValue;\r\n}\r\n\r\nexport function getEnumValue(targetEnum: { [s: number]: string }, name: string, defaultValue: number): number {\r\n if (isNullOrEmpty(name)) {\r\n return defaultValue;\r\n }\r\n\r\n for (var key in targetEnum) {\r\n let isValueProperty = parseInt(key, 10) >= 0\r\n\r\n if (isValueProperty) {\r\n let value = targetEnum[key];\r\n\r\n if (value && typeof value === \"string\") {\r\n if (value.toLowerCase() === name.toLowerCase()) {\r\n return parseInt(key, 10);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return defaultValue;\r\n}\r\n\r\nexport function setProperty(target: object, propertyName: string, propertyValue: any, defaultValue: any = undefined) {\r\n if (propertyValue === null || propertyValue === undefined || propertyValue === defaultValue) {\r\n delete target[propertyName];\r\n }\r\n else {\r\n target[propertyName] = propertyValue;\r\n }\r\n}\r\n\r\nexport function setNumberProperty(target: object, propertyName: string, propertyValue: number, defaultValue: number = undefined) {\r\n if (propertyValue === null || propertyValue === undefined || propertyValue === defaultValue || isNaN(propertyValue)) {\r\n delete target[propertyName];\r\n }\r\n else {\r\n target[propertyName] = propertyValue;\r\n }\r\n}\r\n\r\nexport function setEnumProperty(enumType: { [s: number]: string }, target: object, propertyName: string, propertyValue: number, defaultValue: number = undefined) {\r\n let targetValue = target[propertyName];\r\n\r\n let canDeleteTarget = targetValue == undefined ? true : enumType[targetValue] !== undefined;\r\n\r\n if (propertyValue == defaultValue) {\r\n if (canDeleteTarget) {\r\n delete target[propertyName];\r\n }\r\n }\r\n else {\r\n if (propertyValue == undefined) {\r\n if (canDeleteTarget) {\r\n delete target[propertyName];\r\n }\r\n }\r\n else {\r\n target[propertyName] = enumType[propertyValue];\r\n }\r\n }\r\n}\r\n\r\nexport function setArrayProperty(target: object, propertyName: string, propertyValue: any[]) {\r\n let items = [];\r\n\r\n if (propertyValue) {\r\n for (let item of propertyValue) {\r\n items.push(item.toJSON());\r\n }\r\n }\r\n\r\n if (items.length == 0) {\r\n if (target.hasOwnProperty(propertyName) && Array.isArray(target[propertyName])) {\r\n delete target[propertyName];\r\n }\r\n }\r\n else {\r\n setProperty(target, propertyName, items);\r\n }\r\n}\r\n\r\nexport function parseHostConfigEnum(targetEnum: { [s: number]: string }, value: string | number, defaultValue: any): any {\r\n if (typeof value === \"string\") {\r\n return getEnumValue(targetEnum, value, defaultValue);\r\n }\r\n else if (typeof value === \"number\") {\r\n return value;\r\n }\r\n else {\r\n return defaultValue;\r\n }\r\n}\r\n\r\nexport function renderSeparation(hostConfig: HostConfig, separationDefinition: Shared.ISeparationDefinition, orientation: Enums.Orientation): HTMLElement {\r\n if (separationDefinition.spacing > 0 || separationDefinition.lineThickness > 0) {\r\n let separator = document.createElement(\"div\");\r\n separator.className = hostConfig.makeCssClassName(\"ac-\" + (orientation == Enums.Orientation.Horizontal ? \"horizontal\" : \"vertical\") + \"-separator\");\r\n\r\n if (orientation == Enums.Orientation.Horizontal) {\r\n if (separationDefinition.lineThickness) {\r\n separator.style.paddingTop = (separationDefinition.spacing / 2) + \"px\";\r\n separator.style.marginBottom = (separationDefinition.spacing / 2) + \"px\";\r\n separator.style.borderBottom = separationDefinition.lineThickness + \"px solid \" + stringToCssColor(separationDefinition.lineColor);\r\n }\r\n else {\r\n separator.style.height = separationDefinition.spacing + \"px\";\r\n }\r\n }\r\n else {\r\n if (separationDefinition.lineThickness) {\r\n separator.style.paddingLeft = (separationDefinition.spacing / 2) + \"px\";\r\n separator.style.marginRight = (separationDefinition.spacing / 2) + \"px\";\r\n separator.style.borderRight = separationDefinition.lineThickness + \"px solid \" + stringToCssColor(separationDefinition.lineColor);\r\n }\r\n else {\r\n separator.style.width = separationDefinition.spacing + \"px\";\r\n }\r\n }\r\n\r\n separator.style.overflow = \"hidden\";\r\n\r\n return separator;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n\r\nexport function stringToCssColor(color: string): string {\r\n var regEx = /#([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})?/gi;\r\n\r\n var matches = regEx.exec(color);\r\n\r\n if (matches && matches[4]) {\r\n var a = parseInt(matches[1], 16) / 255;\r\n var r = parseInt(matches[2], 16);\r\n var g = parseInt(matches[3], 16);\r\n var b = parseInt(matches[4], 16);\r\n\r\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + a + \")\";\r\n }\r\n else {\r\n return color;\r\n }\r\n}\r\n\r\nexport function truncate(element: HTMLElement,\r\n maxHeight: number,\r\n lineHeight?: number) {\r\n var fits = () => {\r\n // Allow a one pixel overflow to account for rounding differences\r\n // between browsers\r\n return maxHeight - element.scrollHeight >= -1.0;\r\n };\r\n\r\n if (fits()) return;\r\n\r\n var fullText = element.innerHTML;\r\n var truncateAt = (idx) => {\r\n element.innerHTML = fullText.substring(0, idx) + '...';\r\n }\r\n\r\n var breakableIndices = findBreakableIndices(fullText);\r\n var lo = 0;\r\n var hi = breakableIndices.length;\r\n var bestBreakIdx = 0;\r\n\r\n // Do a binary search for the longest string that fits\r\n while (lo < hi) {\r\n var mid = Math.floor((lo + hi) / 2);\r\n truncateAt(breakableIndices[mid]);\r\n\r\n if (fits()) {\r\n bestBreakIdx = breakableIndices[mid];\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n\r\n truncateAt(bestBreakIdx);\r\n\r\n // If we have extra room, try to expand the string letter by letter\r\n // (covers the case where we have to break in the middle of a long word)\r\n if (lineHeight && maxHeight - element.scrollHeight >= lineHeight - 1.0) {\r\n let idx = findNextCharacter(fullText, bestBreakIdx);\r\n\r\n while (idx < fullText.length) {\r\n truncateAt(idx);\r\n\r\n if (fits()) {\r\n bestBreakIdx = idx;\r\n idx = findNextCharacter(fullText, idx);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n\r\n truncateAt(bestBreakIdx);\r\n }\r\n}\r\n\r\nfunction findBreakableIndices(html: string): Array {\r\n var results: Array = [];\r\n var idx = findNextCharacter(html, -1);\r\n\r\n while (idx < html.length) {\r\n if (html[idx] == ' ') {\r\n results.push(idx);\r\n }\r\n\r\n idx = findNextCharacter(html, idx);\r\n }\r\n\r\n return results;\r\n}\r\n\r\nfunction findNextCharacter(html: string, currIdx: number): number {\r\n currIdx += 1;\r\n\r\n // If we found the start of an HTML tag, keep advancing until we get\r\n // past it, so we don't end up truncating in the middle of the tag\r\n while (currIdx < html.length && html[currIdx] == '<') {\r\n while (currIdx < html.length && html[currIdx++] != '>');\r\n }\r\n\r\n return currIdx;\r\n}\r\n\r\nexport function getFitStatus(element: HTMLElement, containerEnd: number): Enums.ContainerFitStatus {\r\n var start = element.offsetTop;\r\n var end = start + element.clientHeight;\r\n\r\n if (end <= containerEnd) {\r\n return Enums.ContainerFitStatus.FullyInContainer;\r\n }\r\n else if (start < containerEnd) {\r\n return Enums.ContainerFitStatus.Overflowing;\r\n }\r\n else {\r\n return Enums.ContainerFitStatus.FullyOutOfContainer;\r\n }\r\n}\r\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Helpers\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\nfunction isString(obj) { return _class(obj) === '[object String]'; }\nfunction isObject(obj) { return _class(obj) === '[object Object]'; }\nfunction isRegExp(obj) { return _class(obj) === '[object RegExp]'; }\nfunction isFunction(obj) { return _class(obj) === '[object Function]'; }\n\n\nfunction escapeRE(str) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&'); }\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar defaultOptions = {\n fuzzyLink: true,\n fuzzyEmail: true,\n fuzzyIP: false\n};\n\n\nfunction isOptionsObj(obj) {\n return Object.keys(obj || {}).reduce(function (acc, k) {\n return acc || defaultOptions.hasOwnProperty(k);\n }, false);\n}\n\n\nvar defaultSchemas = {\n 'http:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.http = new RegExp(\n '^\\\\/\\\\/' + self.re.src_auth + self.re.src_host_port_strict + self.re.src_path, 'i'\n );\n }\n if (self.re.http.test(tail)) {\n return tail.match(self.re.http)[0].length;\n }\n return 0;\n }\n },\n 'https:': 'http:',\n 'ftp:': 'http:',\n '//': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.no_http) {\n // compile lazily, because \"host\"-containing variables can change on tlds update.\n self.re.no_http = new RegExp(\n '^' +\n self.re.src_auth +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments\n '(?:localhost|(?:(?:' + self.re.src_domain + ')\\\\.)+' + self.re.src_domain_root + ')' +\n self.re.src_port +\n self.re.src_host_terminator +\n self.re.src_path,\n\n 'i'\n );\n }\n\n if (self.re.no_http.test(tail)) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0; }\n if (pos >= 3 && text[pos - 3] === '/') { return 0; }\n return tail.match(self.re.no_http)[0].length;\n }\n return 0;\n }\n },\n 'mailto:': {\n validate: function (text, pos, self) {\n var tail = text.slice(pos);\n\n if (!self.re.mailto) {\n self.re.mailto = new RegExp(\n '^' + self.re.src_email_name + '@' + self.re.src_host_strict, 'i'\n );\n }\n if (self.re.mailto.test(tail)) {\n return tail.match(self.re.mailto)[0].length;\n }\n return 0;\n }\n }\n};\n\n/*eslint-disable max-len*/\n\n// RE pattern for 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nvar tlds_2ch_src_re = 'a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]';\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nvar tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'.split('|');\n\n/*eslint-enable max-len*/\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction resetScanCache(self) {\n self.__index__ = -1;\n self.__text_cache__ = '';\n}\n\nfunction createValidator(re) {\n return function (text, pos) {\n var tail = text.slice(pos);\n\n if (re.test(tail)) {\n return tail.match(re)[0].length;\n }\n return 0;\n };\n}\n\nfunction createNormalizer() {\n return function (match, self) {\n self.normalize(match);\n };\n}\n\n// Schemas compiler. Build regexps.\n//\nfunction compile(self) {\n\n // Load & clone RE patterns.\n var re = self.re = require('./lib/re')(self.__opts__);\n\n // Define dynamic patterns\n var tlds = self.__tlds__.slice();\n\n self.onCompile();\n\n if (!self.__tlds_replaced__) {\n tlds.push(tlds_2ch_src_re);\n }\n tlds.push(re.src_xn);\n\n re.src_tlds = tlds.join('|');\n\n function untpl(tpl) { return tpl.replace('%TLDS%', re.src_tlds); }\n\n re.email_fuzzy = RegExp(untpl(re.tpl_email_fuzzy), 'i');\n re.link_fuzzy = RegExp(untpl(re.tpl_link_fuzzy), 'i');\n re.link_no_ip_fuzzy = RegExp(untpl(re.tpl_link_no_ip_fuzzy), 'i');\n re.host_fuzzy_test = RegExp(untpl(re.tpl_host_fuzzy_test), 'i');\n\n //\n // Compile each schema\n //\n\n var aliases = [];\n\n self.__compiled__ = {}; // Reset compiled data\n\n function schemaError(name, val) {\n throw new Error('(LinkifyIt) Invalid schema \"' + name + '\": ' + val);\n }\n\n Object.keys(self.__schemas__).forEach(function (name) {\n var val = self.__schemas__[name];\n\n // skip disabled methods\n if (val === null) { return; }\n\n var compiled = { validate: null, link: null };\n\n self.__compiled__[name] = compiled;\n\n if (isObject(val)) {\n if (isRegExp(val.validate)) {\n compiled.validate = createValidator(val.validate);\n } else if (isFunction(val.validate)) {\n compiled.validate = val.validate;\n } else {\n schemaError(name, val);\n }\n\n if (isFunction(val.normalize)) {\n compiled.normalize = val.normalize;\n } else if (!val.normalize) {\n compiled.normalize = createNormalizer();\n } else {\n schemaError(name, val);\n }\n\n return;\n }\n\n if (isString(val)) {\n aliases.push(name);\n return;\n }\n\n schemaError(name, val);\n });\n\n //\n // Compile postponed aliases\n //\n\n aliases.forEach(function (alias) {\n if (!self.__compiled__[self.__schemas__[alias]]) {\n // Silently fail on missed schemas to avoid errons on disable.\n // schemaError(alias, self.__schemas__[alias]);\n return;\n }\n\n self.__compiled__[alias].validate =\n self.__compiled__[self.__schemas__[alias]].validate;\n self.__compiled__[alias].normalize =\n self.__compiled__[self.__schemas__[alias]].normalize;\n });\n\n //\n // Fake record for guessed links\n //\n self.__compiled__[''] = { validate: null, normalize: createNormalizer() };\n\n //\n // Build schema condition\n //\n var slist = Object.keys(self.__compiled__)\n .filter(function (name) {\n // Filter disabled & fake schemas\n return name.length > 0 && self.__compiled__[name];\n })\n .map(escapeRE)\n .join('|');\n // (?!_) cause 1.5x slowdown\n self.re.schema_test = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'i');\n self.re.schema_search = RegExp('(^|(?!_)(?:[><\\uff5c]|' + re.src_ZPCc + '))(' + slist + ')', 'ig');\n self.re.schema_at_start = RegExp('^' + self.re.schema_search.source, 'i');\n\n self.re.pretest = RegExp(\n '(' + self.re.schema_test.source + ')|(' + self.re.host_fuzzy_test.source + ')|@',\n 'i'\n );\n\n //\n // Cleanup\n //\n\n resetScanCache(self);\n}\n\n/**\n * class Match\n *\n * Match result. Single element of array, returned by [[LinkifyIt#match]]\n **/\nfunction Match(self, shift) {\n var start = self.__index__,\n end = self.__last_index__,\n text = self.__text_cache__.slice(start, end);\n\n /**\n * Match#schema -> String\n *\n * Prefix (protocol) for matched string.\n **/\n this.schema = self.__schema__.toLowerCase();\n /**\n * Match#index -> Number\n *\n * First position of matched string.\n **/\n this.index = start + shift;\n /**\n * Match#lastIndex -> Number\n *\n * Next position after matched string.\n **/\n this.lastIndex = end + shift;\n /**\n * Match#raw -> String\n *\n * Matched string.\n **/\n this.raw = text;\n /**\n * Match#text -> String\n *\n * Notmalized text of matched string.\n **/\n this.text = text;\n /**\n * Match#url -> String\n *\n * Normalized url of matched string.\n **/\n this.url = text;\n}\n\nfunction createMatch(self, shift) {\n var match = new Match(self, shift);\n\n self.__compiled__[match.schema].normalize(match, self);\n\n return match;\n}\n\n\n/**\n * class LinkifyIt\n **/\n\n/**\n * new LinkifyIt(schemas, options)\n * - schemas (Object): Optional. Additional schemas to validate (prefix/validator)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Creates new linkifier instance with optional additional schemas.\n * Can be called without `new` keyword for convenience.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" links and emails (example.com, foo@bar.com).\n *\n * `schemas` is an object, where each key/value describes protocol/rule:\n *\n * - __key__ - link prefix (usually, protocol name with `:` at the end, `skype:`\n * for example). `linkify-it` makes shure that prefix is not preceeded with\n * alphanumeric char and symbols. Only whitespaces and punctuation allowed.\n * - __value__ - rule to check tail after link prefix\n * - _String_ - just alias to existing rule\n * - _Object_\n * - _validate_ - validator function (should return matched length on success),\n * or `RegExp`.\n * - _normalize_ - optional function to normalize text & url of matched result\n * (for example, for @twitter mentions).\n *\n * `options`:\n *\n * - __fuzzyLink__ - recognige URL-s without `http(s):` prefix. Default `true`.\n * - __fuzzyIP__ - allow IPs in fuzzy links above. Can conflict with some texts\n * like version numbers. Default `false`.\n * - __fuzzyEmail__ - recognize emails without `mailto:` prefix.\n *\n **/\nfunction LinkifyIt(schemas, options) {\n if (!(this instanceof LinkifyIt)) {\n return new LinkifyIt(schemas, options);\n }\n\n if (!options) {\n if (isOptionsObj(schemas)) {\n options = schemas;\n schemas = {};\n }\n }\n\n this.__opts__ = assign({}, defaultOptions, options);\n\n // Cache last tested result. Used to skip repeating steps on next `match` call.\n this.__index__ = -1;\n this.__last_index__ = -1; // Next scan position\n this.__schema__ = '';\n this.__text_cache__ = '';\n\n this.__schemas__ = assign({}, defaultSchemas, schemas);\n this.__compiled__ = {};\n\n this.__tlds__ = tlds_default;\n this.__tlds_replaced__ = false;\n\n this.re = {};\n\n compile(this);\n}\n\n\n/** chainable\n * LinkifyIt#add(schema, definition)\n * - schema (String): rule name (fixed pattern prefix)\n * - definition (String|RegExp|Object): schema definition\n *\n * Add new rule definition. See constructor description for details.\n **/\nLinkifyIt.prototype.add = function add(schema, definition) {\n this.__schemas__[schema] = definition;\n compile(this);\n return this;\n};\n\n\n/** chainable\n * LinkifyIt#set(options)\n * - options (Object): { fuzzyLink|fuzzyEmail|fuzzyIP: true|false }\n *\n * Set recognition options for links without schema.\n **/\nLinkifyIt.prototype.set = function set(options) {\n this.__opts__ = assign(this.__opts__, options);\n return this;\n};\n\n\n/**\n * LinkifyIt#test(text) -> Boolean\n *\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n **/\nLinkifyIt.prototype.test = function test(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) { return false; }\n\n var m, ml, me, len, shift, next, re, tld_pos, at_pos;\n\n // try to scan for link with schema - that's the most simple rule\n if (this.re.schema_test.test(text)) {\n re = this.re.schema_search;\n re.lastIndex = 0;\n while ((m = re.exec(text)) !== null) {\n len = this.testSchemaAt(text, m[2], re.lastIndex);\n if (len) {\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n break;\n }\n }\n }\n\n if (this.__opts__.fuzzyLink && this.__compiled__['http:']) {\n // guess schemaless links\n tld_pos = text.search(this.re.host_fuzzy_test);\n if (tld_pos >= 0) {\n // if tld is located after found link - no need to check fuzzy pattern\n if (this.__index__ < 0 || tld_pos < this.__index__) {\n if ((ml = text.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) !== null) {\n\n shift = ml.index + ml[1].length;\n\n if (this.__index__ < 0 || shift < this.__index__) {\n this.__schema__ = '';\n this.__index__ = shift;\n this.__last_index__ = ml.index + ml[0].length;\n }\n }\n }\n }\n }\n\n if (this.__opts__.fuzzyEmail && this.__compiled__['mailto:']) {\n // guess schemaless emails\n at_pos = text.indexOf('@');\n if (at_pos >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n if ((me = text.match(this.re.email_fuzzy)) !== null) {\n\n shift = me.index + me[1].length;\n next = me.index + me[0].length;\n\n if (this.__index__ < 0 || shift < this.__index__ ||\n (shift === this.__index__ && next > this.__last_index__)) {\n this.__schema__ = 'mailto:';\n this.__index__ = shift;\n this.__last_index__ = next;\n }\n }\n }\n }\n\n return this.__index__ >= 0;\n};\n\n\n/**\n * LinkifyIt#pretest(text) -> Boolean\n *\n * Very quick check, that can give false positives. Returns true if link MAY BE\n * can exists. Can be used for speed optimization, when you need to check that\n * link NOT exists.\n **/\nLinkifyIt.prototype.pretest = function pretest(text) {\n return this.re.pretest.test(text);\n};\n\n\n/**\n * LinkifyIt#testSchemaAt(text, name, position) -> Number\n * - text (String): text to scan\n * - name (String): rule (schema) name\n * - position (Number): text offset to check from\n *\n * Similar to [[LinkifyIt#test]] but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n **/\nLinkifyIt.prototype.testSchemaAt = function testSchemaAt(text, schema, pos) {\n // If not supported schema check requested - terminate\n if (!this.__compiled__[schema.toLowerCase()]) {\n return 0;\n }\n return this.__compiled__[schema.toLowerCase()].validate(text, pos, this);\n};\n\n\n/**\n * LinkifyIt#match(text) -> Array|null\n *\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use [[LinkifyIt#test]] first, for best speed.\n *\n * ##### Result match description\n *\n * - __schema__ - link schema, can be empty for fuzzy links, or `//` for\n * protocol-neutral links.\n * - __index__ - offset of matched text\n * - __lastIndex__ - index of next char after mathch end\n * - __raw__ - matched text\n * - __text__ - normalized text\n * - __url__ - link, generated from matched text\n **/\nLinkifyIt.prototype.match = function match(text) {\n var shift = 0, result = [];\n\n // Try to take previous element from cache, if .test() called before\n if (this.__index__ >= 0 && this.__text_cache__ === text) {\n result.push(createMatch(this, shift));\n shift = this.__last_index__;\n }\n\n // Cut head if cache was used\n var tail = shift ? text.slice(shift) : text;\n\n // Scan string until end reached\n while (this.test(tail)) {\n result.push(createMatch(this, shift));\n\n tail = tail.slice(this.__last_index__);\n shift += this.__last_index__;\n }\n\n if (result.length) {\n return result;\n }\n\n return null;\n};\n\n\n/**\n * LinkifyIt#matchAtStart(text) -> Match|null\n *\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n **/\nLinkifyIt.prototype.matchAtStart = function matchAtStart(text) {\n // Reset scan cache\n this.__text_cache__ = text;\n this.__index__ = -1;\n\n if (!text.length) return null;\n\n var m = this.re.schema_at_start.exec(text);\n if (!m) return null;\n\n var len = this.testSchemaAt(text, m[2], m[0].length);\n if (!len) return null;\n\n this.__schema__ = m[2];\n this.__index__ = m.index + m[1].length;\n this.__last_index__ = m.index + m[0].length + len;\n\n return createMatch(this, 0);\n};\n\n\n/** chainable\n * LinkifyIt#tlds(list [, keepOld]) -> this\n * - list (Array): list of tlds\n * - keepOld (Boolean): merge with current list if `true` (`false` by default)\n *\n * Load (or merge) new tlds list. Those are user for fuzzy links (without prefix)\n * to avoid false positives. By default this algorythm used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n **/\nLinkifyIt.prototype.tlds = function tlds(list, keepOld) {\n list = Array.isArray(list) ? list : [ list ];\n\n if (!keepOld) {\n this.__tlds__ = list.slice();\n this.__tlds_replaced__ = true;\n compile(this);\n return this;\n }\n\n this.__tlds__ = this.__tlds__.concat(list)\n .sort()\n .filter(function (el, idx, arr) {\n return el !== arr[idx - 1];\n })\n .reverse();\n\n compile(this);\n return this;\n};\n\n/**\n * LinkifyIt#normalize(match)\n *\n * Default normalizer (if schema does not define it's own).\n **/\nLinkifyIt.prototype.normalize = function normalize(match) {\n\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = 'http://' + match.url; }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = 'mailto:' + match.url;\n }\n};\n\n\n/**\n * LinkifyIt#onCompile()\n *\n * Override to modify basic RegExp-s.\n **/\nLinkifyIt.prototype.onCompile = function onCompile() {\n};\n\n\nmodule.exports = LinkifyIt;\n","'use strict';\n\n\nmodule.exports = function (opts) {\n var re = {};\n opts = opts || {};\n\n // Use direct extract instead of `regenerate` to reduse browserified size\n re.src_Any = require('uc.micro/properties/Any/regex').source;\n re.src_Cc = require('uc.micro/categories/Cc/regex').source;\n re.src_Z = require('uc.micro/categories/Z/regex').source;\n re.src_P = require('uc.micro/categories/P/regex').source;\n\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n re.src_ZPCc = [ re.src_Z, re.src_P, re.src_Cc ].join('|');\n\n // \\p{\\Z\\Cc} (white spaces + control)\n re.src_ZCc = [ re.src_Z, re.src_Cc ].join('|');\n\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n var text_separators = '[><\\uff5c]';\n\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n re.src_pseudo_letter = '(?:(?!' + text_separators + '|' + re.src_ZPCc + ')' + re.src_Any + ')';\n // The same as abothe but without [0-9]\n // var src_pseudo_letter_non_d = '(?:(?![0-9]|' + src_ZPCc + ')' + src_Any + ')';\n\n ////////////////////////////////////////////////////////////////////////////////\n\n re.src_ip4 =\n\n '(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)';\n\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n re.src_auth = '(?:(?:(?!' + re.src_ZCc + '|[@/\\\\[\\\\]()]).)+@)?';\n\n re.src_port =\n\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?';\n\n re.src_host_terminator =\n\n '(?=$|' + text_separators + '|' + re.src_ZPCc + ')' +\n '(?!' + (opts['---'] ? '-(?!--)|' : '-|') + '_|:\\\\d|\\\\.-|\\\\.(?!$|' + re.src_ZPCc + '))';\n\n re.src_path =\n\n '(?:' +\n '[/?#]' +\n '(?:' +\n '(?!' + re.src_ZCc + '|' + text_separators + '|[()[\\\\]{}.,\"\\'?!\\\\-;]).|' +\n '\\\\[(?:(?!' + re.src_ZCc + '|\\\\]).)*\\\\]|' +\n '\\\\((?:(?!' + re.src_ZCc + '|[)]).)*\\\\)|' +\n '\\\\{(?:(?!' + re.src_ZCc + '|[}]).)*\\\\}|' +\n '\\\\\"(?:(?!' + re.src_ZCc + '|[\"]).)+\\\\\"|' +\n \"\\\\'(?:(?!\" + re.src_ZCc + \"|[']).)+\\\\'|\" +\n \"\\\\'(?=\" + re.src_pseudo_letter + '|[-])|' + // allow `I'm_king` if no pair found\n '\\\\.{2,}[a-zA-Z0-9%/&]|' + // google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n '\\\\.(?!' + re.src_ZCc + '|[.]|$)|' +\n (opts['---'] ?\n '\\\\-(?!--(?:[^-]|$))(?:-*)|' // `---` => long dash, terminate\n :\n '\\\\-+|'\n ) +\n ',(?!' + re.src_ZCc + '|$)|' + // allow `,,,` in paths\n ';(?!' + re.src_ZCc + '|$)|' + // allow `;` if not followed by space-like char\n '\\\\!+(?!' + re.src_ZCc + '|[!]|$)|' + // allow `!!!` in paths, but not at the end\n '\\\\?(?!' + re.src_ZCc + '|[?]|$)' +\n ')+' +\n '|\\\\/' +\n ')?';\n\n // Allow anything in markdown spec, forbid quote (\") at the first position\n // because emails enclosed in quotes are far more common\n re.src_email_name =\n\n '[\\\\-;:&=\\\\+\\\\$,\\\\.a-zA-Z0-9_][\\\\-;:&=\\\\+\\\\$,\\\\\"\\\\.a-zA-Z0-9_]*';\n\n re.src_xn =\n\n 'xn--[a-z0-9\\\\-]{1,59}';\n\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n re.src_domain_root =\n\n // Allow letters & digits (http://test1)\n '(?:' +\n re.src_xn +\n '|' +\n re.src_pseudo_letter + '{1,63}' +\n ')';\n\n re.src_domain =\n\n '(?:' +\n re.src_xn +\n '|' +\n '(?:' + re.src_pseudo_letter + ')' +\n '|' +\n '(?:' + re.src_pseudo_letter + '(?:-|' + re.src_pseudo_letter + '){0,61}' + re.src_pseudo_letter + ')' +\n ')';\n\n re.src_host =\n\n '(?:' +\n // Don't need IP check, because digits are already allowed in normal domain names\n // src_ip4 +\n // '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)*' + re.src_domain/*_root*/ + ')' +\n ')';\n\n re.tpl_host_fuzzy =\n\n '(?:' +\n re.src_ip4 +\n '|' +\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))' +\n ')';\n\n re.tpl_host_no_ip_fuzzy =\n\n '(?:(?:(?:' + re.src_domain + ')\\\\.)+(?:%TLDS%))';\n\n re.src_host_strict =\n\n re.src_host + re.src_host_terminator;\n\n re.tpl_host_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_host_terminator;\n\n re.src_host_port_strict =\n\n re.src_host + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_fuzzy_strict =\n\n re.tpl_host_fuzzy + re.src_port + re.src_host_terminator;\n\n re.tpl_host_port_no_ip_fuzzy_strict =\n\n re.tpl_host_no_ip_fuzzy + re.src_port + re.src_host_terminator;\n\n\n ////////////////////////////////////////////////////////////////////////////////\n // Main rules\n\n // Rude test fuzzy links by host, for quick deny\n re.tpl_host_fuzzy_test =\n\n 'localhost|www\\\\.|\\\\.\\\\d{1,3}\\\\.|(?:\\\\.(?:%TLDS%)(?:' + re.src_ZPCc + '|>|$))';\n\n re.tpl_email_fuzzy =\n\n '(^|' + text_separators + '|\"|\\\\(|' + re.src_ZCc + ')' +\n '(' + re.src_email_name + '@' + re.tpl_host_fuzzy_strict + ')';\n\n re.tpl_link_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_fuzzy_strict + re.src_path + ')';\n\n re.tpl_link_no_ip_fuzzy =\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n '(^|(?![.:/\\\\-_@])(?:[$+<=>^`|\\uff5c]|' + re.src_ZPCc + '))' +\n '((?![$+<=>^`|\\uff5c])' + re.tpl_host_port_no_ip_fuzzy_strict + re.src_path + ')';\n\n return re;\n};\n","'use strict';\n\n\nmodule.exports = require('./lib/');\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/lib/maps/entities.json');\n","// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'source',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n","// Regexps to match html elements\n\n'use strict';\n\nvar attr_name = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\n\nvar unquoted = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar single_quoted = \"'[^']*'\";\nvar double_quoted = '\"[^\"]*\"';\n\nvar attr_value = '(?:' + unquoted + '|' + single_quoted + '|' + double_quoted + ')';\n\nvar attribute = '(?:\\\\s+' + attr_name + '(?:\\\\s*=\\\\s*' + attr_value + ')?)';\n\nvar open_tag = '<[A-Za-z][A-Za-z0-9\\\\-]*' + attribute + '*\\\\s*\\\\/?>';\n\nvar close_tag = '<\\\\/[A-Za-z][A-Za-z0-9\\\\-]*\\\\s*>';\nvar comment = '|';\nvar processing = '<[?][\\\\s\\\\S]*?[?]>';\nvar declaration = ']*>';\nvar cdata = '';\n\nvar HTML_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + '|' + comment +\n '|' + processing + '|' + declaration + '|' + cdata + ')');\nvar HTML_OPEN_CLOSE_TAG_RE = new RegExp('^(?:' + open_tag + '|' + close_tag + ')');\n\nmodule.exports.HTML_TAG_RE = HTML_TAG_RE;\nmodule.exports.HTML_OPEN_CLOSE_TAG_RE = HTML_OPEN_CLOSE_TAG_RE;\n","// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16) : parseInt(name.slice(1), 10);\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ');\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß');\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n","// Just a shortcut for bulk export\n'use strict';\n\n\nexports.parseLinkLabel = require('./parse_link_label');\nexports.parseLinkDestination = require('./parse_link_destination');\nexports.parseLinkTitle = require('./parse_link_title');\n","// Parse link destination\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */) { return result; }\n if (code === 0x3C /* < */) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n if (str.charCodeAt(pos + 1) === 0x20) { break; }\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 32) { return result; }\n }\n\n if (code === 0x29 /* ) */) {\n if (level === 0) { break; }\n level--;\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n if (level !== 0) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n};\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n","// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x28 /* ( */ && marker === 0x29 /* ) */) {\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n","// Main parser class\n\n'use strict';\n\n\nvar utils = require('./common/utils');\nvar helpers = require('./helpers');\nvar Renderer = require('./renderer');\nvar ParserCore = require('./parser_core');\nvar ParserBlock = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt = require('linkify-it');\nvar mdurl = require('mdurl');\nvar punycode = require('punycode');\n\n\nvar config = {\n default: require('./presets/default'),\n zero: require('./presets/zero'),\n commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n // add '%' to exclude list because of https://github.com/markdown-it/markdown-it/issues/720\n return mdurl.decode(mdurl.format(parsed), mdurl.decode.defaultChars + '%');\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with `):\n *\n * ```javascript\n * var hljs = require('highlight.js') // https://highlightjs.org/\n *\n * // Actual default values\n * var md = require('markdown-it')({\n * highlight: function (str, lang) {\n * if (lang && hljs.getLanguage(lang)) {\n * try {\n * return '
' +\n *                hljs.highlight(str, { language: lang, ignoreIllegals: true }).value +\n *                '
';\n * } catch (__) {}\n * }\n *\n * return '
' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = utils.assign({}, helpers);\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you will - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and return list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n if (typeof src !== 'string') {\n throw new Error('Input data should be a String');\n }\n\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `

` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n","/** internal\n * class ParserBlock\n *\n * Block-level tokenizer.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n // First 2 params - rule name & source. Secondary array - list of rules,\n // which can be terminated by this one.\n [ 'table', require('./rules_block/table'), [ 'paragraph', 'reference' ] ],\n [ 'code', require('./rules_block/code') ],\n [ 'fence', require('./rules_block/fence'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'blockquote', require('./rules_block/blockquote'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'hr', require('./rules_block/hr'), [ 'paragraph', 'reference', 'blockquote', 'list' ] ],\n [ 'list', require('./rules_block/list'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'reference', require('./rules_block/reference') ],\n [ 'html_block', require('./rules_block/html_block'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'heading', require('./rules_block/heading'), [ 'paragraph', 'reference', 'blockquote' ] ],\n [ 'lheading', require('./rules_block/lheading') ],\n [ 'paragraph', require('./rules_block/paragraph') ]\n];\n\n\n/**\n * new ParserBlock()\n **/\nfunction ParserBlock() {\n /**\n * ParserBlock#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of block rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1], { alt: (_rules[i][2] || []).slice() });\n }\n}\n\n\n// Generate tokens for input range\n//\nParserBlock.prototype.tokenize = function (state, startLine, endLine) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n line = startLine,\n hasEmptyLines = false,\n maxNesting = state.md.options.maxNesting;\n\n while (line < endLine) {\n state.line = line = state.skipEmptyLines(line);\n if (line >= endLine) { break; }\n\n // Termination condition for nested calls.\n // Nested calls currently used for blockquotes & lists\n if (state.sCount[line] < state.blkIndent) { break; }\n\n // If nesting level exceeded - skip tail to the end. That's not ordinary\n // situation and we should not care about content.\n if (state.level >= maxNesting) {\n state.line = endLine;\n break;\n }\n\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.line`\n // - update `state.tokens`\n // - return true\n\n for (i = 0; i < len; i++) {\n ok = rules[i](state, line, endLine, false);\n if (ok) { break; }\n }\n\n // set state.tight if we had an empty line before current tag\n // i.e. latest empty line should not count\n state.tight = !hasEmptyLines;\n\n // paragraph might \"eat\" one newline after it in nested lists\n if (state.isEmpty(state.line - 1)) {\n hasEmptyLines = true;\n }\n\n line = state.line;\n\n if (line < endLine && state.isEmpty(line)) {\n hasEmptyLines = true;\n line++;\n state.line = line;\n }\n }\n};\n\n\n/**\n * ParserBlock.parse(str, md, env, outTokens)\n *\n * Process input string and push block tokens into `outTokens`\n **/\nParserBlock.prototype.parse = function (src, md, env, outTokens) {\n var state;\n\n if (!src) { return; }\n\n state = new this.State(src, md, env, outTokens);\n\n this.tokenize(state, state.line, state.lineMax);\n};\n\n\nParserBlock.prototype.State = require('./rules_block/state_block');\n\n\nmodule.exports = ParserBlock;\n","/** internal\n * class Core\n *\n * Top-level rules executor. Glues block/inline parsers and does intermediate\n * transformations.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\nvar _rules = [\n [ 'normalize', require('./rules_core/normalize') ],\n [ 'block', require('./rules_core/block') ],\n [ 'inline', require('./rules_core/inline') ],\n [ 'linkify', require('./rules_core/linkify') ],\n [ 'replacements', require('./rules_core/replacements') ],\n [ 'smartquotes', require('./rules_core/smartquotes') ],\n // `text_join` finds `text_special` tokens (for escape sequences)\n // and joins them with the rest of the text\n [ 'text_join', require('./rules_core/text_join') ]\n];\n\n\n/**\n * new Core()\n **/\nfunction Core() {\n /**\n * Core#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of core rules.\n **/\n this.ruler = new Ruler();\n\n for (var i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n}\n\n\n/**\n * Core.process(state)\n *\n * Executes core chain rules.\n **/\nCore.prototype.process = function (state) {\n var i, l, rules;\n\n rules = this.ruler.getRules('');\n\n for (i = 0, l = rules.length; i < l; i++) {\n rules[i](state);\n }\n};\n\nCore.prototype.State = require('./rules_core/state_core');\n\n\nmodule.exports = Core;\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n [ 'text', require('./rules_inline/text') ],\n [ 'linkify', require('./rules_inline/linkify') ],\n [ 'newline', require('./rules_inline/newline') ],\n [ 'escape', require('./rules_inline/escape') ],\n [ 'backticks', require('./rules_inline/backticks') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').tokenize ],\n [ 'emphasis', require('./rules_inline/emphasis').tokenize ],\n [ 'link', require('./rules_inline/link') ],\n [ 'image', require('./rules_inline/image') ],\n [ 'autolink', require('./rules_inline/autolink') ],\n [ 'html_inline', require('./rules_inline/html_inline') ],\n [ 'entity', require('./rules_inline/entity') ]\n];\n\n// `rule2` ruleset was created specifically for emphasis/strikethrough\n// post-processing and may be changed in the future.\n//\n// Don't use this for anything except pairs (plugins working with `balance_pairs`).\n//\nvar _rules2 = [\n [ 'balance_pairs', require('./rules_inline/balance_pairs') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').postProcess ],\n [ 'emphasis', require('./rules_inline/emphasis').postProcess ],\n // rules for pairs separate '**' into its own text tokens, which may be left unused,\n // rule below merges unused segments back with the rest of the text\n [ 'fragments_join', require('./rules_inline/fragments_join') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) { break; }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) { break; }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n","// Commonmark default options\n\n'use strict';\n\n\nmodule.exports = {\n options: {\n html: true, // Enable HTML tags in source\n xhtmlOut: true, // Use '/' to close single tags (
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with )\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with ' +\n escapeHtml(tokens[idx].content) +\n '';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n return '' +\n escapeHtml(tokens[idx].content) +\n '\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n langAttrs = '',\n highlighted, i, arr, tmpAttrs, tmpToken;\n\n if (info) {\n arr = info.split(/(\\s+)/g);\n langName = arr[0];\n langAttrs = arr.slice(2).join('');\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf(''\n + highlighted\n + '\\n';\n }\n\n\n return '

'\n        + highlighted\n        + '
\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? '
\\n' : '
\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
\\n' : '
\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independent static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n } else if (tokens[i].type === 'softbreak') {\n result += '\\n';\n }\n }\n\n return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to render\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[tokens[i].type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n};\n\nmodule.exports = Renderer;\n","/**\n * class Ruler\n *\n * Helper class, used by [[MarkdownIt#core]], [[MarkdownIt#block]] and\n * [[MarkdownIt#inline]] to manage sequences of functions (rules):\n *\n * - keep rules in defined order\n * - assign the name to each rule\n * - enable/disable rules\n * - add/replace rules\n * - allow assign rules to additional named chains (in the same)\n * - cacheing lists of active rules\n *\n * You will not need use this class directly until write plugins. For simple\n * rules control use [[MarkdownIt.disable]], [[MarkdownIt.enable]] and\n * [[MarkdownIt.use]].\n **/\n'use strict';\n\n\n/**\n * new Ruler()\n **/\nfunction Ruler() {\n // List of added rules. Each element is:\n //\n // {\n // name: XXX,\n // enabled: Boolean,\n // fn: Function(),\n // alt: [ name2, name3 ]\n // }\n //\n this.__rules__ = [];\n\n // Cached rule chains.\n //\n // First level - chain name, '' for default.\n // Second level - diginal anchor for fast filtering by charcodes.\n //\n this.__cache__ = null;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Helper methods, should not be used directly\n\n\n// Find rule index by name\n//\nRuler.prototype.__find__ = function (name) {\n for (var i = 0; i < this.__rules__.length; i++) {\n if (this.__rules__[i].name === name) {\n return i;\n }\n }\n return -1;\n};\n\n\n// Build rules lookup cache\n//\nRuler.prototype.__compile__ = function () {\n var self = this;\n var chains = [ '' ];\n\n // collect unique names\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n rule.alt.forEach(function (altName) {\n if (chains.indexOf(altName) < 0) {\n chains.push(altName);\n }\n });\n });\n\n self.__cache__ = {};\n\n chains.forEach(function (chain) {\n self.__cache__[chain] = [];\n self.__rules__.forEach(function (rule) {\n if (!rule.enabled) { return; }\n\n if (chain && rule.alt.indexOf(chain) < 0) { return; }\n\n self.__cache__[chain].push(rule.fn);\n });\n });\n};\n\n\n/**\n * Ruler.at(name, fn [, options])\n * - name (String): rule name to replace.\n * - fn (Function): new rule function.\n * - options (Object): new rule options (not mandatory).\n *\n * Replace rule by name with new function & options. Throws error if name not\n * found.\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * Replace existing typographer replacement rule with new one:\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.at('replacements', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.at = function (name, fn, options) {\n var index = this.__find__(name);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + name); }\n\n this.__rules__[index].fn = fn;\n this.__rules__[index].alt = opt.alt || [];\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.before(beforeName, ruleName, fn [, options])\n * - beforeName (String): new rule will be added before this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain before one with given name. See also\n * [[Ruler.after]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.block.ruler.before('paragraph', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.before = function (beforeName, ruleName, fn, options) {\n var index = this.__find__(beforeName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + beforeName); }\n\n this.__rules__.splice(index, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.after(afterName, ruleName, fn [, options])\n * - afterName (String): new rule will be added after this one.\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Add new rule to chain after one with given name. See also\n * [[Ruler.before]], [[Ruler.push]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.inline.ruler.after('text', 'my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.after = function (afterName, ruleName, fn, options) {\n var index = this.__find__(afterName);\n var opt = options || {};\n\n if (index === -1) { throw new Error('Parser rule not found: ' + afterName); }\n\n this.__rules__.splice(index + 1, 0, {\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n/**\n * Ruler.push(ruleName, fn [, options])\n * - ruleName (String): name of added rule.\n * - fn (Function): rule function.\n * - options (Object): rule options (not mandatory).\n *\n * Push new rule to the end of chain. See also\n * [[Ruler.before]], [[Ruler.after]].\n *\n * ##### Options:\n *\n * - __alt__ - array with names of \"alternate\" chains.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.core.ruler.push('my_rule', function replace(state) {\n * //...\n * });\n * ```\n **/\nRuler.prototype.push = function (ruleName, fn, options) {\n var opt = options || {};\n\n this.__rules__.push({\n name: ruleName,\n enabled: true,\n fn: fn,\n alt: opt.alt || []\n });\n\n this.__cache__ = null;\n};\n\n\n/**\n * Ruler.enable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to enable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.disable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.enable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and enable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = true;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.enableOnly(list [, ignoreInvalid])\n * - list (String|Array): list of rule names to enable (whitelist).\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable rules with given names, and disable everything else. If any rule name\n * not found - throw Error. Errors can be disabled by second param.\n *\n * See also [[Ruler.disable]], [[Ruler.enable]].\n **/\nRuler.prototype.enableOnly = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n this.__rules__.forEach(function (rule) { rule.enabled = false; });\n\n this.enable(list, ignoreInvalid);\n};\n\n\n/**\n * Ruler.disable(list [, ignoreInvalid]) -> Array\n * - list (String|Array): list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Disable rules with given names. If any rule name not found - throw Error.\n * Errors can be disabled by second param.\n *\n * Returns list of found rule names (if no exception happened).\n *\n * See also [[Ruler.enable]], [[Ruler.enableOnly]].\n **/\nRuler.prototype.disable = function (list, ignoreInvalid) {\n if (!Array.isArray(list)) { list = [ list ]; }\n\n var result = [];\n\n // Search by name and disable\n list.forEach(function (name) {\n var idx = this.__find__(name);\n\n if (idx < 0) {\n if (ignoreInvalid) { return; }\n throw new Error('Rules manager: invalid rule name ' + name);\n }\n this.__rules__[idx].enabled = false;\n result.push(name);\n }, this);\n\n this.__cache__ = null;\n return result;\n};\n\n\n/**\n * Ruler.getRules(chainName) -> Array\n *\n * Return array of active functions (rules) for given chain name. It analyzes\n * rules configuration, compiles caches if not exists and returns result.\n *\n * Default chain name is `''` (empty string). It can't be skipped. That's\n * done intentionally, to keep signature monomorphic for high speed.\n **/\nRuler.prototype.getRules = function (chainName) {\n if (this.__cache__ === null) {\n this.__compile__();\n }\n\n // Chain can be empty, if rules disabled. But we still have to return Array.\n return this.__cache__[chainName] || [];\n};\n\nmodule.exports = Ruler;\n","// Block quotes\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function blockquote(state, startLine, endLine, silent) {\n var adjustTab,\n ch,\n i,\n initial,\n l,\n lastLineEmpty,\n lines,\n nextLine,\n offset,\n oldBMarks,\n oldBSCount,\n oldIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n spaceAfterMarker,\n terminate,\n terminatorRules,\n token,\n isOutdented,\n oldLineMax = state.lineMax,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // check the block quote marker\n if (state.src.charCodeAt(pos++) !== 0x3E/* > */) { return false; }\n\n // we know that it's going to be a valid blockquote,\n // so no point trying to find the end of it in silent mode\n if (silent) { return true; }\n\n // set offset past spaces and \">\"\n initial = offset = state.sCount[startLine] + 1;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[startLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks = [ state.bMarks[startLine] ];\n state.bMarks[startLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[startLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n oldBSCount = [ state.bsCount[startLine] ];\n state.bsCount[startLine] = state.sCount[startLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n lastLineEmpty = pos >= max;\n\n oldSCount = [ state.sCount[startLine] ];\n state.sCount[startLine] = offset - initial;\n\n oldTShift = [ state.tShift[startLine] ];\n state.tShift[startLine] = pos - state.bMarks[startLine];\n\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n oldParentType = state.parentType;\n state.parentType = 'blockquote';\n\n // Search the end of the block\n //\n // Block ends with either:\n // 1. an empty line outside:\n // ```\n // > test\n //\n // ```\n // 2. an empty line inside:\n // ```\n // >\n // test\n // ```\n // 3. another tag:\n // ```\n // > test\n // - - -\n // ```\n for (nextLine = startLine + 1; nextLine < endLine; nextLine++) {\n // check if it's outdented, i.e. it's inside list item and indented\n // less than said list item:\n //\n // ```\n // 1. anything\n // > current blockquote\n // 2. checking this line\n // ```\n isOutdented = state.sCount[nextLine] < state.blkIndent;\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos >= max) {\n // Case 1: line is not inside the blockquote, and this line is empty.\n break;\n }\n\n if (state.src.charCodeAt(pos++) === 0x3E/* > */ && !isOutdented) {\n // This line is inside the blockquote.\n\n // set offset past spaces and \">\"\n initial = offset = state.sCount[nextLine] + 1;\n\n // skip one optional space after '>'\n if (state.src.charCodeAt(pos) === 0x20 /* space */) {\n // ' > test '\n // ^ -- position start of line here:\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n spaceAfterMarker = true;\n } else if (state.src.charCodeAt(pos) === 0x09 /* tab */) {\n spaceAfterMarker = true;\n\n if ((state.bsCount[nextLine] + offset) % 4 === 3) {\n // ' >\\t test '\n // ^ -- position start of line here (tab has width===1)\n pos++;\n initial++;\n offset++;\n adjustTab = false;\n } else {\n // ' >\\t test '\n // ^ -- position start of line here + shift bsCount slightly\n // to make extra space appear\n adjustTab = true;\n }\n } else {\n spaceAfterMarker = false;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n state.bMarks[nextLine] = pos;\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine] + (adjustTab ? 1 : 0)) % 4;\n } else {\n offset++;\n }\n } else {\n break;\n }\n\n pos++;\n }\n\n lastLineEmpty = pos >= max;\n\n oldBSCount.push(state.bsCount[nextLine]);\n state.bsCount[nextLine] = state.sCount[nextLine] + 1 + (spaceAfterMarker ? 1 : 0);\n\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] = offset - initial;\n\n oldTShift.push(state.tShift[nextLine]);\n state.tShift[nextLine] = pos - state.bMarks[nextLine];\n continue;\n }\n\n // Case 2: line is not inside the blockquote, and the last line was empty.\n if (lastLineEmpty) { break; }\n\n // Case 3: another tag found.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) {\n // Quirk to enforce \"hard termination mode\" for paragraphs;\n // normally if you call `tokenize(state, startLine, nextLine)`,\n // paragraphs will look below nextLine for paragraph continuation,\n // but if blockquote is terminated by another tag, they shouldn't\n state.lineMax = nextLine;\n\n if (state.blkIndent !== 0) {\n // state.blkIndent was non-zero, we now set it to zero,\n // so we need to re-calculate all offsets to appear as\n // if indent wasn't changed\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n state.sCount[nextLine] -= state.blkIndent;\n }\n\n break;\n }\n\n oldBMarks.push(state.bMarks[nextLine]);\n oldBSCount.push(state.bsCount[nextLine]);\n oldTShift.push(state.tShift[nextLine]);\n oldSCount.push(state.sCount[nextLine]);\n\n // A negative indentation means that this is a paragraph continuation\n //\n state.sCount[nextLine] = -1;\n }\n\n oldIndent = state.blkIndent;\n state.blkIndent = 0;\n\n token = state.push('blockquote_open', 'blockquote', 1);\n token.markup = '>';\n token.map = lines = [ startLine, 0 ];\n\n state.md.block.tokenize(state, startLine, nextLine);\n\n token = state.push('blockquote_close', 'blockquote', -1);\n token.markup = '>';\n\n state.lineMax = oldLineMax;\n state.parentType = oldParentType;\n lines[1] = state.line;\n\n // Restore original tShift; this might not be necessary since the parser\n // has already been here, but just to make sure we can do that.\n for (i = 0; i < oldTShift.length; i++) {\n state.bMarks[i + startLine] = oldBMarks[i];\n state.tShift[i + startLine] = oldTShift[i];\n state.sCount[i + startLine] = oldSCount[i];\n state.bsCount[i + startLine] = oldBSCount[i];\n }\n state.blkIndent = oldIndent;\n\n return true;\n};\n","// Code block (4 spaces padded)\n\n'use strict';\n\n\nmodule.exports = function code(state, startLine, endLine/*, silent*/) {\n var nextLine, last, token;\n\n if (state.sCount[startLine] - state.blkIndent < 4) { return false; }\n\n last = nextLine = startLine + 1;\n\n while (nextLine < endLine) {\n if (state.isEmpty(nextLine)) {\n nextLine++;\n continue;\n }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n nextLine++;\n last = nextLine;\n continue;\n }\n break;\n }\n\n state.line = last;\n\n token = state.push('code_block', 'code', 0);\n token.content = state.getLines(startLine, last, 4 + state.blkIndent, false) + '\\n';\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (marker === 0x60 /* ` */) {\n if (params.indexOf(String.fromCharCode(marker)) >= 0) {\n return false;\n }\n }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && !isSpace(ch))) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n};\n","// Horizontal rule\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function hr(state, startLine, endLine, silent) {\n var marker, cnt, ch, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n marker = state.src.charCodeAt(pos++);\n\n // Check hr marker\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x5F/* _ */) {\n return false;\n }\n\n // markers can be mixed with spaces, but there should be at least 3 of them\n\n cnt = 1;\n while (pos < max) {\n ch = state.src.charCodeAt(pos++);\n if (ch !== marker && !isSpace(ch)) { return false; }\n if (ch === marker) { cnt++; }\n }\n\n if (cnt < 3) { return false; }\n\n if (silent) { return true; }\n\n state.line = startLine + 1;\n\n token = state.push('hr', 'hr', 0);\n token.map = [ startLine, state.line ];\n token.markup = Array(cnt + 1).join(String.fromCharCode(marker));\n\n return true;\n};\n","// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n [ /^<(script|pre|style|textarea)(?=(\\s|>|$))/i, /<\\/(script|pre|style|textarea)>/i, true ],\n [ /^/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^/, true ],\n [ /^/, true ],\n [ new RegExp('^|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n};\n","// lheading (---, ===)\n\n'use strict';\n\n\nmodule.exports = function lheading(state, startLine, endLine/*, silent*/) {\n var content, terminate, i, l, token, pos, max, level, marker,\n nextLine = startLine + 1, oldParentType,\n terminatorRules = state.md.block.ruler.getRules('paragraph');\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph'; // use paragraph to match terminatorRules\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n //\n // Check for underline in setext header\n //\n if (state.sCount[nextLine] >= state.blkIndent) {\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max) {\n marker = state.src.charCodeAt(pos);\n\n if (marker === 0x2D/* - */ || marker === 0x3D/* = */) {\n pos = state.skipChars(pos, marker);\n pos = state.skipSpaces(pos);\n\n if (pos >= max) {\n level = (marker === 0x3D/* = */ ? 1 : 2);\n break;\n }\n }\n }\n }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n if (!level) {\n // Didn't find valid underline\n return false;\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = String.fromCharCode(marker);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line - 1 ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = String.fromCharCode(marker);\n\n state.parentType = oldParentType;\n\n return true;\n};\n","// Lists\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\n// Search `[-+*][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipBulletListMarker(state, startLine) {\n var marker, pos, max, ch;\n\n pos = state.bMarks[startLine] + state.tShift[startLine];\n max = state.eMarks[startLine];\n\n marker = state.src.charCodeAt(pos++);\n // Check bullet\n if (marker !== 0x2A/* * */ &&\n marker !== 0x2D/* - */ &&\n marker !== 0x2B/* + */) {\n return -1;\n }\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" -test \" - is not a list item\n return -1;\n }\n }\n\n return pos;\n}\n\n// Search `\\d+[.)][\\n ]`, returns next pos after marker on success\n// or -1 on fail.\nfunction skipOrderedListMarker(state, startLine) {\n var ch,\n start = state.bMarks[startLine] + state.tShift[startLine],\n pos = start,\n max = state.eMarks[startLine];\n\n // List marker should have at least 2 chars (digit + dot)\n if (pos + 1 >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch < 0x30/* 0 */ || ch > 0x39/* 9 */) { return -1; }\n\n for (;;) {\n // EOL -> fail\n if (pos >= max) { return -1; }\n\n ch = state.src.charCodeAt(pos++);\n\n if (ch >= 0x30/* 0 */ && ch <= 0x39/* 9 */) {\n\n // List marker should have no more than 9 digits\n // (prevents integer overflow in browsers)\n if (pos - start >= 10) { return -1; }\n\n continue;\n }\n\n // found valid marker\n if (ch === 0x29/* ) */ || ch === 0x2e/* . */) {\n break;\n }\n\n return -1;\n }\n\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (!isSpace(ch)) {\n // \" 1.test \" - is not a list item\n return -1;\n }\n }\n return pos;\n}\n\nfunction markTightParagraphs(state, idx) {\n var i, l,\n level = state.level + 2;\n\n for (i = idx + 2, l = state.tokens.length - 2; i < l; i++) {\n if (state.tokens[i].level === level && state.tokens[i].type === 'paragraph_open') {\n state.tokens[i + 2].hidden = true;\n state.tokens[i].hidden = true;\n i += 2;\n }\n }\n}\n\n\nmodule.exports = function list(state, startLine, endLine, silent) {\n var ch,\n contentStart,\n i,\n indent,\n indentAfterMarker,\n initial,\n isOrdered,\n itemLines,\n l,\n listLines,\n listTokIdx,\n markerCharCode,\n markerValue,\n max,\n nextLine,\n offset,\n oldListIndent,\n oldParentType,\n oldSCount,\n oldTShift,\n oldTight,\n pos,\n posAfterMarker,\n prevEmptyEnd,\n start,\n terminate,\n terminatorRules,\n token,\n isTerminatingParagraph = false,\n tight = true;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n // Special case:\n // - item 1\n // - item 2\n // - item 3\n // - item 4\n // - this one is a paragraph continuation\n if (state.listIndent >= 0 &&\n state.sCount[startLine] - state.listIndent >= 4 &&\n state.sCount[startLine] < state.blkIndent) {\n return false;\n }\n\n // limit conditions when list can interrupt\n // a paragraph (validation mode only)\n if (silent && state.parentType === 'paragraph') {\n // Next list item should still terminate previous list item;\n //\n // This code can fail if plugins use blkIndent as well as lists,\n // but I hope the spec gets fixed long before that happens.\n //\n if (state.sCount[startLine] >= state.blkIndent) {\n isTerminatingParagraph = true;\n }\n }\n\n // Detect list type and position after marker\n if ((posAfterMarker = skipOrderedListMarker(state, startLine)) >= 0) {\n isOrdered = true;\n start = state.bMarks[startLine] + state.tShift[startLine];\n markerValue = Number(state.src.slice(start, posAfterMarker - 1));\n\n // If we're starting a new ordered list right after\n // a paragraph, it should start with 1.\n if (isTerminatingParagraph && markerValue !== 1) return false;\n\n } else if ((posAfterMarker = skipBulletListMarker(state, startLine)) >= 0) {\n isOrdered = false;\n\n } else {\n return false;\n }\n\n // If we're starting a new unordered list right after\n // a paragraph, first line should not be empty.\n if (isTerminatingParagraph) {\n if (state.skipSpaces(posAfterMarker) >= state.eMarks[startLine]) return false;\n }\n\n // We should terminate list on style change. Remember first one to compare.\n markerCharCode = state.src.charCodeAt(posAfterMarker - 1);\n\n // For validation mode we can terminate immediately\n if (silent) { return true; }\n\n // Start list\n listTokIdx = state.tokens.length;\n\n if (isOrdered) {\n token = state.push('ordered_list_open', 'ol', 1);\n if (markerValue !== 1) {\n token.attrs = [ [ 'start', markerValue ] ];\n }\n\n } else {\n token = state.push('bullet_list_open', 'ul', 1);\n }\n\n token.map = listLines = [ startLine, 0 ];\n token.markup = String.fromCharCode(markerCharCode);\n\n //\n // Iterate list items\n //\n\n nextLine = startLine;\n prevEmptyEnd = false;\n terminatorRules = state.md.block.ruler.getRules('list');\n\n oldParentType = state.parentType;\n state.parentType = 'list';\n\n while (nextLine < endLine) {\n pos = posAfterMarker;\n max = state.eMarks[nextLine];\n\n initial = offset = state.sCount[nextLine] + posAfterMarker - (state.bMarks[startLine] + state.tShift[startLine]);\n\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x09) {\n offset += 4 - (offset + state.bsCount[nextLine]) % 4;\n } else if (ch === 0x20) {\n offset++;\n } else {\n break;\n }\n\n pos++;\n }\n\n contentStart = pos;\n\n if (contentStart >= max) {\n // trimming space in \"- \\n 3\" case, indent is 1 here\n indentAfterMarker = 1;\n } else {\n indentAfterMarker = offset - initial;\n }\n\n // If we have more than 4 spaces, the indent is 1\n // (the rest is just indented code block)\n if (indentAfterMarker > 4) { indentAfterMarker = 1; }\n\n // \" - test\"\n // ^^^^^ - calculating total length of this thing\n indent = initial + indentAfterMarker;\n\n // Run subparser & write tokens\n token = state.push('list_item_open', 'li', 1);\n token.markup = String.fromCharCode(markerCharCode);\n token.map = itemLines = [ startLine, 0 ];\n if (isOrdered) {\n token.info = state.src.slice(start, posAfterMarker - 1);\n }\n\n // change current state, then restore it after parser subcall\n oldTight = state.tight;\n oldTShift = state.tShift[startLine];\n oldSCount = state.sCount[startLine];\n\n // - example list\n // ^ listIndent position will be here\n // ^ blkIndent position will be here\n //\n oldListIndent = state.listIndent;\n state.listIndent = state.blkIndent;\n state.blkIndent = indent;\n\n state.tight = true;\n state.tShift[startLine] = contentStart - state.bMarks[startLine];\n state.sCount[startLine] = offset;\n\n if (contentStart >= max && state.isEmpty(startLine + 1)) {\n // workaround for this case\n // (list item is empty, list terminates before \"foo\"):\n // ~~~~~~~~\n // -\n //\n // foo\n // ~~~~~~~~\n state.line = Math.min(state.line + 2, endLine);\n } else {\n state.md.block.tokenize(state, startLine, endLine, true);\n }\n\n // If any of list item is tight, mark list as tight\n if (!state.tight || prevEmptyEnd) {\n tight = false;\n }\n // Item become loose if finish with empty line,\n // but we should filter last element, because it means list finish\n prevEmptyEnd = (state.line - startLine) > 1 && state.isEmpty(state.line - 1);\n\n state.blkIndent = state.listIndent;\n state.listIndent = oldListIndent;\n state.tShift[startLine] = oldTShift;\n state.sCount[startLine] = oldSCount;\n state.tight = oldTight;\n\n token = state.push('list_item_close', 'li', -1);\n token.markup = String.fromCharCode(markerCharCode);\n\n nextLine = startLine = state.line;\n itemLines[1] = nextLine;\n contentStart = state.bMarks[startLine];\n\n if (nextLine >= endLine) { break; }\n\n //\n // Try to check if list is terminated or continued.\n //\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { break; }\n\n // fail if terminating block found\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n\n // fail if list has another type\n if (isOrdered) {\n posAfterMarker = skipOrderedListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n start = state.bMarks[nextLine] + state.tShift[nextLine];\n } else {\n posAfterMarker = skipBulletListMarker(state, nextLine);\n if (posAfterMarker < 0) { break; }\n }\n\n if (markerCharCode !== state.src.charCodeAt(posAfterMarker - 1)) { break; }\n }\n\n // Finalize list\n if (isOrdered) {\n token = state.push('ordered_list_close', 'ol', -1);\n } else {\n token = state.push('bullet_list_close', 'ul', -1);\n }\n token.markup = String.fromCharCode(markerCharCode);\n\n listLines[1] = nextLine;\n state.line = nextLine;\n\n state.parentType = oldParentType;\n\n // mark paragraphs tight if needed\n if (tight) {\n markTightParagraphs(state, listTokIdx);\n }\n\n return true;\n};\n","// Paragraph\n\n'use strict';\n\n\nmodule.exports = function paragraph(state, startLine/*, endLine*/) {\n var content, terminate, i, l, token, oldParentType,\n nextLine = startLine + 1,\n terminatorRules = state.md.block.ruler.getRules('paragraph'),\n endLine = state.lineMax;\n\n oldParentType = state.parentType;\n state.parentType = 'paragraph';\n\n // jump line-by-line until empty one or EOF\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n content = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n\n state.line = nextLine;\n\n token = state.push('paragraph_open', 'p', 1);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = content;\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('paragraph_close', 'p', -1);\n\n state.parentType = oldParentType;\n\n return true;\n};\n","'use strict';\n\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function reference(state, startLine, _endLine, silent) {\n var ch,\n destEndPos,\n destEndLineNo,\n endLine,\n href,\n i,\n l,\n label,\n labelEnd,\n oldParentType,\n res,\n start,\n str,\n terminate,\n terminatorRules,\n title,\n lines = 0,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine],\n nextLine = startLine + 1;\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x5B/* [ */) { return false; }\n\n // Simple check to quickly interrupt scan on [link](url) at the start of line.\n // Can be useful on practice: https://github.com/markdown-it/markdown-it/issues/54\n while (++pos < max) {\n if (state.src.charCodeAt(pos) === 0x5D /* ] */ &&\n state.src.charCodeAt(pos - 1) !== 0x5C/* \\ */) {\n if (pos + 1 === max) { return false; }\n if (state.src.charCodeAt(pos + 1) !== 0x3A/* : */) { return false; }\n break;\n }\n }\n\n endLine = state.lineMax;\n\n // jump line-by-line until empty one or EOF\n terminatorRules = state.md.block.ruler.getRules('reference');\n\n oldParentType = state.parentType;\n state.parentType = 'reference';\n\n for (; nextLine < endLine && !state.isEmpty(nextLine); nextLine++) {\n // this would be a code block normally, but after paragraph\n // it's considered a lazy continuation regardless of what's there\n if (state.sCount[nextLine] - state.blkIndent > 3) { continue; }\n\n // quirk for blockquotes, this line should already be checked by that rule\n if (state.sCount[nextLine] < 0) { continue; }\n\n // Some tags can terminate paragraph without empty line.\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n if (terminate) { break; }\n }\n\n str = state.getLines(startLine, nextLine, state.blkIndent, false).trim();\n max = str.length;\n\n for (pos = 1; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x5B /* [ */) {\n return false;\n } else if (ch === 0x5D /* ] */) {\n labelEnd = pos;\n break;\n } else if (ch === 0x0A /* \\n */) {\n lines++;\n } else if (ch === 0x5C /* \\ */) {\n pos++;\n if (pos < max && str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n }\n\n if (labelEnd < 0 || str.charCodeAt(labelEnd + 1) !== 0x3A/* : */) { return false; }\n\n // [label]: destination 'title'\n // ^^^ skip optional whitespace here\n for (pos = labelEnd + 2; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^^^^^ parse this\n res = state.md.helpers.parseLinkDestination(str, pos, max);\n if (!res.ok) { return false; }\n\n href = state.md.normalizeLink(res.str);\n if (!state.md.validateLink(href)) { return false; }\n\n pos = res.pos;\n lines += res.lines;\n\n // save cursor state, we could require to rollback later\n destEndPos = pos;\n destEndLineNo = lines;\n\n // [label]: destination 'title'\n // ^^^ skipping those spaces\n start = pos;\n for (; pos < max; pos++) {\n ch = str.charCodeAt(pos);\n if (ch === 0x0A) {\n lines++;\n } else if (isSpace(ch)) {\n /*eslint no-empty:0*/\n } else {\n break;\n }\n }\n\n // [label]: destination 'title'\n // ^^^^^^^ parse this\n res = state.md.helpers.parseLinkTitle(str, pos, max);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n lines += res.lines;\n } else {\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n }\n\n // skip trailing spaces until the rest of the line\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n if (title) {\n // garbage at the end of the line after title,\n // but it could still be a valid reference if we roll back\n title = '';\n pos = destEndPos;\n lines = destEndLineNo;\n while (pos < max) {\n ch = str.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n }\n }\n\n if (pos < max && str.charCodeAt(pos) !== 0x0A) {\n // garbage at the end of the line\n return false;\n }\n\n label = normalizeReference(str.slice(1, labelEnd));\n if (!label) {\n // CommonMark 0.20 disallows empty labels\n return false;\n }\n\n // Reference can not terminate anything. This check is for safety only.\n /*istanbul ignore if*/\n if (silent) { return true; }\n\n if (typeof state.env.references === 'undefined') {\n state.env.references = {};\n }\n if (typeof state.env.references[label] === 'undefined') {\n state.env.references[label] = { title: title, href: href };\n }\n\n state.parentType = oldParentType;\n\n state.line = startLine + lines + 1;\n return true;\n};\n","// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // An amount of virtual spaces (tabs expanded) between beginning\n // of each line (bMarks) and real beginning of that line.\n //\n // It exists only as a hack because blockquotes override bMarks\n // losing information in the process.\n //\n // It's used only when expanding tabs, you can think about it as\n // an initial tab length, e.g. bsCount=21 applied to string `\\t123`\n // means first tab should be expanded to 4-21%4 === 3 spaces.\n //\n this.bsCount = [];\n\n // block parser variables\n this.blkIndent = 0; // required block content indent (for example, if we are\n // inside a list, it would be positioned after list marker)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n this.listIndent = -1; // indent of the current list block (-1 if there isn't any)\n\n // can be 'blockquote', 'list', 'root', 'paragraph' or 'reference'\n // used in lists to determine if they interrupt a paragraph\n this.parentType = 'root';\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n this.bsCount.push(0);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n this.bsCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n var token = new Token(type, tag, nesting);\n token.block = true;\n\n if (nesting < 0) this.level--; // closing tag\n token.level = this.level;\n if (nesting > 0) this.level++; // opening tag\n\n this.tokens.push(token);\n return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - (lineIndent + this.bsCount[line]) % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n if (lineIndent > indent) {\n // partially expanding tabs in code blocks, e.g '\\t\\tfoobar'\n // with indent=2 becomes ' \\tfoobar'\n queue[i] = new Array(lineIndent - indent + 1).join(' ') + this.src.slice(first, last);\n } else {\n queue[i] = this.src.slice(first, last);\n }\n }\n\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n","// GFM table, https://github.github.com/gfm/#tables-extension-\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction getLine(state, line) {\n var pos = state.bMarks[line] + state.tShift[line],\n max = state.eMarks[line];\n\n return state.src.slice(pos, max);\n}\n\nfunction escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n isEscaped = false,\n lastPos = 0,\n current = '';\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x7c/* | */) {\n if (!isEscaped) {\n // pipe separating cells, '|'\n result.push(current + str.substring(lastPos, pos));\n current = '';\n lastPos = pos + 1;\n } else {\n // escaped pipe, '\\|'\n current += str.substring(lastPos, pos - 1);\n lastPos = pos;\n }\n }\n\n isEscaped = (ch === 0x5c/* \\ */);\n pos++;\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(current + str.substring(lastPos));\n\n return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, l, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines, oldParentType, terminate,\n terminatorRules, firstCh, secondCh;\n\n // should have at least two lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // if it's indented more than 3 spaces, it should be a code block\n if (state.sCount[nextLine] - state.blkIndent >= 4) { return false; }\n\n // first character of the second line should be '|', '-', ':',\n // and no other characters are allowed but spaces;\n // basically, this is the equivalent of /^[-:|][-:|\\s]*$/ regexp\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n firstCh = state.src.charCodeAt(pos++);\n if (firstCh !== 0x7C/* | */ && firstCh !== 0x2D/* - */ && firstCh !== 0x3A/* : */) { return false; }\n\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n secondCh = state.src.charCodeAt(pos++);\n if (secondCh !== 0x7C/* | */ && secondCh !== 0x2D/* - */ && secondCh !== 0x3A/* : */ && !isSpace(secondCh)) {\n return false;\n }\n\n // if first character is '-', then second character must not be a space\n // (due to parsing ambiguity with list)\n if (firstCh === 0x2D/* - */ && isSpace(secondCh)) { return false; }\n\n while (pos < state.eMarks[nextLine]) {\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */ && !isSpace(ch)) { return false; }\n\n pos++;\n }\n\n lineText = getLine(state, startLine + 1);\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n if (state.sCount[startLine] - state.blkIndent >= 4) { return false; }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n // header row will define an amount of columns in the entire table,\n // and align row should be exactly the same (the rest of the rows can differ)\n columnCount = columns.length;\n if (columnCount === 0 || columnCount !== aligns.length) { return false; }\n\n if (silent) { return true; }\n\n oldParentType = state.parentType;\n state.parentType = 'table';\n\n // use 'blockquote' lists for termination because it's\n // the most similar to tables\n terminatorRules = state.md.block.ruler.getRules('blockquote');\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n terminate = false;\n for (i = 0, l = terminatorRules.length; i < l; i++) {\n if (terminatorRules[i](state, nextLine, endLine, true)) {\n terminate = true;\n break;\n }\n }\n\n if (terminate) { break; }\n lineText = getLine(state, nextLine).trim();\n if (!lineText) { break; }\n if (state.sCount[nextLine] - state.blkIndent >= 4) { break; }\n columns = escapedSplit(lineText);\n if (columns.length && columns[0] === '') columns.shift();\n if (columns.length && columns[columns.length - 1] === '') columns.pop();\n\n if (nextLine === startLine + 2) {\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n }\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ nextLine, nextLine + 1 ];\n\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n\n if (tbodyLines) {\n token = state.push('tbody_close', 'tbody', -1);\n tbodyLines[1] = nextLine;\n }\n\n token = state.push('table_close', 'table', -1);\n tableLines[1] = nextLine;\n\n state.parentType = oldParentType;\n state.line = nextLine;\n return true;\n};\n","'use strict';\n\n\nmodule.exports = function block(state) {\n var token;\n\n if (state.inlineMode) {\n token = new state.Token('inline', '', 0);\n token.content = state.src;\n token.map = [ 0, 1 ];\n token.children = [];\n state.tokens.push(token);\n } else {\n state.md.block.parse(state.src, state.md, state.env, state.tokens);\n }\n};\n","'use strict';\n\nmodule.exports = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n};\n","// Replace link-like texts with link nodes.\n//\n// Currently restricted by `md.validateLink()` to http/https/ftp\n//\n'use strict';\n\n\nvar arrayReplaceAt = require('../common/utils').arrayReplaceAt;\n\n\nfunction isLinkOpen(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nmodule.exports = function linkify(state) {\n var i, j, l, tokens, token, currentToken, nodes, ln, text, pos, lastPos,\n level, htmlLinkLevel, url, fullUrl, urlText,\n blockTokens = state.tokens,\n links;\n\n if (!state.md.options.linkify) { return; }\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline' ||\n !state.md.linkify.pretest(blockTokens[j].content)) {\n continue;\n }\n\n tokens = blockTokens[j].children;\n\n htmlLinkLevel = 0;\n\n // We scan from the end, to keep position when new tags added.\n // Use reversed logic in links start/end match\n for (i = tokens.length - 1; i >= 0; i--) {\n currentToken = tokens[i];\n\n // Skip content of markdown links\n if (currentToken.type === 'link_close') {\n i--;\n while (tokens[i].level !== currentToken.level && tokens[i].type !== 'link_open') {\n i--;\n }\n continue;\n }\n\n // Skip content of html tag links\n if (currentToken.type === 'html_inline') {\n if (isLinkOpen(currentToken.content) && htmlLinkLevel > 0) {\n htmlLinkLevel--;\n }\n if (isLinkClose(currentToken.content)) {\n htmlLinkLevel++;\n }\n }\n if (htmlLinkLevel > 0) { continue; }\n\n if (currentToken.type === 'text' && state.md.linkify.test(currentToken.content)) {\n\n text = currentToken.content;\n links = state.md.linkify.match(text);\n\n // Now split string to nodes\n nodes = [];\n level = currentToken.level;\n lastPos = 0;\n\n // forbid escape sequence at the start of the string,\n // this avoids http\\://example.com/ from being linkified as\n // http://example.com/\n if (links.length > 0 &&\n links[0].index === 0 &&\n i > 0 &&\n tokens[i - 1].type === 'text_special') {\n links = links.slice(1);\n }\n\n for (ln = 0; ln < links.length; ln++) {\n url = links[ln].url;\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { continue; }\n\n urlText = links[ln].text;\n\n // Linkifier might send raw hostnames like \"example.com\", where url\n // starts with domain name. So we prepend http:// in those cases,\n // and remove it afterwards.\n //\n if (!links[ln].schema) {\n urlText = state.md.normalizeLinkText('http://' + urlText).replace(/^http:\\/\\//, '');\n } else if (links[ln].schema === 'mailto:' && !/^mailto:/i.test(urlText)) {\n urlText = state.md.normalizeLinkText('mailto:' + urlText).replace(/^mailto:/, '');\n } else {\n urlText = state.md.normalizeLinkText(urlText);\n }\n\n pos = links[ln].index;\n\n if (pos > lastPos) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos, pos);\n token.level = level;\n nodes.push(token);\n }\n\n token = new state.Token('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.level = level++;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n token = new state.Token('text', '', 0);\n token.content = urlText;\n token.level = level;\n nodes.push(token);\n\n token = new state.Token('link_close', 'a', -1);\n token.level = --level;\n token.markup = 'linkify';\n token.info = 'auto';\n nodes.push(token);\n\n lastPos = links[ln].lastIndex;\n }\n if (lastPos < text.length) {\n token = new state.Token('text', '', 0);\n token.content = text.slice(lastPos);\n token.level = level;\n nodes.push(token);\n }\n\n // replace current node\n blockTokens[j].children = tokens = arrayReplaceAt(tokens, i, nodes);\n }\n }\n }\n};\n","// Normalize input string\n\n'use strict';\n\n\n// https://spec.commonmark.org/0.29/#line-ending\nvar NEWLINES_RE = /\\r\\n?|\\n/g;\nvar NULL_RE = /\\0/g;\n\n\nmodule.exports = function normalize(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n};\n","// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig;\nvar SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n};\n\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\nfunction replace_rare(inlineTokens) {\n var i, token, inside_autolink = 0;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013');\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--;\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++;\n }\n }\n}\n\n\nmodule.exports = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n};\n","// Convert straight quotation marks to typographic ones\n//\n'use strict';\n\n\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\nvar QUOTE_TEST_RE = /['\"]/;\nvar QUOTE_RE = /['\"]/g;\nvar APOSTROPHE = '\\u2019'; /* ’ */\n\n\nfunction replaceAt(str, index, ch) {\n return str.slice(0, index) + ch + str.slice(index + 1);\n}\n\nfunction process_inlines(tokens, state) {\n var i, token, text, t, pos, max, thisLevel, item, lastChar, nextChar,\n isLastPunctChar, isNextPunctChar, isLastWhiteSpace, isNextWhiteSpace,\n canOpen, canClose, j, isSingle, stack, openQuote, closeQuote;\n\n stack = [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n\n thisLevel = tokens[i].level;\n\n for (j = stack.length - 1; j >= 0; j--) {\n if (stack[j].level <= thisLevel) { break; }\n }\n stack.length = j + 1;\n\n if (token.type !== 'text') { continue; }\n\n text = token.content;\n pos = 0;\n max = text.length;\n\n /*eslint no-labels:0,block-scoped-var:0*/\n OUTER:\n while (pos < max) {\n QUOTE_RE.lastIndex = pos;\n t = QUOTE_RE.exec(text);\n if (!t) { break; }\n\n canOpen = canClose = true;\n pos = t.index + 1;\n isSingle = (t[0] === \"'\");\n\n // Find previous character,\n // default to space if it's the beginning of the line\n //\n lastChar = 0x20;\n\n if (t.index - 1 >= 0) {\n lastChar = text.charCodeAt(t.index - 1);\n } else {\n for (j = i - 1; j >= 0; j--) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // lastChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n lastChar = tokens[j].content.charCodeAt(tokens[j].content.length - 1);\n break;\n }\n }\n\n // Find next character,\n // default to space if it's the end of the line\n //\n nextChar = 0x20;\n\n if (pos < max) {\n nextChar = text.charCodeAt(pos);\n } else {\n for (j = i + 1; j < tokens.length; j++) {\n if (tokens[j].type === 'softbreak' || tokens[j].type === 'hardbreak') break; // nextChar defaults to 0x20\n if (!tokens[j].content) continue; // should skip all tokens except 'text', 'html_inline' or 'code_inline'\n\n nextChar = tokens[j].content.charCodeAt(0);\n break;\n }\n }\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n canOpen = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n canOpen = false;\n }\n }\n\n if (isLastWhiteSpace) {\n canClose = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n canClose = false;\n }\n }\n\n if (nextChar === 0x22 /* \" */ && t[0] === '\"') {\n if (lastChar >= 0x30 /* 0 */ && lastChar <= 0x39 /* 9 */) {\n // special case: 1\"\" - count first quote as an inch\n canClose = canOpen = false;\n }\n }\n\n if (canOpen && canClose) {\n // Replace quotes in the middle of punctuation sequence, but not\n // in the middle of the words, i.e.:\n //\n // 1. foo \" bar \" baz - not replaced\n // 2. foo-\"-bar-\"-baz - replaced\n // 3. foo\"bar\"baz - not replaced\n //\n canOpen = isLastPunctChar;\n canClose = isNextPunctChar;\n }\n\n if (!canOpen && !canClose) {\n // middle of word\n if (isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n continue;\n }\n\n if (canClose) {\n // this could be a closing quote, rewind the stack to get a match\n for (j = stack.length - 1; j >= 0; j--) {\n item = stack[j];\n if (stack[j].level < thisLevel) { break; }\n if (item.single === isSingle && stack[j].level === thisLevel) {\n item = stack[j];\n\n if (isSingle) {\n openQuote = state.md.options.quotes[2];\n closeQuote = state.md.options.quotes[3];\n } else {\n openQuote = state.md.options.quotes[0];\n closeQuote = state.md.options.quotes[1];\n }\n\n // replace token.content *before* tokens[item.token].content,\n // because, if they are pointing at the same token, replaceAt\n // could mess up indices when quote length != 1\n token.content = replaceAt(token.content, t.index, closeQuote);\n tokens[item.token].content = replaceAt(\n tokens[item.token].content, item.pos, openQuote);\n\n pos += closeQuote.length - 1;\n if (item.token === i) { pos += openQuote.length - 1; }\n\n text = token.content;\n max = text.length;\n\n stack.length = j;\n continue OUTER;\n }\n }\n }\n\n if (canOpen) {\n stack.push({\n token: i,\n pos: t.index,\n single: isSingle,\n level: thisLevel\n });\n } else if (canClose && isSingle) {\n token.content = replaceAt(token.content, t.index, APOSTROPHE);\n }\n }\n }\n}\n\n\nmodule.exports = function smartquotes(state) {\n /*eslint max-depth:0*/\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline' ||\n !QUOTE_TEST_RE.test(state.tokens[blkIdx].content)) {\n continue;\n }\n\n process_inlines(state.tokens[blkIdx].children, state);\n }\n};\n","// Core state object\n//\n'use strict';\n\nvar Token = require('../token');\n\n\nfunction StateCore(src, md, env) {\n this.src = src;\n this.env = env;\n this.tokens = [];\n this.inlineMode = false;\n this.md = md; // link to parser instance\n}\n\n// re-export Token class to use in core rules\nStateCore.prototype.Token = Token;\n\n\nmodule.exports = StateCore;\n","// Join raw text tokens with the rest of the text\n//\n// This is set as a separate rule to provide an opportunity for plugins\n// to run text replacements after text join, but before escape join.\n//\n// For example, `\\:)` shouldn't be replaced with an emoji.\n//\n'use strict';\n\n\nmodule.exports = function text_join(state) {\n var j, l, tokens, curr, max, last,\n blockTokens = state.tokens;\n\n for (j = 0, l = blockTokens.length; j < l; j++) {\n if (blockTokens[j].type !== 'inline') continue;\n\n tokens = blockTokens[j].children;\n max = tokens.length;\n\n for (curr = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text_special') {\n tokens[curr].type = 'text';\n }\n }\n\n for (curr = last = 0; curr < max; curr++) {\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n }\n};\n","// Process autolinks ''\n\n'use strict';\n\n\n/*eslint max-len:0*/\nvar EMAIL_RE = /^([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/;\nvar AUTOLINK_RE = /^([a-zA-Z][a-zA-Z0-9+.\\-]{1,31}):([^<>\\x00-\\x20]*)$/;\n\n\nmodule.exports = function autolink(state, silent) {\n var url, fullUrl, token, ch, start, max,\n pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n start = state.pos;\n max = state.posMax;\n\n for (;;) {\n if (++pos >= max) return false;\n\n ch = state.src.charCodeAt(pos);\n\n if (ch === 0x3C /* < */) return false;\n if (ch === 0x3E /* > */) break;\n }\n\n url = state.src.slice(start + 1, pos);\n\n if (AUTOLINK_RE.test(url)) {\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += url.length + 2;\n return true;\n }\n\n if (EMAIL_RE.test(url)) {\n fullUrl = state.md.normalizeLink('mailto:' + url);\n if (!state.md.validateLink(fullUrl)) { return false; }\n\n if (!silent) {\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'autolink';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'autolink';\n token.info = 'auto';\n }\n\n state.pos += url.length + 2;\n return true;\n }\n\n return false;\n};\n","// Parse backticks\n\n'use strict';\n\n\nmodule.exports = function backtick(state, silent) {\n var start, max, marker, token, matchStart, matchEnd, openerLength, closerLength,\n pos = state.pos,\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x60/* ` */) { return false; }\n\n start = pos;\n pos++;\n max = state.posMax;\n\n // scan marker length\n while (pos < max && state.src.charCodeAt(pos) === 0x60/* ` */) { pos++; }\n\n marker = state.src.slice(start, pos);\n openerLength = marker.length;\n\n if (state.backticksScanned && (state.backticks[openerLength] || 0) <= start) {\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n }\n\n matchStart = matchEnd = pos;\n\n // Nothing found in the cache, scan until the end of the line (or until marker is found)\n while ((matchStart = state.src.indexOf('`', matchEnd)) !== -1) {\n matchEnd = matchStart + 1;\n\n // scan marker length\n while (matchEnd < max && state.src.charCodeAt(matchEnd) === 0x60/* ` */) { matchEnd++; }\n\n closerLength = matchEnd - matchStart;\n\n if (closerLength === openerLength) {\n // Found matching closer length.\n if (!silent) {\n token = state.push('code_inline', 'code', 0);\n token.markup = marker;\n token.content = state.src.slice(pos, matchStart)\n .replace(/\\n/g, ' ')\n .replace(/^ (.+) $/, '$1');\n }\n state.pos = matchEnd;\n return true;\n }\n\n // Some different length found, put it in cache as upper limit of where closer can be found\n state.backticks[closerLength] = matchStart;\n }\n\n // Scanned through the end, didn't find anything\n state.backticksScanned = true;\n\n if (!silent) state.pending += marker;\n state.pos += openerLength;\n return true;\n};\n","// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nfunction processDelimiters(state, delimiters) {\n var closerIdx, openerIdx, closer, opener, minOpenerIdx, newMinOpenerIdx,\n isOddMatch, lastJump,\n openersBottom = {},\n max = delimiters.length;\n\n if (!max) return;\n\n // headerIdx is the first delimiter of the current (where closer is) delimiter run\n var headerIdx = 0;\n var lastTokenIdx = -2; // needs any value lower than -1\n var jumps = [];\n\n for (closerIdx = 0; closerIdx < max; closerIdx++) {\n closer = delimiters[closerIdx];\n\n jumps.push(0);\n\n // markers belong to same delimiter run if:\n // - they have adjacent tokens\n // - AND markers are the same\n //\n if (delimiters[headerIdx].marker !== closer.marker || lastTokenIdx !== closer.token - 1) {\n headerIdx = closerIdx;\n }\n\n lastTokenIdx = closer.token;\n\n // Length is only used for emphasis-specific \"rule of 3\",\n // if it's not defined (in strikethrough or 3rd party plugins),\n // we can default it to 0 to disable those checks.\n //\n closer.length = closer.length || 0;\n\n if (!closer.close) continue;\n\n // Previously calculated lower bounds (previous fails)\n // for each marker, each delimiter length modulo 3,\n // and for whether this closer can be an opener;\n // https://github.com/commonmark/cmark/commit/34250e12ccebdc6372b8b49c44fab57c72443460\n if (!openersBottom.hasOwnProperty(closer.marker)) {\n openersBottom[closer.marker] = [ -1, -1, -1, -1, -1, -1 ];\n }\n\n minOpenerIdx = openersBottom[closer.marker][(closer.open ? 3 : 0) + (closer.length % 3)];\n\n openerIdx = headerIdx - jumps[headerIdx] - 1;\n\n newMinOpenerIdx = openerIdx;\n\n for (; openerIdx > minOpenerIdx; openerIdx -= jumps[openerIdx] + 1) {\n opener = delimiters[openerIdx];\n\n if (opener.marker !== closer.marker) continue;\n\n if (opener.open && opener.end < 0) {\n\n isOddMatch = false;\n\n // from spec:\n //\n // If one of the delimiters can both open and close emphasis, then the\n // sum of the lengths of the delimiter runs containing the opening and\n // closing delimiters must not be a multiple of 3 unless both lengths\n // are multiples of 3.\n //\n if (opener.close || closer.open) {\n if ((opener.length + closer.length) % 3 === 0) {\n if (opener.length % 3 !== 0 || closer.length % 3 !== 0) {\n isOddMatch = true;\n }\n }\n }\n\n if (!isOddMatch) {\n // If previous delimiter cannot be an opener, we can safely skip\n // the entire sequence in future checks. This is required to make\n // sure algorithm has linear complexity (see *_*_*_*_*_... case).\n //\n lastJump = openerIdx > 0 && !delimiters[openerIdx - 1].open ?\n jumps[openerIdx - 1] + 1 :\n 0;\n\n jumps[closerIdx] = closerIdx - openerIdx + lastJump;\n jumps[openerIdx] = lastJump;\n\n closer.open = false;\n opener.end = closerIdx;\n opener.close = false;\n newMinOpenerIdx = -1;\n // treat next token as start of run,\n // it optimizes skips in **<...>**a**<...>** pathological case\n lastTokenIdx = -2;\n break;\n }\n }\n }\n\n if (newMinOpenerIdx !== -1) {\n // If match for this delimiter run failed, we want to set lower bound for\n // future lookups. This is required to make sure algorithm has linear\n // complexity.\n //\n // See details here:\n // https://github.com/commonmark/cmark/issues/178#issuecomment-270417442\n //\n openersBottom[closer.marker][(closer.open ? 3 : 0) + ((closer.length || 0) % 3)] = newMinOpenerIdx;\n }\n }\n}\n\n\nmodule.exports = function link_pairs(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n processDelimiters(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n processDelimiters(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // Total length of these series of delimiters.\n //\n length: scanned.length,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n max = delimiters.length;\n\n for (i = max - 1; i >= 0; i--) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the previous delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i > 0 &&\n delimiters[i - 1].end === startDelim.end + 1 &&\n // check that first two markers match and adjacent\n delimiters[i - 1].marker === startDelim.marker &&\n delimiters[i - 1].token === startDelim.token - 1 &&\n // check that last two markers are adjacent (we can safely assume they match)\n delimiters[startDelim.end + 1].token === endDelim.token + 1;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i - 1].token].content = '';\n state.tokens[delimiters[startDelim.end + 1].token].content = '';\n i--;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Process html entity - {, ¯, ", ...\n\n'use strict';\n\nvar entities = require('../common/entities');\nvar has = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i;\nvar NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n var ch, code, match, token, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) return false;\n\n if (pos + 1 >= max) return false;\n\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n\n token = state.push('text_special', '', 0);\n token.content = isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) {\n token = state.push('text_special', '', 0);\n token.content = entities[match[1]];\n token.markup = match[0];\n token.info = 'entity';\n }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n\n return false;\n};\n","// Process escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n var ch1, ch2, origStr, escapedStr, token, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) return false;\n pos++;\n\n // '\\' at the end of the inline block\n if (pos >= max) return false;\n\n ch1 = state.src.charCodeAt(pos);\n\n if (ch1 === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch1 = state.src.charCodeAt(pos);\n if (!isSpace(ch1)) break;\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n\n escapedStr = state.src[pos];\n\n if (ch1 >= 0xD800 && ch1 <= 0xDBFF && pos + 1 < max) {\n ch2 = state.src.charCodeAt(pos + 1);\n\n if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {\n escapedStr += state.src[pos + 1];\n pos++;\n }\n }\n\n origStr = '\\\\' + escapedStr;\n\n if (!silent) {\n token = state.push('text_special', '', 0);\n\n if (ch1 < 256 && ESCAPED[ch1] !== 0) {\n token.content = escapedStr;\n } else {\n token.content = origStr;\n }\n\n token.markup = origStr;\n token.info = 'escape';\n }\n\n state.pos = pos + 1;\n return true;\n};\n","// Clean up tokens after emphasis and strikethrough postprocessing:\n// merge adjacent text nodes into one and re-calculate all token levels\n//\n// This is necessary because initially emphasis delimiter markers (*, _, ~)\n// are treated as their own separate text tokens. Then emphasis rule either\n// leaves them as text (needed to merge with adjacent text) or turns them\n// into opening/closing tags (which messes up levels inside).\n//\n'use strict';\n\n\nmodule.exports = function fragments_join(state) {\n var curr, last,\n level = 0,\n tokens = state.tokens,\n max = state.tokens.length;\n\n for (curr = last = 0; curr < max; curr++) {\n // re-calculate levels after emphasis/strikethrough turns some text nodes\n // into opening/closing tags\n if (tokens[curr].nesting < 0) level--; // closing tag\n tokens[curr].level = level;\n if (tokens[curr].nesting > 0) level++; // opening tag\n\n if (tokens[curr].type === 'text' &&\n curr + 1 < max &&\n tokens[curr + 1].type === 'text') {\n\n // collapse two adjacent text nodes\n tokens[curr + 1].content = tokens[curr].content + tokens[curr + 1].content;\n } else {\n if (curr !== last) { tokens[last] = tokens[curr]; }\n\n last++;\n }\n }\n\n if (curr !== last) {\n tokens.length = last;\n }\n};\n","// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLinkOpen(str) {\n return /^\\s]/i.test(str);\n}\nfunction isLinkClose(str) {\n return /^<\\/a\\s*>/i.test(str);\n}\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n\n if (isLinkOpen(token.content)) state.linkLevel++;\n if (isLinkClose(token.content)) state.linkLevel--;\n }\n state.pos += match[0].length;\n return true;\n};\n","// Process ![image]( \"title\")\n\n'use strict';\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function image(state, silent) {\n var attrs,\n code,\n content,\n label,\n labelEnd,\n labelStart,\n pos,\n ref,\n res,\n title,\n token,\n tokens,\n start,\n href = '',\n oldPos = state.pos,\n max = state.posMax;\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false; }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 2;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n } else {\n title = '';\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos;\n return false;\n }\n pos++;\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd);\n\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens = []\n );\n\n token = state.push('image', 'img', 0);\n token.attrs = attrs = [ [ 'src', href ], [ 'alt', '' ] ];\n token.children = tokens;\n token.content = content;\n\n if (title) {\n attrs.push([ 'title', title ]);\n }\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Process [link]( \"stuff\")\n\n'use strict';\n\nvar normalizeReference = require('../common/utils').normalizeReference;\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function link(state, silent) {\n var attrs,\n code,\n label,\n labelEnd,\n labelStart,\n pos,\n res,\n ref,\n token,\n href = '',\n title = '',\n oldPos = state.pos,\n max = state.posMax,\n start = state.pos,\n parseReference = true;\n\n if (state.src.charCodeAt(state.pos) !== 0x5B/* [ */) { return false; }\n\n labelStart = state.pos + 1;\n labelEnd = state.md.helpers.parseLinkLabel(state, state.pos, true);\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false; }\n\n pos = labelEnd + 1;\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // might have found a valid shortcut link, disable reference parsing\n parseReference = false;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n pos++;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n if (pos >= max) { return false; }\n\n // [link]( \"title\" )\n // ^^^^^^ parsing link destination\n start = pos;\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax);\n if (res.ok) {\n href = state.md.normalizeLink(res.str);\n if (state.md.validateLink(href)) {\n pos = res.pos;\n } else {\n href = '';\n }\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n start = pos;\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n\n // [link]( \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax);\n if (pos < max && start !== pos && res.ok) {\n title = res.str;\n pos = res.pos;\n\n // [link]( \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos);\n if (!isSpace(code) && code !== 0x0A) { break; }\n }\n }\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n // parsing a valid shortcut link failed, fallback to reference\n parseReference = true;\n }\n pos++;\n }\n\n if (parseReference) {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false; }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1;\n pos = state.md.helpers.parseLinkLabel(state, pos);\n if (pos >= 0) {\n label = state.src.slice(start, pos++);\n } else {\n pos = labelEnd + 1;\n }\n } else {\n pos = labelEnd + 1;\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd); }\n\n ref = state.env.references[normalizeReference(label)];\n if (!ref) {\n state.pos = oldPos;\n return false;\n }\n href = ref.href;\n title = ref.title;\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n state.pos = labelStart;\n state.posMax = labelEnd;\n\n token = state.push('link_open', 'a', 1);\n token.attrs = attrs = [ [ 'href', href ] ];\n if (title) {\n attrs.push([ 'title', title ]);\n }\n\n state.linkLevel++;\n state.md.inline.tokenize(state);\n state.linkLevel--;\n\n token = state.push('link_close', 'a', -1);\n }\n\n state.pos = pos;\n state.posMax = max;\n return true;\n};\n","// Process links like https://example.org/\n\n'use strict';\n\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nvar SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;\n\n\nmodule.exports = function linkify(state, silent) {\n var pos, max, match, proto, link, url, fullUrl, token;\n\n if (!state.md.options.linkify) return false;\n if (state.linkLevel > 0) return false;\n\n pos = state.pos;\n max = state.posMax;\n\n if (pos + 3 > max) return false;\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false;\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false;\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false;\n\n match = state.pending.match(SCHEME_RE);\n if (!match) return false;\n\n proto = match[1];\n\n link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length));\n if (!link) return false;\n\n url = link.url;\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '');\n\n fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) return false;\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length);\n\n token = state.push('link_open', 'a', 1);\n token.attrs = [ [ 'href', fullUrl ] ];\n token.markup = 'linkify';\n token.info = 'auto';\n\n token = state.push('text', '', 0);\n token.content = state.md.normalizeLinkText(url);\n\n token = state.push('link_close', 'a', -1);\n token.markup = 'linkify';\n token.info = 'auto';\n }\n\n state.pos += url.length - proto.length;\n return true;\n};\n","// Proceess '\\n'\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, ws, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n // Find whitespaces tail of pending chars.\n ws = pmax - 1;\n while (ws >= 1 && state.pending.charCodeAt(ws - 1) === 0x20) ws--;\n\n state.pending = state.pending.slice(0, ws);\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && isSpace(state.src.charCodeAt(pos))) { pos++; }\n\n state.pos = pos;\n return true;\n};\n","// Inline parser state\n\n'use strict';\n\n\nvar Token = require('../token');\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n this.tokens_meta = Array(outTokens.length);\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n this.cache = {};\n\n // List of emphasis-like delimiters for current tag\n this.delimiters = [];\n\n // Stack of delimiter lists for upper level tags\n this._prev_delimiters = [];\n\n // backtick length => last seen position\n this.backticks = {};\n this.backticksScanned = false;\n\n // Counter used to disable inline linkify-it execution\n // inside and markdown links\n this.linkLevel = 0;\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n var token_meta = null;\n\n if (nesting < 0) {\n // closing tag\n this.level--;\n this.delimiters = this._prev_delimiters.pop();\n }\n\n token.level = this.level;\n\n if (nesting > 0) {\n // opening tag\n this.level++;\n this._prev_delimiters.push(this.delimiters);\n this.delimiters = [];\n token_meta = { delimiters: this.delimiters };\n }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n this.tokens_meta.push(token_meta);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n","// ~~strike through~~\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function strikethrough(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x7E/* ~ */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\nfunction postProcess(state, delimiters) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n max = delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 's_open';\n token.tag = 's';\n token.nesting = 1;\n token.markup = '~~';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 's_close';\n token.tag = 's';\n token.nesting = -1;\n token.markup = '~~';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n}\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function strikethrough(state) {\n var curr,\n tokens_meta = state.tokens_meta,\n max = state.tokens_meta.length;\n\n postProcess(state, state.delimiters);\n\n for (curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters);\n }\n }\n};\n","// Skip text characters for text token, place those to pending buffer\n// and increment current pos\n\n'use strict';\n\n\n// Rule to skip pure text\n// '{}$%@~+=:' reserved for extentions\n\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n\n// !!!! Don't confuse with \"Markdown ASCII Punctuation\" chars\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\nfunction isTerminatorChar(ch) {\n switch (ch) {\n case 0x0A/* \\n */:\n case 0x21/* ! */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2D/* - */:\n case 0x3A/* : */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos;\n\n while (pos < state.posMax && !isTerminatorChar(state.src.charCodeAt(pos))) {\n pos++;\n }\n\n if (pos === state.pos) { return false; }\n\n if (!silent) { state.pending += state.src.slice(state.pos, pos); }\n\n state.pos = pos;\n\n return true;\n};\n\n// Alternative implementation, for memory.\n//\n// It costs 10% of performance, but allows extend terminators list, if place it\n// to `ParcerInline` property. Probably, will switch to it sometime, such\n// flexibility required.\n\n/*\nvar TERMINATOR_RE = /[\\n!#$%&*+\\-:<=>@[\\\\\\]^_`{}~]/;\n\nmodule.exports = function text(state, silent) {\n var pos = state.pos,\n idx = state.src.slice(pos).search(TERMINATOR_RE);\n\n // first char is terminator -> empty text\n if (idx === 0) { return false; }\n\n // no terminator -> text till end of string\n if (idx < 0) {\n if (!silent) { state.pending += state.src.slice(pos); }\n state.pos = state.src.length;\n return true;\n }\n\n if (!silent) { state.pending += state.src.slice(pos, pos + idx); }\n\n state.pos += idx;\n\n return true;\n};*/\n","// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * Additional information:\n *\n * - Info string for \"fence\" tokens\n * - The value \"auto\" for autolink \"link_open\" and \"link_close\" tokens\n * - The string value of the item marker for ordered-list \"list_item_open\" tokens\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n","\n'use strict';\n\n\n/* eslint-disable no-bitwise */\n\nvar decodeCache = {};\n\nfunction getDecodeCache(exclude) {\n var i, ch, cache = decodeCache[exclude];\n if (cache) { return cache; }\n\n cache = decodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n cache.push(ch);\n }\n\n for (i = 0; i < exclude.length; i++) {\n ch = exclude.charCodeAt(i);\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2);\n }\n\n return cache;\n}\n\n\n// Decode percent-encoded string.\n//\nfunction decode(string, exclude) {\n var cache;\n\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars;\n }\n\n cache = getDecodeCache(exclude);\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function(seq) {\n var i, l, b1, b2, b3, b4, chr,\n result = '';\n\n for (i = 0, l = seq.length; i < l; i += 3) {\n b1 = parseInt(seq.slice(i + 1, i + 3), 16);\n\n if (b1 < 0x80) {\n result += cache[b1];\n continue;\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n\n if ((b2 & 0xC0) === 0x80) {\n chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F);\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 3;\n continue;\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F);\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd';\n } else {\n result += String.fromCharCode(chr);\n }\n\n i += 6;\n continue;\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n b2 = parseInt(seq.slice(i + 4, i + 6), 16);\n b3 = parseInt(seq.slice(i + 7, i + 9), 16);\n b4 = parseInt(seq.slice(i + 10, i + 12), 16);\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F);\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd';\n } else {\n chr -= 0x10000;\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF));\n }\n\n i += 9;\n continue;\n }\n }\n\n result += '\\ufffd';\n }\n\n return result;\n });\n}\n\n\ndecode.defaultChars = ';/?:@&=+$,#';\ndecode.componentChars = '';\n\n\nmodule.exports = decode;\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","\n'use strict';\n\n\nmodule.exports = function format(url) {\n var result = '';\n\n result += url.protocol || '';\n result += url.slashes ? '//' : '';\n result += url.auth ? url.auth + '@' : '';\n\n if (url.hostname && url.hostname.indexOf(':') !== -1) {\n // ipv6 address\n result += '[' + url.hostname + ']';\n } else {\n result += url.hostname || '';\n }\n\n result += url.port ? ':' + url.port : '';\n result += url.pathname || '';\n result += url.search || '';\n result += url.hash || '';\n\n return result;\n};\n","'use strict';\n\n\nmodule.exports.encode = require('./encode');\nmodule.exports.decode = require('./decode');\nmodule.exports.format = require('./format');\nmodule.exports.parse = require('./parse');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n//\n// Changes from joyent/node:\n//\n// 1. No leading slash in paths,\n// e.g. in `url.parse('http://foo?bar')` pathname is ``, not `/`\n//\n// 2. Backslashes are not replaced with slashes,\n// so `http:\\\\example.org\\` is treated like a relative path\n//\n// 3. Trailing colon is treated like a part of the path,\n// i.e. in `http://example.org:foo` pathname is `:foo`\n//\n// 4. Nothing is URL-encoded in the resulting object,\n// (in joyent/node some chars in auth and paths are encoded)\n//\n// 5. `url.parse()` does not have `parseQueryString` argument\n//\n// 6. Removed extraneous result properties: `host`, `path`, `query`, etc.,\n// which can be constructed using other parts of the url.\n//\n\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.pathname = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = [ '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t' ],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = [ '{', '}', '|', '\\\\', '^', '`' ].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = [ '\\'' ].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = [ '%', '/', '?', ';', '#' ].concat(autoEscape),\n hostEndingChars = [ '/', '?', '#' ],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n /* eslint-disable no-script-url */\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n };\n /* eslint-enable no-script-url */\n\nfunction urlParse(url, slashesDenoteHost) {\n if (url && url instanceof Url) { return url; }\n\n var u = new Url();\n u.parse(url, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, slashesDenoteHost) {\n var i, l, lowerProto, hec, slashes,\n rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n lowerProto = proto.toLowerCase();\n this.protocol = proto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (i = 0; i < hostEndingChars.length; i++) {\n hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = auth;\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (i = 0; i < nonHostChars.length; i++) {\n hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) {\n hostEnd = hec;\n }\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1) {\n hostEnd = rest.length;\n }\n\n if (rest[hostEnd - 1] === ':') { hostEnd--; }\n var host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost(host);\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) { continue; }\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n }\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n }\n }\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n rest = rest.slice(0, qm);\n }\n if (rest) { this.pathname = rest; }\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '';\n }\n\n return this;\n};\n\nUrl.prototype.parseHost = function(host) {\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) { this.hostname = host; }\n};\n\nmodule.exports = urlParse;\n",";(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm$1 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$1 = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$1 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar-ly', {\n months: months$1,\n monthsShort: months$1,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize$1('s'),\n ss: pluralize$1('s'),\n m: pluralize$1('m'),\n mm: pluralize$1('m'),\n h: pluralize$1('h'),\n hh: pluralize$1('h'),\n d: pluralize$1('d'),\n dd: pluralize$1('d'),\n M: pluralize$1('M'),\n MM: pluralize$1('M'),\n y: pluralize$1('y'),\n yy: pluralize$1('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$1 = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$2 = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$1 = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm$2 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$2 = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize$2 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$2(number),\n str = plurals$2[u][pluralForm$2(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$2 = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n moment.defineLocale('ar', {\n months: months$2,\n monthsShort: months$2,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize$2('s'),\n ss: pluralize$2('s'),\n m: pluralize$2('m'),\n mm: pluralize$2('m'),\n h: pluralize$2('h'),\n hh: pluralize$2('h'),\n d: pluralize$2('d'),\n dd: pluralize$2('d'),\n M: pluralize$2('M'),\n MM: pluralize$2('M'),\n y: pluralize$2('y'),\n yy: pluralize$2('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$2[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$3 = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap$2 = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$4 = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap$3 = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$5 = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap$4 = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap$4[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$3 = {\n format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n standalone:\n 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse$1 = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex$1 =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural$1(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate$1(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n moment.defineLocale('cs', {\n months: months$3,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate$1,\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: translate$1,\n dd: translate$1,\n M: translate$1,\n MM: translate$1,\n y: translate$1,\n yy: translate$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$1,\n mm: '%d Minuten',\n h: processRelativeTime$1,\n hh: '%d Stunden',\n d: processRelativeTime$1,\n dd: processRelativeTime$1,\n w: processRelativeTime$1,\n ww: '%d Wochen',\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$2,\n mm: '%d Minuten',\n h: processRelativeTime$2,\n hh: '%d Stunden',\n d: processRelativeTime$2,\n dd: processRelativeTime$2,\n w: processRelativeTime$2,\n ww: '%d Wochen',\n M: processRelativeTime$2,\n MM: processRelativeTime$2,\n y: processRelativeTime$2,\n yy: processRelativeTime$2,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$4 = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n moment.defineLocale('dv', {\n months: months$4,\n monthsShort: months$4,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$2 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$2 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$1[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$1 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$3 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$3 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$2 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$4 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$4 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$3 =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$5 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$5 =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$3;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$4[m.month()];\n } else {\n return monthsShortDot$3[m.month()];\n }\n },\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$5,\n longMonthsParse: monthsParse$5,\n shortMonthsParse: monthsParse$5,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$3(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime$3,\n ss: processRelativeTime$3,\n m: processRelativeTime$3,\n mm: processRelativeTime$3,\n h: processRelativeTime$3,\n hh: processRelativeTime$3,\n d: processRelativeTime$3,\n dd: '%d päeva',\n M: processRelativeTime$3,\n MM: processRelativeTime$3,\n y: processRelativeTime$3,\n yy: processRelativeTime$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$6 = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap$5 = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap$5[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$6[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate$2(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate$2,\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: translate$2,\n dd: translate$2,\n M: translate$2,\n MM: translate$2,\n y: translate$2,\n yy: translate$2,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsStrictRegex$1 =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex$1 =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex$6 =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse$6 = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex$6,\n monthsShortRegex: monthsRegex$6,\n monthsStrictRegex: monthsStrictRegex$1,\n monthsShortStrictRegex: monthsShortStrictRegex$1,\n monthsParse: monthsParse$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: monthsParse$6,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$5 = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort$5 = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays$1 = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n moment.defineLocale('ga', {\n months: months$5,\n monthsShort: monthsShort$5,\n monthsParseExact: true,\n weekdays: weekdays$1,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$6 = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort$6 = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays$2 = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n moment.defineLocale('gd', {\n months: months$6,\n monthsShort: monthsShort$6,\n monthsParseExact: true,\n weekdays: weekdays$2,\n weekdaysShort: weekdaysShort$1,\n weekdaysMin: weekdaysMin$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime$4,\n ss: processRelativeTime$4,\n m: processRelativeTime$4,\n mm: processRelativeTime$4,\n h: processRelativeTime$4,\n hh: processRelativeTime$4,\n d: processRelativeTime$4,\n dd: processRelativeTime$4,\n M: processRelativeTime$4,\n MM: processRelativeTime$4,\n y: processRelativeTime$4,\n yy: processRelativeTime$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime$5,\n ss: processRelativeTime$5,\n m: processRelativeTime$5,\n mm: processRelativeTime$5,\n h: processRelativeTime$5,\n hh: processRelativeTime$5,\n d: processRelativeTime$5,\n dd: processRelativeTime$5,\n M: processRelativeTime$5,\n MM: processRelativeTime$5,\n y: processRelativeTime$5,\n yy: processRelativeTime$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$7 = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap$6 = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap$6[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$8 = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$7 = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse$7 = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse$7,\n longMonthsParse: monthsParse$7,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function translate$3(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate$3,\n m: translate$3,\n mm: translate$3,\n h: translate$3,\n hh: translate$3,\n d: 'dan',\n dd: translate$3,\n M: 'mjesec',\n MM: translate$3,\n y: 'godinu',\n yy: translate$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate$4(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate$4,\n ss: translate$4,\n m: translate$4,\n mm: translate$4,\n h: translate$4,\n hh: translate$4,\n d: translate$4,\n dd: translate$4,\n M: translate$4,\n MM: translate$4,\n y: translate$4,\n yy: translate$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$2(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate$5(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural$2(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural$2(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural$2(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: 'klukkustund',\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$1 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$9 = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap$8 = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$a = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap$9 = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap$9[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$b = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap$a = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months$7 = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n moment.defineLocale('ku', {\n months: months$7,\n monthsShort: months$7,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap$a[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$b[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$2 = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime$6,\n mm: '%d Minutten',\n h: processRelativeTime$6,\n hh: '%d Stonnen',\n d: processRelativeTime$6,\n dd: '%d Deeg',\n M: processRelativeTime$6,\n MM: '%d Méint',\n y: processRelativeTime$6,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate$6(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate$6,\n m: translateSingular,\n mm: translate$6,\n h: translateSingular,\n hh: translate$6,\n d: translateSingular,\n dd: translate$6,\n M: translateSingular,\n MM: translate$6,\n y: translateSingular,\n yy: translate$6,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var units$1 = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n return number + ' ' + format(units$1[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units$1[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural$1,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural$1,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural$1,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural$1,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural$1,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function translate$7(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate$7,\n ss: translate$7,\n m: translate$7,\n mm: translate$7,\n h: translate$7,\n hh: translate$7,\n d: translate$7,\n dd: translate$7,\n M: translate$7,\n MM: translate$7,\n y: translate$7,\n yy: translate$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$c = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$b = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$b[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$d = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap$c = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$e = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap$d = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$1 =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$1 =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse$8 = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$7 =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$7,\n monthsShortRegex: monthsRegex$7,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$8,\n longMonthsParse: monthsParse$8,\n shortMonthsParse: monthsParse$8,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$2 =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots$2 =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse$9 = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$8 =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$8,\n monthsShortRegex: monthsRegex$8,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$9,\n longMonthsParse: monthsParse$9,\n shortMonthsParse: monthsParse$9,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$f = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap$e = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap$e[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$f[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse$a = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural$3(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate$8(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural$3(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse$a,\n longMonthsParse: monthsParse$a,\n shortMonthsParse: monthsParse$a,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate$8,\n m: translate$8,\n mm: translate$8,\n h: translate$8,\n hh: translate$8,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate$8,\n M: 'miesiąc',\n MM: translate$8,\n y: 'rok',\n yy: translate$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n w: 'o săptămână',\n ww: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$4(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural$4(format[key], +number);\n }\n }\n var monthsParse$b = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse$b,\n longMonthsParse: monthsParse$b,\n shortMonthsParse: monthsParse$b,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural$3,\n m: relativeTimeWithPlural$3,\n mm: relativeTimeWithPlural$3,\n h: 'час',\n hh: relativeTimeWithPlural$3,\n d: 'день',\n dd: relativeTimeWithPlural$3,\n w: 'неделя',\n ww: relativeTimeWithPlural$3,\n M: 'месяц',\n MM: relativeTimeWithPlural$3,\n y: 'год',\n yy: relativeTimeWithPlural$3,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$8 = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n moment.defineLocale('sd', {\n months: months$8,\n monthsShort: months$8,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var months$9 =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural$5(n) {\n return n > 1 && n < 5;\n }\n function translate$9(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n moment.defineLocale('sk', {\n months: months$9,\n monthsShort: monthsShort$7,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate$9,\n ss: translate$9,\n m: translate$9,\n mm: translate$9,\n h: translate$9,\n hh: translate$9,\n d: translate$9,\n dd: translate$9,\n M: translate$9,\n MM: translate$9,\n y: translate$9,\n yy: translate$9,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime$7,\n ss: processRelativeTime$7,\n m: processRelativeTime$7,\n mm: processRelativeTime$7,\n h: processRelativeTime$7,\n hh: processRelativeTime$7,\n d: processRelativeTime$7,\n dd: processRelativeTime$7,\n M: processRelativeTime$7,\n MM: processRelativeTime$7,\n y: processRelativeTime$7,\n yy: processRelativeTime$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$1 = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator$1.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator$1.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator$1.translate,\n m: translator$1.translate,\n mm: translator$1.translate,\n h: translator$1.translate,\n hh: translator$1.translate,\n d: translator$1.translate,\n dd: translator$1.translate,\n M: translator$1.translate,\n MM: translator$1.translate,\n y: translator$1.translate,\n yy: translator$1.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$2 = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator$2.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator$2.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator$2.translate,\n m: translator$2.translate,\n mm: translator$2.translate,\n h: translator$2.translate,\n hh: translator$2.translate,\n d: translator$2.translate,\n dd: translator$2.translate,\n M: translator$2.translate,\n MM: translator$2.translate,\n y: translator$2.translate,\n yy: translator$2.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$g = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap$f = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap$f[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$g[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$3 = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$4 = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate$a(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate$a,\n m: 'wa’ tup',\n mm: translate$a,\n h: 'wa’ rep',\n hh: translate$a,\n d: 'wa’ jaj',\n dd: translate$a,\n M: 'wa’ jar',\n MM: translate$a,\n y: 'wa’ DIS',\n yy: translate$a,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$5 = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime$8,\n ss: processRelativeTime$8,\n m: processRelativeTime$8,\n mm: processRelativeTime$8,\n h: processRelativeTime$8,\n hh: processRelativeTime$8,\n d: processRelativeTime$8,\n dd: processRelativeTime$8,\n M: processRelativeTime$8,\n MM: processRelativeTime$8,\n y: processRelativeTime$8,\n yy: processRelativeTime$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime$8(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n //! moment.js locale configuration\n\n moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$6(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural$6(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural$4,\n m: relativeTimeWithPlural$4,\n mm: relativeTimeWithPlural$4,\n h: 'годину',\n hh: relativeTimeWithPlural$4,\n d: 'день',\n dd: relativeTimeWithPlural$4,\n M: 'місяць',\n MM: relativeTimeWithPlural$4,\n y: 'рік',\n yy: relativeTimeWithPlural$4,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$a = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days$1 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n moment.defineLocale('ur', {\n months: months$a,\n monthsShort: months$a,\n weekdays: days$1,\n weekdaysShort: days$1,\n weekdaysMin: days$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n //! moment.js locale configuration\n\n moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n moment.locale('en');\n\n return moment;\n\n})));\n","//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","'use strict';\n\n/** Highest positive signed 32-bit float value */\nconst maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\n\n/** Bootstring parameters */\nconst base = 36;\nconst tMin = 1;\nconst tMax = 26;\nconst skew = 38;\nconst damp = 700;\nconst initialBias = 72;\nconst initialN = 128; // 0x80\nconst delimiter = '-'; // '\\x2D'\n\n/** Regular expressions */\nconst regexPunycode = /^xn--/;\nconst regexNonASCII = /[^\\0-\\x7F]/; // Note: U+007F DEL is excluded too.\nconst regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\n\n/** Error messages */\nconst errors = {\n\t'overflow': 'Overflow: input needs wider integers to process',\n\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t'invalid-input': 'Invalid input'\n};\n\n/** Convenience shortcuts */\nconst baseMinusTMin = base - tMin;\nconst floor = Math.floor;\nconst stringFromCharCode = String.fromCharCode;\n\n/*--------------------------------------------------------------------------*/\n\n/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\nfunction error(type) {\n\tthrow new RangeError(errors[type]);\n}\n\n/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\nfunction map(array, callback) {\n\tconst result = [];\n\tlet length = array.length;\n\twhile (length--) {\n\t\tresult[length] = callback(array[length]);\n\t}\n\treturn result;\n}\n\n/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {String} A new string of characters returned by the callback\n * function.\n */\nfunction mapDomain(domain, callback) {\n\tconst parts = domain.split('@');\n\tlet result = '';\n\tif (parts.length > 1) {\n\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t// the local part (i.e. everything up to `@`) intact.\n\t\tresult = parts[0] + '@';\n\t\tdomain = parts[1];\n\t}\n\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\tdomain = domain.replace(regexSeparators, '\\x2E');\n\tconst labels = domain.split('.');\n\tconst encoded = map(labels, callback).join('.');\n\treturn result + encoded;\n}\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see \n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\nfunction ucs2decode(string) {\n\tconst output = [];\n\tlet counter = 0;\n\tconst length = string.length;\n\twhile (counter < length) {\n\t\tconst value = string.charCodeAt(counter++);\n\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t// It's a high surrogate, and there is a next character.\n\t\t\tconst extra = string.charCodeAt(counter++);\n\t\t\tif ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t} else {\n\t\t\t\t// It's an unmatched surrogate; only append this code unit, in case the\n\t\t\t\t// next code unit is the high surrogate of a surrogate pair.\n\t\t\t\toutput.push(value);\n\t\t\t\tcounter--;\n\t\t\t}\n\t\t} else {\n\t\t\toutput.push(value);\n\t\t}\n\t}\n\treturn output;\n}\n\n/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\nconst ucs2encode = codePoints => String.fromCodePoint(...codePoints);\n\n/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\nconst basicToDigit = function(codePoint) {\n\tif (codePoint >= 0x30 && codePoint < 0x3A) {\n\t\treturn 26 + (codePoint - 0x30);\n\t}\n\tif (codePoint >= 0x41 && codePoint < 0x5B) {\n\t\treturn codePoint - 0x41;\n\t}\n\tif (codePoint >= 0x61 && codePoint < 0x7B) {\n\t\treturn codePoint - 0x61;\n\t}\n\treturn base;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\nconst digitToBasic = function(digit, flag) {\n\t// 0..25 map to ASCII a..z or A..Z\n\t// 26..35 map to ASCII 0..9\n\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\nconst adapt = function(delta, numPoints, firstTime) {\n\tlet k = 0;\n\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\tdelta += floor(delta / numPoints);\n\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\tdelta = floor(delta / baseMinusTMin);\n\t}\n\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\nconst decode = function(input) {\n\t// Don't use UCS-2.\n\tconst output = [];\n\tconst inputLength = input.length;\n\tlet i = 0;\n\tlet n = initialN;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points: let `basic` be the number of input code\n\t// points before the last delimiter, or `0` if there is none, then copy\n\t// the first basic code points to the output.\n\n\tlet basic = input.lastIndexOf(delimiter);\n\tif (basic < 0) {\n\t\tbasic = 0;\n\t}\n\n\tfor (let j = 0; j < basic; ++j) {\n\t\t// if it's not a basic code point\n\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\terror('not-basic');\n\t\t}\n\t\toutput.push(input.charCodeAt(j));\n\t}\n\n\t// Main decoding loop: start just after the last delimiter if any basic code\n\t// points were copied; start at the beginning otherwise.\n\n\tfor (let index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t// `index` is the index of the next character to be consumed.\n\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t// which gets added to `i`. The overflow checking is easier\n\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t// value at the end to obtain `delta`.\n\t\tconst oldi = i;\n\t\tfor (let w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\tif (index >= inputLength) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\n\t\t\tconst digit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\tif (digit >= base) {\n\t\t\t\terror('invalid-input');\n\t\t\t}\n\t\t\tif (digit > floor((maxInt - i) / w)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\ti += digit * w;\n\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\tif (digit < t) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst baseMinusT = base - t;\n\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tw *= baseMinusT;\n\n\t\t}\n\n\t\tconst out = output.length + 1;\n\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t// incrementing `n` each time, so we'll fix that now:\n\t\tif (floor(i / out) > maxInt - n) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tn += floor(i / out);\n\t\ti %= out;\n\n\t\t// Insert `n` at position `i` of the output.\n\t\toutput.splice(i++, 0, n);\n\n\t}\n\n\treturn String.fromCodePoint(...output);\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\nconst encode = function(input) {\n\tconst output = [];\n\n\t// Convert the input in UCS-2 to an array of Unicode code points.\n\tinput = ucs2decode(input);\n\n\t// Cache the length.\n\tconst inputLength = input.length;\n\n\t// Initialize the state.\n\tlet n = initialN;\n\tlet delta = 0;\n\tlet bias = initialBias;\n\n\t// Handle the basic code points.\n\tfor (const currentValue of input) {\n\t\tif (currentValue < 0x80) {\n\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t}\n\t}\n\n\tconst basicLength = output.length;\n\tlet handledCPCount = basicLength;\n\n\t// `handledCPCount` is the number of code points that have been handled;\n\t// `basicLength` is the number of basic code points.\n\n\t// Finish the basic string with a delimiter unless it's empty.\n\tif (basicLength) {\n\t\toutput.push(delimiter);\n\t}\n\n\t// Main encoding loop:\n\twhile (handledCPCount < inputLength) {\n\n\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t// larger one:\n\t\tlet m = maxInt;\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\tm = currentValue;\n\t\t\t}\n\t\t}\n\n\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t// but guard against overflow.\n\t\tconst handledCPCountPlusOne = handledCPCount + 1;\n\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\terror('overflow');\n\t\t}\n\n\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\tn = m;\n\n\t\tfor (const currentValue of input) {\n\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\t\t\tif (currentValue === n) {\n\t\t\t\t// Represent delta as a generalized variable-length integer.\n\t\t\t\tlet q = delta;\n\t\t\t\tfor (let k = base; /* no condition */; k += base) {\n\t\t\t\t\tconst t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tconst qMinusT = q - t;\n\t\t\t\t\tconst baseMinusT = base - t;\n\t\t\t\t\toutput.push(\n\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t);\n\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t}\n\n\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n\t\t\t\tdelta = 0;\n\t\t\t\t++handledCPCount;\n\t\t\t}\n\t\t}\n\n\t\t++delta;\n\t\t++n;\n\n\t}\n\treturn output.join('');\n};\n\n/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\nconst toUnicode = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexPunycode.test(string)\n\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t: string;\n\t});\n};\n\n/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\nconst toASCII = function(input) {\n\treturn mapDomain(input, function(string) {\n\t\treturn regexNonASCII.test(string)\n\t\t\t? 'xn--' + encode(string)\n\t\t\t: string;\n\t});\n};\n\n/*--------------------------------------------------------------------------*/\n\n/** Define the public API */\nconst punycode = {\n\t/**\n\t * A string representing the current Punycode.js version number.\n\t * @memberOf punycode\n\t * @type String\n\t */\n\t'version': '2.1.0',\n\t/**\n\t * An object of methods to convert from JavaScript's internal character\n\t * representation (UCS-2) to Unicode code points, and back.\n\t * @see \n\t * @memberOf punycode\n\t * @type Object\n\t */\n\t'ucs2': {\n\t\t'decode': ucs2decode,\n\t\t'encode': ucs2encode\n\t},\n\t'decode': decode,\n\t'encode': encode,\n\t'toASCII': toASCII,\n\t'toUnicode': toUnicode\n};\n\nexport { ucs2decode, ucs2encode, decode, encode, toASCII, toUnicode };\nexport default punycode;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","module.exports=/[\\0-\\x1F\\x7F-\\x9F]/","module.exports=/[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u08E2\\u180E\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F]/","module.exports=/[!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4E\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD803[\\uDF55-\\uDF59]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDC4B-\\uDC4F\\uDC5B\\uDC5D\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDE60-\\uDE6C\\uDF3C-\\uDF3E]|\\uD806[\\uDC3B\\uDE3F-\\uDE46\\uDE9A-\\uDE9C\\uDE9E-\\uDEA2]|\\uD807[\\uDC41-\\uDC45\\uDC70\\uDC71\\uDEF7\\uDEF8]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD81B[\\uDE97-\\uDE9A]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]|\\uD83A[\\uDD5E\\uDD5F]/","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","'use strict';\n\nexports.Any = require('./properties/Any/regex');\nexports.Cc = require('./categories/Cc/regex');\nexports.Cf = require('./categories/Cf/regex');\nexports.P = require('./categories/P/regex');\nexports.Z = require('./categories/Z/regex');\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toDate = _interopRequireDefault(require(\"./lib/toDate\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./lib/toFloat\"));\n\nvar _toInt = _interopRequireDefault(require(\"./lib/toInt\"));\n\nvar _toBoolean = _interopRequireDefault(require(\"./lib/toBoolean\"));\n\nvar _equals = _interopRequireDefault(require(\"./lib/equals\"));\n\nvar _contains = _interopRequireDefault(require(\"./lib/contains\"));\n\nvar _matches = _interopRequireDefault(require(\"./lib/matches\"));\n\nvar _isEmail = _interopRequireDefault(require(\"./lib/isEmail\"));\n\nvar _isURL = _interopRequireDefault(require(\"./lib/isURL\"));\n\nvar _isMACAddress = _interopRequireDefault(require(\"./lib/isMACAddress\"));\n\nvar _isIP = _interopRequireDefault(require(\"./lib/isIP\"));\n\nvar _isIPRange = _interopRequireDefault(require(\"./lib/isIPRange\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./lib/isFQDN\"));\n\nvar _isDate = _interopRequireDefault(require(\"./lib/isDate\"));\n\nvar _isTime = _interopRequireDefault(require(\"./lib/isTime\"));\n\nvar _isBoolean = _interopRequireDefault(require(\"./lib/isBoolean\"));\n\nvar _isLocale = _interopRequireDefault(require(\"./lib/isLocale\"));\n\nvar _isAlpha = _interopRequireWildcard(require(\"./lib/isAlpha\"));\n\nvar _isAlphanumeric = _interopRequireWildcard(require(\"./lib/isAlphanumeric\"));\n\nvar _isNumeric = _interopRequireDefault(require(\"./lib/isNumeric\"));\n\nvar _isPassportNumber = _interopRequireDefault(require(\"./lib/isPassportNumber\"));\n\nvar _isPort = _interopRequireDefault(require(\"./lib/isPort\"));\n\nvar _isLowercase = _interopRequireDefault(require(\"./lib/isLowercase\"));\n\nvar _isUppercase = _interopRequireDefault(require(\"./lib/isUppercase\"));\n\nvar _isIMEI = _interopRequireDefault(require(\"./lib/isIMEI\"));\n\nvar _isAscii = _interopRequireDefault(require(\"./lib/isAscii\"));\n\nvar _isFullWidth = _interopRequireDefault(require(\"./lib/isFullWidth\"));\n\nvar _isHalfWidth = _interopRequireDefault(require(\"./lib/isHalfWidth\"));\n\nvar _isVariableWidth = _interopRequireDefault(require(\"./lib/isVariableWidth\"));\n\nvar _isMultibyte = _interopRequireDefault(require(\"./lib/isMultibyte\"));\n\nvar _isSemVer = _interopRequireDefault(require(\"./lib/isSemVer\"));\n\nvar _isSurrogatePair = _interopRequireDefault(require(\"./lib/isSurrogatePair\"));\n\nvar _isInt = _interopRequireDefault(require(\"./lib/isInt\"));\n\nvar _isFloat = _interopRequireWildcard(require(\"./lib/isFloat\"));\n\nvar _isDecimal = _interopRequireDefault(require(\"./lib/isDecimal\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./lib/isHexadecimal\"));\n\nvar _isOctal = _interopRequireDefault(require(\"./lib/isOctal\"));\n\nvar _isDivisibleBy = _interopRequireDefault(require(\"./lib/isDivisibleBy\"));\n\nvar _isHexColor = _interopRequireDefault(require(\"./lib/isHexColor\"));\n\nvar _isRgbColor = _interopRequireDefault(require(\"./lib/isRgbColor\"));\n\nvar _isHSL = _interopRequireDefault(require(\"./lib/isHSL\"));\n\nvar _isISRC = _interopRequireDefault(require(\"./lib/isISRC\"));\n\nvar _isIBAN = _interopRequireWildcard(require(\"./lib/isIBAN\"));\n\nvar _isBIC = _interopRequireDefault(require(\"./lib/isBIC\"));\n\nvar _isMD = _interopRequireDefault(require(\"./lib/isMD5\"));\n\nvar _isHash = _interopRequireDefault(require(\"./lib/isHash\"));\n\nvar _isJWT = _interopRequireDefault(require(\"./lib/isJWT\"));\n\nvar _isJSON = _interopRequireDefault(require(\"./lib/isJSON\"));\n\nvar _isEmpty = _interopRequireDefault(require(\"./lib/isEmpty\"));\n\nvar _isLength = _interopRequireDefault(require(\"./lib/isLength\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./lib/isByteLength\"));\n\nvar _isUUID = _interopRequireDefault(require(\"./lib/isUUID\"));\n\nvar _isMongoId = _interopRequireDefault(require(\"./lib/isMongoId\"));\n\nvar _isAfter = _interopRequireDefault(require(\"./lib/isAfter\"));\n\nvar _isBefore = _interopRequireDefault(require(\"./lib/isBefore\"));\n\nvar _isIn = _interopRequireDefault(require(\"./lib/isIn\"));\n\nvar _isLuhnNumber = _interopRequireDefault(require(\"./lib/isLuhnNumber\"));\n\nvar _isCreditCard = _interopRequireDefault(require(\"./lib/isCreditCard\"));\n\nvar _isIdentityCard = _interopRequireDefault(require(\"./lib/isIdentityCard\"));\n\nvar _isEAN = _interopRequireDefault(require(\"./lib/isEAN\"));\n\nvar _isISIN = _interopRequireDefault(require(\"./lib/isISIN\"));\n\nvar _isISBN = _interopRequireDefault(require(\"./lib/isISBN\"));\n\nvar _isISSN = _interopRequireDefault(require(\"./lib/isISSN\"));\n\nvar _isTaxID = _interopRequireDefault(require(\"./lib/isTaxID\"));\n\nvar _isMobilePhone = _interopRequireWildcard(require(\"./lib/isMobilePhone\"));\n\nvar _isEthereumAddress = _interopRequireDefault(require(\"./lib/isEthereumAddress\"));\n\nvar _isCurrency = _interopRequireDefault(require(\"./lib/isCurrency\"));\n\nvar _isBtcAddress = _interopRequireDefault(require(\"./lib/isBtcAddress\"));\n\nvar _isISO = _interopRequireDefault(require(\"./lib/isISO6391\"));\n\nvar _isISO2 = _interopRequireDefault(require(\"./lib/isISO8601\"));\n\nvar _isRFC = _interopRequireDefault(require(\"./lib/isRFC3339\"));\n\nvar _isISO31661Alpha = _interopRequireDefault(require(\"./lib/isISO31661Alpha2\"));\n\nvar _isISO31661Alpha2 = _interopRequireDefault(require(\"./lib/isISO31661Alpha3\"));\n\nvar _isISO3 = _interopRequireDefault(require(\"./lib/isISO4217\"));\n\nvar _isBase = _interopRequireDefault(require(\"./lib/isBase32\"));\n\nvar _isBase2 = _interopRequireDefault(require(\"./lib/isBase58\"));\n\nvar _isBase3 = _interopRequireDefault(require(\"./lib/isBase64\"));\n\nvar _isDataURI = _interopRequireDefault(require(\"./lib/isDataURI\"));\n\nvar _isMagnetURI = _interopRequireDefault(require(\"./lib/isMagnetURI\"));\n\nvar _isMimeType = _interopRequireDefault(require(\"./lib/isMimeType\"));\n\nvar _isLatLong = _interopRequireDefault(require(\"./lib/isLatLong\"));\n\nvar _isPostalCode = _interopRequireWildcard(require(\"./lib/isPostalCode\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./lib/ltrim\"));\n\nvar _rtrim = _interopRequireDefault(require(\"./lib/rtrim\"));\n\nvar _trim = _interopRequireDefault(require(\"./lib/trim\"));\n\nvar _escape = _interopRequireDefault(require(\"./lib/escape\"));\n\nvar _unescape = _interopRequireDefault(require(\"./lib/unescape\"));\n\nvar _stripLow = _interopRequireDefault(require(\"./lib/stripLow\"));\n\nvar _whitelist = _interopRequireDefault(require(\"./lib/whitelist\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./lib/blacklist\"));\n\nvar _isWhitelisted = _interopRequireDefault(require(\"./lib/isWhitelisted\"));\n\nvar _normalizeEmail = _interopRequireDefault(require(\"./lib/normalizeEmail\"));\n\nvar _isSlug = _interopRequireDefault(require(\"./lib/isSlug\"));\n\nvar _isLicensePlate = _interopRequireDefault(require(\"./lib/isLicensePlate\"));\n\nvar _isStrongPassword = _interopRequireDefault(require(\"./lib/isStrongPassword\"));\n\nvar _isVAT = _interopRequireDefault(require(\"./lib/isVAT\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar version = '13.9.0';\nvar validator = {\n version: version,\n toDate: _toDate.default,\n toFloat: _toFloat.default,\n toInt: _toInt.default,\n toBoolean: _toBoolean.default,\n equals: _equals.default,\n contains: _contains.default,\n matches: _matches.default,\n isEmail: _isEmail.default,\n isURL: _isURL.default,\n isMACAddress: _isMACAddress.default,\n isIP: _isIP.default,\n isIPRange: _isIPRange.default,\n isFQDN: _isFQDN.default,\n isBoolean: _isBoolean.default,\n isIBAN: _isIBAN.default,\n isBIC: _isBIC.default,\n isAlpha: _isAlpha.default,\n isAlphaLocales: _isAlpha.locales,\n isAlphanumeric: _isAlphanumeric.default,\n isAlphanumericLocales: _isAlphanumeric.locales,\n isNumeric: _isNumeric.default,\n isPassportNumber: _isPassportNumber.default,\n isPort: _isPort.default,\n isLowercase: _isLowercase.default,\n isUppercase: _isUppercase.default,\n isAscii: _isAscii.default,\n isFullWidth: _isFullWidth.default,\n isHalfWidth: _isHalfWidth.default,\n isVariableWidth: _isVariableWidth.default,\n isMultibyte: _isMultibyte.default,\n isSemVer: _isSemVer.default,\n isSurrogatePair: _isSurrogatePair.default,\n isInt: _isInt.default,\n isIMEI: _isIMEI.default,\n isFloat: _isFloat.default,\n isFloatLocales: _isFloat.locales,\n isDecimal: _isDecimal.default,\n isHexadecimal: _isHexadecimal.default,\n isOctal: _isOctal.default,\n isDivisibleBy: _isDivisibleBy.default,\n isHexColor: _isHexColor.default,\n isRgbColor: _isRgbColor.default,\n isHSL: _isHSL.default,\n isISRC: _isISRC.default,\n isMD5: _isMD.default,\n isHash: _isHash.default,\n isJWT: _isJWT.default,\n isJSON: _isJSON.default,\n isEmpty: _isEmpty.default,\n isLength: _isLength.default,\n isLocale: _isLocale.default,\n isByteLength: _isByteLength.default,\n isUUID: _isUUID.default,\n isMongoId: _isMongoId.default,\n isAfter: _isAfter.default,\n isBefore: _isBefore.default,\n isIn: _isIn.default,\n isLuhnNumber: _isLuhnNumber.default,\n isCreditCard: _isCreditCard.default,\n isIdentityCard: _isIdentityCard.default,\n isEAN: _isEAN.default,\n isISIN: _isISIN.default,\n isISBN: _isISBN.default,\n isISSN: _isISSN.default,\n isMobilePhone: _isMobilePhone.default,\n isMobilePhoneLocales: _isMobilePhone.locales,\n isPostalCode: _isPostalCode.default,\n isPostalCodeLocales: _isPostalCode.locales,\n isEthereumAddress: _isEthereumAddress.default,\n isCurrency: _isCurrency.default,\n isBtcAddress: _isBtcAddress.default,\n isISO6391: _isISO.default,\n isISO8601: _isISO2.default,\n isRFC3339: _isRFC.default,\n isISO31661Alpha2: _isISO31661Alpha.default,\n isISO31661Alpha3: _isISO31661Alpha2.default,\n isISO4217: _isISO3.default,\n isBase32: _isBase.default,\n isBase58: _isBase2.default,\n isBase64: _isBase3.default,\n isDataURI: _isDataURI.default,\n isMagnetURI: _isMagnetURI.default,\n isMimeType: _isMimeType.default,\n isLatLong: _isLatLong.default,\n ltrim: _ltrim.default,\n rtrim: _rtrim.default,\n trim: _trim.default,\n escape: _escape.default,\n unescape: _unescape.default,\n stripLow: _stripLow.default,\n whitelist: _whitelist.default,\n blacklist: _blacklist.default,\n isWhitelisted: _isWhitelisted.default,\n normalizeEmail: _normalizeEmail.default,\n toString: toString,\n isSlug: _isSlug.default,\n isStrongPassword: _isStrongPassword.default,\n isTaxID: _isTaxID.default,\n isDate: _isDate.default,\n isTime: _isTime.default,\n isLicensePlate: _isLicensePlate.default,\n isVAT: _isVAT.default,\n ibanLocales: _isIBAN.locales\n};\nvar _default = validator;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.bengaliLocales = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fi-FI': /^[A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ko-KR': /^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n 'hi-IN': /^[\\u0900-\\u0961]+[\\u0972-\\u097F]*$/i,\n 'si-LK': /^[\\u0D80-\\u0DFF]+$/\n};\nexports.alpha = alpha;\nvar alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'ja-JP': /^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ko-KR': /^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,\n bn: /^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,\n 'hi-IN': /^[\\u0900-\\u0963]+[\\u0966-\\u097F]*$/i,\n 'si-LK': /^[0-9\\u0D80-\\u0DFF]+$/\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\n\nvar farsiLocales = ['IR', 'AF'];\nexports.farsiLocales = farsiLocales;\n\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n}\n\nvar bengaliLocales = ['BD', 'IN'];\nexports.bengaliLocales = bengaliLocales;\n\nfor (var _locale3, _i3 = 0; _i3 < bengaliLocales.length; _i3++) {\n _locale3 = \"bn-\".concat(bengaliLocales[_i3]);\n alpha[_locale3] = alpha.bn;\n alphanumeric[_locale3] = alphanumeric.bn;\n decimal[_locale3] = decimal['en-US'];\n} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'si-LK', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i4 = 0; _i4 < dotDecimal.length; _i4++) {\n decimal[dotDecimal[_i4]] = decimal['en-US'];\n}\n\nfor (var _i5 = 0; _i5 < commaDecimal.length; _i5++) {\n decimal[commaDecimal[_i5]] = ',';\n}\n\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL']; // see #1455\n\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = blacklist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction blacklist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaulContainsOptions = {\n ignoreCase: false,\n minOccurrences: 1\n};\n\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n\n if (options.ignoreCase) {\n return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;\n }\n\n return str.split((0, _toString.default)(elem)).length > options.minOccurrences;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = equals;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction equals(str, comparison) {\n (0, _assertString.default)(str);\n return str === comparison;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = escape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction escape(str) {\n (0, _assertString.default)(str);\n return str.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>').replace(/\\//g, '/').replace(/\\\\/g, '\').replace(/`/g, '`');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAfter;\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAfter(date, options) {\n // For backwards compatibility:\n // isAfter(str [, date]), i.e. `options` could be used as argument for the legacy `date`\n var comparisonDate = (options === null || options === void 0 ? void 0 : options.comparisonDate) || options || Date().toString();\n var comparison = (0, _toDate.default)(comparisonDate);\n var original = (0, _toDate.default)(date);\n return !!(original && comparison && original > comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlphanumeric(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isISO31661Alpha = require(\"./isISO31661Alpha2\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// https://en.wikipedia.org/wiki/ISO_9362\nvar isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str); // toUpperCase() should be removed when a new major version goes out that changes\n // the regex to [A-Z] (per the spec).\n\n var countryCode = str.slice(4, 6).toUpperCase();\n\n if (!_isISO31661Alpha.CountryCodes.has(countryCode) && countryCode !== 'XK') {\n return false;\n }\n\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\nvar crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;\nvar defaultBase32Options = {\n crockford: false\n};\n\nfunction isBase32(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase32Options);\n\n if (options.crockford) {\n return crockfordBase32.test(str);\n }\n\n var len = str.length;\n\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase58;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz\nvar base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;\n\nfunction isBase58(str) {\n (0, _assertString.default)(str);\n\n if (base58Reg.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\n\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBefore;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toDate = _interopRequireDefault(require(\"./toDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBefore(str) {\n var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());\n (0, _assertString.default)(str);\n var comparison = (0, _toDate.default)(date);\n var original = (0, _toDate.default)(str);\n return !!(original && comparison && original < comparison);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultOptions = {\n loose: false\n};\nvar strictBooleans = ['true', 'false', '1', '0'];\nvar looseBooleans = [].concat(strictBooleans, ['yes', 'no']);\n\nfunction isBoolean(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;\n (0, _assertString.default)(str);\n\n if (options.loose) {\n return looseBooleans.includes(str.toLowerCase());\n }\n\n return strictBooleans.includes(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar bech32 = /^(bc1)[a-z0-9]{25,39}$/;\nvar base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return bech32.test(str) || base58.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isLuhnNumber = _interopRequireDefault(require(\"./isLuhnNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar cards = {\n amex: /^3[47][0-9]{13}$/,\n dinersclub: /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,\n discover: /^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,\n jcb: /^(?:2131|1800|35\\d{3})\\d{11}$/,\n mastercard: /^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,\n // /^[25][1-7][0-9]{14}$/;\n unionpay: /^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,\n visa: /^(?:4[0-9]{12})(?:[0-9]{3,6})?$/\n};\n/* eslint-disable max-len */\n\nvar allCards = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(card) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(card);\n var provider = options.provider;\n var sanitized = card.replace(/[- ]+/g, '');\n\n if (provider && provider.toLowerCase() in cards) {\n // specific provider in the list\n if (!cards[provider.toLowerCase()].test(sanitized)) {\n return false;\n }\n } else if (provider && !(provider.toLowerCase() in cards)) {\n /* specific provider not in the list */\n throw new Error(\"\".concat(provider, \" is not a valid credit card provider.\"));\n } else if (!allCards.test(sanitized)) {\n // no specific provider\n return false;\n }\n\n return (0, _isLuhnNumber.default)(card);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n } // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\n\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\n\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+\\._]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.slice(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.slice(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n\n for (var i = 0; i < attributes.length; i++) {\n if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {\n return false;\n }\n }\n\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar default_date_options = {\n format: 'YYYY/MM/DD',\n delimiters: ['/', '-'],\n strictMode: false\n};\n\nfunction isValidFormat(format) {\n return /(^(y{4}|y{2})[.\\/-](m{1,2})[.\\/-](d{1,2})$)|(^(m{1,2})[.\\/-](d{1,2})[.\\/-]((y{4}|y{2})$))|(^(d{1,2})[.\\/-](m{1,2})[.\\/-]((y{4}|y{2})$))/gi.test(format);\n}\n\nfunction zip(date, format) {\n var zippedArr = [],\n len = Math.min(date.length, format.length);\n\n for (var i = 0; i < len; i++) {\n zippedArr.push([date[i], format[i]]);\n }\n\n return zippedArr;\n}\n\nfunction isDate(input, options) {\n if (typeof options === 'string') {\n // Allow backward compatbility for old format isDate(input [, format])\n options = (0, _merge.default)({\n format: options\n }, default_date_options);\n } else {\n options = (0, _merge.default)(options, default_date_options);\n }\n\n if (typeof input === 'string' && isValidFormat(options.format)) {\n var formatDelimiter = options.delimiters.find(function (delimiter) {\n return options.format.indexOf(delimiter) !== -1;\n });\n var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {\n return input.indexOf(delimiter) !== -1;\n });\n var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));\n var dateObj = {};\n\n var _iterator = _createForOfIteratorHelper(dateAndFormat),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n dateWord = _step$value[0],\n formatWord = _step$value[1];\n\n if (dateWord.length !== formatWord.length) {\n return false;\n }\n\n dateObj[formatWord.charAt(0)] = dateWord;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return new Date(\"\".concat(dateObj.m, \"/\").concat(dateObj.d, \"/\").concat(dateObj.y)).getDate() === +dateObj.d;\n }\n\n if (!options.strictMode) {\n return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * Also EAN/UCC-14 is used for Grouping of individual\n * trade items above unit level(Intermediate, Carton or Pallet).\n * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n * Reference: https://www.gtin.info/\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14\n * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),\n * with exact numberic matching of 8 or 13 or 14 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar LENGTH_EAN_14 = 14;\nvar validEanRegex = /^(\\d{8}|\\d{13}|\\d{14})$/;\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\n}\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\n\n\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13/EAN-14 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false,\n host_blacklist: [],\n host_whitelist: []\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (display_name_without_quotes === display_name) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name = display_email[1]; // Remove display name and angle brackets to get email address\n // Can be done in the regex but will introduce a ReDOS (See #1597 for more info)\n\n str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n\n if (display_name.endsWith(' ')) {\n display_name = display_name.slice(0, -1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var lower_domain = domain.toLowerCase();\n\n if (options.host_blacklist.includes(lower_domain)) {\n return false;\n }\n\n if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) {\n return false;\n }\n\n var user = parts.join('@');\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace(/\\./g, ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld,\n ignore_max_length: options.ignore_max_length\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.slice(1, -1);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i = 0; _i < user_parts.length; _i++) {\n if (!pattern.test(user_parts[_i])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmpty;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_is_empty_options = {\n ignore_whitespace: false\n};\n\nfunction isEmpty(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_is_empty_options);\n return (options.ignore_whitespace ? str.trim().length : str.length) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false,\n allow_wildcard: false,\n ignore_max_length: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n /* Remove the optional wildcard before checking validity */\n\n\n if (options.allow_wildcard === true && str.indexOf('*.') === 0) {\n str = str.substring(2);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!options.allow_numeric_tld && !/^([a-z\\u00A1-\\u00A8\\u00AA-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces\n\n\n if (/\\s/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63 && !options.ignore_max_length) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n\n if (str === '' || str === '.' || str === ',' || str === '-' || str === '+') {\n return false;\n }\n\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hslComma = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}(,((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?))?\\)$/i;\nvar hslSpace = /^hsla?\\(((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn)?(\\s(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s?(\\/\\s((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s?)?\\)$/i;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str); // Strip duplicate spaces before calling the validation regex (See #1598 for more info)\n\n var strippedStr = str.replace(/\\s+/g, ' ').replace(/\\s?(hsla?\\(|\\)|,)\\s?/ig, '$1');\n\n if (strippedStr.indexOf(',') !== -1) {\n return hslComma.test(strippedStr);\n }\n\n return hslSpace.test(strippedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\n\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n MZ: /^(MZ[0-9]{2})\\d{21}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nvar locales = Object.keys(ibanRegexThroughCountryCode);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIMEI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar imeiRegexWithoutHypens = /^[0-9]{15}$/;\nvar imeiRegexWithHypens = /^\\d{2}-\\d{6}-\\d{6}-\\d{1}$/;\n\nfunction isIMEI(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // default regex for checking imei is the one without hyphens\n\n var imeiRegex = imeiRegexWithoutHypens;\n\n if (options.allow_hyphens) {\n imeiRegex = imeiRegexWithHypens;\n }\n\n if (!imeiRegex.test(str)) {\n return false;\n }\n\n str = str.replace(/-/g, '');\n var sum = 0,\n mul = 2,\n l = 14;\n\n for (var i = 0; i < l; i++) {\n var digit = str.substring(l - i - 1, l - i);\n var tp = parseInt(digit, 10) * mul;\n\n if (tp >= 10) {\n sum += tp % 10 + 1;\n } else {\n sum += tp;\n }\n\n if (mul === 1) {\n mul += 1;\n } else {\n mul -= 1;\n }\n }\n\n var chk = (10 - sum % 10) % 10;\n\n if (chk !== parseInt(str.substring(14, 15), 10)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';\nvar IPv4AddressFormat = \"(\".concat(IPv4SegmentFormat, \"[.]){3}\").concat(IPv4SegmentFormat);\nvar IPv4AddressRegExp = new RegExp(\"^\".concat(IPv4AddressFormat, \"$\"));\nvar IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';\nvar IPv6AddressRegExp = new RegExp('^(' + \"(?:\".concat(IPv6SegmentFormat, \":){7}(?:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){6}(?:\").concat(IPv4AddressFormat, \"|:\").concat(IPv6SegmentFormat, \"|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){5}(?::\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,2}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){4}(?:(:\").concat(IPv6SegmentFormat, \"){0,1}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,3}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){3}(?:(:\").concat(IPv6SegmentFormat, \"){0,2}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,4}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){2}(?:(:\").concat(IPv6SegmentFormat, \"){0,3}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,5}|:)|\") + \"(?:\".concat(IPv6SegmentFormat, \":){1}(?:(:\").concat(IPv6SegmentFormat, \"){0,4}:\").concat(IPv4AddressFormat, \"|(:\").concat(IPv6SegmentFormat, \"){1,6}|:)|\") + \"(?::((?::\".concat(IPv6SegmentFormat, \"){0,5}:\").concat(IPv4AddressFormat, \"|(?::\").concat(IPv6SegmentFormat, \"){1,7}|:))\") + ')(%[0-9a-zA-Z-.:]{1,})?$');\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n }\n\n if (version === '4') {\n return IPv4AddressRegExp.test(str);\n }\n\n if (version === '6') {\n return IPv6AddressRegExp.test(str);\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIPRange;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar subnetMaybe = /^\\d{1,3}$/;\nvar v4Subnet = 32;\nvar v6Subnet = 128;\n\nfunction isIPRange(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet\n\n if (parts.length !== 2) {\n return false;\n }\n\n if (!subnetMaybe.test(parts[1])) {\n return false;\n } // Disallow preceding 0 i.e. 01, 02, ...\n\n\n if (parts[1].length > 1 && parts[1].startsWith('0')) {\n return false;\n }\n\n var isValidIP = (0, _isIP.default)(parts[0], version);\n\n if (!isValidIP) {\n return false;\n } // Define valid subnet according to IP's version\n\n\n var expectedSubnet = null;\n\n switch (String(version)) {\n case '4':\n expectedSubnet = v4Subnet;\n break;\n\n case '6':\n expectedSubnet = v6Subnet;\n break;\n\n default:\n expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;\n }\n\n return parts[1] <= expectedSubnet && parts[1] >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar possibleIsbn10 = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar possibleIsbn13 = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(isbn, options) {\n (0, _assertString.default)(isbn); // For backwards compatibility:\n // isISBN(str [, version]), i.e. `options` could be used as argument for the legacy `version`\n\n var version = String((options === null || options === void 0 ? void 0 : options.version) || options);\n\n if (!(options !== null && options !== void 0 && options.version || options)) {\n return isISBN(isbn, {\n version: 10\n }) || isISBN(isbn, {\n version: 13\n });\n }\n\n var sanitizedIsbn = isbn.replace(/[\\s-]+/g, '');\n var checksum = 0;\n\n if (version === '10') {\n if (!possibleIsbn10.test(sanitizedIsbn)) {\n return false;\n }\n\n for (var i = 0; i < version - 1; i++) {\n checksum += (i + 1) * sanitizedIsbn.charAt(i);\n }\n\n if (sanitizedIsbn.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitizedIsbn.charAt(9);\n }\n\n if (checksum % 11 === 0) {\n return true;\n }\n } else if (version === '13') {\n if (!possibleIsbn13.test(sanitizedIsbn)) {\n return false;\n }\n\n for (var _i = 0; _i < 12; _i++) {\n checksum += factor[_i % 2] * sanitizedIsbn.charAt(_i);\n }\n\n if (sanitizedIsbn.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return true;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; // this link details how the check digit is calculated:\n// https://www.isin.org/isin-format/. it is a little bit\n// odd in that it works with digits, not numbers. in order\n// to make only one pass through the ISIN characters, the\n// each alpha character is handled as 2 characters within\n// the loop.\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n\n if (!isin.test(str)) {\n return false;\n }\n\n var double = true;\n var sum = 0; // convert values\n\n for (var i = str.length - 2; i >= 0; i--) {\n if (str[i] >= 'A' && str[i] <= 'Z') {\n var value = str[i].charCodeAt(0) - 55;\n var lo = value % 10;\n var hi = Math.trunc(value / 10); // letters have two digits, so handle the low order\n // and high order digits separately.\n\n for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {\n var digit = _arr[_i];\n\n if (double) {\n if (digit >= 5) {\n sum += 1 + (digit - 5) * 2;\n } else {\n sum += digit * 2;\n }\n } else {\n sum += digit;\n }\n\n double = !double;\n }\n } else {\n var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);\n\n if (double) {\n if (_digit >= 5) {\n sum += 1 + (_digit - 5) * 2;\n } else {\n sum += _digit * 2;\n }\n } else {\n sum += _digit;\n }\n\n double = !double;\n }\n }\n\n var check = Math.trunc((sum + 9) / 10) * 10 - sum;\n return +str[str.length - 1] === check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\nexports.CountryCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());\n}\n\nvar CountryCodes = validISO31661Alpha2CountriesCodes;\nexports.CountryCodes = CountryCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO4217;\nexports.CurrencyCodes = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_4217\nvar validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);\n\nfunction isISO4217(str) {\n (0, _assertString.default)(str);\n return validISO4217CurrencyCodes.has(str.toUpperCase());\n}\n\nvar CurrencyCodes = validISO4217CurrencyCodes;\nexports.CurrencyCodes = CurrencyCodes;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO6391;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isISO6391Set = new Set(['aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av', 'ay', 'az', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv', 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr', 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik', 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj', 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw', 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv', 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my', 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv', 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps', 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd', 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti', 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug', 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi', 'yo', 'za', 'zh', 'zu']);\n\nfunction isISO6391(str) {\n (0, _assertString.default)(str);\n return isISO6391Set.has(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time\n\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\n\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\n\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n PL: function PL(str) {\n (0, _assertString.default)(str);\n var weightOfDigits = {\n 1: 1,\n 2: 3,\n 3: 7,\n 4: 9,\n 5: 1,\n 6: 3,\n 7: 7,\n 8: 9,\n 9: 1,\n 10: 3,\n 11: 0\n };\n\n if (str != null && str.length === 11 && (0, _isInt.default)(str, {\n allow_leading_zeroes: true\n })) {\n var digits = str.split('').slice(0, -1);\n var sum = digits.reduce(function (acc, digit, index) {\n return acc + Number(digit) * weightOfDigits[index + 1];\n }, 0);\n var modulo = sum % 10;\n var lastDigit = Number(str.charAt(str.length - 1));\n\n if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {\n return true;\n }\n }\n\n return false;\n },\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n FI: function FI(str) {\n // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated\n (0, _assertString.default)(str);\n\n if (str.length !== 11) {\n return false;\n }\n\n if (!str.match(/^\\d{6}[\\-A\\+]\\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {\n return false;\n }\n\n var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';\n var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);\n var remainder = idAsNumber % 31;\n var checkDigit = checkDigits[remainder];\n return checkDigit === str.slice(10, 11);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/; // multiplication table\n\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table\n\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IR: function IR(str) {\n if (!str.match(/^\\d{10}$/)) return false;\n str = \"0000\".concat(str).slice(str.length - 6);\n if (parseInt(str.slice(3, 9), 10) === 0) return false;\n var lastNumber = parseInt(str.slice(9, 10), 10);\n var sum = 0;\n\n for (var i = 0; i < 9; i++) {\n sum += parseInt(str.slice(i, i + 1), 10) * (10 - i);\n }\n\n sum %= 11;\n return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n\n return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n TH: function TH(str) {\n if (!str.match(/^[1-8]\\d{12}$/)) return false; // validate check digit\n\n var sum = 0;\n\n for (var i = 0; i < 12; i++) {\n sum += parseInt(str[i], 10) * (13 - i);\n }\n\n return str[12] === ((11 - sum % 11) % 10).toString();\n },\n LK: function LK(str) {\n var old_nic = /^[1-9]\\d{8}[vx]$/i;\n var new_nic = /^[1-9]\\d{11}$/i;\n if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;\n return false;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n\n return sum % 10 === 0;\n },\n 'ar-LY': function arLY(str) {\n // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2\n var NIN = /^(1|2)\\d{11}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!NIN.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11', // 北京\n '12', // 天津\n '13', // 河北\n '14', // 山西\n '15', // 内蒙古\n '21', // 辽宁\n '22', // 吉林\n '23', // 黑龙江\n '31', // 上海\n '32', // 江苏\n '33', // 浙江\n '34', // 安徽\n '35', // 福建\n '36', // 江西\n '37', // 山东\n '41', // 河南\n '42', // 湖北\n '43', // 湖南\n '44', // 广东\n '45', // 广西\n '46', // 海南\n '50', // 重庆\n '51', // 四川\n '52', // 贵州\n '53', // 云南\n '54', // 西藏\n '61', // 陕西\n '62', // 甘肃\n '63', // 青海\n '64', // 宁夏\n '65', // 新疆\n '71', // 台湾\n '81', // 香港\n '82', // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n\n if (xdata > new Date()) {\n return false; // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n\n return false;\n };\n\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n\n var mod = power % 11;\n return parityBit[mod];\n };\n\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n\n return check18IdCardNo(idCardNo);\n };\n\n return checkIdCardNo(str);\n },\n 'zh-HK': function zhHK(str) {\n // sanitize user input\n str = str.trim(); // HKID number starts with 1 or 2 letters, followed by 6 digits,\n // then a checksum contained in square / round brackets or nothing\n\n var regexHKID = /^[A-Z]{1,2}[0-9]{6}((\\([0-9A]\\))|(\\[[0-9A]\\])|([0-9A]))$/;\n var regexIsDigit = /^[0-9]$/; // convert the user input to all uppercase and apply regex\n\n str = str.toUpperCase();\n if (!regexHKID.test(str)) return false;\n str = str.replace(/\\[|\\]|\\(|\\)/g, '');\n if (str.length === 8) str = \"3\".concat(str);\n var checkSumVal = 0;\n\n for (var i = 0; i <= 7; i++) {\n var convertedChar = void 0;\n if (!regexIsDigit.test(str[i])) convertedChar = (str[i].charCodeAt(0) - 55) % 11;else convertedChar = str[i];\n checkSumVal += convertedChar * (9 - i);\n }\n\n checkSumVal %= 11;\n var checkSumConverted;\n if (checkSumVal === 0) checkSumConverted = '0';else if (checkSumVal === 1) checkSumConverted = 'A';else checkSumConverted = String(11 - checkSumVal);\n if (checkSumConverted === str[str.length - 1]) return true;\n return false;\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIn;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction isIn(str, options) {\n (0, _assertString.default)(str);\n var i;\n\n if (Object.prototype.toString.call(options) === '[object Array]') {\n var array = [];\n\n for (i in options) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if ({}.hasOwnProperty.call(options, i)) {\n array[i] = (0, _toString.default)(options[i]);\n }\n }\n\n return array.indexOf(str) >= 0;\n } else if (_typeof(options) === 'object') {\n return options.hasOwnProperty(str);\n } else if (options && typeof options.indexOf === 'function') {\n return options.indexOf(str) >= 0;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar default_json_options = {\n allow_primitives: false\n};\n\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n\n if (len > 3 || len < 2) {\n return false;\n }\n\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\n\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n\n var presentationSequences = str.match(/(\\uFE0F|\\uFE0E)/g) || [];\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - presentationSequences.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLicensePlate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n 'cs-CZ': function csCZ(str) {\n return /^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);\n },\n 'de-DE': function deDE(str) {\n return /^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\\d{1,4})|([A-Z]{2}[- ]?\\d{1,3})))[- ]?(E|H)?$/.test(str);\n },\n 'de-LI': function deLI(str) {\n return /^FL[- ]?\\d{1,5}[UZ]?$/.test(str);\n },\n 'en-IN': function enIN(str) {\n return /^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(str);\n },\n 'es-AR': function esAR(str) {\n return /^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(str);\n },\n 'fi-FI': function fiFI(str) {\n return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);\n },\n 'hu-HU': function huHU(str) {\n return /^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\\d{3})|(M\\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \\d{2}-\\d{2})|(CD \\d{3}-\\d{3})|(C-(C|X) \\d{4})|(X-(A|B|C) \\d{4})|(([EPVZ]-\\d{5}))|(S A[A-Z]{2} \\d{2})|(SP \\d{2}-\\d{2}))$/.test(str);\n },\n 'pt-BR': function ptBR(str) {\n return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);\n },\n 'pt-PT': function ptPT(str) {\n return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);\n },\n 'sq-AL': function sqAL(str) {\n return /^[A-Z]{2}[- ]?((\\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\\d{3}))$/.test(str);\n },\n 'sv-SE': function svSE(str) {\n return /^[A-HJ-PR-UW-Z]{3} ?[\\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(str.trim());\n }\n};\n\nfunction isLicensePlate(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n /* eslint guard-for-in: 0 */\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-Za-z]{2,4}([_-]([A-Za-z]{4}|[\\d]{3}))?([_-]([A-Za-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLuhnNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLuhnNumber(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar macAddress48 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){4}([0-9a-fA-F]{2})$/;\nvar macAddress48NoSeparators = /^([0-9a-fA-F]){12}$/;\nvar macAddress48WithDots = /^([0-9a-fA-F]{4}\\.){2}([0-9a-fA-F]{4})$/;\nvar macAddress64 = /^(?:[0-9a-fA-F]{2}([-:\\s]))([0-9a-fA-F]{2}\\1){6}([0-9a-fA-F]{2})$/;\nvar macAddress64NoSeparators = /^([0-9a-fA-F]){16}$/;\nvar macAddress64WithDots = /^([0-9a-fA-F]{4}\\.){3}([0-9a-fA-F]{4})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n\n if (options !== null && options !== void 0 && options.eui) {\n options.eui = String(options.eui);\n }\n /**\n * @deprecated `no_colons` TODO: remove it in the next major\n */\n\n\n if (options !== null && options !== void 0 && options.no_colons || options !== null && options !== void 0 && options.no_separators) {\n if (options.eui === '48') {\n return macAddress48NoSeparators.test(str);\n }\n\n if (options.eui === '64') {\n return macAddress64NoSeparators.test(str);\n }\n\n return macAddress48NoSeparators.test(str) || macAddress64NoSeparators.test(str);\n }\n\n if ((options === null || options === void 0 ? void 0 : options.eui) === '48') {\n return macAddress48.test(str) || macAddress48WithDots.test(str);\n }\n\n if ((options === null || options === void 0 ? void 0 : options.eui) === '64') {\n return macAddress64.test(str) || macAddress64WithDots.test(str);\n }\n\n return isMACAddress(str, {\n eui: '48'\n }) || isMACAddress(str, {\n eui: '64'\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMD5;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar md5 = /^[a-f0-9]{32}$/;\n\nfunction isMD5(str) {\n (0, _assertString.default)(str);\n return md5.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar magnetURIComponent = /(?:^magnet:\\?|[^?&]&)xt(?:\\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n\n if (url.indexOf('magnet:?') !== 0) {\n return false;\n }\n\n return magnetURIComponent.test(url);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+_]{1,100}$/i; // eslint-disable-line max-len\n// Handle \"charset\" in \"text/*\"\n\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n// Handle \"boundary\" in \"multipart/*\"\n\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)([569]\\d{7}|41\\d{6})$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-OM': /^((\\+|00)968)?(9[1-9])\\d{6}$/,\n 'ar-PS': /^(\\+?970|0)5[6|9](\\d{7})$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(10|5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^((\\+49|0)1)(5[0-25-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7,9}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)([1-9])\\d{1,9}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'dv-MV': /^(\\+?960)?(7[2-9]|9[1-9])\\d{5}$/,\n 'el-GR': /^(\\+?30|0)?6(8[5-9]|9(?![26])[0-9])\\d{7}$/,\n 'el-CY': /^(\\+?357?)?(9(9|6)\\d{6})$/,\n 'en-AI': /^(\\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\\d{4}$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-AG': /^(?:\\+1|1)268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}$/,\n 'en-BM': /^(\\+?1)?441(((3|7)\\d{6}$)|(5[0-3][0-9]\\d{4}$)|(59\\d{5}$))/,\n 'en-BS': /^(\\+?1[-\\s]?|0)?\\(?242\\)?[-\\s]?\\d{3}[-\\s]?\\d{4}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\\d{7}$/,\n 'en-GY': /^(\\+592|0)6\\d{6}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-JM': /^(\\+?876)?\\d{7}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'en-SS': /^(\\+?211|0)(9[1257])\\d{7}$/,\n 'en-KI': /^((\\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,\n 'en-KN': /^(?:\\+1|1)869(?:46\\d|48[89]|55[6-8]|66\\d|76[02-7])\\d{4}$/,\n 'en-LS': /^(\\+?266)(22|28|57|58|59|27|52)\\d{6}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-NA': /^(\\+?264|0)(6|8)\\d{7}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PG': /^(\\+?675|0)?(7\\d|8[18])\\d{6}$/,\n 'en-PK': /^((00|\\+)?92|0)3[0-6]\\d{8}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[3689]\\d{7}$/,\n 'en-SL': /^(\\+?232|0)\\d{8}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'en-BW': /^(\\+?267)?(7[1-8]{1})\\d{6}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?3(0(0|1|2|4|5)|1\\d|2[0-4]|5(0|1))\\d{7}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-CU': /^(\\+53|0053)?5\\d{7}/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8|3|2]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-NI': /^(\\+?505)\\d{7,8}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-SV': /^(\\+?503)?[67]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'es-VE': /^(\\+?58)?(2|4)\\d{9}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4[0-6]|50)\\s?(\\d\\s?){4,8}$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-BF': /^(\\+226|0)[67]\\d{7}$/,\n 'fr-BJ': /^(\\+229)\\d{8}$/,\n 'fr-CD': /^(\\+?243|0)?(8|9)\\d{8}$/,\n 'fr-CM': /^(\\+?237)6[0-9]{8}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-PF': /^(\\+?689)?8[789]\\d{6}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36|06)(20|30|31|50|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'ir-IR': /^(\\+98|0)?9\\d{9}$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(79\\d{7}|5\\d{8})$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'ky-KG': /^(\\+?7\\s?\\+?7|0)\\s?\\d{2}\\s?\\d{3}\\s?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'lv-LV': /^(\\+?371)2\\d{7}$/,\n 'mg-MG': /^((\\+?261|0)(2|3)\\d)?\\d{7}$/,\n 'mn-MN': /^(\\+|00|011)?976(77|81|88|91|94|95|96|99)\\d{6}$/,\n 'my-MM': /^(\\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,\n 'ms-MY': /^(\\+?60|0)1(([0145](-|\\s)?\\d{7,8})|([236-9](-|\\s)?\\d{7}))$/,\n 'mz-MZ': /^(\\+?258)?8[234567]\\d{7}$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nl-AW': /^(\\+)?297(56|59|64|73|74|99)\\d{5}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[1-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'pt-AO': /^(\\+244)\\d{9}$/,\n 'ro-MD': /^(\\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\\d{6}$/,\n 'ro-RO': /^(\\+?40|0)\\s?7\\d{2}(\\/|\\s|\\.|-)?\\d{3}(\\s|\\.|-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'si-LK': /^(?:0|94|\\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\\d{7}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'tg-TJ': /^(\\+?992)?[5][5]\\d{7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'tk-TM': /^(\\+993|993|8)\\d{8}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^((\\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?(1[3-9]|9[28])\\d{9}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/,\n 'dz-BT': /^(\\+?975|0)?(17|16|77|02)\\d{6}$/,\n 'ar-YE': /^(((\\+|00)9677|0?7)[0137]\\d{7}|((\\+|00)967|0)[1-7]\\d{6})$/,\n 'ar-EH': /^(\\+?212|0)[\\s\\-]?(5288|5289)[\\s\\-]?\\d{5}$/,\n 'fa-AF': /^(\\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\\d{7})$/\n};\n/* eslint-enable max-len */\n// aliases\n\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\nphones['fr-CH'] = phones['de-CH'];\nphones['it-CH'] = phones['fr-CH'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n AZ: /^[A-Z]{2,3}\\d{7,8}$/,\n // AZERBAIJAN\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BR: /^[A-Z]{2}\\d{6}$/,\n // BRAZIL\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^G\\d{8}$|^E(?![IO])[A-Z0-9]\\d{7}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n ID: /^[A-C]\\d{7}$/,\n // INDONESIA\n IR: /^[A-Z]\\d{8}$/,\n // IRAN\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JM: /^[Aa]\\d{7}$/,\n // JAMAICA\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n KZ: /^[a-zA-Z]\\d{7}$/,\n // KAZAKHSTAN\n LI: /^[a-zA-Z]\\d{5}$/,\n // LIECHTENSTEIN\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n LY: /^[A-Z0-9]{8}$/,\n // LIBYA\n MT: /^\\d{7}$/,\n // MALTA\n MZ: /^([A-Z]{2}\\d{7})|(\\d{2}[A-Z]{2}\\d{5})$/,\n // MOZAMBIQUE\n MY: /^[AHK]\\d{8}$/,\n // MALAYSIA\n MX: /^\\d{10,11}$/,\n // MEXICO\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n NZ: /^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\\d{6}$/,\n // NEW ZEALAND\n PH: /^([A-Z](\\d{6}|\\d{7}[A-Z]))|([A-Z]{2}(\\d{6}|\\d{7}))$/,\n // PHILIPPINES\n PK: /^[A-Z]{2}\\d{7}$/,\n // PAKISTAN\n PL: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{9}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVENIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TH: /^[A-Z]{1,2}\\d{6,7}$/,\n // THAILAND\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/ // UNITED STATES\n\n};\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\n\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BA: /^([7-8]\\d{4}$)/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /^2[1-4]\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-Za-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /^(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}$/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n KR: /^(\\d{5}|\\d{6})$/,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n LK: fiveDigit,\n MG: threeDigit,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^\\d{4}\\s?[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = Object.keys(patterns);\nexports.locales = locales;\n\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"^\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source, \"$\"));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)$/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSlug;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar charsetRegex = /^[^\\s-_](?!.*?[-_]{2,})[a-z0-9-\\\\][^\\s]*[^-_\\s]$/;\n\nfunction isSlug(str) {\n (0, _assertString.default)(str);\n return charsetRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isStrongPassword;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar upperCaseRegex = /^[A-Z]$/;\nvar lowerCaseRegex = /^[a-z]$/;\nvar numberRegex = /^[0-9]$/;\nvar symbolRegex = /^[-#!$@£%^&*()_+|~=`{}\\[\\]:\";'<>?,.\\/ ]$/;\nvar defaultOptions = {\n minLength: 8,\n minLowercase: 1,\n minUppercase: 1,\n minNumbers: 1,\n minSymbols: 1,\n returnScore: false,\n pointsPerUnique: 1,\n pointsPerRepeat: 0.5,\n pointsForContainingLower: 10,\n pointsForContainingUpper: 10,\n pointsForContainingNumber: 10,\n pointsForContainingSymbol: 10\n};\n/* Counts number of occurrences of each char in a string\n * could be moved to util/ ?\n*/\n\nfunction countChars(str) {\n var result = {};\n Array.from(str).forEach(function (char) {\n var curVal = result[char];\n\n if (curVal) {\n result[char] += 1;\n } else {\n result[char] = 1;\n }\n });\n return result;\n}\n/* Return information about a password */\n\n\nfunction analyzePassword(password) {\n var charMap = countChars(password);\n var analysis = {\n length: password.length,\n uniqueChars: Object.keys(charMap).length,\n uppercaseCount: 0,\n lowercaseCount: 0,\n numberCount: 0,\n symbolCount: 0\n };\n Object.keys(charMap).forEach(function (char) {\n /* istanbul ignore else */\n if (upperCaseRegex.test(char)) {\n analysis.uppercaseCount += charMap[char];\n } else if (lowerCaseRegex.test(char)) {\n analysis.lowercaseCount += charMap[char];\n } else if (numberRegex.test(char)) {\n analysis.numberCount += charMap[char];\n } else if (symbolRegex.test(char)) {\n analysis.symbolCount += charMap[char];\n }\n });\n return analysis;\n}\n\nfunction scorePassword(analysis, scoringOptions) {\n var points = 0;\n points += analysis.uniqueChars * scoringOptions.pointsPerUnique;\n points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;\n\n if (analysis.lowercaseCount > 0) {\n points += scoringOptions.pointsForContainingLower;\n }\n\n if (analysis.uppercaseCount > 0) {\n points += scoringOptions.pointsForContainingUpper;\n }\n\n if (analysis.numberCount > 0) {\n points += scoringOptions.pointsForContainingNumber;\n }\n\n if (analysis.symbolCount > 0) {\n points += scoringOptions.pointsForContainingSymbol;\n }\n\n return points;\n}\n\nfunction isStrongPassword(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n (0, _assertString.default)(str);\n var analysis = analyzePassword(str);\n options = (0, _merge.default)(options || {}, defaultOptions);\n\n if (options.returnScore) {\n return scorePassword(analysis, options);\n }\n\n return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTaxID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\n\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * TIN Validation\n * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.\n *\n * EU-UK:\n * National TIN validity is calculated using public algorithms as made available by DG TAXUD.\n *\n * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.\n *\n * US:\n * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,\n * is used to identify a business entity.\n *\n * NOTES:\n * - Prefix 47 is being reserved for future use\n * - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.\n *\n * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`\n * for more information.\n */\n// Locale functions\n\n/*\n * bg-BG validation function\n * (Edinen graždanski nomer (EGN/ЕГН), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last) digit\n */\nfunction bgBgCheck(tin) {\n // Extract full year, normalize month and check birth date validity\n var century_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 40) {\n month -= 40;\n century_year = \"20\".concat(century_year);\n } else if (month > 20) {\n month -= 20;\n century_year = \"18\".concat(century_year);\n } else {\n century_year = \"19\".concat(century_year);\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n }\n\n var date = \"\".concat(century_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n }); // Calculate checksum by multiplying digits with fixed values\n\n var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];\n var checksum = 0;\n\n for (var i = 0; i < multip_lookup.length; i++) {\n checksum += digits[i] * multip_lookup[i];\n }\n\n checksum = checksum % 11 === 10 ? 0 : checksum % 11;\n return checksum === digits[9];\n}\n/**\n * Check if an input is a valid Canadian SIN (Social Insurance Number)\n *\n * The Social Insurance Number (SIN) is a 9 digit number that\n * you need to work in Canada or to have access to government programs and benefits.\n *\n * https://en.wikipedia.org/wiki/Social_Insurance_Number\n * https://www.canada.ca/en/employment-social-development/services/sin.html\n * https://www.codercrunch.com/challenge/819302488/sin-validator\n *\n * @param {string} input\n * @return {boolean}\n */\n\n\nfunction isCanadianSIN(input) {\n var digitsArray = input.split('');\n var even = digitsArray.filter(function (_, idx) {\n return idx % 2;\n }).map(function (i) {\n return Number(i) * 2;\n }).join('').split('');\n var total = digitsArray.filter(function (_, idx) {\n return !(idx % 2);\n }).concat(even).map(function (i) {\n return Number(i);\n }).reduce(function (acc, cur) {\n return acc + cur;\n });\n return total % 10 === 0;\n}\n/*\n * cs-CZ validation function\n * (Rodné číslo (RČ), persons only)\n * Checks if birth date (first six digits) is valid and divisibility by 11\n * Material not in DG TAXUD document sourced from:\n * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`\n * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`\n */\n\n\nfunction csCzCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract full year from TIN length\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\n if (tin.length === 10) {\n if (full_year < 54) {\n full_year = \"20\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n }\n } else {\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n\n\n if (full_year < 54) {\n full_year = \"19\".concat(full_year);\n } else {\n return false; // No 18XX years seen in any of the resources\n }\n } // Add missing zero if needed\n\n\n if (full_year.length === 3) {\n full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\n\n if (month > 20) {\n // Month-plus-twenty was only introduced in 2004\n if (parseInt(full_year, 10) < 2004) {\n return false;\n }\n\n month -= 20;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Verify divisibility by 11\n\n\n if (tin.length === 10) {\n if (parseInt(tin, 10) % 11 !== 0) {\n // Some numbers up to and including 1985 are still valid if\n // check (last) digit equals 0 and modulo of first 9 digits equals 10\n var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;\n\n if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {\n if (parseInt(tin.slice(9), 10) !== 0) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n\n return true;\n}\n/*\n * de-AT validation function\n * (Abgabenkontonummer, persons/entities)\n * Verify TIN validity by calling luhnCheck()\n */\n\n\nfunction deAtCheck(tin) {\n return algorithms.luhnCheck(tin);\n}\n/*\n * de-DE validation function\n * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)\n * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit\n * Partial implementation of spec (same result with both algorithms always)\n */\n\n\nfunction deDeCheck(tin) {\n // Split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n }); // Fill array with strings of number positions\n\n var occurences = [];\n\n for (var i = 0; i < digits.length - 1; i++) {\n occurences.push('');\n\n for (var j = 0; j < digits.length - 1; j++) {\n if (digits[i] === digits[j]) {\n occurences[i] += j;\n }\n }\n } // Remove digits with one occurence and test for only one duplicate/triplicate\n\n\n occurences = occurences.filter(function (a) {\n return a.length > 1;\n });\n\n if (occurences.length !== 2 && occurences.length !== 3) {\n return false;\n } // In case of triplicate value only two digits are allowed next to each other\n\n\n if (occurences[0].length === 3) {\n var trip_locations = occurences[0].split('').map(function (a) {\n return parseInt(a, 10);\n });\n var recurrent = 0; // Amount of neighbour occurences\n\n for (var _i = 0; _i < trip_locations.length - 1; _i++) {\n if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {\n recurrent += 1;\n }\n }\n\n if (recurrent === 2) {\n return false;\n }\n }\n\n return algorithms.iso7064Check(tin);\n}\n/*\n * dk-DK validation function\n * (CPR-nummer (personnummer), persons only)\n * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,\n * and calculates check (last) digit\n */\n\n\nfunction dkDkCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract year, check if valid for given century digit and add century\n\n var year = parseInt(tin.slice(4, 6), 10);\n var century_digit = tin.slice(6, 7);\n\n switch (century_digit) {\n case '0':\n case '1':\n case '2':\n case '3':\n year = \"19\".concat(year);\n break;\n\n case '4':\n case '9':\n if (year < 37) {\n year = \"20\".concat(year);\n } else {\n year = \"19\".concat(year);\n }\n\n break;\n\n default:\n if (year < 37) {\n year = \"20\".concat(year);\n } else if (year > 58) {\n year = \"18\".concat(year);\n } else {\n return false;\n }\n\n break;\n } // Add missing zero if needed\n\n\n if (year.length === 3) {\n year = [year.slice(0, 2), '0', year.slice(2)].join('');\n } // Check date validity\n\n\n var date = \"\".concat(year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 4; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 9; i++) {\n checksum += digits[i] * weight;\n weight -= 1;\n\n if (weight === 1) {\n weight = 7;\n }\n }\n\n checksum %= 11;\n\n if (checksum === 1) {\n return false;\n }\n\n return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;\n}\n/*\n * el-CY validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)\n * Verify TIN validity by calculating ASCII value of check (last) character\n */\n\n\nfunction elCyCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.slice(0, 8).split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0; // add digits in even places\n\n for (var i = 1; i < digits.length; i += 2) {\n checksum += digits[i];\n } // add digits in odd places\n\n\n for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {\n if (digits[_i2] < 2) {\n checksum += 1 - digits[_i2];\n } else {\n checksum += 2 * (digits[_i2] - 2) + 5;\n\n if (digits[_i2] > 4) {\n checksum += 2;\n }\n }\n }\n\n return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);\n}\n/*\n * el-GR validation function\n * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)\n * Verify TIN validity by calculating check (last) digit\n * Algorithm not in DG TAXUD document- sourced from:\n * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`\n */\n\n\nfunction elGrCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n\n for (var i = 0; i < 8; i++) {\n checksum += digits[i] * Math.pow(2, 8 - i);\n }\n\n return checksum % 11 % 10 === digits[8];\n}\n/*\n * en-GB validation function (should go here if needed)\n * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),\n * persons/entities respectively)\n */\n\n/*\n * en-IE validation function\n * (Personal Public Service Number (PPS No), persons only)\n * Verify TIN validity by calculating check (second to last) character\n */\n\n\nfunction enIeCheck(tin) {\n var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8);\n\n if (tin.length === 9 && tin[8] !== 'W') {\n checksum += (tin[8].charCodeAt(0) - 64) * 9;\n }\n\n checksum %= 23;\n\n if (checksum === 0) {\n return tin[7].toUpperCase() === 'W';\n }\n\n return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);\n} // Valid US IRS campus prefixes\n\n\nvar enUsCampusPrefix = {\n andover: ['10', '12'],\n atlanta: ['60', '67'],\n austin: ['50', '53'],\n brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],\n cincinnati: ['30', '32', '35', '36', '37', '38', '61'],\n fresno: ['15', '24'],\n internet: ['20', '26', '27', '45', '46', '47'],\n kansas: ['40', '44'],\n memphis: ['94', '95'],\n ogden: ['80', '90'],\n philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],\n sba: ['31']\n}; // Return an array of all US IRS campus prefixes\n\nfunction enUsGetPrefixes() {\n var prefixes = [];\n\n for (var location in enUsCampusPrefix) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (enUsCampusPrefix.hasOwnProperty(location)) {\n prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));\n }\n }\n\n return prefixes;\n}\n/*\n * en-US validation function\n * Verify that the TIN starts with a valid IRS campus prefix\n */\n\n\nfunction enUsCheck(tin) {\n return enUsGetPrefixes().indexOf(tin.slice(0, 2)) !== -1;\n}\n/*\n * es-ES validation function\n * (Documento Nacional de Identidad (DNI)\n * or Número de Identificación de Extranjero (NIE), persons only)\n * Verify TIN validity by calculating check (last) character\n */\n\n\nfunction esEsCheck(tin) {\n // Split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Replace initial letter if needed\n\n if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {\n var lead_replace = 0;\n\n switch (chars[0]) {\n case 'Y':\n lead_replace = 1;\n break;\n\n case 'Z':\n lead_replace = 2;\n break;\n\n default:\n }\n\n chars.splice(0, 1, lead_replace); // Fill with zeros if smaller than proper\n } else {\n while (chars.length < 9) {\n chars.unshift(0);\n }\n } // Calculate checksum and check according to lookup\n\n\n var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];\n chars = chars.join('');\n var checksum = parseInt(chars.slice(0, 8), 10) % 23;\n return chars[8] === lookup[checksum];\n}\n/*\n * et-EE validation function\n * (Isikukood (IK), persons only)\n * Checks if birth date (century digit and six following) is valid and calculates check (last) digit\n * Material not in DG TAXUD document sourced from:\n * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`\n */\n\n\nfunction etEeCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(1, 3);\n var century_digit = tin.slice(0, 1);\n\n switch (century_digit) {\n case '1':\n case '2':\n full_year = \"18\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Split digits into an array for further processing\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 0;\n var weight = 1; // Multiply by weight and add to checksum\n\n for (var i = 0; i < 10; i++) {\n checksum += digits[i] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n } // Do again if modulo 11 of checksum is 10\n\n\n if (checksum % 11 === 10) {\n checksum = 0;\n weight = 3;\n\n for (var _i3 = 0; _i3 < 10; _i3++) {\n checksum += digits[_i3] * weight;\n weight += 1;\n\n if (weight === 10) {\n weight = 1;\n }\n }\n\n if (checksum % 11 === 10) {\n return digits[10] === 0;\n }\n }\n\n return checksum % 11 === digits[10];\n}\n/*\n * fi-FI validation function\n * (Henkilötunnus (HETU), persons only)\n * Checks if birth date (first six digits plus century symbol) is valid\n * and calculates check (last) digit\n */\n\n\nfunction fiFiCheck(tin) {\n // Extract year and add century\n var full_year = tin.slice(4, 6);\n var century_symbol = tin.slice(6, 7);\n\n switch (century_symbol) {\n case '+':\n full_year = \"18\".concat(full_year);\n break;\n\n case '-':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(0, 2));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate check character\n\n\n var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;\n\n if (checksum < 10) {\n return checksum === parseInt(tin.slice(10), 10);\n }\n\n checksum -= 10;\n var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];\n return letters_lookup[checksum] === tin.slice(10);\n}\n/*\n * fr/nl-BE validation function\n * (Numéro national (N.N.), persons only)\n * Checks if birth date (first six digits) is valid and calculates check (last two) digits\n */\n\n\nfunction frBeCheck(tin) {\n // Zero month/day value is acceptable\n if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {\n // Extract date from first six digits of TIN\n var date = \"\".concat(tin.slice(0, 2), \"/\").concat(tin.slice(2, 4), \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n }\n\n var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;\n var checkdigits = parseInt(tin.slice(9, 11), 10);\n\n if (checksum !== checkdigits) {\n checksum = 97 - parseInt(\"2\".concat(tin.slice(0, 9)), 10) % 97;\n\n if (checksum !== checkdigits) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * fr-FR validation function\n * (Numéro fiscal de référence (numéro SPI), persons only)\n * Verify TIN validity by calculating check (last three) digits\n */\n\n\nfunction frFrCheck(tin) {\n tin = tin.replace(/\\s/g, '');\n var checksum = parseInt(tin.slice(0, 10), 10) % 511;\n var checkdigits = parseInt(tin.slice(10, 13), 10);\n return checksum === checkdigits;\n}\n/*\n * fr/lb-LU validation function\n * (numéro d’identification personnelle, persons only)\n * Verify birth date validity and run Luhn and Verhoeff checks\n */\n\n\nfunction frLuCheck(tin) {\n // Extract date and check validity\n var date = \"\".concat(tin.slice(0, 4), \"/\").concat(tin.slice(4, 6), \"/\").concat(tin.slice(6, 8));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Run Luhn check\n\n\n if (!algorithms.luhnCheck(tin.slice(0, 12))) {\n return false;\n } // Remove Luhn check digit and run Verhoeff check\n\n\n return algorithms.verhoeffCheck(\"\".concat(tin.slice(0, 11)).concat(tin[12]));\n}\n/*\n * hr-HR validation function\n * (Osobni identifikacijski broj (OIB), persons/entities)\n * Verify TIN validity by calling iso7064Check(digits)\n */\n\n\nfunction hrHrCheck(tin) {\n return algorithms.iso7064Check(tin);\n}\n/*\n * hu-HU validation function\n * (Adóazonosító jel, persons only)\n * Verify TIN validity by calculating check (last) digit\n */\n\n\nfunction huHuCheck(tin) {\n // split digits into an array for further processing\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var checksum = 8;\n\n for (var i = 1; i < 9; i++) {\n checksum += digits[i] * (i + 1);\n }\n\n return checksum % 11 === digits[9];\n}\n/*\n * lt-LT validation function (should go here if needed)\n * (Asmens kodas, persons/entities respectively)\n * Current validation check is alias of etEeCheck- same format applies\n */\n\n/*\n * it-IT first/last name validity check\n * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity\n * Due to lack of clarity between resources (\"Are only Italian consonants used?\n * What happens if a person has X in their name?\" etc.) only two test conditions\n * have been implemented:\n * Vowels may only be followed by other vowels or an X character\n * and X characters after vowels may only be followed by other X characters.\n */\n\n\nfunction itItNameCheck(name) {\n // true at the first occurence of a vowel\n var vowelflag = false; // true at the first occurence of an X AFTER vowel\n // (to properly handle last names with X as consonant)\n\n var xflag = false;\n\n for (var i = 0; i < 3; i++) {\n if (!vowelflag && /[AEIOU]/.test(name[i])) {\n vowelflag = true;\n } else if (!xflag && vowelflag && name[i] === 'X') {\n xflag = true;\n } else if (i > 0) {\n if (vowelflag && !xflag) {\n if (!/[AEIOU]/.test(name[i])) {\n return false;\n }\n }\n\n if (xflag) {\n if (!/X/.test(name[i])) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/*\n * it-IT validation function\n * (Codice fiscale (TIN-IT), persons only)\n * Verify name, birth date and codice catastale validity\n * and calculate check character.\n * Material not in DG-TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/Italian_fiscal_code`\n */\n\n\nfunction itItCheck(tin) {\n // Capitalize and split characters into an array for further processing\n var chars = tin.toUpperCase().split(''); // Check first and last name validity calling itItNameCheck()\n\n if (!itItNameCheck(chars.slice(0, 3))) {\n return false;\n }\n\n if (!itItNameCheck(chars.slice(3, 6))) {\n return false;\n } // Convert letters in number spaces back to numbers if any\n\n\n var number_locations = [6, 7, 9, 10, 12, 13, 14];\n var number_replace = {\n L: '0',\n M: '1',\n N: '2',\n P: '3',\n Q: '4',\n R: '5',\n S: '6',\n T: '7',\n U: '8',\n V: '9'\n };\n\n for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {\n var i = _number_locations[_i4];\n\n if (chars[i] in number_replace) {\n chars.splice(i, 1, number_replace[chars[i]]);\n }\n } // Extract month and day, and check date validity\n\n\n var month_replace = {\n A: '01',\n B: '02',\n C: '03',\n D: '04',\n E: '05',\n H: '06',\n L: '07',\n M: '08',\n P: '09',\n R: '10',\n S: '11',\n T: '12'\n };\n var month = month_replace[chars[8]];\n var day = parseInt(chars[9] + chars[10], 10);\n\n if (day > 40) {\n day -= 40;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(chars[6]).concat(chars[7], \"/\").concat(month, \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n } // Calculate check character by adding up even and odd characters as numbers\n\n\n var checksum = 0;\n\n for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {\n var char_to_int = parseInt(chars[_i5], 10);\n\n if (isNaN(char_to_int)) {\n char_to_int = chars[_i5].charCodeAt(0) - 65;\n }\n\n checksum += char_to_int;\n }\n\n var odd_convert = {\n // Maps of characters at odd places\n A: 1,\n B: 0,\n C: 5,\n D: 7,\n E: 9,\n F: 13,\n G: 15,\n H: 17,\n I: 19,\n J: 21,\n K: 2,\n L: 4,\n M: 18,\n N: 20,\n O: 11,\n P: 3,\n Q: 6,\n R: 8,\n S: 12,\n T: 14,\n U: 16,\n V: 10,\n W: 22,\n X: 25,\n Y: 24,\n Z: 23,\n 0: 1,\n 1: 0\n };\n\n for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {\n var _char_to_int = 0;\n\n if (chars[_i6] in odd_convert) {\n _char_to_int = odd_convert[chars[_i6]];\n } else {\n var multiplier = parseInt(chars[_i6], 10);\n _char_to_int = 2 * multiplier + 1;\n\n if (multiplier > 4) {\n _char_to_int += 2;\n }\n }\n\n checksum += _char_to_int;\n }\n\n if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {\n return false;\n }\n\n return true;\n}\n/*\n * lv-LV validation function\n * (Personas kods (PK), persons only)\n * Check validity of birth date and calculate check (last) digit\n * Support only for old format numbers (not starting with '32', issued before 2017/07/01)\n * Material not in DG TAXUD document sourced from:\n * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`\n */\n\n\nfunction lvLvCheck(tin) {\n tin = tin.replace(/\\W/, ''); // Extract date from TIN\n\n var day = tin.slice(0, 2);\n\n if (day !== '32') {\n // No date/checksum check if new format\n var month = tin.slice(2, 4);\n\n if (month !== '00') {\n // No date check if unknown month\n var full_year = tin.slice(4, 6);\n\n switch (tin[6]) {\n case '0':\n full_year = \"18\".concat(full_year);\n break;\n\n case '1':\n full_year = \"19\".concat(full_year);\n break;\n\n default:\n full_year = \"20\".concat(full_year);\n break;\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(2, 4), \"/\").concat(day);\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n } // Calculate check digit\n\n\n var checksum = 1101;\n var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\n\n for (var i = 0; i < tin.length - 1; i++) {\n checksum -= parseInt(tin[i], 10) * multip_lookup[i];\n }\n\n return parseInt(tin[10], 10) === checksum % 11;\n }\n\n return true;\n}\n/*\n * mt-MT validation function\n * (Identity Card Number or Unique Taxpayer Reference, persons/entities)\n * Verify Identity Card Number structure (no other tests found)\n */\n\n\nfunction mtMtCheck(tin) {\n if (tin.length !== 9) {\n // No tests for UTR\n var chars = tin.toUpperCase().split(''); // Fill with zeros if smaller than proper\n\n while (chars.length < 8) {\n chars.unshift(0);\n } // Validate format according to last character\n\n\n switch (tin[7]) {\n case 'A':\n case 'P':\n if (parseInt(chars[6], 10) === 0) {\n return false;\n }\n\n break;\n\n default:\n {\n var first_part = parseInt(chars.join('').slice(0, 5), 10);\n\n if (first_part > 32000) {\n return false;\n }\n\n var second_part = parseInt(chars.join('').slice(5, 7), 10);\n\n if (first_part === second_part) {\n return false;\n }\n }\n }\n }\n\n return true;\n}\n/*\n * nl-NL validation function\n * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),\n * persons/entities respectively)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction nlNlCheck(tin) {\n return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11 === parseInt(tin[8], 10);\n}\n/*\n * pl-PL validation function\n * (Powszechny Elektroniczny System Ewidencji Ludności (PESEL)\n * or Numer identyfikacji podatkowej (NIP), persons/entities)\n * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit\n */\n\n\nfunction plPlCheck(tin) {\n // NIP\n if (tin.length === 10) {\n // Calculate last digit by multiplying with lookup\n var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n var _checksum = 0;\n\n for (var i = 0; i < lookup.length; i++) {\n _checksum += parseInt(tin[i], 10) * lookup[i];\n }\n\n _checksum %= 11;\n\n if (_checksum === 10) {\n return false;\n }\n\n return _checksum === parseInt(tin[9], 10);\n } // PESEL\n // Extract full year using month\n\n\n var full_year = tin.slice(0, 2);\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 80) {\n full_year = \"18\".concat(full_year);\n month -= 80;\n } else if (month > 60) {\n full_year = \"22\".concat(full_year);\n month -= 60;\n } else if (month > 40) {\n full_year = \"21\".concat(full_year);\n month -= 40;\n } else if (month > 20) {\n full_year = \"20\".concat(full_year);\n month -= 20;\n } else {\n full_year = \"19\".concat(full_year);\n } // Add leading zero to month if needed\n\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate last digit by mulitplying with odd one-digit numbers except 5\n\n\n var checksum = 0;\n var multiplier = 1;\n\n for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {\n checksum += parseInt(tin[_i7], 10) * multiplier % 10;\n multiplier += 2;\n\n if (multiplier > 10) {\n multiplier = 1;\n } else if (multiplier === 5) {\n multiplier += 2;\n }\n }\n\n checksum = 10 - checksum % 10;\n return checksum === parseInt(tin[10], 10);\n}\n/*\n* pt-BR validation function\n* (Cadastro de Pessoas Físicas (CPF, persons)\n* Cadastro Nacional de Pessoas Jurídicas (CNPJ, entities)\n* Both inputs will be validated\n*/\n\n\nfunction ptBrCheck(tin) {\n if (tin.length === 11) {\n var _sum;\n\n var remainder;\n _sum = 0;\n if ( // Reject known invalid CPFs\n tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;\n\n for (var i = 1; i <= 9; i++) {\n _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);\n }\n\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;\n _sum = 0;\n\n for (var _i8 = 1; _i8 <= 10; _i8++) {\n _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);\n }\n\n remainder = _sum * 10 % 11;\n if (remainder === 10) remainder = 0;\n if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;\n return true;\n }\n\n if ( // Reject know invalid CNPJs\n tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {\n return false;\n }\n\n var length = tin.length - 2;\n var identifiers = tin.substring(0, length);\n var verificators = tin.substring(length);\n var sum = 0;\n var pos = length - 7;\n\n for (var _i9 = length; _i9 >= 1; _i9--) {\n sum += identifiers.charAt(length - _i9) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n var result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(0), 10)) {\n return false;\n }\n\n length += 1;\n identifiers = tin.substring(0, length);\n sum = 0;\n pos = length - 7;\n\n for (var _i10 = length; _i10 >= 1; _i10--) {\n sum += identifiers.charAt(length - _i10) * pos;\n pos -= 1;\n\n if (pos < 2) {\n pos = 9;\n }\n }\n\n result = sum % 11 < 2 ? 0 : 11 - sum % 11;\n\n if (result !== parseInt(verificators.charAt(1), 10)) {\n return false;\n }\n\n return true;\n}\n/*\n * pt-PT validation function\n * (Número de identificação fiscal (NIF), persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction ptPtCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n\n return checksum === parseInt(tin[8], 10);\n}\n/*\n * ro-RO validation function\n * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),\n * persons only)\n * Verify CNP validity by calculating check (last) digit (test not found for CIF)\n * Material not in DG TAXUD document sourced from:\n * `https://en.wikipedia.org/wiki/National_identification_number#Romania`\n */\n\n\nfunction roRoCheck(tin) {\n if (tin.slice(0, 4) !== '9000') {\n // No test found for this format\n // Extract full year using century digit if possible\n var full_year = tin.slice(1, 3);\n\n switch (tin[0]) {\n case '1':\n case '2':\n full_year = \"19\".concat(full_year);\n break;\n\n case '3':\n case '4':\n full_year = \"18\".concat(full_year);\n break;\n\n case '5':\n case '6':\n full_year = \"20\".concat(full_year);\n break;\n\n default:\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(tin.slice(3, 5), \"/\").concat(tin.slice(5, 7));\n\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n } // Calculate check digit\n\n\n var digits = tin.split('').map(function (a) {\n return parseInt(a, 10);\n });\n var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];\n var checksum = 0;\n\n for (var i = 0; i < multipliers.length; i++) {\n checksum += digits[i] * multipliers[i];\n }\n\n if (checksum % 11 === 10) {\n return digits[12] === 1;\n }\n\n return digits[12] === checksum % 11;\n }\n\n return true;\n}\n/*\n * sk-SK validation function\n * (Rodné číslo (RČ) or bezvýznamové identifikačné číslo (BIČ), persons only)\n * Checks validity of pre-1954 birth numbers (rodné číslo) only\n * Due to the introduction of the pseudo-random BIČ it is not possible to test\n * post-1954 birth numbers without knowing whether they are BIČ or RČ beforehand\n */\n\n\nfunction skSkCheck(tin) {\n if (tin.length === 9) {\n tin = tin.replace(/\\W/, '');\n\n if (tin.slice(6) === '000') {\n return false;\n } // Three-zero serial not assigned before 1954\n // Extract full year from TIN length\n\n\n var full_year = parseInt(tin.slice(0, 2), 10);\n\n if (full_year > 53) {\n return false;\n }\n\n if (full_year < 10) {\n full_year = \"190\".concat(full_year);\n } else {\n full_year = \"19\".concat(full_year);\n } // Extract month from TIN and normalize\n\n\n var month = parseInt(tin.slice(2, 4), 10);\n\n if (month > 50) {\n month -= 50;\n }\n\n if (month < 10) {\n month = \"0\".concat(month);\n } // Check date validity\n\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(tin.slice(4, 6));\n\n if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n }\n\n return true;\n}\n/*\n * sl-SI validation function\n * (Davčna številka, persons/entities)\n * Verify TIN validity by calculating check (last) digit (variant of MOD 11)\n */\n\n\nfunction slSiCheck(tin) {\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {\n return parseInt(a, 10);\n }), 8) % 11;\n\n if (checksum === 10) {\n return parseInt(tin[7], 10) === 0;\n }\n\n return checksum === parseInt(tin[7], 10);\n}\n/*\n * sv-SE validation function\n * (Personnummer or samordningsnummer, persons only)\n * Checks validity of birth date and calls luhnCheck() to validate check (last) digit\n */\n\n\nfunction svSeCheck(tin) {\n // Make copy of TIN and normalize to two-digit year form\n var tin_copy = tin.slice(0);\n\n if (tin.length > 11) {\n tin_copy = tin_copy.slice(2);\n } // Extract date of birth\n\n\n var full_year = '';\n var month = tin_copy.slice(2, 4);\n var day = parseInt(tin_copy.slice(4, 6), 10);\n\n if (tin.length > 11) {\n full_year = tin.slice(0, 4);\n } else {\n full_year = tin.slice(0, 2);\n\n if (tin.length === 11 && day < 60) {\n // Extract full year from centenarian symbol\n // Should work just fine until year 10000 or so\n var current_year = new Date().getFullYear().toString();\n var current_century = parseInt(current_year.slice(0, 2), 10);\n current_year = parseInt(current_year, 10);\n\n if (tin[6] === '-') {\n if (parseInt(\"\".concat(current_century).concat(full_year), 10) > current_year) {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n } else {\n full_year = \"\".concat(current_century).concat(full_year);\n }\n } else {\n full_year = \"\".concat(current_century - 1).concat(full_year);\n\n if (current_year - parseInt(full_year, 10) < 100) {\n return false;\n }\n }\n }\n } // Normalize day and check date validity\n\n\n if (day > 60) {\n day -= 60;\n }\n\n if (day < 10) {\n day = \"0\".concat(day);\n }\n\n var date = \"\".concat(full_year, \"/\").concat(month, \"/\").concat(day);\n\n if (date.length === 8) {\n if (!(0, _isDate.default)(date, 'YY/MM/DD')) {\n return false;\n }\n } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {\n return false;\n }\n\n return algorithms.luhnCheck(tin.replace(/\\W/, ''));\n} // Locale lookup objects\n\n/*\n * Tax id regex formats for various locales\n *\n * Where not explicitly specified in DG-TAXUD document both\n * uppercase and lowercase letters are acceptable.\n */\n\n\nvar taxIdFormat = {\n 'bg-BG': /^\\d{10}$/,\n 'cs-CZ': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'de-AT': /^\\d{9}$/,\n 'de-DE': /^[1-9]\\d{10}$/,\n 'dk-DK': /^\\d{6}-{0,1}\\d{4}$/,\n 'el-CY': /^[09]\\d{7}[A-Z]$/,\n 'el-GR': /^([0-4]|[7-9])\\d{8}$/,\n 'en-CA': /^\\d{9}$/,\n 'en-GB': /^\\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\\d{6}[ABCD ]$/i,\n 'en-IE': /^\\d{7}[A-W][A-IW]{0,1}$/i,\n 'en-US': /^\\d{2}[- ]{0,1}\\d{7}$/,\n 'es-ES': /^(\\d{0,8}|[XYZKLM]\\d{7})[A-HJ-NP-TV-Z]$/i,\n 'et-EE': /^[1-6]\\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\\d$/,\n 'fi-FI': /^\\d{6}[-+A]\\d{3}[0-9A-FHJ-NPR-Y]$/i,\n 'fr-BE': /^\\d{11}$/,\n 'fr-FR': /^[0-3]\\d{12}$|^[0-3]\\d\\s\\d{2}(\\s\\d{3}){3}$/,\n // Conforms both to official spec and provided example\n 'fr-LU': /^\\d{13}$/,\n 'hr-HR': /^\\d{11}$/,\n 'hu-HU': /^8\\d{9}$/,\n 'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,\n 'lv-LV': /^\\d{6}-{0,1}\\d{5}$/,\n // Conforms both to DG TAXUD spec and original research\n 'mt-MT': /^\\d{3,7}[APMGLHBZ]$|^([1-8])\\1\\d{7}$/i,\n 'nl-NL': /^\\d{9}$/,\n 'pl-PL': /^\\d{10,11}$/,\n 'pt-BR': /(?:^\\d{11}$)|(?:^\\d{14}$)/,\n 'pt-PT': /^\\d{9}$/,\n 'ro-RO': /^\\d{13}$/,\n 'sk-SK': /^\\d{6}\\/{0,1}\\d{3,4}$/,\n 'sl-SI': /^[1-9]\\d{7}$/,\n 'sv-SE': /^(\\d{6}[-+]{0,1}\\d{4}|(18|19|20)\\d{6}[-+]{0,1}\\d{4})$/\n}; // taxIdFormat locale aliases\n\ntaxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];\ntaxIdFormat['lt-LT'] = taxIdFormat['et-EE'];\ntaxIdFormat['nl-BE'] = taxIdFormat['fr-BE'];\ntaxIdFormat['fr-CA'] = taxIdFormat['en-CA']; // Algorithmic tax id check functions for various locales\n\nvar taxIdCheck = {\n 'bg-BG': bgBgCheck,\n 'cs-CZ': csCzCheck,\n 'de-AT': deAtCheck,\n 'de-DE': deDeCheck,\n 'dk-DK': dkDkCheck,\n 'el-CY': elCyCheck,\n 'el-GR': elGrCheck,\n 'en-CA': isCanadianSIN,\n 'en-IE': enIeCheck,\n 'en-US': enUsCheck,\n 'es-ES': esEsCheck,\n 'et-EE': etEeCheck,\n 'fi-FI': fiFiCheck,\n 'fr-BE': frBeCheck,\n 'fr-FR': frFrCheck,\n 'fr-LU': frLuCheck,\n 'hr-HR': hrHrCheck,\n 'hu-HU': huHuCheck,\n 'it-IT': itItCheck,\n 'lv-LV': lvLvCheck,\n 'mt-MT': mtMtCheck,\n 'nl-NL': nlNlCheck,\n 'pl-PL': plPlCheck,\n 'pt-BR': ptBrCheck,\n 'pt-PT': ptPtCheck,\n 'ro-RO': roRoCheck,\n 'sk-SK': skSkCheck,\n 'sl-SI': slSiCheck,\n 'sv-SE': svSeCheck\n}; // taxIdCheck locale aliases\n\ntaxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];\ntaxIdCheck['lt-LT'] = taxIdCheck['et-EE'];\ntaxIdCheck['nl-BE'] = taxIdCheck['fr-BE'];\ntaxIdCheck['fr-CA'] = taxIdCheck['en-CA']; // Regexes for locales where characters should be omitted before checking format\n\nvar allsymbols = /[-\\\\\\/!@#$%\\^&\\*\\(\\)\\+\\=\\[\\]]+/g;\nvar sanitizeRegexes = {\n 'de-AT': allsymbols,\n 'de-DE': /[\\/\\\\]/g,\n 'fr-BE': allsymbols\n}; // sanitizeRegexes locale aliases\n\nsanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];\n/*\n * Validator function\n * Return true if the passed string is a valid tax identification number\n * for the specified locale.\n * Throw an error exception if the locale is not supported.\n */\n\nfunction isTaxID(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str); // Copy TIN to avoid replacement if sanitized\n\n var strcopy = str.slice(0);\n\n if (locale in taxIdFormat) {\n if (locale in sanitizeRegexes) {\n strcopy = strcopy.replace(sanitizeRegexes[locale], '');\n }\n\n if (!taxIdFormat[locale].test(strcopy)) {\n return false;\n }\n\n if (locale in taxIdCheck) {\n return taxIdCheck[locale](strcopy);\n } // Fallthrough; not all locales have algorithmic checks\n\n\n return true;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isTime;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_time_options = {\n hourFormat: 'hour24',\n mode: 'default'\n};\nvar formats = {\n hour24: {\n default: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,\n withSeconds: /^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/\n },\n hour12: {\n default: /^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,\n withSeconds: /^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/\n }\n};\n\nfunction isTime(input, options) {\n options = (0, _merge.default)(options, default_time_options);\n if (typeof input !== 'string') return false;\n return formats[options.hourFormat][options.mode].test(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n allow_fragments: true,\n allow_query_components: true,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n if (!options.allow_fragments && url.includes('#')) {\n return false;\n }\n\n if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {\n return false;\n }\n\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.slice(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.slice(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n if (split[0] === '') {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n\n var _auth$split = auth.split(':'),\n _auth$split2 = _slicedToArray(_auth$split, 2),\n user = _auth$split2[0],\n password = _auth$split2[1];\n\n if (user === '' && password === '') {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null && port_str.length > 0) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n\n if (options.host_whitelist) {\n return checkHost(host, options.host_whitelist);\n }\n\n if (host === '' && !options.require_host) {\n return true;\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uuid = {\n 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nfunction isUUID(str, version) {\n (0, _assertString.default)(str);\n var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];\n return !!pattern && pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVAT;\nexports.vatMatchers = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar algorithms = _interopRequireWildcard(require(\"./util/algorithms\"));\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PT = function PT(str) {\n var match = str.match(/^(PT)?(\\d{9})$/);\n\n if (!match) {\n return false;\n }\n\n var tin = match[2];\n var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {\n return parseInt(a, 10);\n }), 9) % 11;\n\n if (checksum > 9) {\n return parseInt(tin[8], 10) === 0;\n }\n\n return checksum === parseInt(tin[8], 10);\n};\n\nvar vatMatchers = {\n /**\r\n * European Union VAT identification numbers\r\n */\n AT: function AT(str) {\n return /^(AT)?U\\d{8}$/.test(str);\n },\n BE: function BE(str) {\n return /^(BE)?\\d{10}$/.test(str);\n },\n BG: function BG(str) {\n return /^(BG)?\\d{9,10}$/.test(str);\n },\n HR: function HR(str) {\n return /^(HR)?\\d{11}$/.test(str);\n },\n CY: function CY(str) {\n return /^(CY)?\\w{9}$/.test(str);\n },\n CZ: function CZ(str) {\n return /^(CZ)?\\d{8,10}$/.test(str);\n },\n DK: function DK(str) {\n return /^(DK)?\\d{8}$/.test(str);\n },\n EE: function EE(str) {\n return /^(EE)?\\d{9}$/.test(str);\n },\n FI: function FI(str) {\n return /^(FI)?\\d{8}$/.test(str);\n },\n FR: function FR(str) {\n return /^(FR)?\\w{2}\\d{9}$/.test(str);\n },\n DE: function DE(str) {\n return /^(DE)?\\d{9}$/.test(str);\n },\n EL: function EL(str) {\n return /^(EL)?\\d{9}$/.test(str);\n },\n HU: function HU(str) {\n return /^(HU)?\\d{8}$/.test(str);\n },\n IE: function IE(str) {\n return /^(IE)?\\d{7}\\w{1}(W)?$/.test(str);\n },\n IT: function IT(str) {\n return /^(IT)?\\d{11}$/.test(str);\n },\n LV: function LV(str) {\n return /^(LV)?\\d{11}$/.test(str);\n },\n LT: function LT(str) {\n return /^(LT)?\\d{9,12}$/.test(str);\n },\n LU: function LU(str) {\n return /^(LU)?\\d{8}$/.test(str);\n },\n MT: function MT(str) {\n return /^(MT)?\\d{8}$/.test(str);\n },\n NL: function NL(str) {\n return /^(NL)?\\d{9}B\\d{2}$/.test(str);\n },\n PL: function PL(str) {\n return /^(PL)?(\\d{10}|(\\d{3}-\\d{3}-\\d{2}-\\d{2})|(\\d{3}-\\d{2}-\\d{2}-\\d{3}))$/.test(str);\n },\n PT: PT,\n RO: function RO(str) {\n return /^(RO)?\\d{2,10}$/.test(str);\n },\n SK: function SK(str) {\n return /^(SK)?\\d{10}$/.test(str);\n },\n SI: function SI(str) {\n return /^(SI)?\\d{8}$/.test(str);\n },\n ES: function ES(str) {\n return /^(ES)?\\w\\d{7}[A-Z]$/.test(str);\n },\n SE: function SE(str) {\n return /^(SE)?\\d{12}$/.test(str);\n },\n\n /**\r\n * VAT numbers of non-EU countries\r\n */\n AL: function AL(str) {\n return /^(AL)?\\w{9}[A-Z]$/.test(str);\n },\n MK: function MK(str) {\n return /^(MK)?\\d{13}$/.test(str);\n },\n AU: function AU(str) {\n return /^(AU)?\\d{11}$/.test(str);\n },\n BY: function BY(str) {\n return /^(УНП )?\\d{9}$/.test(str);\n },\n CA: function CA(str) {\n return /^(CA)?\\d{9}$/.test(str);\n },\n IS: function IS(str) {\n return /^(IS)?\\d{5,6}$/.test(str);\n },\n IN: function IN(str) {\n return /^(IN)?\\d{15}$/.test(str);\n },\n ID: function ID(str) {\n return /^(ID)?(\\d{15}|(\\d{2}.\\d{3}.\\d{3}.\\d{1}-\\d{3}.\\d{3}))$/.test(str);\n },\n IL: function IL(str) {\n return /^(IL)?\\d{9}$/.test(str);\n },\n KZ: function KZ(str) {\n return /^(KZ)?\\d{9}$/.test(str);\n },\n NZ: function NZ(str) {\n return /^(NZ)?\\d{9}$/.test(str);\n },\n NG: function NG(str) {\n return /^(NG)?(\\d{12}|(\\d{8}-\\d{4}))$/.test(str);\n },\n NO: function NO(str) {\n return /^(NO)?\\d{9}MVA$/.test(str);\n },\n PH: function PH(str) {\n return /^(PH)?(\\d{12}|\\d{3} \\d{3} \\d{3} \\d{3})$/.test(str);\n },\n RU: function RU(str) {\n return /^(RU)?(\\d{10}|\\d{12})$/.test(str);\n },\n SM: function SM(str) {\n return /^(SM)?\\d{5}$/.test(str);\n },\n SA: function SA(str) {\n return /^(SA)?\\d{15}$/.test(str);\n },\n RS: function RS(str) {\n return /^(RS)?\\d{9}$/.test(str);\n },\n CH: function CH(str) {\n return /^(CH)?(\\d{6}|\\d{9}|(\\d{3}.\\d{3})|(\\d{3}.\\d{3}.\\d{3}))(TVA|MWST|IVA)$/.test(str);\n },\n TR: function TR(str) {\n return /^(TR)?\\d{10}$/.test(str);\n },\n UA: function UA(str) {\n return /^(UA)?\\d{12}$/.test(str);\n },\n GB: function GB(str) {\n return /^GB((\\d{3} \\d{4} ([0-8][0-9]|9[0-6]))|(\\d{9} \\d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(str);\n },\n UZ: function UZ(str) {\n return /^(UZ)?\\d{9}$/.test(str);\n },\n\n /**\r\n * VAT numbers of Latin American countries\r\n */\n AR: function AR(str) {\n return /^(AR)?\\d{11}$/.test(str);\n },\n BO: function BO(str) {\n return /^(BO)?\\d{7}$/.test(str);\n },\n BR: function BR(str) {\n return /^(BR)?((\\d{2}.\\d{3}.\\d{3}\\/\\d{4}-\\d{2})|(\\d{3}.\\d{3}.\\d{3}-\\d{2}))$/.test(str);\n },\n CL: function CL(str) {\n return /^(CL)?\\d{8}-\\d{1}$/.test(str);\n },\n CO: function CO(str) {\n return /^(CO)?\\d{10}$/.test(str);\n },\n CR: function CR(str) {\n return /^(CR)?\\d{9,12}$/.test(str);\n },\n EC: function EC(str) {\n return /^(EC)?\\d{13}$/.test(str);\n },\n SV: function SV(str) {\n return /^(SV)?\\d{4}-\\d{6}-\\d{3}-\\d{1}$/.test(str);\n },\n GT: function GT(str) {\n return /^(GT)?\\d{7}-\\d{1}$/.test(str);\n },\n HN: function HN(str) {\n return /^(HN)?$/.test(str);\n },\n MX: function MX(str) {\n return /^(MX)?\\w{3,4}\\d{6}\\w{3}$/.test(str);\n },\n NI: function NI(str) {\n return /^(NI)?\\d{3}-\\d{6}-\\d{4}\\w{1}$/.test(str);\n },\n PA: function PA(str) {\n return /^(PA)?$/.test(str);\n },\n PY: function PY(str) {\n return /^(PY)?\\d{6,8}-\\d{1}$/.test(str);\n },\n PE: function PE(str) {\n return /^(PE)?\\d{11}$/.test(str);\n },\n DO: function DO(str) {\n return /^(DO)?(\\d{11}|(\\d{3}-\\d{7}-\\d{1})|[1,4,5]{1}\\d{8}|([1,4,5]{1})-\\d{2}-\\d{5}-\\d{1})$/.test(str);\n },\n UY: function UY(str) {\n return /^(UY)?\\d{12}$/.test(str);\n },\n VE: function VE(str) {\n return /^(VE)?[J,G,V,E]{1}-(\\d{9}|(\\d{8}-\\d{1}))$/.test(str);\n }\n};\nexports.vatMatchers = vatMatchers;\n\nfunction isVAT(str, countryCode) {\n (0, _assertString.default)(str);\n (0, _assertString.default)(countryCode);\n\n if (countryCode in vatMatchers) {\n return vatMatchers[countryCode](str);\n }\n\n throw new Error(\"Invalid country code: '\".concat(countryCode, \"'\"));\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isWhitelisted;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isWhitelisted(str, chars) {\n (0, _assertString.default)(str);\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (chars.indexOf(str[i]) === -1) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = ltrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ltrim(str, chars) {\n (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n\n var pattern = chars ? new RegExp(\"^[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+\"), 'g') : /^\\s+/g;\n return str.replace(pattern, '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return !!str.match(pattern);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = normalizeEmail;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_normalize_email_options = {\n // The following options apply to all email addresses\n // Lowercases the local part of the email address.\n // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).\n // The domain is always lowercased, as per RFC 1035\n all_lowercase: true,\n // The following conversions are specific to GMail\n // Lowercases the local part of the GMail address (known to be case-insensitive)\n gmail_lowercase: true,\n // Removes dots from the local part of the email address, as that's ignored by GMail\n gmail_remove_dots: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n gmail_remove_subaddress: true,\n // Conversts the googlemail.com domain to gmail.com\n gmail_convert_googlemaildotcom: true,\n // The following conversions are specific to Outlook.com / Windows Live / Hotmail\n // Lowercases the local part of the Outlook.com address (known to be case-insensitive)\n outlookdotcom_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n outlookdotcom_remove_subaddress: true,\n // The following conversions are specific to Yahoo\n // Lowercases the local part of the Yahoo address (known to be case-insensitive)\n yahoo_lowercase: true,\n // Removes the subaddress (e.g. \"-foo\") from the email address\n yahoo_remove_subaddress: true,\n // The following conversions are specific to Yandex\n // Lowercases the local part of the Yandex address (known to be case-insensitive)\n yandex_lowercase: true,\n // The following conversions are specific to iCloud\n // Lowercases the local part of the iCloud address (known to be case-insensitive)\n icloud_lowercase: true,\n // Removes the subaddress (e.g. \"+foo\") from the email address\n icloud_remove_subaddress: true\n}; // List of domains used by iCloud\n\nvar icloud_domains = ['icloud.com', 'me.com']; // List of domains used by Outlook.com and its predecessors\n// This list is likely incomplete.\n// Partial reference:\n// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/\n\nvar outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com']; // List of domains used by Yahoo Mail\n// This list is likely incomplete\n\nvar yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com']; // List of domains used by yandex.ru\n\nvar yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru']; // replace single dots, but not multiple consecutive dots\n\nfunction dotsReplacer(match) {\n if (match.length > 1) {\n return match;\n }\n\n return '';\n}\n\nfunction normalizeEmail(email, options) {\n options = (0, _merge.default)(options, default_normalize_email_options);\n var raw_parts = email.split('@');\n var domain = raw_parts.pop();\n var user = raw_parts.join('@');\n var parts = [user, domain]; // The domain is always lowercased, as it's case-insensitive per RFC 1035\n\n parts[1] = parts[1].toLowerCase();\n\n if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {\n // Address is GMail\n if (options.gmail_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (options.gmail_remove_dots) {\n // this does not replace consecutive dots like example..email@gmail.com\n parts[0] = parts[0].replace(/\\.+/g, dotsReplacer);\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.gmail_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];\n } else if (icloud_domains.indexOf(parts[1]) >= 0) {\n // Address is iCloud\n if (options.icloud_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.icloud_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {\n // Address is Outlook.com\n if (options.outlookdotcom_remove_subaddress) {\n parts[0] = parts[0].split('+')[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.outlookdotcom_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yahoo_domains.indexOf(parts[1]) >= 0) {\n // Address is Yahoo\n if (options.yahoo_remove_subaddress) {\n var components = parts[0].split('-');\n parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];\n }\n\n if (!parts[0].length) {\n return false;\n }\n\n if (options.all_lowercase || options.yahoo_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n } else if (yandex_domains.indexOf(parts[1]) >= 0) {\n if (options.all_lowercase || options.yandex_lowercase) {\n parts[0] = parts[0].toLowerCase();\n }\n\n parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred\n } else if (options.all_lowercase) {\n // Any other address\n parts[0] = parts[0].toLowerCase();\n }\n\n return parts.join('@');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rtrim;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction rtrim(str, chars) {\n (0, _assertString.default)(str);\n\n if (chars) {\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\n var pattern = new RegExp(\"[\".concat(chars.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), \"]+$\"), 'g');\n return str.replace(pattern, '');\n } // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript\n\n\n var strIndex = str.length - 1;\n\n while (/\\s/.test(str.charAt(strIndex))) {\n strIndex -= 1;\n }\n\n return str.slice(0, strIndex + 1);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stripLow;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _blacklist = _interopRequireDefault(require(\"./blacklist\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction stripLow(str, keep_new_lines) {\n (0, _assertString.default)(str);\n var chars = keep_new_lines ? '\\\\x00-\\\\x09\\\\x0B\\\\x0C\\\\x0E-\\\\x1F\\\\x7F' : '\\\\x00-\\\\x1F\\\\x7F';\n return (0, _blacklist.default)(str, chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toBoolean(str, strict) {\n (0, _assertString.default)(str);\n\n if (strict) {\n return str === '1' || /^true$/i.test(str);\n }\n\n return str !== '0' && !/^false$/i.test(str) && str !== '';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toDate(date) {\n (0, _assertString.default)(date);\n date = Date.parse(date);\n return !isNaN(date) ? new Date(date) : null;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toInt(str, radix) {\n (0, _assertString.default)(str);\n return parseInt(str, radix || 10);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = trim;\n\nvar _rtrim = _interopRequireDefault(require(\"./rtrim\"));\n\nvar _ltrim = _interopRequireDefault(require(\"./ltrim\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction trim(str, chars) {\n return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = unescape;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction unescape(str) {\n (0, _assertString.default)(str);\n return str.replace(/"/g, '\"').replace(/'/g, \"'\").replace(/</g, '<').replace(/>/g, '>').replace(///g, '/').replace(/\/g, '\\\\').replace(/`/g, '`').replace(/&/g, '&'); // & replacement has to be the last one to prevent\n // bugs with intermediate strings containing escape sequences\n // See: https://github.com/validatorjs/validator.js/issues/1827\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.iso7064Check = iso7064Check;\nexports.luhnCheck = luhnCheck;\nexports.reverseMultiplyAndSum = reverseMultiplyAndSum;\nexports.verhoeffCheck = verhoeffCheck;\n\n/**\n * Algorithmic validation functions\n * May be used as is or implemented in the workflow of other validators.\n */\n\n/*\n * ISO 7064 validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to ISO 7064 (MOD 11, 10).\n */\nfunction iso7064Check(str) {\n var checkvalue = 10;\n\n for (var i = 0; i < str.length - 1; i++) {\n checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;\n }\n\n checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;\n return checkvalue === parseInt(str[10], 10);\n}\n/*\n * Luhn (mod 10) validation function\n * Called with a string of numbers (incl. check digit)\n * to validate according to the Luhn algorithm.\n */\n\n\nfunction luhnCheck(str) {\n var checksum = 0;\n var second = false;\n\n for (var i = str.length - 1; i >= 0; i--) {\n if (second) {\n var product = parseInt(str[i], 10) * 2;\n\n if (product > 9) {\n // sum digits of product and add to checksum\n checksum += product.toString().split('').map(function (a) {\n return parseInt(a, 10);\n }).reduce(function (a, b) {\n return a + b;\n }, 0);\n } else {\n checksum += product;\n }\n } else {\n checksum += parseInt(str[i], 10);\n }\n\n second = !second;\n }\n\n return checksum % 10 === 0;\n}\n/*\n * Reverse TIN multiplication and summation helper function\n * Called with an array of single-digit integers and a base multiplier\n * to calculate the sum of the digits multiplied in reverse.\n * Normally used in variations of MOD 11 algorithmic checks.\n */\n\n\nfunction reverseMultiplyAndSum(digits, base) {\n var total = 0;\n\n for (var i = 0; i < digits.length; i++) {\n total += digits[i] * (base - i);\n }\n\n return total;\n}\n/*\n * Verhoeff validation helper function\n * Called with a string of numbers\n * to validate according to the Verhoeff algorithm.\n */\n\n\nfunction verhoeffCheck(str) {\n var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];\n var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // Copy (to prevent replacement) and reverse\n\n var str_copy = str.split('').reverse().join('');\n var checksum = 0;\n\n for (var i = 0; i < str_copy.length; i++) {\n checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];\n }\n\n return checksum === 0;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = whitelist;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction whitelist(str, chars) {\n (0, _assertString.default)(str);\n return str.replace(new RegExp(\"[^\".concat(chars, \"]+\"), 'g'), '');\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","/**\n * This file automatically generated from `pre-publish.js`.\n * Do not manually edit.\n */\n\nmodule.exports = {\n \"area\": true,\n \"base\": true,\n \"br\": true,\n \"col\": true,\n \"embed\": true,\n \"hr\": true,\n \"img\": true,\n \"input\": true,\n \"link\": true,\n \"meta\": true,\n \"param\": true,\n \"source\": true,\n \"track\": true,\n \"wbr\": true\n};\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import { createContext } from 'react';\nexport const ReactReduxContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ReactReduxContext.displayName = 'ReactRedux';\n}\n\nexport default ReactReduxContext;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\n\n/**\r\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\r\n * hook that you should usually not need to call directly.\r\n *\r\n * @returns {any} the value of the `ReactReduxContext`\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useReduxContext } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const { store } = useReduxContext()\r\n * return
{store.getState()}
\r\n * }\r\n */\nexport function useReduxContext() {\n const contextValue = useContext(ReactReduxContext);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a ');\n }\n\n return contextValue;\n}","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import { useContext, useDebugValue } from 'react';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : () => useContext(context);\n return function useSelector(selector, equalityFn = refEquality) {\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState\n } = useReduxContext();\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, selector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe,\n tryUnsubscribe,\n getListeners: () => listeners\n };\n return subscription;\n}","import { useEffect, useLayoutEffect } from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;","import React, { useMemo } from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState\n}) {\n const contextValue = useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined\n };\n }, [store, serverState]);\n const previousState = useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\r\n * Hook factory, which creates a `useStore` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useStore` hook bound to the specified context.\r\n */\n\nexport function createStoreHook(context = ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === ReactReduxContext ? useDefaultReduxContext : () => useContext(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\r\n * A hook to access the redux store.\r\n *\r\n * @returns {any} the redux store\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useStore } from 'react-redux'\r\n *\r\n * export const ExampleComponent = () => {\r\n * const store = useStore()\r\n * return
{store.getState()}
\r\n * }\r\n */\n\nexport const useStore = /*#__PURE__*/createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\r\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useDispatch` hook bound to the specified context.\r\n */\n\nexport function createDispatchHook(context = ReactReduxContext) {\n const useStore = // @ts-ignore\n context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\r\n * A hook to access the redux `dispatch` function.\r\n *\r\n * @returns {any|function} redux store's `dispatch` function\r\n *\r\n * @example\r\n *\r\n * import React, { useCallback } from 'react'\r\n * import { useDispatch } from 'react-redux'\r\n *\r\n * export const CounterComponent = ({ value }) => {\r\n * const dispatch = useDispatch()\r\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\r\n * return (\r\n *
\r\n * {value}\r\n * \r\n *
\r\n * )\r\n * }\r\n */\n\nexport const useDispatch = /*#__PURE__*/createDispatchHook();","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport React, { useContext, useMemo, useRef } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = useRef();\n const lastWrapperProps = useRef(wrapperProps);\n const childPropsFromStoreUpdate = useRef();\n const renderIsScheduled = useRef(false);\n const isProcessingDispatch = useRef(false);\n const isMounted = useRef(false);\n const latestSubscriptionCallbackError = useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an
attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a