{"version":3,"file":"static/js/vendor.async.landing~6575d636.4922b7df.chunk.js","mappings":"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,EAAS,CACX,CAAI,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,QAAY,UAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,YACxC,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,SAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,QAAY,UACpC,UAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,YACxC,CAAI,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,UAAY,SACpC,WAAY,SAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,SAAY,SACpC,WAAY,WAAY,WAAY,WACpC,UAAY,UAAY,WAAY,UACpC,WAAY,WAAY,SAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,SACpC,UA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","sources":["../../../../node_modules/.pnpm/@babel+runtime-corejs2@7.12.5/node_modules/@babel/runtime-corejs2/helpers/extends.js","../../../../node_modules/.pnpm/@babel+runtime-corejs2@7.12.5/node_modules/@babel/runtime-corejs2/helpers/inheritsLoose.js","../../../../node_modules/.pnpm/@babel+runtime-corejs2@7.12.5/node_modules/@babel/runtime-corejs2/helpers/interopRequireDefault.js","../../../../node_modules/.pnpm/@babel+runtime-corejs2@7.12.5/node_modules/@babel/runtime-corejs2/helpers/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbButton/useBreadcrumbButtonStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbButton/BreadcrumbButton.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbButton/useBreadcrumbButton.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbButton/renderBreadcrumbButton.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbDivider/useBreadcrumbDivider.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbDivider/useBreadcrumbDividerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbDivider/BreadcrumbDivider.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbDivider/renderBreadcrumbDivider.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbItem/useBreadcrumbItemStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbItem/BreadcrumbItem.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbItem/useBreadcrumbItem.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/BreadcrumbItem/renderBreadcrumbItem.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/useBreadcrumbStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/Breadcrumb.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/useBreadcrumb.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/useBreadcrumbContextValue.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/renderBreadcrumb.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/components/Breadcrumb/BreadcrumbContext.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/utils/partitionBreadcrumbItems.js","../../../../node_modules/.pnpm/@fluentui+react-breadcrumb@9.0.34_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17._zu6tlyn3kd6v2vhuow7jrne4ca/node_modules/@fluentui/react-breadcrumb/lib/utils/truncateBreadcrumb.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselCard/CarouselCard.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselCard/useCarouselCard.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselCard/renderCarouselCard.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselCard/useCarouselCardStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselContext.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavButton/CarouselNavButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavButton/useCarouselNavButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavButton/renderCarouselNavButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselAutoplayButton/useCarouselAutoplayButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselButton/useCarouselButtonStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselButton/useCarouselButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselButton/CarouselButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselButton/renderCarouselButton.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavContainer/renderCarouselNavContainer.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavContainer/CarouselNavContainer.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNavContainer/useCarouselNavContainer.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/useCarouselNavStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/CarouselNav.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/useCarouselNav.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/renderCarouselNav.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/CarouselNavContext.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselNav/CarouselNavIndexContext.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselSlider/CarouselSlider.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselSlider/useCarouselSlider.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselSlider/renderCarouselSlider.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselSlider/CarouselSliderContext.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselViewport/CarouselViewport.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselViewport/useCarouselViewport.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/CarouselViewport/renderCarouselViewport.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/Carousel/Carousel.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/Carousel/useCarousel.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/Carousel/useCarouselContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/Carousel/renderCarousel.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/Carousel/useCarouselStyles.styles.js","../../../../node_modules/.pnpm/embla-carousel@8.5.2/node_modules/embla-carousel/esm/embla-carousel.esm.js","../../../../node_modules/.pnpm/embla-carousel-autoplay@8.5.2_embla-carousel@8.5.2/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js","../../../../node_modules/.pnpm/embla-carousel-fade@8.5.2_embla-carousel@8.5.2/node_modules/embla-carousel-fade/esm/embla-carousel-fade.esm.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/useEmblaCarousel.js","../../../../node_modules/.pnpm/@fluentui+react-carousel@9.4.4_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-carousel/lib/components/pointerEvents.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/HorizontalBarChart/HorizontalBarChart.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/HorizontalBarChart/HorizontalBarChart.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/HorizontalBarChart/HorizontalBarChart.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/Legends/Legends.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/Legends/Legends.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/Legends/Legends.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/Legends/shape.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/CommonComponents/CartesianChart.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/CommonComponents/CartesianChart.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/CommonComponents/CartesianChart.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/eventAnnotation/Textbox.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/eventAnnotation/LabelLink.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/eventAnnotation/EventAnnotation.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/LineChart.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/LineChart.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/LineChart/LineChart.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/MultiStackedBarChart.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/MultiStackedBarChart.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/MultiStackedBarChart.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/StackedBarChart.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/StackedBarChart.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/components/StackedBarChart/StackedBarChart.styles.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/utilities/ChartHoverCard/ChartHoverCard.base.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/utilities/ChartHoverCard/ChartHoverCard.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/utilities/ChartHoverCard/ChartHoverCard.styles.js","../../../../node_modules/.pnpm/d3-axis@1.0.8/node_modules/d3-axis/src/array.js","../../../../node_modules/.pnpm/d3-axis@1.0.8/node_modules/d3-axis/src/identity.js","../../../../node_modules/.pnpm/d3-axis@1.0.8/node_modules/d3-axis/src/axis.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/ascending.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/bisector.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/bisect.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/array.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/ticks.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/max.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/min.js","../../../../node_modules/.pnpm/d3-collection@1.0.7/node_modules/d3-collection/src/map.js","../../../../node_modules/.pnpm/d3-collection@1.0.7/node_modules/d3-collection/src/set.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/array.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/ordinal.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/band.js","../../../../node_modules/.pnpm/d3-array@1.2.1/node_modules/d3-array/src/range.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/number.js","../../../../node_modules/.pnpm/d3-color@1.4.1/node_modules/d3-color/src/define.js","../../../../node_modules/.pnpm/d3-color@1.4.1/node_modules/d3-color/src/color.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/basis.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/constant.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/color.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/rgb.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/basisClosed.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/array.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/date.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/object.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/string.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/numberArray.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/value.js","../../../../node_modules/.pnpm/d3-interpolate@1.4.0/node_modules/d3-interpolate/src/round.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/number.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/continuous.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/constant.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/exponent.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatRounded.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatTypes.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/identity.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/locale.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/defaultLocale.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatGroup.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatTrim.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/tickFormat.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/precisionPrefix.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/precisionRound.js","../../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/precisionFixed.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/linear.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/interval.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/year.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/month.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/duration.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/week.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/day.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/hour.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/minute.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/second.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/millisecond.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcWeek.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcDay.js","../../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcYear.js","../../../../node_modules/.pnpm/d3-time-format@2.3.0/node_modules/d3-time-format/src/locale.js","../../../../node_modules/.pnpm/d3-time-format@2.3.0/node_modules/d3-time-format/src/defaultLocale.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/time.js","../../../../node_modules/.pnpm/d3-scale@2.0.0/node_modules/d3-scale/src/nice.js","../../../../node_modules/.pnpm/@fluentui+react-charting@5.10.0_@fluentui+react@8.48.0_@types+react-dom@17.0.22_@types+react@_4xpjj5hdupthtsortvvhs7imv4/node_modules/@fluentui/react-charting/lib/utilities/utilities.js","../../../../node_modules/.pnpm/@fluentui+react-combobox@9.13.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0._sxugnw7lltxopyuyljdptb4j6e/node_modules/@fluentui/react-combobox/lib/hooks/useComboboxFilter.js","../../../../node_modules/.pnpm/@fluentui+react-context-selector@9.1.44_@types+react-dom@17.0.22_@types+react@17.0.69_react-d_eqt2bda73btjdr7ss5mfvpgfbq/node_modules/@fluentui/react-context-selector/lib/useContextSelector.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/contexts/dialogContext.js","../../../../node_modules/.pnpm/@fluentui+react-context-selector@9.1.44_@types+react-dom@17.0.22_@types+react@17.0.69_react-d_eqt2bda73btjdr7ss5mfvpgfbq/node_modules/@fluentui/react-context-selector/lib/createContext.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/contexts/dialogSurfaceContext.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/useDrawerBodyStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/DrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/useDrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/renderDrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/useDrawerFooterStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/DrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/useDrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/renderDrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/useDialogTrigger.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/DialogTrigger.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogTrigger/renderDialogTrigger.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitleStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/useDrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogTitle/useDialogTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/renderDrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/useDrawerHeaderTitleStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/DrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/useDrawerHeaderStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/DrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/useDrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/renderDrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerInline/useDrawerInlineStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerInline/DrawerInline.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerInline/useDrawerInline.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerInline/renderDrawerInline.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/contexts/dialogTransitionContext.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurface.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/components/Portal/usePortalMountNodeStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/components/Portal/usePortalMountNode.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/components/Portal/usePortal.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/utils/toMountNodeProps.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/components/Portal/renderPortal.js","../../../../node_modules/.pnpm/@fluentui+react-portal@9.4.5_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-portal/lib/components/Portal/Portal.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/DialogSurface.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/useDialogSurfaceContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/DialogSurface/renderDialogSurface.js","../../../../node_modules/.pnpm/@fluentui+react-context-selector@9.1.44_@types+react-dom@17.0.22_@types+react@17.0.69_react-d_eqt2bda73btjdr7ss5mfvpgfbq/node_modules/@fluentui/react-context-selector/lib/useHasParentContext.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/utils/useDisableBodyScroll.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialog.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/utils/useFocusFirstElement.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/Dialog/Dialog.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/Dialog/useDialogContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-dialog@9.9.1_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-dialog/lib/components/Dialog/renderDialog.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerOverlay/useDrawerOverlayStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerOverlay/DrawerOverlay.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerOverlay/useDrawerOverlay.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/DrawerOverlay/renderDrawerOverlay.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/Drawer/useDrawerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/Drawer/Drawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/Drawer/useDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/components/Drawer/renderDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/util/getDefaultDrawerProps.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.0.0-beta.17_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@_cdx34joqk5we3iyeuvlx3hhxtq/node_modules/@fluentui/react-drawer/lib/util/useDrawerBaseStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/contexts/drawerContext.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/shared/useDrawerBaseStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/shared/drawerMotions.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/shared/useDrawerDefaultProps.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/OverlayDrawerSurface/useOverlayDrawerSurfaceStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/OverlayDrawerSurface/OverlayDrawerSurface.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/shared/drawerMotionUtils.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/useOverlayDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/renderOverlayDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/useOverlayDrawerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/OverlayDrawer/OverlayDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/InlineDrawer/useInlineDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/InlineDrawer/renderInlineDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/InlineDrawer/useInlineDrawerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/InlineDrawer/InlineDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/Drawer/useDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/Drawer/renderDrawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/Drawer/useDrawerStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/Drawer/Drawer.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/useDrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/renderDrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/useDrawerBodyStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerBody/DrawerBody.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/useDrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/renderDrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/useDrawerHeaderStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeader/DrawerHeader.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/useDrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/renderDrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/useDrawerHeaderTitleStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderTitle/DrawerHeaderTitle.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderNavigation/useDrawerHeaderNavigation.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderNavigation/renderDrawerHeaderNavigation.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderNavigation/useDrawerHeaderNavigationStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerHeaderNavigation/DrawerHeaderNavigation.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/useDrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/renderDrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/useDrawerFooterStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-drawer@9.5.18_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0.1_react@17.0.1__react@17.0.1/node_modules/@fluentui/react-drawer/lib/components/DrawerFooter/DrawerFooter.js","../../../../node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.3_@types+react@17.0.69_react@17.0.1/node_modules/@fluentui/react-jsx-runtime/lib/jsx/createElementFromSlotComponent.js","../../../../node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.3_@types+react@17.0.69_react@17.0.1/node_modules/@fluentui/react-jsx-runtime/lib/utils/getMetadataFromSlotComponent.js","../../../../node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.3_@types+react@17.0.69_react@17.0.1/node_modules/@fluentui/react-jsx-runtime/lib/createElement.js","../../../../node_modules/.pnpm/@fluentui+react-jsx-runtime@9.0.3_@types+react@17.0.69_react@17.0.1/node_modules/@fluentui/react-jsx-runtime/lib/utils/createCompatSlotComponent.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/events/ListItemActionEvent.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/ListItem/useListItem.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/ListItem/useListItemStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/ListItem/ListItem.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/ListItem/renderListItem.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/utils/validateProperRolesAreUsed.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/useList.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/hooks/useListSelection.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/utils/calculateListRole.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/utils/calculateListItemRoleForListRole.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/useListStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/List.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/useListContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/renderList.js","../../../../node_modules/.pnpm/@fluentui+react-list-preview@0.3.2_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_fgekawgjdpf2pzruwtu7empdse/node_modules/@fluentui/react-list-preview/lib/components/List/listContext.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/MessageBarActions.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/renderMessageBarActions.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActions.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarActions/useMessageBarActionsStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/MessageBarTitle.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/renderMessageBarTitle.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitle.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarTitle/useMessageBarTitleStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarGroup/useMessageBarGroup.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarGroup/MessageBarTransition.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarGroup/renderMessageBarGroup.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarGroup/useMessageBarGroupStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-message-bar@9.0.30_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17_kivvdkoju5e52uhqyhlebhmx4q/node_modules/@fluentui/react-message-bar/lib/components/MessageBarGroup/MessageBarGroup.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerControl/useTagPickerControlStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerControl/useTagPickerControl.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/utils/useResizeObserverRef.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerControl/TagPickerControl.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerControl/renderTagPickerControl.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/utils/tokens.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerInput/useTagPickerInput.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerInput/useTagPickerInputStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerInput/TagPickerInput.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerInput/renderTagPickerInput.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerList/useTagPickerListStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerList/TagPickerList.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerList/useTagPickerList.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerList/renderTagPickerList.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerOption/useTagPickerOptionStyles.styles.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerOption/TagPickerOption.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerOption/useTagPickerOption.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPickerOption/renderTagPickerOption.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPicker/useTagPicker.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPicker/useTagPickerContextValues.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPicker/TagPicker.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/components/TagPicker/renderTagPicker.js","../../../../node_modules/.pnpm/@fluentui+react-tag-picker@9.2.3_@types+react-dom@17.0.22_@types+react@17.0.69_react-dom@17.0_gki3gmxkq4eupin44csoskfaxa/node_modules/@fluentui/react-tag-picker/lib/contexts/TagPickerContext.js","../../../../node_modules/.pnpm/cron-parser@0.3.4/node_modules/cron-parser/lib/date.js","../../../../node_modules/.pnpm/cron-parser@0.3.4/node_modules/cron-parser/lib/expression.js","../../../../node_modules/.pnpm/cron-parser@0.3.4/node_modules/cron-parser/lib/parser.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js","../../../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/namespaces.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/namespace.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/creator.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selector.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selectorAll.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/matcher.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/sparse.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/enter.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/data.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/sort.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/attr.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/window.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/style.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/property.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/classed.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/text.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/html.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/raise.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/lower.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/insert.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/remove.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/clone.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/on.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/dispatch.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/index.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/select.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/selectAll.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/filter.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/constant.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/exit.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/merge.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/order.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/call.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/nodes.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/node.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/size.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/empty.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/each.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/append.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/selection/datum.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/select.js","../../../../node_modules/.pnpm/d3-selection@1.3.0/node_modules/d3-selection/src/local.js","../../../../node_modules/.pnpm/file-extension@4.0.5/node_modules/file-extension/file-extension.js","../../../../node_modules/.pnpm/fs@0.0.2/node_modules/fs/index.js","../../../../node_modules/.pnpm/@babel+runtime@7.27.0/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../../../../node_modules/.pnpm/@babel+runtime@7.27.0/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/a11y-contrast-color@1.1.0/node_modules/a11y-contrast-color/dist/lib/color.js","../../../../node_modules/.pnpm/a11y-contrast-color@1.1.0/node_modules/a11y-contrast-color/dist/src/index.js","../../../../node_modules/.pnpm/a11y-contrast-color@1.1.0/node_modules/a11y-contrast-color/dist/types/color.js","../../../../node_modules/.pnpm/@babel+runtime@7.27.0/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js"],"sourcesContent":["var _Object$assign = require(\"@babel/runtime-corejs2/core-js/object/assign\");\n\nfunction _extends() {\n module.exports = _extends = _Object$assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","var _Object$create = require(\"@babel/runtime-corejs2/core-js/object/create\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = _Object$create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var _Object$keys = require(\"@babel/runtime-corejs2/core-js/object/keys\");\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n\n var sourceKeys = _Object$keys(source);\n\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","import { __styles, mergeClasses } from '@griffel/react';\nimport { useButtonStyles_unstable, buttonClassNames } from '@fluentui/react-button';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';\n/**\n * Static CSS class names used internally for the component slots.\n */\nexport const breadcrumbButtonClassNames = {\n root: 'fui-BreadcrumbButton',\n icon: 'fui-BreadcrumbButton__icon'\n};\n/**\n * CSS variable names used internally for styling in the Breadcrumb.\n */\nconst breadcrumbCSSVars = {\n breadcrumbIconSizeVar: '--fui-Breadcrumb--icon-size',\n breadcrumbIconLineHeightVar: '--fui-Breadcrumb--icon-line-height'\n};\nconst useIconStyles = /*#__PURE__*/__styles({\n base: {\n Be2twd7: \"fsj74e5\",\n Bqenvij: \"f1qfv4wv\",\n Bg96gwp: \"f15xapk4\",\n a9b677: \"f17j33op\",\n t21cq0: [\"fm0x6gh\", \"fbyavb5\"]\n },\n small: {\n u3h8gg: \"f1qfi7kw\",\n Biu6dll: \"f1876atl\"\n },\n medium: {\n u3h8gg: \"f1h9446d\",\n Biu6dll: \"f10xfswh\"\n },\n large: {\n u3h8gg: \"f5hcofs\",\n Biu6dll: \"f1a6v6zl\"\n }\n}, {\n d: [\".fsj74e5{font-size:var(--fui-Breadcrumb--icon-size);}\", \".f1qfv4wv{height:var(--fui-Breadcrumb--icon-size);}\", \".f15xapk4{line-height:var(--fui-Breadcrumb--icon-line-height);}\", \".f17j33op{width:var(--fui-Breadcrumb--icon-size);}\", \".fm0x6gh{margin-right:var(--spacingHorizontalXS);}\", \".fbyavb5{margin-left:var(--spacingHorizontalXS);}\", \".f1qfi7kw{--fui-Breadcrumb--icon-size:12px;}\", \".f1876atl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase200);}\", \".f1h9446d{--fui-Breadcrumb--icon-size:16px;}\", \".f10xfswh{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase400);}\", \".f5hcofs{--fui-Breadcrumb--icon-size:20px;}\", \".f1a6v6zl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase600);}\"]\n});\nconst defaultButtonStyles = {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForeground2,\n cursor: 'auto'\n};\nconst currentIconStyles = {\n ...defaultButtonStyles,\n [`& .${buttonClassNames.icon}`]: {\n color: 'unset'\n },\n [`& .${iconFilledClassName}`]: {\n display: 'none'\n },\n [`& .${iconRegularClassName}`]: {\n display: 'inline'\n }\n};\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bf4jedk: \"f18p0k4z\",\n j4b8c3: \"fv6wr3j\"\n },\n small: {\n Bqenvij: \"frvgh55\",\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fy9rknc\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"fwrc4pm\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1r1wyb6\"\n },\n medium: {\n Bqenvij: \"f1d2rq10\",\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1r1wyb6\"\n },\n large: {\n Bqenvij: \"fbhnoac\",\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fod5ikn\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"faaz57k\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1bnz8pu\"\n },\n current: {\n Jwef8y: \"f9ql6rf\",\n Bi91k9c: \"f3p8bqa\",\n eoavqd: \"f14w7a5u\",\n Bbdnnc7: \"f1irjp3o\",\n Bk3fhr4: \"f19vpps7\",\n Bmfj8id: \"fv5swzo\",\n iro3zm: \"f3h1zc4\",\n B2d53fq: \"f1xkgyln\",\n c3iz72: \"f17wbbfx\",\n x3br3k: \"fofxw0a\",\n em6i61: \"f1ol4fw6\",\n vm6p8p: \"f1q1lw4e\",\n Bszkowt: \"ff24m\",\n Dyrjrp: \"ft5r8e9\",\n ezr58z: \"f1cbpfqp\",\n nhk3du: \"f1motppv\",\n Bfrek18: \"fi9vkhg\",\n G209fr: \"f1fg3nnv\"\n },\n currentSmall: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fy9rknc\",\n Bhrd7zp: \"fl43uef\",\n Bg96gwp: \"fwrc4pm\"\n },\n currentMedium: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"fl43uef\",\n Bg96gwp: \"f1i3iumi\"\n },\n currentLarge: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fod5ikn\",\n Bhrd7zp: \"fl43uef\",\n Bg96gwp: \"faaz57k\"\n }\n}, {\n d: [\".f18p0k4z{min-width:unset;}\", \".fv6wr3j{text-wrap:nowrap;}\", \".frvgh55{height:24px;}\", \".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fy9rknc{font-size:var(--fontSizeBase200);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".fwrc4pm{line-height:var(--lineHeightBase200);}\", [\".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}\", {\n p: -1\n }], \".f1d2rq10{height:32px;}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", [\".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}\", {\n p: -1\n }], \".fbhnoac{height:40px;}\", \".fod5ikn{font-size:var(--fontSizeBase400);}\", \".faaz57k{line-height:var(--lineHeightBase400);}\", [\".f1bnz8pu{padding:var(--spacingHorizontalS);}\", {\n p: -1\n }], \".ff24m:disabled{background-color:var(--colorTransparentBackground);}\", \".ft5r8e9:disabled{color:var(--colorNeutralForeground2);}\", \".f1cbpfqp:disabled{cursor:auto;}\", \".f1motppv:disabled .fui-Button__icon{color:unset;}\", \".fi9vkhg:disabled .fui-Icon-filled{display:none;}\", \".f1fg3nnv:disabled .fui-Icon-regular{display:inline;}\", \".fl43uef{font-weight:var(--fontWeightSemibold);}\"],\n h: [\".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}\", \".f3p8bqa:hover{color:var(--colorNeutralForeground2);}\", \".f14w7a5u:hover{cursor:auto;}\", \".f1irjp3o:hover .fui-Button__icon{color:unset;}\", \".f19vpps7:hover .fui-Icon-filled{display:none;}\", \".fv5swzo:hover .fui-Icon-regular{display:inline;}\", \".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}\", \".f1xkgyln:hover:active{color:var(--colorNeutralForeground2);}\", \".f17wbbfx:hover:active{cursor:auto;}\", \".fofxw0a:hover:active .fui-Button__icon{color:unset;}\", \".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}\", \".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}\"]\n});\n/**\n * Apply styling to the BreadcrumbButton slots based on the state\n */\nexport const useBreadcrumbButtonStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const currentSizeMap = {\n small: styles.currentSmall,\n medium: styles.currentMedium,\n large: styles.currentLarge\n };\n state.root.className = mergeClasses(breadcrumbButtonClassNames.root, styles[state.size], styles.root, state.current && currentSizeMap[state.size], state.current && styles.current, state.root.className);\n if (state.icon) {\n state.icon.className = mergeClasses(iconStyles.base, iconStyles[state.size], state.icon.className);\n }\n useButtonStyles_unstable(state);\n return state;\n};\n//# sourceMappingURL=useBreadcrumbButtonStyles.styles.js.map","import * as React from 'react';\nimport { useBreadcrumbButton_unstable } from './useBreadcrumbButton';\nimport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nimport { useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * A button component which is used inside the Breadcrumb.\n */ export const BreadcrumbButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useBreadcrumbButton_unstable(props, ref);\n useBreadcrumbButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbButtonStyles_unstable')(state);\n return renderBreadcrumbButton_unstable(state);\n});\nBreadcrumbButton.displayName = 'BreadcrumbButton';\n","import * as React from 'react';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\n/**\n * Create the state required to render BreadcrumbButton.\n *\n * The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,\n * before being passed to renderBreadcrumbButton_unstable.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */ export const useBreadcrumbButton_unstable = (props, ref)=>{\n const { size } = useBreadcrumbContext_unstable();\n const { current = false, as, ...rest } = props;\n const controlType = (as !== null && as !== void 0 ? as : props.href) ? 'a' : 'button';\n var _props_ariacurrent, _props_ariadisabled;\n return {\n ...useButton_unstable({\n appearance: 'subtle',\n role: undefined,\n type: undefined,\n as: controlType,\n iconPosition: 'before',\n 'aria-current': current ? (_props_ariacurrent = props['aria-current']) !== null && _props_ariacurrent !== void 0 ? _props_ariacurrent : 'page' : undefined,\n 'aria-disabled': current ? (_props_ariadisabled = props['aria-disabled']) !== null && _props_ariadisabled !== void 0 ? _props_ariadisabled : true : undefined,\n ...rest\n }, ref),\n current,\n size\n };\n};\n","import { renderButton_unstable } from '@fluentui/react-button';\n/**\n * Render the final JSX of BreadcrumbButton\n */ export const renderBreadcrumbButton_unstable = (state)=>{\n return renderButton_unstable(state);\n};\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { ChevronRightRegular, ChevronLeftRegular } from '@fluentui/react-icons';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n/**\n * Create the state required to render BreadcrumbDivider.\n *\n * The returned state can be modified with hooks such as useBreadcrumbDividerStyles_unstable,\n * before being passed to renderBreadcrumbDivider_unstable.\n *\n * @param props - props from this instance of BreadcrumbDivider\n * @param ref - reference to root HTMLElement of BreadcrumbDivider\n */ export const useBreadcrumbDivider_unstable = (props, ref)=>{\n const { size } = useBreadcrumbContext_unstable();\n const { dir } = useFluent();\n const icon = getDividerIcon(dir);\n return {\n components: {\n root: 'li'\n },\n root: slot.always(getIntrinsicElementProps('li', {\n ref,\n 'aria-hidden': true,\n children: icon,\n ...props\n }), {\n elementType: 'li'\n }),\n size\n };\n};\n/**\n * Get icon of the divider\n *\n * @param dir - RTL or LTR\n */ function getDividerIcon(dir) {\n return dir === 'rtl' ? /*#__PURE__*/ React.createElement(ChevronLeftRegular, null) : /*#__PURE__*/ React.createElement(ChevronRightRegular, null);\n}\n","import { __styles, __resetStyles, mergeClasses } from '@griffel/react';\nexport const breadcrumbDividerClassNames = {\n root: 'fui-BreadcrumbDivider'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__resetStyles(\"rk008qs\", null, [\".rk008qs{display:flex;}\"]);\nconst useIconStyles = /*#__PURE__*/__styles({\n small: {\n Be2twd7: \"f1ugzwwg\"\n },\n medium: {\n Be2twd7: \"f4ybsrx\"\n },\n large: {\n Be2twd7: \"fe5j1ua\"\n }\n}, {\n d: [\".f1ugzwwg{font-size:12px;}\", \".f4ybsrx{font-size:16px;}\", \".fe5j1ua{font-size:20px;}\"]\n});\n/**\n * Apply styling to the BreadcrumbDivider slots based on the state\n */\nexport const useBreadcrumbDividerStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const {\n size = 'medium'\n } = state;\n state.root.className = mergeClasses(breadcrumbDividerClassNames.root, styles, iconStyles[size], state.root.className);\n return state;\n};\n//# sourceMappingURL=useBreadcrumbDividerStyles.styles.js.map","import * as React from 'react';\nimport { useBreadcrumbDivider_unstable } from './useBreadcrumbDivider';\nimport { renderBreadcrumbDivider_unstable } from './renderBreadcrumbDivider';\nimport { useBreadcrumbDividerStyles_unstable } from './useBreadcrumbDividerStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * A divider component which is used inside the Breadcrumb\n */ export const BreadcrumbDivider = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useBreadcrumbDivider_unstable(props, ref);\n useBreadcrumbDividerStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbDividerStyles_unstable')(state);\n return renderBreadcrumbDivider_unstable(state);\n});\nBreadcrumbDivider.displayName = 'BreadcrumbDivider';\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of BreadcrumbDivider\n */ export const renderBreadcrumbDivider_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const breadcrumbItemClassNames = {\n root: 'fui-BreadcrumbItem'\n};\nconst useBreadcrumbItemResetStyles = /*#__PURE__*/__resetStyles(\"r1tl60rs\", null, [\".r1tl60rs{display:flex;align-items:center;color:var(--colorNeutralForeground2);box-sizing:border-box;text-wrap:nowrap;}\"]);\n/**\n * Apply styling to the BreadcrumbItem slots based on the state\n */\nexport const useBreadcrumbItemStyles_unstable = state => {\n 'use no memo';\n\n const resetStyles = useBreadcrumbItemResetStyles();\n state.root.className = mergeClasses(breadcrumbItemClassNames.root, resetStyles, state.root.className);\n return state;\n};\n//# sourceMappingURL=useBreadcrumbItemStyles.styles.js.map","import * as React from 'react';\nimport { useBreadcrumbItem_unstable } from './useBreadcrumbItem';\nimport { renderBreadcrumbItem_unstable } from './renderBreadcrumbItem';\nimport { useBreadcrumbItemStyles_unstable } from './useBreadcrumbItemStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * BreadcrumbItem component is a wrapper for BreadcrumbLink and BreadcrumbButton.\n * It can be used as a non-interactive item.\n */ export const BreadcrumbItem = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useBreadcrumbItem_unstable(props, ref);\n useBreadcrumbItemStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbItemStyles_unstable')(state);\n return renderBreadcrumbItem_unstable(state);\n});\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\n/**\n * Create the state required to render BreadcrumbItem.\n *\n * The returned state can be modified with hooks such as useBreadcrumbItemStyles_unstable,\n * before being passed to renderBreadcrumbItem_unstable.\n *\n * @param props - props from this instance of BreadcrumbItem\n * @param ref - reference to root HTMLElement of BreadcrumbItem\n */ export const useBreadcrumbItem_unstable = (props, ref)=>{\n const { size } = useBreadcrumbContext_unstable();\n return {\n components: {\n root: 'li'\n },\n root: slot.always(getIntrinsicElementProps('li', {\n ref,\n ...props\n }), {\n elementType: 'li'\n }),\n size\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of BreadcrumbItem\n */ export const renderBreadcrumbItem_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {\n children: state.root.children\n });\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nexport const breadcrumbClassNames = {\n root: 'fui-Breadcrumb',\n list: 'fui-Breadcrumb__list'\n};\nconst useListClassName = /*#__PURE__*/__resetStyles(\"rc5rb6b\", null, [\".rc5rb6b{list-style-type:none;display:flex;align-items:center;margin:0;padding:0;}\"]);\n/**\n * Apply styling to the Breadcrumb slots based on the state\n */\nexport const useBreadcrumbStyles_unstable = state => {\n 'use no memo';\n\n const listBaseClassName = useListClassName();\n state.root.className = mergeClasses(breadcrumbClassNames.root, state.root.className);\n if (state.list) {\n state.list.className = mergeClasses(listBaseClassName, breadcrumbClassNames.list, state.list.className);\n }\n return state;\n};\n//# sourceMappingURL=useBreadcrumbStyles.styles.js.map","import * as React from 'react';\nimport { useBreadcrumb_unstable } from './useBreadcrumb';\nimport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nimport { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\nimport { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Breadcrumb component - TODO: add more docs\n */ export const Breadcrumb = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useBreadcrumb_unstable(props, ref);\n const contextValues = useBreadcrumbContextValues_unstable(state);\n useBreadcrumbStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);\n return renderBreadcrumb_unstable(state, contextValues);\n});\nBreadcrumb.displayName = 'Breadcrumb';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n/**\n * Create the state required to render Breadcrumb.\n *\n * The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,\n * before being passed to renderBreadcrumb_unstable.\n *\n * @param props - props from this instance of Breadcrumb\n * @param ref - reference to root HTMLElement of Breadcrumb\n */ export const useBreadcrumb_unstable = (props, ref)=>{\n const { focusMode = 'tab', size = 'medium', list, ...rest } = props;\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal',\n memorizeCurrent: true\n });\n var _props_arialabel;\n return {\n components: {\n root: 'nav',\n list: 'ol'\n },\n root: slot.always(getIntrinsicElementProps('nav', {\n ref,\n 'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',\n ...focusMode === 'arrow' ? focusAttributes : {},\n ...rest\n }), {\n elementType: 'nav'\n }),\n list: slot.optional(list, {\n renderByDefault: true,\n defaultProps: {\n role: 'list'\n },\n elementType: 'ol'\n }),\n size\n };\n};\n","import * as React from 'react';\nexport function useBreadcrumbContextValues_unstable(state) {\n const { size } = state;\n return React.useMemo(()=>({\n size\n }), [\n size\n ]);\n}\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { BreadcrumbProvider } from './BreadcrumbContext';\n/**\n * Render the final JSX of Breadcrumb\n */ export const renderBreadcrumb_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {\n children: /*#__PURE__*/ _jsx(BreadcrumbProvider, {\n value: contextValues,\n children: state.list && /*#__PURE__*/ _jsx(state.list, {\n children: state.root.children\n })\n })\n });\n};\n","import * as React from 'react';\nconst BreadcrumbContext = React.createContext(undefined);\n/**\n * @internal\n */ export const breadcrumbDefaultValue = {\n size: 'medium'\n};\n/**\n * @internal\n */ export const BreadcrumbProvider = BreadcrumbContext.Provider;\n/**\n * @internal\n */ export const useBreadcrumbContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(BreadcrumbContext)) !== null && _React_useContext !== void 0 ? _React_useContext : breadcrumbDefaultValue;\n};\n","const DEFAULT_OVERFLOW_INDEX = 1;\nconst DEFAULT_MAX_DISPLAYED_ITEMS = 6;\n/**\n * Get the displayed items and overflowing items based on the array of BreadcrumbItems needed for Breadcrumb.\n *\n * @param options - Configure the partition options\n *\n * @returns Three arrays split into displayed items and overflow items based on maxDisplayedItems.\n */ export const partitionBreadcrumbItems = (options)=>{\n let startDisplayedItems;\n let overflowItems;\n let endDisplayedItems;\n const { items = [] } = options;\n const itemsCount = items.length;\n const maxDisplayedItems = getMaxDisplayedItems(options.maxDisplayedItems);\n var _options_overflowIndex;\n let overflowIndex = (_options_overflowIndex = options.overflowIndex) !== null && _options_overflowIndex !== void 0 ? _options_overflowIndex : DEFAULT_OVERFLOW_INDEX;\n startDisplayedItems = items.slice(0, overflowIndex);\n const numberItemsToHide = itemsCount - maxDisplayedItems;\n if (numberItemsToHide > 0) {\n overflowIndex = overflowIndex >= maxDisplayedItems ? maxDisplayedItems - 1 : overflowIndex;\n const menuLastItemIdx = overflowIndex + numberItemsToHide;\n startDisplayedItems = startDisplayedItems.slice(0, overflowIndex);\n overflowItems = items.slice(overflowIndex, menuLastItemIdx);\n if (menuLastItemIdx < itemsCount) {\n endDisplayedItems = items.slice(menuLastItemIdx, itemsCount);\n }\n } else if (overflowIndex < itemsCount) {\n endDisplayedItems = items.slice(overflowIndex, itemsCount);\n }\n return {\n startDisplayedItems,\n overflowItems,\n endDisplayedItems\n };\n};\nfunction getMaxDisplayedItems(maxDisplayedItems) {\n return maxDisplayedItems && maxDisplayedItems >= 0 ? maxDisplayedItems : DEFAULT_MAX_DISPLAYED_ITEMS;\n}\n","const MAX_NAME_LENGTH = 30;\nconst MAX_TOOLTIP_LENGTH = 80;\nconst truncateBreadcrumb = (content, maxLength)=>{\n return isTruncatableBreadcrumbContent(content, maxLength) ? content.trim().slice(0, maxLength).concat('...') : content;\n};\nexport const isTruncatableBreadcrumbContent = (content, maxLength)=>{\n return content.length > maxLength;\n};\nexport const truncateBreadcrumbLongName = (content, maxLength)=>{\n const truncateLength = maxLength || MAX_NAME_LENGTH;\n return truncateBreadcrumb(content, truncateLength);\n};\nexport const truncateBreadcrumLongTooltip = (content, maxLength)=>{\n const truncateLength = maxLength || MAX_TOOLTIP_LENGTH;\n return truncateBreadcrumb(content, truncateLength);\n};\n","import * as React from 'react';\nimport { useCarouselCard_unstable } from './useCarouselCard';\nimport { renderCarouselCard_unstable } from './renderCarouselCard';\nimport { useCarouselCardStyles_unstable } from './useCarouselCardStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * The defining wrapper of a carousel's indexed content, they will take up the full\n * viewport of CarouselSlider or div wrapper,\n * users may place multiple items within this Card if desired, with consideration of viewport width.\n *\n * Clickable actions within the content area are available via mouse and tab as expected,\n * non-active card content will be set to inert until moved to active card.\n */ export const CarouselCard = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselCard_unstable(props, ref);\n useCarouselCardStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselCardStyles_unstable')(state);\n return renderCarouselCard_unstable(state);\n});\nCarouselCard.displayName = 'CarouselCard';\n","import { useFocusableGroup } from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, isHTMLElement, mergeCallbacks, slot, useMergedRefs, useId } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { EMBLA_VISIBILITY_EVENT } from '../useEmblaCarousel';\nimport { carouselCardClassNames } from './useCarouselCardStyles.styles';\nimport { useCarouselSliderContext } from '../CarouselSlider/CarouselSliderContext';\n/**\n * Create the state required to render CarouselCard.\n *\n * The returned state can be modified with hooks such as useCarouselCardStyles_unstable,\n * before being passed to renderCarouselCard_unstable.\n *\n * @param props - props from this instance of CarouselCard\n * @param ref - reference to root HTMLDivElement of CarouselCard\n */ export const useCarouselCard_unstable = (props, ref)=>{\n const { autoSize } = props;\n const elementRef = React.useRef(null);\n const isMouseEvent = React.useRef(false);\n const selectPageByElement = useCarouselContext((ctx)=>ctx.selectPageByElement);\n const containerRef = useCarouselContext((ctx)=>ctx.containerRef);\n const { cardFocus } = useCarouselSliderContext();\n const focusAttr = useFocusableGroup({\n tabBehavior: 'limited'\n });\n const focusAttrProps = cardFocus ? {\n ...focusAttr,\n tabIndex: 0\n } : {};\n // We attach a unique card id if user does not provide\n const id = useId(carouselCardClassNames.root, props.id);\n React.useEffect(()=>{\n const element = elementRef.current;\n if (element) {\n const listener = (_e)=>{\n const event = _e;\n // When there is no tab index present, only current cards should be visible to accessibility\n if (!cardFocus) {\n const hidden = !event.detail.isVisible;\n element.ariaHidden = hidden.toString();\n element.inert = hidden;\n }\n };\n element.addEventListener(EMBLA_VISIBILITY_EVENT, listener);\n return ()=>{\n element.removeEventListener(EMBLA_VISIBILITY_EVENT, listener);\n };\n }\n }, [\n cardFocus\n ]);\n const handleFocus = React.useCallback((e)=>{\n if (!e.defaultPrevented && isHTMLElement(e.currentTarget) && !isMouseEvent.current) {\n var // We want to prevent any browser scroll intervention for 'offscreen' focus\n _containerRef_current;\n containerRef === null || containerRef === void 0 ? void 0 : (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.scrollTo(0, 0);\n selectPageByElement(e, e.currentTarget, false);\n }\n // Mouse focus event has been consumed\n isMouseEvent.current = false;\n }, [\n selectPageByElement,\n containerRef\n ]);\n const handlePointerDown = (e)=>{\n if (!e.defaultPrevented) {\n isMouseEvent.current = true;\n }\n };\n const handlePointerUp = (e)=>{\n if (!e.defaultPrevented) {\n isMouseEvent.current = false;\n }\n };\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocus);\n const onPointerUp = mergeCallbacks(props.onPointerUp, handlePointerUp);\n const onPointerDown = mergeCallbacks(props.onPointerDown, handlePointerDown);\n const state = {\n autoSize,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref: useMergedRefs(elementRef, ref),\n role: 'tabpanel',\n tabIndex: cardFocus ? 0 : undefined,\n ...props,\n id,\n onFocusCapture,\n onPointerUp,\n onPointerDown,\n ...focusAttrProps\n }), {\n elementType: 'div'\n })\n };\n return state;\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of CarouselCard\n */ export const renderCarouselCard_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nexport const carouselCardClassNames = {\n root: 'fui-CarouselCard'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n xawz: 0,\n Bh6795r: 0,\n Bnnss6s: 0,\n fkmc3a: \"fg68ejw\",\n B2u0y6b: \"f6dzj5z\"\n },\n autoSize: {\n xawz: 0,\n Bh6795r: 0,\n Bnnss6s: 0,\n fkmc3a: \"fd9q35j\",\n Bf4jedk: \"fy77jfu\",\n a9b677: \"f14z66ap\",\n B2u0y6b: \"f6dzj5z\"\n }\n}, {\n d: [[\".fg68ejw{flex:0 0 100%;}\", {\n p: -1\n }], \".f6dzj5z{max-width:100%;}\", [\".fd9q35j{flex:0 0 auto;}\", {\n p: -1\n }], \".fy77jfu{min-width:0;}\", \".f14z66ap{width:auto;}\"]\n});\n/**\n * Apply styling to the CarouselCard slots based on the state\n */\nexport const useCarouselCardStyles_unstable = state => {\n 'use no memo';\n\n const {\n autoSize\n } = state;\n const styles = useStyles();\n state.root.className = mergeClasses(carouselCardClassNames.root, styles.root, autoSize && styles.autoSize, state.root.className);\n return state;\n};","import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nexport const carouselContextDefaultValue = {\n activeIndex: 0,\n selectPageByElement: ()=>{\n return 0;\n },\n selectPageByDirection: ()=>{\n return 0;\n },\n selectPageByIndex: ()=>{\n /** noop */ },\n subscribeForValues: ()=>()=>{\n /** noop */ },\n enableAutoplay: ()=>{\n /** noop */ },\n resetAutoplay: ()=>{\n /** noop */ },\n circular: false,\n containerRef: undefined,\n viewportRef: undefined\n};\nconst CarouselContext = createContext(undefined);\nexport const CarouselProvider = CarouselContext.Provider;\nexport const useCarouselContext_unstable = (selector)=>useContextSelector(CarouselContext, (ctx = carouselContextDefaultValue)=>selector(ctx));\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nexport const carouselNavButtonClassNames = {\n root: 'fui-CarouselNavButton'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bceei9c: \"f1k6fduh\",\n Bkecrkj: \"fc5wo7j\",\n a9b677: \"f1van5z7\",\n Bqenvij: \"f1fkmctz\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f1f5q0n8\",\n B7ck84d: \"f1e4lqlz\",\n De3pzq: \"f1c21dwh\",\n B4j52fo: \"fre7gi1\",\n Bekrc4i: [\"f1358rze\", \"f1rvrf73\"],\n Bn0qgzm: \"fqdk4by\",\n ibv6hh: [\"f1rvrf73\", \"f1358rze\"],\n Bsft5z2: \"f13zj6fq\",\n ap17g6: \"f2gz7yw\",\n li1rpt: \"f1gw3sf2\",\n d9w3h3: 0,\n B3778ie: 0,\n B4j8arr: 0,\n Bl18szs: 0,\n Blrzh8d: \"f1x820d0\",\n Bjuhk93: 0,\n B1q35kw: 0,\n Bw17bha: 0,\n Bcgy8vk: 0,\n Du69r6: 0,\n Gp14am: 0,\n vfts7: 0,\n Bhxzhr1: 0,\n G63luc: 0,\n s924m2: 0,\n Barhvk9: 0,\n Ihftqj: 0,\n wywymt: 0,\n B0n5ga8: 0,\n Bm2nyyq: 0,\n xrcqlc: 0,\n e1d83w: \"fnwf5yv\",\n Dlnsje: \"foue38v\",\n a2br6o: \"fi4ui2s\",\n Bjyk6c5: \"f1w4p7kh\",\n go7t6h: \"fo5b2b9\",\n qx5q1e: \"f1dpauah\",\n f7digc: \"f1agqfpv\",\n Bfz3el7: \"f6pnf7h\"\n },\n rootUnselected: {\n Bw0xxkn: 0,\n oeaueh: 0,\n Bpd4iqm: 0,\n Befb4lg: \"f71xx7\",\n Byu6kyc: 0,\n n8qw10: 0,\n Bbjhlyh: 0,\n i2cumq: 0,\n Bunx835: 0,\n Bdrgwmp: 0,\n mqozju: 0,\n lbo84a: 0,\n Bksnhdo: 0,\n Bci5o5g: 0,\n u5e7qz: 0,\n Bn40d3w: 0,\n B7b6zxw: 0,\n B8q5s1w: 0,\n B5gfjzb: 0,\n Bbcte9g: 0,\n Bqz3imu: \"f1j9b7x8\",\n Bj9ihqo: 0,\n Bl51kww: 0,\n B3bvztg: 0,\n Btyt4dx: 0,\n Brhw1f9: \"f1tdm9ui\",\n Bw81rd7: 0,\n kdpuga: 0,\n dm238s: 0,\n B6xbmo0: 0,\n B3whbx2: \"f2krc9w\",\n Bp15pi3: \"f4qmjcr\",\n Bay5ve9: \"f1ry2q4s\",\n Bni0232: \"f1e9f9ku\"\n },\n rootSelected: {\n a9b677: \"f1eh74fx\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"fwku66v\",\n Bw0xxkn: 0,\n oeaueh: 0,\n Bpd4iqm: 0,\n Befb4lg: \"f71xx7\",\n Byu6kyc: 0,\n n8qw10: 0,\n Bbjhlyh: 0,\n i2cumq: 0,\n Bunx835: 0,\n Bdrgwmp: 0,\n mqozju: 0,\n lbo84a: 0,\n Bksnhdo: 0,\n Bci5o5g: 0,\n u5e7qz: 0,\n Bn40d3w: 0,\n B7b6zxw: 0,\n B8q5s1w: 0,\n B5gfjzb: 0,\n Bbcte9g: 0,\n Bqz3imu: \"f1j9b7x8\",\n Bj9ihqo: 0,\n Bl51kww: 0,\n B3bvztg: 0,\n Btyt4dx: 0,\n Brhw1f9: \"f1tdm9ui\",\n Bw81rd7: 0,\n kdpuga: 0,\n dm238s: 0,\n B6xbmo0: 0,\n B3whbx2: \"f2krc9w\",\n a2br6o: \"f1v6lwa2\",\n d9w3h3: 0,\n B3778ie: 0,\n B4j8arr: 0,\n Bl18szs: 0,\n Blrzh8d: \"fgm6wgx\",\n Bay5ve9: \"f1ry2q4s\",\n Bni0232: \"f1gxfet\"\n },\n brand: {\n Bjyk6c5: \"fwgxjcu\",\n Bp15pi3: \"fjsqi2x\",\n Glksuk: \"f1dsn91x\",\n Bay5ve9: \"f9atwx8\",\n Blzl0y7: \"fduhhxw\",\n Bni0232: \"f1e9f9ku\"\n },\n unselectedBrand: {\n Bp15pi3: \"f7x02et\"\n }\n}, {\n d: [\".f1k6fduh{cursor:pointer;}\", \".fc5wo7j{pointer-events:all;}\", \".f1van5z7{width:var(--spacingHorizontalS);}\", \".f1fkmctz{height:var(--spacingVerticalS);}\", [\".f1f5q0n8{padding:var(--spacingVerticalS) var(--spacingHorizontalS);}\", {\n p: -1\n }], \".f1e4lqlz{box-sizing:content-box;}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", \".fre7gi1{border-top-width:0;}\", \".f1358rze{border-right-width:0;}\", \".f1rvrf73{border-left-width:0;}\", \".fqdk4by{border-bottom-width:0;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f2gz7yw::after{display:block;}\", \".f1gw3sf2::after{box-sizing:border-box;}\", [\".f1x820d0::after{border-radius:50%;}\", {\n p: -1\n }], [\".fnwf5yv::after{border:none;}\", {\n p: -2\n }], \".foue38v::after{height:var(--spacingVerticalS);}\", \".fi4ui2s::after{width:var(--spacingHorizontalS);}\", \".f1w4p7kh::after{background-color:var(--colorNeutralForeground1);}\", \".fo5b2b9::after{color:var(--colorNeutralForeground1);}\", [\".f71xx7{outline:var(--strokeWidthThin) solid transparent;}\", {\n p: -1\n }], [\".f1j9b7x8[data-fui-focus-visible]{border:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}\", {\n p: -2\n }], [\".f1tdm9ui[data-fui-focus-visible]{margin:calc(-1 * var(--strokeWidthThick));}\", {\n p: -1\n }], [\".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f4qmjcr::after{opacity:0.65;}\", \".f1eh74fx{width:var(--spacingHorizontalL);}\", [\".fwku66v{padding:var(--spacingVerticalS) var(--spacingHorizontalXS);}\", {\n p: -1\n }], [\".f71xx7{outline:var(--strokeWidthThin) solid transparent;}\", {\n p: -1\n }], [\".f1j9b7x8[data-fui-focus-visible]{border:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}\", {\n p: -2\n }], [\".f1tdm9ui[data-fui-focus-visible]{margin:calc(-1 * var(--strokeWidthThick));}\", {\n p: -1\n }], [\".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f1v6lwa2::after{width:var(--spacingHorizontalL);}\", [\".fgm6wgx::after{border-radius:4px;}\", {\n p: -1\n }], \".fwgxjcu::after{background-color:var(--colorBrandBackground);}\", \".fjsqi2x::after{opacity:1;}\", \".f7x02et::after{opacity:0.6;}\"],\n m: [[\"@media (forced-colors: active){.f1dpauah::after{forced-color-adjust:none;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f1agqfpv::after{background-color:white;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f6pnf7h::after{mix-blend-mode:difference;}}\", {\n m: \"(forced-colors: active)\"\n }]],\n h: [\".f1ry2q4s:hover::after{opacity:0.75;}\", \".f1dsn91x:hover::after{background-color:var(--colorBrandBackgroundHover);}\", \".f9atwx8:hover::after{opacity:1;}\"],\n a: [\".f1e9f9ku:active::after{opacity:1;}\", \".f1gxfet:active::after{opacity:0.65;}\", \".fduhhxw:active::after{background-color:var(--colorBrandBackgroundPressed);}\"]\n});\n/**\n * Apply styling to the CarouselNavButton slots based on the state\n */\nexport const useCarouselNavButtonStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const {\n selected,\n appearance\n } = state;\n state.root.className = mergeClasses(carouselNavButtonClassNames.root, styles.root, selected ? styles.rootSelected : styles.rootUnselected, appearance === 'brand' && styles.brand, !selected && appearance === 'brand' && styles.unselectedBrand, state.root.className);\n return state;\n};","import * as React from 'react';\nimport { useCarouselNavButton_unstable } from './useCarouselNavButton';\nimport { renderCarouselNavButton_unstable } from './renderCarouselNavButton';\nimport { useCarouselNavButtonStyles_unstable } from './useCarouselNavButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * The child element of CarouselNav, a singular button that will set the carousels active value on click.\n */ export const CarouselNavButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselNavButton_unstable(props, ref);\n useCarouselNavButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavButtonStyles_unstable')(state);\n return renderCarouselNavButton_unstable(state);\n});\nCarouselNavButton.displayName = 'CarouselNavButton';\n","import { useARIAButtonProps } from '@fluentui/react-aria';\nimport { useTabsterAttributes } from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, isHTMLElement, slot, useEventCallback, useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { useCarouselNavContext } from '../CarouselNav/CarouselNavContext';\nimport { useCarouselNavIndexContext } from '../CarouselNav/CarouselNavIndexContext';\n/**\n * Create the state required to render CarouselNavButton.\n *\n * The returned state can be modified with hooks such as useCarouselNavButtonStyles_unstable,\n * before being passed to renderCarouselNavButton_unstable.\n *\n * @param props - props from this instance of CarouselNavButton\n * @param ref - reference to root HTMLDivElement of CarouselNavButton\n */ export const useCarouselNavButton_unstable = (props, ref)=>{\n const { onClick, as = 'button' } = props;\n const { appearance } = useCarouselNavContext();\n const index = useCarouselNavIndexContext();\n const selectPageByIndex = useCarouselContext((ctx)=>ctx.selectPageByIndex);\n const selected = useCarouselContext((ctx)=>ctx.activeIndex === index);\n const subscribeForValues = useCarouselContext((ctx)=>ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext((ctx)=>ctx.resetAutoplay);\n const handleClick = useEventCallback((event)=>{\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n if (!event.defaultPrevented && isHTMLElement(event.target)) {\n selectPageByIndex(event, index);\n }\n // Ensure any autoplay timers are extended/reset\n resetAutoplay();\n });\n const defaultTabProps = useTabsterAttributes({\n focusable: {\n isDefault: selected\n }\n });\n const buttonRef = React.useRef();\n const _carouselButton = slot.always(getIntrinsicElementProps(as, useARIAButtonProps(props.as, props)), {\n elementType: 'button',\n defaultProps: {\n ref: useMergedRefs(ref, buttonRef),\n role: 'tab',\n type: 'button',\n 'aria-selected': selected,\n ...defaultTabProps\n }\n });\n useIsomorphicLayoutEffect(()=>{\n return subscribeForValues((data)=>{\n const controlList = data.groupIndexList[index];\n const _controlledSlideIds = controlList.map((slideIndex)=>{\n return data.slideNodes[slideIndex].id;\n }).join(' ');\n if (buttonRef.current) {\n buttonRef.current.setAttribute('aria-controls', _controlledSlideIds);\n }\n });\n }, [\n index,\n subscribeForValues\n ]);\n // Override onClick\n _carouselButton.onClick = handleClick;\n const state = {\n selected,\n appearance,\n components: {\n root: 'button'\n },\n root: _carouselButton\n };\n return state;\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of CarouselNavButton\n */ export const renderCarouselNavButton_unstable = (state)=>{\n assertSlots(state);\n // TODO Add additional slots in the appropriate place\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { useToggleButtonStyles_unstable } from '@fluentui/react-button';\nimport { tokens } from '@fluentui/react-theme';\nexport const carouselAutoplayButtonClassNames = {\n root: 'fui-CarouselAutoplayButton',\n icon: 'fui-CarouselAutoplayButton__icon'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Bkecrkj: \"fc5wo7j\",\n B6of3ja: \"fgr6219\",\n jrapky: \"f10jk5vf\",\n g2u3we: \"fghlq4f\",\n h3c5rm: [\"f1gn591s\", \"fjscplz\"],\n B9xav0g: \"fb073pr\",\n zhjwy3: [\"fjscplz\", \"f1gn591s\"],\n sj55zd: \"fkfq4zb\",\n De3pzq: \"fkfdr9r\",\n eoavqd: \"f8491dx\"\n }\n}, {\n d: [\".fc5wo7j{pointer-events:all;}\", \".fgr6219{margin-top:auto;}\", \".f10jk5vf{margin-bottom:auto;}\", \".fghlq4f{border-top-color:var(--colorTransparentStroke);}\", \".f1gn591s{border-right-color:var(--colorTransparentStroke);}\", \".fjscplz{border-left-color:var(--colorTransparentStroke);}\", \".fb073pr{border-bottom-color:var(--colorTransparentStroke);}\", \".fkfq4zb{color:var(--colorNeutralForeground2);}\", \".fkfdr9r{background-color:var(--colorNeutralBackgroundAlpha);}\"],\n h: [\".f8491dx:hover{cursor:pointer;}\"]\n});\n/**\n * Apply styling to the CarouselAutoplayButton slots based on the state\n */\nexport const useCarouselAutoplayButtonStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n useToggleButtonStyles_unstable(state);\n state.root.className = mergeClasses(carouselAutoplayButtonClassNames.root, styles.root, state.root.className);\n if (state.icon) {\n state.icon.className = mergeClasses(carouselAutoplayButtonClassNames.icon, state.icon.className);\n }\n return state;\n};","import * as React from 'react';\nimport { useCarouselAutoplayButton_unstable } from './useCarouselAutoplayButton';\nimport { renderCarouselAutoplayButton_unstable } from './renderCarouselAutoplayButton';\nimport { useCarouselAutoplayButtonStyles_unstable } from './useCarouselAutoplayButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * If the Carousel is on auto-play, the user may opt into pausing the auto-play feature via the\n * CarouselAutoplayButton which must be present for auto-play to be enabled.\n *\n * If CarouselAutoplayButton is present, auto-play will default to true on mount.\n */ export const CarouselAutoplayButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselAutoplayButton_unstable(props, ref);\n useCarouselAutoplayButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselAutoplayButtonStyles_unstable')(state);\n return renderCarouselAutoplayButton_unstable(state);\n});\nCarouselAutoplayButton.displayName = 'CarouselAutoplayButton';\n","import { useToggleButton_unstable } from '@fluentui/react-button';\nimport { PlayCircleRegular, PauseCircleRegular } from '@fluentui/react-icons';\nimport { mergeCallbacks, slot, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n/**\n * Create the state required to render CarouselAutoplayButton.\n *\n * The returned state can be modified with hooks such as useCarouselAutoplayButtonStyles_unstable,\n * before being passed to renderCarouselAutoplayButton_unstable.\n *\n * @param props - props from this instance of CarouselAutoplayButton\n * @param ref - reference to root HTMLDivElement of CarouselAutoplayButton\n */ export const useCarouselAutoplayButton_unstable = (props, ref)=>{\n const { onCheckedChange, checked, defaultChecked } = props;\n const [autoplay, setAutoplay] = useControllableState({\n state: checked,\n defaultState: defaultChecked,\n initialState: false\n });\n const enableAutoplay = useCarouselContext((ctx)=>ctx.enableAutoplay);\n React.useEffect(()=>{\n // Initialize carousel autoplay based on button state\n enableAutoplay(autoplay);\n return ()=>{\n // We uninitialize autoplay if the button gets unmounted.\n enableAutoplay(false);\n };\n }, [\n autoplay,\n enableAutoplay\n ]);\n const handleClick = (event)=>{\n if (event.isDefaultPrevented()) {\n return;\n }\n const newValue = !autoplay;\n setAutoplay(newValue);\n onCheckedChange === null || onCheckedChange === void 0 ? void 0 : onCheckedChange(event, {\n event,\n type: 'click',\n checked: newValue\n });\n };\n return {\n // We lean on react-button class to handle styling and icon enhancements\n ...useToggleButton_unstable({\n icon: slot.optional(props.icon, {\n defaultProps: {\n children: autoplay ? /*#__PURE__*/ React.createElement(PauseCircleRegular, null) : /*#__PURE__*/ React.createElement(PlayCircleRegular, null)\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n ...props,\n checked: autoplay,\n onClick: useEventCallback(mergeCallbacks(handleClick, props.onClick))\n }, ref)\n };\n};\n","import { assertSlots } from '@fluentui/react-utilities';\nimport { renderToggleButton_unstable } from '@fluentui/react-button';\n/**\n * Render the final JSX of CarouselAutoplayButton\n */ export const renderCarouselAutoplayButton_unstable = (state)=>{\n assertSlots(state);\n // We render the underlying react-button with injected carousel functionality\n return renderToggleButton_unstable(state);\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { useButtonStyles_unstable } from '@fluentui/react-button';\nimport { tokens } from '@fluentui/react-theme';\nexport const carouselButtonClassNames = {\n root: 'fui-CarouselButton',\n icon: 'fui-CarouselButton__icon'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n B6of3ja: \"fgr6219\",\n jrapky: \"f10jk5vf\",\n sj55zd: \"fkfq4zb\",\n De3pzq: \"fkfdr9r\",\n Bkecrkj: \"fc5wo7j\",\n eoavqd: \"f8491dx\"\n }\n}, {\n d: [\".fgr6219{margin-top:auto;}\", \".f10jk5vf{margin-bottom:auto;}\", \".fkfq4zb{color:var(--colorNeutralForeground2);}\", \".fkfdr9r{background-color:var(--colorNeutralBackgroundAlpha);}\", \".fc5wo7j{pointer-events:all;}\"],\n h: [\".f8491dx:hover{cursor:pointer;}\"]\n});\n/**\n * Apply styling to the CarouselButton slots based on the state\n */\nexport const useCarouselButtonStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state = {\n ...state,\n ...useButtonStyles_unstable(state)\n };\n state.root.className = mergeClasses(carouselButtonClassNames.root, styles.root, state.root.className);\n if (state.icon) {\n state.icon.className = mergeClasses(carouselButtonClassNames.icon, state.icon.className);\n }\n return state;\n};","import { useButton_unstable } from '@fluentui/react-button';\nimport { ChevronLeftRegular, ChevronRightRegular } from '@fluentui/react-icons';\nimport { mergeCallbacks, useEventCallback, slot, useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { carouselButtonClassNames } from './useCarouselButtonStyles.styles';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n/**\n * Create the state required to render CarouselButton.\n *\n * The returned state can be modified with hooks such as useCarouselButtonStyles_unstable,\n * before being passed to renderCarouselButton_unstable.\n *\n * @param props - props from this instance of CarouselButton\n * @param ref - reference to root HTMLDivElement of CarouselButton\n */ export const useCarouselButton_unstable = (props, ref)=>{\n const { navType = 'next' } = props;\n // Locally tracks the total number of slides, will only update if this changes.\n const [totalSlides, setTotalSlides] = React.useState(0);\n const { dir } = useFluent();\n const buttonRef = React.useRef();\n const circular = useCarouselContext((ctx)=>ctx.circular);\n const containerRef = useCarouselContext((ctx)=>ctx.containerRef);\n const selectPageByDirection = useCarouselContext((ctx)=>ctx.selectPageByDirection);\n const subscribeForValues = useCarouselContext((ctx)=>ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext((ctx)=>ctx.resetAutoplay);\n const isTrailing = useCarouselContext((ctx)=>{\n if (circular) {\n return false;\n }\n if (navType === 'prev') {\n return ctx.activeIndex === 0;\n }\n return ctx.activeIndex === totalSlides - 1;\n });\n const handleClick = (event)=>{\n if (event.isDefaultPrevented()) {\n return;\n }\n const nextIndex = selectPageByDirection(event, navType);\n let _trailing = false;\n if (navType === 'prev') {\n _trailing = nextIndex === 0;\n } else {\n _trailing = nextIndex === totalSlides - 1;\n }\n if (!circular && _trailing && (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current)) {\n // Focus non-disabled element\n const buttonRefs = containerRef.current.querySelectorAll(`.${carouselButtonClassNames.root}`);\n buttonRefs.forEach((_buttonRef)=>{\n if (_buttonRef !== buttonRef.current) {\n _buttonRef.focus();\n }\n });\n }\n resetAutoplay();\n };\n useIsomorphicLayoutEffect(()=>{\n return subscribeForValues((data)=>{\n setTotalSlides(data.navItemsCount);\n });\n }, [\n subscribeForValues\n ]);\n const nextArrowIcon = dir === 'ltr' ? /*#__PURE__*/ React.createElement(ChevronRightRegular, null) : /*#__PURE__*/ React.createElement(ChevronLeftRegular, null);\n const prevArrowIcon = dir === 'ltr' ? /*#__PURE__*/ React.createElement(ChevronLeftRegular, null) : /*#__PURE__*/ React.createElement(ChevronRightRegular, null);\n return {\n navType,\n // We lean on react-button class to handle styling and icon enhancements\n ...useButton_unstable({\n icon: slot.optional(props.icon, {\n defaultProps: {\n children: navType === 'next' ? nextArrowIcon : prevArrowIcon\n },\n renderByDefault: true,\n elementType: 'span'\n }),\n disabled: isTrailing,\n tabIndex: isTrailing ? -1 : 0,\n 'aria-disabled': isTrailing,\n appearance: 'subtle',\n ...props,\n onClick: useEventCallback(mergeCallbacks(handleClick, props.onClick))\n }, useMergedRefs(ref, buttonRef))\n };\n};\n","import * as React from 'react';\nimport { useCarouselButton_unstable } from './useCarouselButton';\nimport { renderCarouselButton_unstable } from './renderCarouselButton';\nimport { useCarouselButtonStyles_unstable } from './useCarouselButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * A default navigation button that will set value to the next/previous page,\n * driven by it's type 'next' or 'previous'.\n */ export const CarouselButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselButton_unstable(props, ref);\n useCarouselButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselButtonStyles_unstable')(state);\n return renderCarouselButton_unstable(state);\n});\nCarouselButton.displayName = 'CarouselButton';\n","import { assertSlots } from '@fluentui/react-utilities';\nimport { renderButton_unstable } from '@fluentui/react-button';\n/**\n * Render the final JSX of CarouselButton\n */ export const renderCarouselButton_unstable = (state)=>{\n assertSlots(state);\n // We render the underlying react-button with injected carousel functionality\n return renderButton_unstable(state);\n};\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of CarouselNavContainer\n */ export const renderCarouselNavContainer_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(state.root, {\n children: [\n state.autoplay && /*#__PURE__*/ _jsx(state.autoplay, {}),\n state.prev && /*#__PURE__*/ _jsx(state.prev, {}),\n state.root.children,\n state.next && /*#__PURE__*/ _jsx(state.next, {})\n ]\n });\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const carouselNavContainerClassNames = {\n root: 'fui-CarouselNavContainer',\n next: 'fui-CarouselNavContainer__next',\n prev: 'fui-CarouselNavContainer__prev',\n autoplay: 'fui-CarouselNavContainer__autoplay'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1063pyq\",\n Brf1p80: \"f4d9j23\",\n a9b677: \"fly5x3f\",\n Bkecrkj: \"f1aehjj5\"\n },\n next: {},\n prev: {},\n autoplay: {},\n inline: {\n B6of3ja: \"f1mevb6\"\n },\n overlay: {\n qhf8xq: \"f1euv43f\",\n B5kzvoi: \"f1bu4tuc\",\n B7ck84d: \"f1ewtqcl\"\n },\n overlayWide: {\n B5kzvoi: \"f1bu4tuc\"\n },\n nextWide: {\n Frg6f3: [\"fcgxt0o\", \"f1ujusj6\"]\n },\n prevWide: {\n t21cq0: [\"f1ujusj6\", \"fcgxt0o\"]\n },\n nextOverlayWide: {\n t21cq0: [\"fkujibs\", \"f199hnxi\"]\n },\n prevOverlayWide: {\n Frg6f3: [\"f199hnxi\", \"fkujibs\"]\n },\n autoplayOverlayWide: {\n Frg6f3: [\"f199hnxi\", \"fkujibs\"]\n },\n expanded: {\n a9b677: \"fly5x3f\",\n Bqenvij: \"f1l02sjl\",\n Bt984gj: \"fgs5rwf\",\n Brf1p80: \"f4d9j23\",\n B5kzvoi: \"f1yab3r1\",\n c7y7m3: \"f1ok8cdc\",\n yx0ijg: \"fcq6x80\",\n v4amzz: \"f1gy9d85\"\n },\n nextOverlayExpanded: {\n qhf8xq: \"f1euv43f\",\n j35jbq: [\"f8b87gs\", \"fedtrts\"],\n Bhzewxz: \"f1i1t8d1\",\n Bz10aip: \"f188r07x\"\n },\n prevOverlayExpanded: {\n qhf8xq: \"f1euv43f\",\n oyh7mz: [\"fedtrts\", \"f8b87gs\"],\n Bhzewxz: \"f1i1t8d1\",\n Bz10aip: \"f188r07x\"\n },\n autoplayExpanded: {\n qhf8xq: \"f1euv43f\",\n B5kzvoi: \"f49tsn4\",\n oyh7mz: [\"fedtrts\", \"f8b87gs\"],\n jrapky: \"f18zxyen\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1063pyq{flex-direction:row;}\", \".f4d9j23{justify-content:center;}\", \".fly5x3f{width:100%;}\", \".f1aehjj5{pointer-events:none;}\", \".f1mevb6{margin-top:var(--spacingVerticalM);}\", \".f1euv43f{position:absolute;}\", \".f1bu4tuc{bottom:var(--spacingVerticalM);}\", \".f1ewtqcl{box-sizing:border-box;}\", \".fcgxt0o{margin-left:auto;}\", \".f1ujusj6{margin-right:auto;}\", \".fkujibs{margin-right:var(--spacingHorizontalM);}\", \".f199hnxi{margin-left:var(--spacingHorizontalM);}\", \".f1l02sjl{height:100%;}\", \".fgs5rwf{align-items:flex-end;}\", \".f1yab3r1{bottom:0;}\", \".f1ok8cdc>div{position:relative;}\", \".fcq6x80>div{bottom:var(--spacingVerticalL);}\", \".f1gy9d85>div{margin-bottom:0;}\", \".f8b87gs{right:var(--spacingHorizontalM);}\", \".fedtrts{left:var(--spacingHorizontalM);}\", \".f1i1t8d1{top:50%;}\", \".f188r07x{transform:translateY(-50%);}\", \".f49tsn4{bottom:-var(--spacingHorizontalXS);}\", \".f18zxyen{margin-bottom:var(--spacingVerticalM);}\"]\n});\n/**\n * Apply styling to the CarouselNavContainer slots based on the state\n */\nexport const useCarouselNavContainerStyles_unstable = state => {\n 'use no memo';\n\n const {\n layout\n } = state;\n const isOverlay = layout === 'overlay' || layout === 'overlay-wide' || layout === 'overlay-expanded';\n const isWide = layout === 'inline-wide' || layout === 'overlay-wide';\n const styles = useStyles();\n state.root.className = mergeClasses(carouselNavContainerClassNames.root, styles.root, isOverlay ? styles.overlay : styles.inline, isOverlay && isWide && styles.overlayWide, layout === 'overlay-expanded' && styles.expanded, state.root.className);\n if (state.next) {\n state.next.className = mergeClasses(carouselNavContainerClassNames.next, styles.next, isWide && styles.nextWide, isWide && isOverlay && styles.nextOverlayWide, layout === 'overlay-expanded' && styles.nextOverlayExpanded, state.next.className);\n }\n if (state.prev) {\n state.prev.className = mergeClasses(carouselNavContainerClassNames.prev, styles.prev, isWide && styles.prevWide, !state.autoplay && isWide && isOverlay && styles.prevOverlayWide, layout === 'overlay-expanded' && styles.prevOverlayExpanded, state.prev.className);\n }\n if (state.autoplay) {\n state.autoplay.className = mergeClasses(carouselNavContainerClassNames.autoplay, styles.autoplay, layout === 'overlay-expanded' && styles.autoplayExpanded, isWide && isOverlay && styles.autoplayOverlayWide, state.autoplay.className);\n }\n return state;\n};","import * as React from 'react';\nimport { useCarouselNavContainer_unstable } from './useCarouselNavContainer';\nimport { renderCarouselNavContainer_unstable } from './renderCarouselNavContainer';\nimport { useCarouselNavContainerStyles_unstable } from './useCarouselNavContainerStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * CarouselNavContainer component - This container will provide multiple valid layout options for the underlying carousel controls\n */ export const CarouselNavContainer = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselNavContainer_unstable(props, ref);\n useCarouselNavContainerStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavContainerStyles_unstable')(state);\n return renderCarouselNavContainer_unstable(state);\n});\nCarouselNavContainer.displayName = 'CarouselNavContainer';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { CarouselAutoplayButton } from '../CarouselAutoplayButton/CarouselAutoplayButton';\nimport { CarouselButton } from '../CarouselButton/CarouselButton';\n/**\n * Create the state required to render CarouselNavContainer.\n *\n * The returned state can be modified with hooks such as useCarouselNavContainerStyles_unstable,\n * before being passed to renderCarouselNavContainer_unstable.\n *\n * @param props - props from this instance of CarouselNavContainer\n * @param ref - reference to root HTMLDivElement of CarouselNavContainer\n */ export const useCarouselNavContainer_unstable = (props, ref)=>{\n const { layout } = props;\n const next = slot.optional(props.next, {\n defaultProps: {\n navType: 'next'\n },\n elementType: CarouselButton,\n renderByDefault: true\n });\n const prev = slot.optional(props.prev, {\n defaultProps: {\n navType: 'prev'\n },\n elementType: CarouselButton,\n renderByDefault: true\n });\n const autoplay = slot.optional(props.autoplay, {\n renderByDefault: false,\n elementType: CarouselAutoplayButton\n });\n return {\n layout,\n components: {\n root: 'div',\n next: CarouselButton,\n prev: CarouselButton,\n autoplay: CarouselAutoplayButton\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n next,\n prev,\n autoplay\n };\n};\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nexport const carouselNavClassNames = {\n root: 'fui-CarouselNav'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1063pyq\",\n Bt984gj: \"f122n59\",\n Brf1p80: \"f4d9j23\",\n Bkecrkj: \"fc5wo7j\",\n Bfpq7zp: 0,\n g9k6zt: 0,\n Bn4voq9: 0,\n giviqs: \"f89hs3r\",\n Bw81rd7: 0,\n kdpuga: 0,\n dm238s: 0,\n B6xbmo0: 0,\n B3whbx2: \"f2krc9w\",\n B8q5s1w: \"f8hki3x\",\n Bci5o5g: [\"f1d2448m\", \"ffh67wi\"],\n n8qw10: \"f1bjia2o\",\n Bdrgwmp: [\"ffh67wi\", \"f1d2448m\"],\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"f1kijzfu\",\n jrapky: 0,\n Frg6f3: 0,\n t21cq0: 0,\n B6of3ja: 0,\n B74szlk: \"fkb7v5e\",\n De3pzq: \"fkfdr9r\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1063pyq{flex-direction:row;}\", \".f122n59{align-items:center;}\", \".f4d9j23{justify-content:center;}\", \".fc5wo7j{pointer-events:all;}\", [\".f89hs3r[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);}\", {\n p: -1\n }], [\".f2krc9w[data-fui-focus-visible]{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}\", \".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}\", \".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}\", \".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}\", [\".f1kijzfu{border-radius:var(--borderRadiusXLarge);}\", {\n p: -1\n }], [\".fkb7v5e{margin:auto var(--spacingHorizontalS);}\", {\n p: -1\n }], \".fkfdr9r{background-color:var(--colorNeutralBackgroundAlpha);}\"]\n});\n/**\n * Apply styling to the CarouselNav slots based on the state\n */\nexport const useCarouselNavStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(carouselNavClassNames.root, styles.root, state.root.className);\n return state;\n};","import * as React from 'react';\nimport { useCarouselNavContextValues_unstable } from './CarouselNavContext';\nimport { renderCarouselNav_unstable } from './renderCarouselNav';\nimport { useCarouselNav_unstable } from './useCarouselNav';\nimport { useCarouselNavStyles_unstable } from './useCarouselNavStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Used to jump to a card based on index, using arrow navigation via Tabster.\n *\n * The children of this component will be wrapped in a context to\n * provide the appropriate value based on their index position.\n */ export const CarouselNav = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselNav_unstable(props, ref);\n const contextValues = useCarouselNavContextValues_unstable(state);\n useCarouselNavStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavStyles_unstable')(state);\n return renderCarouselNav_unstable(state, contextValues);\n});\nCarouselNav.displayName = 'CarouselNav';\n","import { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, slot, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { useControllableState } from '@fluentui/react-utilities';\n/**\n * Create the state required to render CarouselNav.\n *\n * The returned state can be modified with hooks such as useCarouselNavStyles_unstable,\n * before being passed to renderCarouselNav_unstable.\n *\n * @param props - props from this instance of CarouselNav\n * @param ref - reference to root HTMLDivElement of CarouselNav\n */ export const useCarouselNav_unstable = (props, ref)=>{\n const { appearance } = props;\n const focusableGroupAttr = useArrowNavigationGroup({\n circular: false,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true\n });\n // Users can choose controlled or uncontrolled, if uncontrolled, the default is initialized by carousel context\n const [totalSlides, setTotalSlides] = useControllableState({\n state: props.totalSlides,\n initialState: 0\n });\n const subscribeForValues = useCarouselContext((ctx)=>ctx.subscribeForValues);\n useIsomorphicLayoutEffect(()=>{\n return subscribeForValues((data)=>{\n setTotalSlides(data.navItemsCount);\n });\n }, [\n subscribeForValues,\n setTotalSlides\n ]);\n return {\n totalSlides,\n appearance,\n renderNavButton: props.children,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref,\n role: 'tablist',\n ...props,\n ...focusableGroupAttr,\n children: null\n }), {\n elementType: 'div'\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { CarouselNavContextProvider } from './CarouselNavContext';\nimport { CarouselNavIndexContextProvider } from './CarouselNavIndexContext';\n/**\n * Render the final JSX of CarouselNav\n */ export const renderCarouselNav_unstable = (state, contextValues)=>{\n assertSlots(state);\n const { totalSlides, renderNavButton } = state;\n return /*#__PURE__*/ _jsx(state.root, {\n children: /*#__PURE__*/ _jsx(CarouselNavContextProvider, {\n value: contextValues.carouselNav,\n children: new Array(totalSlides).fill(null).map((_, index)=>/*#__PURE__*/ _jsx(CarouselNavIndexContextProvider, {\n value: index,\n children: renderNavButton(index)\n }, index))\n })\n });\n};\n","import * as React from 'react';\nconst carouselNavContext = React.createContext(undefined);\nexport const carouselNavContextDefaultValue = {\n appearance: undefined\n};\nexport const useCarouselNavContext = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(carouselNavContext)) !== null && _React_useContext !== void 0 ? _React_useContext : carouselNavContextDefaultValue;\n};\nexport const CarouselNavContextProvider = carouselNavContext.Provider;\nexport function useCarouselNavContextValues_unstable(state) {\n const { appearance } = state;\n const carouselNav = React.useMemo(()=>({\n appearance\n }), [\n appearance\n ]);\n return {\n carouselNav\n };\n}\n","import * as React from 'react';\nconst carouselNavIndexContext = React.createContext(undefined);\nexport const carouselNavIndexContextDefaultValue = 0;\nexport const useCarouselNavIndexContext = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(carouselNavIndexContext)) !== null && _React_useContext !== void 0 ? _React_useContext : carouselNavIndexContextDefaultValue;\n};\nexport const CarouselNavIndexContextProvider = carouselNavIndexContext.Provider;\n","import * as React from 'react';\n// import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useCarouselSlider_unstable } from './useCarouselSlider';\nimport { renderCarouselSlider_unstable } from './renderCarouselSlider';\nimport { useCarouselSliderStyles_unstable } from './useCarouselSliderStyles.styles';\nimport { useCarouselSliderContextValues_unstable } from './CarouselSliderContext';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * CarouselSlider component - The viewport window that CarouselCards are contained within.\n */ export const CarouselSlider = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselSlider_unstable(props, ref);\n useCarouselSliderStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselSliderStyles_unstable')(state);\n const context = useCarouselSliderContextValues_unstable(state);\n return renderCarouselSlider_unstable(state, context);\n});\nCarouselSlider.displayName = 'CarouselSlider';\n","import { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n/**\n * Create the state required to render CarouselSlider.\n *\n * The returned state can be modified with hooks such as useCarouselSliderStyles_unstable,\n * before being passed to renderCarouselSlider_unstable.\n *\n * @param props - props from this instance of CarouselSlider\n * @param ref - reference to root HTMLDivElement of CarouselSlider\n */ export const useCarouselSlider_unstable = (props, ref)=>{\n const { cardFocus = false } = props;\n const circular = useCarouselContext((ctx)=>ctx.circular);\n const focusableGroupAttr = useArrowNavigationGroup({\n circular,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true\n });\n const focusProps = cardFocus ? focusableGroupAttr : {};\n return {\n cardFocus,\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref,\n role: 'group',\n ...props,\n ...focusProps\n }), {\n elementType: 'div'\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { CarouselSliderContextProvider } from './CarouselSliderContext';\n/**\n * Render the final JSX of CarouselSlider\n */ export const renderCarouselSlider_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(CarouselSliderContextProvider, {\n value: contextValues.carouselSlider,\n children: /*#__PURE__*/ _jsx(state.root, {})\n });\n};\n","import * as React from 'react';\nconst carouselSliderContext = React.createContext(undefined);\nexport const carouselSliderContextDefaultValue = {\n cardFocus: false\n};\nexport const useCarouselSliderContext = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(carouselSliderContext)) !== null && _React_useContext !== void 0 ? _React_useContext : carouselSliderContextDefaultValue;\n};\nexport const CarouselSliderContextProvider = carouselSliderContext.Provider;\nexport function useCarouselSliderContextValues_unstable(state) {\n const { cardFocus } = state;\n const carouselSlider = React.useMemo(()=>({\n cardFocus\n }), [\n cardFocus\n ]);\n return {\n carouselSlider\n };\n}\n","import { __styles, mergeClasses } from '@griffel/react';\nexport const carouselSliderClassNames = {\n root: 'fui-CarouselSlider'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Eiaeu8: \"f1115ve7\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1115ve7{overflow-anchor:none;}\"]\n});\n/**\n * Apply styling to the CarouselSlider slots based on the state\n */\nexport const useCarouselSliderStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(carouselSliderClassNames.root, styles.root, state.root.className);\n return state;\n};","import { __styles, mergeClasses } from '@griffel/react';\nexport const carouselViewportClassNames = {\n root: 'fui-CarouselViewport'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n B2u0y6b: \"f6dzj5z\",\n a9b677: \"f14z66ap\"\n }\n}, {\n d: [\".f6dzj5z{max-width:100%;}\", \".f14z66ap{width:auto;}\"]\n});\n/**\n * Apply styling to the CarouselViewport slots based on the state\n */\nexport const useCarouselViewportStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(carouselViewportClassNames.root, styles.root, state.root.className);\n return state;\n};","import * as React from 'react';\nimport { useCarouselViewport_unstable } from './useCarouselViewport';\nimport { renderCarouselViewport_unstable } from './renderCarouselViewport';\nimport { useCarouselViewportStyles_unstable } from './useCarouselViewportStyles.styles';\nimport { useCarouselSliderContextValues_unstable } from '../CarouselSlider/CarouselSliderContext';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * CarouselViewport component - TODO: add more docs\n */ export const CarouselViewport = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarouselViewport_unstable(props, ref);\n useCarouselViewportStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselViewportStyles_unstable')(state);\n const context = useCarouselSliderContextValues_unstable(state);\n return renderCarouselViewport_unstable(state, context);\n});\nCarouselViewport.displayName = 'CarouselViewport';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, mergeCallbacks, slot, useMergedRefs } from '@fluentui/react-utilities';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n/**\n * Create the state required to render CarouselViewport.\n *\n * The returned state can be modified with hooks such as useCarouselViewportStyles_unstable,\n * before being passed to renderCarouselViewport_unstable.\n *\n * @param props - props from this instance of CarouselViewport\n * @param ref - reference to root HTMLDivElement of CarouselViewport\n */ export const useCarouselViewport_unstable = (props, ref)=>{\n const hasFocus = React.useRef(false);\n const hasMouse = React.useRef(false);\n const viewportRef = useCarouselContext((ctx)=>ctx.viewportRef);\n const enableAutoplay = useCarouselContext((ctx)=>ctx.enableAutoplay);\n const handleFocusCapture = React.useCallback((e)=>{\n hasFocus.current = true;\n // Will pause autoplay when focus is captured within viewport (if autoplay is initialized)\n enableAutoplay(false, true);\n }, [\n enableAutoplay\n ]);\n const handleBlurCapture = React.useCallback((e)=>{\n // Will enable autoplay (if initialized) when focus exits viewport\n if (!e.currentTarget.contains(e.relatedTarget)) {\n hasFocus.current = false;\n if (!hasMouse.current) {\n enableAutoplay(true, true);\n }\n }\n }, [\n enableAutoplay\n ]);\n const handleMouseEnter = React.useCallback((event)=>{\n hasMouse.current = true;\n enableAutoplay(false, true);\n }, [\n enableAutoplay\n ]);\n const handleMouseLeave = React.useCallback((event)=>{\n hasMouse.current = false;\n if (!hasFocus.current) {\n enableAutoplay(true, true);\n }\n }, [\n enableAutoplay\n ]);\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocusCapture);\n const onBlurCapture = mergeCallbacks(props.onBlurCapture, handleBlurCapture);\n const onMouseEnter = mergeCallbacks(props.onMouseEnter, handleMouseEnter);\n const onMouseLeave = mergeCallbacks(props.onMouseLeave, handleMouseLeave);\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref: useMergedRefs(ref, viewportRef),\n role: 'presentation',\n // Draggable ensures dragging is supported (even if not enabled)\n draggable: true,\n ...props,\n onFocusCapture,\n onBlurCapture,\n onMouseEnter,\n onMouseLeave\n }), {\n elementType: 'div'\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { CarouselSliderContextProvider } from '../CarouselSlider/CarouselSliderContext';\n/**\n * Render the final JSX of CarouselViewport\n */ export const renderCarouselViewport_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(CarouselSliderContextProvider, {\n value: contextValues.carouselSlider,\n children: /*#__PURE__*/ _jsx(state.root, {})\n });\n};\n","import * as React from 'react';\nimport { useCarousel_unstable } from './useCarousel';\nimport { renderCarousel_unstable } from './renderCarousel';\nimport { useCarouselStyles_unstable } from './useCarouselStyles.styles';\nimport { useCarouselContextValues_unstable } from './useCarouselContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Carousel is the context wrapper and container for all carousel content/controls,\n * it has no direct style or slot opinions.\n *\n * Carousel also provides API interfaces for callbacks that will occur on navigation events.\n */ export const Carousel = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useCarousel_unstable(props, ref);\n useCarouselStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselStyles_unstable')(state);\n const contextValues = useCarouselContextValues_unstable(state);\n return renderCarousel_unstable(state, contextValues);\n});\nCarousel.displayName = 'Carousel';\n","import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { getIntrinsicElementProps, slot, useEventCallback, useIsomorphicLayoutEffect, useMergedRefs } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { useEmblaCarousel } from '../useEmblaCarousel';\nimport { useAnnounce } from '@fluentui/react-shared-contexts';\n/**\n * Create the state required to render Carousel.\n *\n * The returned state can be modified with hooks such as useCarouselStyles_unstable,\n * before being passed to renderCarousel_unstable.\n *\n * @param props - props from this instance of Carousel\n * @param ref - reference to root HTMLDivElement of Carousel\n */ export function useCarousel_unstable(props, ref) {\n 'use no memo';\n const { align = 'center', circular = false, onActiveIndexChange, groupSize = 'auto', draggable = false, whitespace = false, announcement, motion = 'slide' } = props;\n const { dir } = useFluent();\n const { activeIndex, carouselApi, containerRef, viewportRef, subscribeForValues, enableAutoplay, resetAutoplay } = useEmblaCarousel({\n align,\n direction: dir,\n loop: circular,\n slidesToScroll: groupSize,\n defaultActiveIndex: props.defaultActiveIndex,\n activeIndex: props.activeIndex,\n watchDrag: draggable,\n containScroll: whitespace ? false : 'keepSnaps',\n motion,\n onDragIndexChange: onActiveIndexChange,\n onAutoplayIndexChange: onActiveIndexChange\n });\n const selectPageByElement = useEventCallback((event, element, jump)=>{\n const foundIndex = carouselApi.scrollToElement(element, jump);\n onActiveIndexChange === null || onActiveIndexChange === void 0 ? void 0 : onActiveIndexChange(event, {\n event,\n type: 'focus',\n index: foundIndex\n });\n return foundIndex;\n });\n const selectPageByIndex = useEventCallback((event, index, jump)=>{\n carouselApi.scrollToIndex(index, jump);\n onActiveIndexChange === null || onActiveIndexChange === void 0 ? void 0 : onActiveIndexChange(event, {\n event,\n type: 'click',\n index\n });\n });\n const selectPageByDirection = useEventCallback((event, direction)=>{\n const nextPageIndex = carouselApi.scrollInDirection(direction);\n onActiveIndexChange === null || onActiveIndexChange === void 0 ? void 0 : onActiveIndexChange(event, {\n event,\n type: 'click',\n index: nextPageIndex\n });\n return nextPageIndex;\n });\n const mergedContainerRef = useMergedRefs(ref, containerRef);\n // Announce carousel updates\n const announcementTextRef = React.useRef('');\n const totalNavLength = React.useRef(0);\n const navGroupRef = React.useRef([]);\n const { announce } = useAnnounce();\n const updateAnnouncement = useEventCallback(()=>{\n if (totalNavLength.current <= 0 || !announcement) {\n // Ignore announcements until slides discovered\n return;\n }\n const announcementText = announcement(activeIndex, totalNavLength.current, navGroupRef.current);\n if (announcementText !== announcementTextRef.current) {\n announcementTextRef.current = announcementText;\n announce(announcementText, {\n polite: true\n });\n }\n });\n useIsomorphicLayoutEffect(()=>{\n // Subscribe to any non-index carousel state changes\n return subscribeForValues((data)=>{\n if (totalNavLength.current <= 0 && data.navItemsCount > 0 && announcement) {\n const announcementText = announcement(data.activeIndex, data.navItemsCount, data.groupIndexList);\n // Initialize our string to prevent updateAnnouncement from reading an initial load\n announcementTextRef.current = announcementText;\n }\n totalNavLength.current = data.navItemsCount;\n navGroupRef.current = data.groupIndexList;\n updateAnnouncement();\n });\n }, [\n subscribeForValues,\n updateAnnouncement,\n announcement\n ]);\n useIsomorphicLayoutEffect(()=>{\n updateAnnouncement();\n }, [\n activeIndex,\n updateAnnouncement\n ]);\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref: mergedContainerRef,\n role: 'region',\n ...props\n }), {\n elementType: 'div'\n }),\n activeIndex,\n circular,\n containerRef: mergedContainerRef,\n viewportRef,\n selectPageByElement,\n selectPageByDirection,\n selectPageByIndex,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay\n };\n}\n","import * as React from 'react';\nexport function useCarouselContextValues_unstable(state) {\n const { activeIndex, selectPageByElement, selectPageByDirection, selectPageByIndex, subscribeForValues, enableAutoplay, resetAutoplay, circular, containerRef, viewportRef } = state;\n const carousel = React.useMemo(()=>({\n activeIndex,\n selectPageByElement,\n selectPageByDirection,\n selectPageByIndex,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay,\n circular,\n containerRef,\n viewportRef\n }), [\n activeIndex,\n selectPageByElement,\n selectPageByDirection,\n selectPageByIndex,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay,\n circular,\n containerRef,\n viewportRef\n ]);\n return {\n carousel\n };\n}\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { CarouselProvider } from '../CarouselContext';\n/**\n * Render the final JSX of Carousel\n */ export const renderCarousel_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(CarouselProvider, {\n value: contextValues.carousel,\n children: /*#__PURE__*/ _jsx(state.root, {})\n });\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nexport const carouselClassNames = {\n root: 'fui-Carousel'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n B68tc82: \"f1p9o1ba\",\n Eiaeu8: \"f1115ve7\",\n qhf8xq: \"f10pi13n\"\n }\n}, {\n d: [\".f1p9o1ba{overflow-x:hidden;}\", \".f1115ve7{overflow-anchor:none;}\", \".f10pi13n{position:relative;}\"]\n});\n/**\n * Apply styling to the Carousel slots based on the state\n */\nexport const useCarouselStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(carouselClassNames.root, styles.root, state.root.className);\n return state;\n};","function isNumber(subject) {\n return typeof subject === 'number';\n}\nfunction isString(subject) {\n return typeof subject === 'string';\n}\nfunction isBoolean(subject) {\n return typeof subject === 'boolean';\n}\nfunction isObject(subject) {\n return Object.prototype.toString.call(subject) === '[object Object]';\n}\nfunction mathAbs(n) {\n return Math.abs(n);\n}\nfunction mathSign(n) {\n return Math.sign(n);\n}\nfunction deltaAbs(valueB, valueA) {\n return mathAbs(valueB - valueA);\n}\nfunction factorAbs(valueB, valueA) {\n if (valueB === 0 || valueA === 0) return 0;\n if (mathAbs(valueB) <= mathAbs(valueA)) return 0;\n const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));\n return mathAbs(diff / valueB);\n}\nfunction roundToTwoDecimals(num) {\n return Math.round(num * 100) / 100;\n}\nfunction arrayKeys(array) {\n return objectKeys(array).map(Number);\n}\nfunction arrayLast(array) {\n return array[arrayLastIndex(array)];\n}\nfunction arrayLastIndex(array) {\n return Math.max(0, array.length - 1);\n}\nfunction arrayIsLastIndex(array, index) {\n return index === arrayLastIndex(array);\n}\nfunction arrayFromNumber(n, startAt = 0) {\n return Array.from(Array(n), (_, i) => startAt + i);\n}\nfunction objectKeys(object) {\n return Object.keys(object);\n}\nfunction objectsMergeDeep(objectA, objectB) {\n return [objectA, objectB].reduce((mergedObjects, currentObject) => {\n objectKeys(currentObject).forEach(key => {\n const valueA = mergedObjects[key];\n const valueB = currentObject[key];\n const areObjects = isObject(valueA) && isObject(valueB);\n mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;\n });\n return mergedObjects;\n }, {});\n}\nfunction isMouseEvent(evt, ownerWindow) {\n return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;\n}\n\nfunction Alignment(align, viewSize) {\n const predefined = {\n start,\n center,\n end\n };\n function start() {\n return 0;\n }\n function center(n) {\n return end(n) / 2;\n }\n function end(n) {\n return viewSize - n;\n }\n function measure(n, index) {\n if (isString(align)) return predefined[align](n);\n return align(viewSize, n, index);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction EventStore() {\n let listeners = [];\n function add(node, type, handler, options = {\n passive: true\n }) {\n let removeListener;\n if ('addEventListener' in node) {\n node.addEventListener(type, handler, options);\n removeListener = () => node.removeEventListener(type, handler, options);\n } else {\n const legacyMediaQueryList = node;\n legacyMediaQueryList.addListener(handler);\n removeListener = () => legacyMediaQueryList.removeListener(handler);\n }\n listeners.push(removeListener);\n return self;\n }\n function clear() {\n listeners = listeners.filter(remove => remove());\n }\n const self = {\n add,\n clear\n };\n return self;\n}\n\nfunction Animations(ownerDocument, ownerWindow, update, render) {\n const documentVisibleHandler = EventStore();\n const fixedTimeStep = 1000 / 60;\n let lastTimeStamp = null;\n let accumulatedTime = 0;\n let animationId = 0;\n function init() {\n documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {\n if (ownerDocument.hidden) reset();\n });\n }\n function destroy() {\n stop();\n documentVisibleHandler.clear();\n }\n function animate(timeStamp) {\n if (!animationId) return;\n if (!lastTimeStamp) {\n lastTimeStamp = timeStamp;\n update();\n update();\n }\n const timeElapsed = timeStamp - lastTimeStamp;\n lastTimeStamp = timeStamp;\n accumulatedTime += timeElapsed;\n while (accumulatedTime >= fixedTimeStep) {\n update();\n accumulatedTime -= fixedTimeStep;\n }\n const alpha = accumulatedTime / fixedTimeStep;\n render(alpha);\n if (animationId) {\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n }\n function start() {\n if (animationId) return;\n animationId = ownerWindow.requestAnimationFrame(animate);\n }\n function stop() {\n ownerWindow.cancelAnimationFrame(animationId);\n lastTimeStamp = null;\n accumulatedTime = 0;\n animationId = 0;\n }\n function reset() {\n lastTimeStamp = null;\n accumulatedTime = 0;\n }\n const self = {\n init,\n destroy,\n start,\n stop,\n update,\n render\n };\n return self;\n}\n\nfunction Axis(axis, contentDirection) {\n const isRightToLeft = contentDirection === 'rtl';\n const isVertical = axis === 'y';\n const scroll = isVertical ? 'y' : 'x';\n const cross = isVertical ? 'x' : 'y';\n const sign = !isVertical && isRightToLeft ? -1 : 1;\n const startEdge = getStartEdge();\n const endEdge = getEndEdge();\n function measureSize(nodeRect) {\n const {\n height,\n width\n } = nodeRect;\n return isVertical ? height : width;\n }\n function getStartEdge() {\n if (isVertical) return 'top';\n return isRightToLeft ? 'right' : 'left';\n }\n function getEndEdge() {\n if (isVertical) return 'bottom';\n return isRightToLeft ? 'left' : 'right';\n }\n function direction(n) {\n return n * sign;\n }\n const self = {\n scroll,\n cross,\n startEdge,\n endEdge,\n measureSize,\n direction\n };\n return self;\n}\n\nfunction Limit(min = 0, max = 0) {\n const length = mathAbs(min - max);\n function reachedMin(n) {\n return n < min;\n }\n function reachedMax(n) {\n return n > max;\n }\n function reachedAny(n) {\n return reachedMin(n) || reachedMax(n);\n }\n function constrain(n) {\n if (!reachedAny(n)) return n;\n return reachedMin(n) ? min : max;\n }\n function removeOffset(n) {\n if (!length) return n;\n return n - length * Math.ceil((n - max) / length);\n }\n const self = {\n length,\n max,\n min,\n constrain,\n reachedAny,\n reachedMax,\n reachedMin,\n removeOffset\n };\n return self;\n}\n\nfunction Counter(max, start, loop) {\n const {\n constrain\n } = Limit(0, max);\n const loopEnd = max + 1;\n let counter = withinLimit(start);\n function withinLimit(n) {\n return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);\n }\n function get() {\n return counter;\n }\n function set(n) {\n counter = withinLimit(n);\n return self;\n }\n function add(n) {\n return clone().set(get() + n);\n }\n function clone() {\n return Counter(max, get(), loop);\n }\n const self = {\n get,\n set,\n add,\n clone\n };\n return self;\n}\n\nfunction DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {\n const {\n cross: crossAxis,\n direction\n } = axis;\n const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];\n const nonPassiveEvent = {\n passive: false\n };\n const initEvents = EventStore();\n const dragEvents = EventStore();\n const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));\n const snapForceBoost = {\n mouse: 300,\n touch: 400\n };\n const freeForceBoost = {\n mouse: 500,\n touch: 600\n };\n const baseSpeed = dragFree ? 43 : 25;\n let isMoving = false;\n let startScroll = 0;\n let startCross = 0;\n let pointerIsDown = false;\n let preventScroll = false;\n let preventClick = false;\n let isMouse = false;\n function init(emblaApi) {\n if (!watchDrag) return;\n function downIfAllowed(evt) {\n if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);\n }\n const node = rootNode;\n initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);\n }\n function destroy() {\n initEvents.clear();\n dragEvents.clear();\n }\n function addDragEvents() {\n const node = isMouse ? ownerDocument : rootNode;\n dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);\n }\n function isFocusNode(node) {\n const nodeName = node.nodeName || '';\n return focusNodes.includes(nodeName);\n }\n function forceBoost() {\n const boost = dragFree ? freeForceBoost : snapForceBoost;\n const type = isMouse ? 'mouse' : 'touch';\n return boost[type];\n }\n function allowedForce(force, targetChanged) {\n const next = index.add(mathSign(force) * -1);\n const baseForce = scrollTarget.byDistance(force, !dragFree).distance;\n if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;\n if (skipSnaps && targetChanged) return baseForce * 0.5;\n return scrollTarget.byIndex(next.get(), 0).distance;\n }\n function down(evt) {\n const isMouseEvt = isMouseEvent(evt, ownerWindow);\n isMouse = isMouseEvt;\n preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;\n isMoving = deltaAbs(target.get(), location.get()) >= 2;\n if (isMouseEvt && evt.button !== 0) return;\n if (isFocusNode(evt.target)) return;\n pointerIsDown = true;\n dragTracker.pointerDown(evt);\n scrollBody.useFriction(0).useDuration(0);\n target.set(location);\n addDragEvents();\n startScroll = dragTracker.readPoint(evt);\n startCross = dragTracker.readPoint(evt, crossAxis);\n eventHandler.emit('pointerDown');\n }\n function move(evt) {\n const isTouchEvt = !isMouseEvent(evt, ownerWindow);\n if (isTouchEvt && evt.touches.length >= 2) return up(evt);\n const lastScroll = dragTracker.readPoint(evt);\n const lastCross = dragTracker.readPoint(evt, crossAxis);\n const diffScroll = deltaAbs(lastScroll, startScroll);\n const diffCross = deltaAbs(lastCross, startCross);\n if (!preventScroll && !isMouse) {\n if (!evt.cancelable) return up(evt);\n preventScroll = diffScroll > diffCross;\n if (!preventScroll) return up(evt);\n }\n const diff = dragTracker.pointerMove(evt);\n if (diffScroll > dragThreshold) preventClick = true;\n scrollBody.useFriction(0.3).useDuration(0.75);\n animation.start();\n target.add(direction(diff));\n evt.preventDefault();\n }\n function up(evt) {\n const currentLocation = scrollTarget.byDistance(0, false);\n const targetChanged = currentLocation.index !== index.get();\n const rawForce = dragTracker.pointerUp(evt) * forceBoost();\n const force = allowedForce(direction(rawForce), targetChanged);\n const forceFactor = factorAbs(rawForce, force);\n const speed = baseSpeed - 10 * forceFactor;\n const friction = baseFriction + forceFactor / 50;\n preventScroll = false;\n pointerIsDown = false;\n dragEvents.clear();\n scrollBody.useDuration(speed).useFriction(friction);\n scrollTo.distance(force, !dragFree);\n isMouse = false;\n eventHandler.emit('pointerUp');\n }\n function click(evt) {\n if (preventClick) {\n evt.stopPropagation();\n evt.preventDefault();\n preventClick = false;\n }\n }\n function pointerDown() {\n return pointerIsDown;\n }\n const self = {\n init,\n destroy,\n pointerDown\n };\n return self;\n}\n\nfunction DragTracker(axis, ownerWindow) {\n const logInterval = 170;\n let startEvent;\n let lastEvent;\n function readTime(evt) {\n return evt.timeStamp;\n }\n function readPoint(evt, evtAxis) {\n const property = evtAxis || axis.scroll;\n const coord = `client${property === 'x' ? 'X' : 'Y'}`;\n return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];\n }\n function pointerDown(evt) {\n startEvent = evt;\n lastEvent = evt;\n return readPoint(evt);\n }\n function pointerMove(evt) {\n const diff = readPoint(evt) - readPoint(lastEvent);\n const expired = readTime(evt) - readTime(startEvent) > logInterval;\n lastEvent = evt;\n if (expired) startEvent = evt;\n return diff;\n }\n function pointerUp(evt) {\n if (!startEvent || !lastEvent) return 0;\n const diffDrag = readPoint(lastEvent) - readPoint(startEvent);\n const diffTime = readTime(evt) - readTime(startEvent);\n const expired = readTime(evt) - readTime(lastEvent) > logInterval;\n const force = diffDrag / diffTime;\n const isFlick = diffTime && !expired && mathAbs(force) > 0.1;\n return isFlick ? force : 0;\n }\n const self = {\n pointerDown,\n pointerMove,\n pointerUp,\n readPoint\n };\n return self;\n}\n\nfunction NodeRects() {\n function measure(node) {\n const {\n offsetTop,\n offsetLeft,\n offsetWidth,\n offsetHeight\n } = node;\n const offset = {\n top: offsetTop,\n right: offsetLeft + offsetWidth,\n bottom: offsetTop + offsetHeight,\n left: offsetLeft,\n width: offsetWidth,\n height: offsetHeight\n };\n return offset;\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction PercentOfView(viewSize) {\n function measure(n) {\n return viewSize * (n / 100);\n }\n const self = {\n measure\n };\n return self;\n}\n\nfunction ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {\n const observeNodes = [container].concat(slides);\n let resizeObserver;\n let containerSize;\n let slideSizes = [];\n let destroyed = false;\n function readSize(node) {\n return axis.measureSize(nodeRects.measure(node));\n }\n function init(emblaApi) {\n if (!watchResize) return;\n containerSize = readSize(container);\n slideSizes = slides.map(readSize);\n function defaultCallback(entries) {\n for (const entry of entries) {\n if (destroyed) return;\n const isContainer = entry.target === container;\n const slideIndex = slides.indexOf(entry.target);\n const lastSize = isContainer ? containerSize : slideSizes[slideIndex];\n const newSize = readSize(isContainer ? container : slides[slideIndex]);\n const diffSize = mathAbs(newSize - lastSize);\n if (diffSize >= 0.5) {\n emblaApi.reInit();\n eventHandler.emit('resize');\n break;\n }\n }\n }\n resizeObserver = new ResizeObserver(entries => {\n if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {\n defaultCallback(entries);\n }\n });\n ownerWindow.requestAnimationFrame(() => {\n observeNodes.forEach(node => resizeObserver.observe(node));\n });\n }\n function destroy() {\n destroyed = true;\n if (resizeObserver) resizeObserver.disconnect();\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {\n let scrollVelocity = 0;\n let scrollDirection = 0;\n let scrollDuration = baseDuration;\n let scrollFriction = baseFriction;\n let rawLocation = location.get();\n let rawLocationPrevious = 0;\n function seek() {\n const displacement = target.get() - location.get();\n const isInstant = !scrollDuration;\n let scrollDistance = 0;\n if (isInstant) {\n scrollVelocity = 0;\n previousLocation.set(target);\n location.set(target);\n scrollDistance = displacement;\n } else {\n previousLocation.set(location);\n scrollVelocity += displacement / scrollDuration;\n scrollVelocity *= scrollFriction;\n rawLocation += scrollVelocity;\n location.add(scrollVelocity);\n scrollDistance = rawLocation - rawLocationPrevious;\n }\n scrollDirection = mathSign(scrollDistance);\n rawLocationPrevious = rawLocation;\n return self;\n }\n function settled() {\n const diff = target.get() - offsetLocation.get();\n return mathAbs(diff) < 0.001;\n }\n function duration() {\n return scrollDuration;\n }\n function direction() {\n return scrollDirection;\n }\n function velocity() {\n return scrollVelocity;\n }\n function useBaseDuration() {\n return useDuration(baseDuration);\n }\n function useBaseFriction() {\n return useFriction(baseFriction);\n }\n function useDuration(n) {\n scrollDuration = n;\n return self;\n }\n function useFriction(n) {\n scrollFriction = n;\n return self;\n }\n const self = {\n direction,\n duration,\n velocity,\n seek,\n settled,\n useBaseFriction,\n useBaseDuration,\n useFriction,\n useDuration\n };\n return self;\n}\n\nfunction ScrollBounds(limit, location, target, scrollBody, percentOfView) {\n const pullBackThreshold = percentOfView.measure(10);\n const edgeOffsetTolerance = percentOfView.measure(50);\n const frictionLimit = Limit(0.1, 0.99);\n let disabled = false;\n function shouldConstrain() {\n if (disabled) return false;\n if (!limit.reachedAny(target.get())) return false;\n if (!limit.reachedAny(location.get())) return false;\n return true;\n }\n function constrain(pointerDown) {\n if (!shouldConstrain()) return;\n const edge = limit.reachedMin(location.get()) ? 'min' : 'max';\n const diffToEdge = mathAbs(limit[edge] - location.get());\n const diffToTarget = target.get() - location.get();\n const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);\n target.subtract(diffToTarget * friction);\n if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {\n target.set(limit.constrain(target.get()));\n scrollBody.useDuration(25).useBaseFriction();\n }\n }\n function toggleActive(active) {\n disabled = !active;\n }\n const self = {\n shouldConstrain,\n constrain,\n toggleActive\n };\n return self;\n}\n\nfunction ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {\n const scrollBounds = Limit(-contentSize + viewSize, 0);\n const snapsBounded = measureBounded();\n const scrollContainLimit = findScrollContainLimit();\n const snapsContained = measureContained();\n function usePixelTolerance(bound, snap) {\n return deltaAbs(bound, snap) <= 1;\n }\n function findScrollContainLimit() {\n const startSnap = snapsBounded[0];\n const endSnap = arrayLast(snapsBounded);\n const min = snapsBounded.lastIndexOf(startSnap);\n const max = snapsBounded.indexOf(endSnap) + 1;\n return Limit(min, max);\n }\n function measureBounded() {\n return snapsAligned.map((snapAligned, index) => {\n const {\n min,\n max\n } = scrollBounds;\n const snap = scrollBounds.constrain(snapAligned);\n const isFirst = !index;\n const isLast = arrayIsLastIndex(snapsAligned, index);\n if (isFirst) return max;\n if (isLast) return min;\n if (usePixelTolerance(min, snap)) return min;\n if (usePixelTolerance(max, snap)) return max;\n return snap;\n }).map(scrollBound => parseFloat(scrollBound.toFixed(3)));\n }\n function measureContained() {\n if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];\n if (containScroll === 'keepSnaps') return snapsBounded;\n const {\n min,\n max\n } = scrollContainLimit;\n return snapsBounded.slice(min, max);\n }\n const self = {\n snapsContained,\n scrollContainLimit\n };\n return self;\n}\n\nfunction ScrollLimit(contentSize, scrollSnaps, loop) {\n const max = scrollSnaps[0];\n const min = loop ? max - contentSize : arrayLast(scrollSnaps);\n const limit = Limit(min, max);\n const self = {\n limit\n };\n return self;\n}\n\nfunction ScrollLooper(contentSize, limit, location, vectors) {\n const jointSafety = 0.1;\n const min = limit.min + jointSafety;\n const max = limit.max + jointSafety;\n const {\n reachedMin,\n reachedMax\n } = Limit(min, max);\n function shouldLoop(direction) {\n if (direction === 1) return reachedMax(location.get());\n if (direction === -1) return reachedMin(location.get());\n return false;\n }\n function loop(direction) {\n if (!shouldLoop(direction)) return;\n const loopDistance = contentSize * (direction * -1);\n vectors.forEach(v => v.add(loopDistance));\n }\n const self = {\n loop\n };\n return self;\n}\n\nfunction ScrollProgress(limit) {\n const {\n max,\n length\n } = limit;\n function get(n) {\n const currentLocation = n - max;\n return length ? currentLocation / -length : 0;\n }\n const self = {\n get\n };\n return self;\n}\n\nfunction ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {\n const {\n startEdge,\n endEdge\n } = axis;\n const {\n groupSlides\n } = slidesToScroll;\n const alignments = measureSizes().map(alignment.measure);\n const snaps = measureUnaligned();\n const snapsAligned = measureAligned();\n function measureSizes() {\n return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);\n }\n function measureUnaligned() {\n return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));\n }\n function measureAligned() {\n return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);\n }\n const self = {\n snaps,\n snapsAligned\n };\n return self;\n}\n\nfunction SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {\n const {\n groupSlides\n } = slidesToScroll;\n const {\n min,\n max\n } = scrollContainLimit;\n const slideRegistry = createSlideRegistry();\n function createSlideRegistry() {\n const groupedSlideIndexes = groupSlides(slideIndexes);\n const doNotContain = !containSnaps || containScroll === 'keepSnaps';\n if (scrollSnaps.length === 1) return [slideIndexes];\n if (doNotContain) return groupedSlideIndexes;\n return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(groups, index);\n if (isFirst) {\n const range = arrayLast(groups[0]) + 1;\n return arrayFromNumber(range);\n }\n if (isLast) {\n const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;\n return arrayFromNumber(range, arrayLast(groups)[0]);\n }\n return group;\n });\n }\n const self = {\n slideRegistry\n };\n return self;\n}\n\nfunction ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {\n const {\n reachedAny,\n removeOffset,\n constrain\n } = limit;\n function minDistance(distances) {\n return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];\n }\n function findTargetSnap(target) {\n const distance = loop ? removeOffset(target) : constrain(target);\n const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({\n diff: shortcut(snap - distance, 0),\n index\n })).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));\n const {\n index\n } = ascDiffsToSnaps[0];\n return {\n index,\n distance\n };\n }\n function shortcut(target, direction) {\n const targets = [target, target + contentSize, target - contentSize];\n if (!loop) return target;\n if (!direction) return minDistance(targets);\n const matchingTargets = targets.filter(t => mathSign(t) === direction);\n if (matchingTargets.length) return minDistance(matchingTargets);\n return arrayLast(targets) - contentSize;\n }\n function byIndex(index, direction) {\n const diffToSnap = scrollSnaps[index] - targetVector.get();\n const distance = shortcut(diffToSnap, direction);\n return {\n index,\n distance\n };\n }\n function byDistance(distance, snap) {\n const target = targetVector.get() + distance;\n const {\n index,\n distance: targetSnapDistance\n } = findTargetSnap(target);\n const reachedBound = !loop && reachedAny(target);\n if (!snap || reachedBound) return {\n index,\n distance\n };\n const diffToSnap = scrollSnaps[index] - targetSnapDistance;\n const snapDistance = distance + shortcut(diffToSnap, 0);\n return {\n index,\n distance: snapDistance\n };\n }\n const self = {\n byDistance,\n byIndex,\n shortcut\n };\n return self;\n}\n\nfunction ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {\n function scrollTo(target) {\n const distanceDiff = target.distance;\n const indexDiff = target.index !== indexCurrent.get();\n targetVector.add(distanceDiff);\n if (distanceDiff) {\n if (scrollBody.duration()) {\n animation.start();\n } else {\n animation.update();\n animation.render(1);\n animation.update();\n }\n }\n if (indexDiff) {\n indexPrevious.set(indexCurrent.get());\n indexCurrent.set(target.index);\n eventHandler.emit('select');\n }\n }\n function distance(n, snap) {\n const target = scrollTarget.byDistance(n, snap);\n scrollTo(target);\n }\n function index(n, direction) {\n const targetIndex = indexCurrent.clone().set(n);\n const target = scrollTarget.byIndex(targetIndex.get(), direction);\n scrollTo(target);\n }\n const self = {\n distance,\n index\n };\n return self;\n}\n\nfunction SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {\n const focusListenerOptions = {\n passive: true,\n capture: true\n };\n let lastTabPressTime = 0;\n function init(emblaApi) {\n if (!watchFocus) return;\n function defaultCallback(index) {\n const nowTime = new Date().getTime();\n const diffTime = nowTime - lastTabPressTime;\n if (diffTime > 10) return;\n eventHandler.emit('slideFocusStart');\n root.scrollLeft = 0;\n const group = slideRegistry.findIndex(group => group.includes(index));\n if (!isNumber(group)) return;\n scrollBody.useDuration(0);\n scrollTo.index(group, 0);\n eventHandler.emit('slideFocus');\n }\n eventStore.add(document, 'keydown', registerTabPress, false);\n slides.forEach((slide, slideIndex) => {\n eventStore.add(slide, 'focus', evt => {\n if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {\n defaultCallback(slideIndex);\n }\n }, focusListenerOptions);\n });\n }\n function registerTabPress(event) {\n if (event.code === 'Tab') lastTabPressTime = new Date().getTime();\n }\n const self = {\n init\n };\n return self;\n}\n\nfunction Vector1D(initialValue) {\n let value = initialValue;\n function get() {\n return value;\n }\n function set(n) {\n value = normalizeInput(n);\n }\n function add(n) {\n value += normalizeInput(n);\n }\n function subtract(n) {\n value -= normalizeInput(n);\n }\n function normalizeInput(n) {\n return isNumber(n) ? n : n.get();\n }\n const self = {\n get,\n set,\n add,\n subtract\n };\n return self;\n}\n\nfunction Translate(axis, container) {\n const translate = axis.scroll === 'x' ? x : y;\n const containerStyle = container.style;\n let previousTarget = null;\n let disabled = false;\n function x(n) {\n return `translate3d(${n}px,0px,0px)`;\n }\n function y(n) {\n return `translate3d(0px,${n}px,0px)`;\n }\n function to(target) {\n if (disabled) return;\n const newTarget = roundToTwoDecimals(axis.direction(target));\n if (newTarget === previousTarget) return;\n containerStyle.transform = translate(newTarget);\n previousTarget = newTarget;\n }\n function toggleActive(active) {\n disabled = !active;\n }\n function clear() {\n if (disabled) return;\n containerStyle.transform = '';\n if (!container.getAttribute('style')) container.removeAttribute('style');\n }\n const self = {\n clear,\n to,\n toggleActive\n };\n return self;\n}\n\nfunction SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {\n const roundingSafety = 0.5;\n const ascItems = arrayKeys(slideSizesWithGaps);\n const descItems = arrayKeys(slideSizesWithGaps).reverse();\n const loopPoints = startPoints().concat(endPoints());\n function removeSlideSizes(indexes, from) {\n return indexes.reduce((a, i) => {\n return a - slideSizesWithGaps[i];\n }, from);\n }\n function slidesInGap(indexes, gap) {\n return indexes.reduce((a, i) => {\n const remainingGap = removeSlideSizes(a, gap);\n return remainingGap > 0 ? a.concat([i]) : a;\n }, []);\n }\n function findSlideBounds(offset) {\n return snaps.map((snap, index) => ({\n start: snap - slideSizes[index] + roundingSafety + offset,\n end: snap + viewSize - roundingSafety + offset\n }));\n }\n function findLoopPoints(indexes, offset, isEndEdge) {\n const slideBounds = findSlideBounds(offset);\n return indexes.map(index => {\n const initial = isEndEdge ? 0 : -contentSize;\n const altered = isEndEdge ? contentSize : 0;\n const boundEdge = isEndEdge ? 'end' : 'start';\n const loopPoint = slideBounds[index][boundEdge];\n return {\n index,\n loopPoint,\n slideLocation: Vector1D(-1),\n translate: Translate(axis, slides[index]),\n target: () => location.get() > loopPoint ? initial : altered\n };\n });\n }\n function startPoints() {\n const gap = scrollSnaps[0];\n const indexes = slidesInGap(descItems, gap);\n return findLoopPoints(indexes, contentSize, false);\n }\n function endPoints() {\n const gap = viewSize - scrollSnaps[0] - 1;\n const indexes = slidesInGap(ascItems, gap);\n return findLoopPoints(indexes, -contentSize, true);\n }\n function canLoop() {\n return loopPoints.every(({\n index\n }) => {\n const otherIndexes = ascItems.filter(i => i !== index);\n return removeSlideSizes(otherIndexes, viewSize) <= 0.1;\n });\n }\n function loop() {\n loopPoints.forEach(loopPoint => {\n const {\n target,\n translate,\n slideLocation\n } = loopPoint;\n const shiftLocation = target();\n if (shiftLocation === slideLocation.get()) return;\n translate.to(shiftLocation);\n slideLocation.set(shiftLocation);\n });\n }\n function clear() {\n loopPoints.forEach(loopPoint => loopPoint.translate.clear());\n }\n const self = {\n canLoop,\n clear,\n loop,\n loopPoints\n };\n return self;\n}\n\nfunction SlidesHandler(container, eventHandler, watchSlides) {\n let mutationObserver;\n let destroyed = false;\n function init(emblaApi) {\n if (!watchSlides) return;\n function defaultCallback(mutations) {\n for (const mutation of mutations) {\n if (mutation.type === 'childList') {\n emblaApi.reInit();\n eventHandler.emit('slidesChanged');\n break;\n }\n }\n }\n mutationObserver = new MutationObserver(mutations => {\n if (destroyed) return;\n if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {\n defaultCallback(mutations);\n }\n });\n mutationObserver.observe(container, {\n childList: true\n });\n }\n function destroy() {\n if (mutationObserver) mutationObserver.disconnect();\n destroyed = true;\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction SlidesInView(container, slides, eventHandler, threshold) {\n const intersectionEntryMap = {};\n let inViewCache = null;\n let notInViewCache = null;\n let intersectionObserver;\n let destroyed = false;\n function init() {\n intersectionObserver = new IntersectionObserver(entries => {\n if (destroyed) return;\n entries.forEach(entry => {\n const index = slides.indexOf(entry.target);\n intersectionEntryMap[index] = entry;\n });\n inViewCache = null;\n notInViewCache = null;\n eventHandler.emit('slidesInView');\n }, {\n root: container.parentElement,\n threshold\n });\n slides.forEach(slide => intersectionObserver.observe(slide));\n }\n function destroy() {\n if (intersectionObserver) intersectionObserver.disconnect();\n destroyed = true;\n }\n function createInViewList(inView) {\n return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {\n const index = parseInt(slideIndex);\n const {\n isIntersecting\n } = intersectionEntryMap[index];\n const inViewMatch = inView && isIntersecting;\n const notInViewMatch = !inView && !isIntersecting;\n if (inViewMatch || notInViewMatch) list.push(index);\n return list;\n }, []);\n }\n function get(inView = true) {\n if (inView && inViewCache) return inViewCache;\n if (!inView && notInViewCache) return notInViewCache;\n const slideIndexes = createInViewList(inView);\n if (inView) inViewCache = slideIndexes;\n if (!inView) notInViewCache = slideIndexes;\n return slideIndexes;\n }\n const self = {\n init,\n destroy,\n get\n };\n return self;\n}\n\nfunction SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {\n const {\n measureSize,\n startEdge,\n endEdge\n } = axis;\n const withEdgeGap = slideRects[0] && readEdgeGap;\n const startGap = measureStartGap();\n const endGap = measureEndGap();\n const slideSizes = slideRects.map(measureSize);\n const slideSizesWithGaps = measureWithGaps();\n function measureStartGap() {\n if (!withEdgeGap) return 0;\n const slideRect = slideRects[0];\n return mathAbs(containerRect[startEdge] - slideRect[startEdge]);\n }\n function measureEndGap() {\n if (!withEdgeGap) return 0;\n const style = ownerWindow.getComputedStyle(arrayLast(slides));\n return parseFloat(style.getPropertyValue(`margin-${endEdge}`));\n }\n function measureWithGaps() {\n return slideRects.map((rect, index, rects) => {\n const isFirst = !index;\n const isLast = arrayIsLastIndex(rects, index);\n if (isFirst) return slideSizes[index] + startGap;\n if (isLast) return slideSizes[index] + endGap;\n return rects[index + 1][startEdge] - rect[startEdge];\n }).map(mathAbs);\n }\n const self = {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n };\n return self;\n}\n\nfunction SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {\n const {\n startEdge,\n endEdge,\n direction\n } = axis;\n const groupByNumber = isNumber(slidesToScroll);\n function byNumber(array, groupSize) {\n return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));\n }\n function bySize(array) {\n if (!array.length) return [];\n return arrayKeys(array).reduce((groups, rectB, index) => {\n const rectA = arrayLast(groups) || 0;\n const isFirst = rectA === 0;\n const isLast = rectB === arrayLastIndex(array);\n const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];\n const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];\n const gapA = !loop && isFirst ? direction(startGap) : 0;\n const gapB = !loop && isLast ? direction(endGap) : 0;\n const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));\n if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);\n if (isLast) groups.push(array.length);\n return groups;\n }, []).map((currentSize, index, groups) => {\n const previousSize = Math.max(groups[index - 1] || 0);\n return array.slice(previousSize, currentSize);\n });\n }\n function groupSlides(array) {\n return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);\n }\n const self = {\n groupSlides\n };\n return self;\n}\n\nfunction Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {\n // Options\n const {\n align,\n axis: scrollAxis,\n direction,\n startIndex,\n loop,\n duration,\n dragFree,\n dragThreshold,\n inViewThreshold,\n slidesToScroll: groupSlides,\n skipSnaps,\n containScroll,\n watchResize,\n watchSlides,\n watchDrag,\n watchFocus\n } = options;\n // Measurements\n const pixelTolerance = 2;\n const nodeRects = NodeRects();\n const containerRect = nodeRects.measure(container);\n const slideRects = slides.map(nodeRects.measure);\n const axis = Axis(scrollAxis, direction);\n const viewSize = axis.measureSize(containerRect);\n const percentOfView = PercentOfView(viewSize);\n const alignment = Alignment(align, viewSize);\n const containSnaps = !loop && !!containScroll;\n const readEdgeGap = loop || !!containScroll;\n const {\n slideSizes,\n slideSizesWithGaps,\n startGap,\n endGap\n } = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);\n const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);\n const {\n snaps,\n snapsAligned\n } = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);\n const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);\n const {\n snapsContained,\n scrollContainLimit\n } = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);\n const scrollSnaps = containSnaps ? snapsContained : snapsAligned;\n const {\n limit\n } = ScrollLimit(contentSize, scrollSnaps, loop);\n // Indexes\n const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);\n const indexPrevious = index.clone();\n const slideIndexes = arrayKeys(slides);\n // Animation\n const update = ({\n dragHandler,\n scrollBody,\n scrollBounds,\n options: {\n loop\n }\n }) => {\n if (!loop) scrollBounds.constrain(dragHandler.pointerDown());\n scrollBody.seek();\n };\n const render = ({\n scrollBody,\n translate,\n location,\n offsetLocation,\n previousLocation,\n scrollLooper,\n slideLooper,\n dragHandler,\n animation,\n eventHandler,\n scrollBounds,\n options: {\n loop\n }\n }, alpha) => {\n const shouldSettle = scrollBody.settled();\n const withinBounds = !scrollBounds.shouldConstrain();\n const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;\n if (hasSettled && !dragHandler.pointerDown()) {\n animation.stop();\n eventHandler.emit('settle');\n }\n if (!hasSettled) eventHandler.emit('scroll');\n const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);\n offsetLocation.set(interpolatedLocation);\n if (loop) {\n scrollLooper.loop(scrollBody.direction());\n slideLooper.loop();\n }\n translate.to(offsetLocation.get());\n };\n const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));\n // Shared\n const friction = 0.68;\n const startLocation = scrollSnaps[index.get()];\n const location = Vector1D(startLocation);\n const previousLocation = Vector1D(startLocation);\n const offsetLocation = Vector1D(startLocation);\n const target = Vector1D(startLocation);\n const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);\n const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);\n const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);\n const scrollProgress = ScrollProgress(limit);\n const eventStore = EventStore();\n const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);\n const {\n slideRegistry\n } = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);\n const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);\n // Engine\n const engine = {\n ownerDocument,\n ownerWindow,\n eventHandler,\n containerRect,\n slideRects,\n animation,\n axis,\n dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),\n eventStore,\n percentOfView,\n index,\n indexPrevious,\n limit,\n location,\n offsetLocation,\n previousLocation,\n options,\n resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),\n scrollBody,\n scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),\n scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),\n scrollProgress,\n scrollSnapList: scrollSnaps.map(scrollProgress.get),\n scrollSnaps,\n scrollTarget,\n scrollTo,\n slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),\n slideFocus,\n slidesHandler: SlidesHandler(container, eventHandler, watchSlides),\n slidesInView,\n slideIndexes,\n slideRegistry,\n slidesToScroll,\n target,\n translate: Translate(axis, container)\n };\n return engine;\n}\n\nfunction EventHandler() {\n let listeners = {};\n let api;\n function init(emblaApi) {\n api = emblaApi;\n }\n function getListeners(evt) {\n return listeners[evt] || [];\n }\n function emit(evt) {\n getListeners(evt).forEach(e => e(api, evt));\n return self;\n }\n function on(evt, cb) {\n listeners[evt] = getListeners(evt).concat([cb]);\n return self;\n }\n function off(evt, cb) {\n listeners[evt] = getListeners(evt).filter(e => e !== cb);\n return self;\n }\n function clear() {\n listeners = {};\n }\n const self = {\n init,\n emit,\n off,\n on,\n clear\n };\n return self;\n}\n\nconst defaultOptions = {\n align: 'center',\n axis: 'x',\n container: null,\n slides: null,\n containScroll: 'trimSnaps',\n direction: 'ltr',\n slidesToScroll: 1,\n inViewThreshold: 0,\n breakpoints: {},\n dragFree: false,\n dragThreshold: 10,\n loop: false,\n skipSnaps: false,\n duration: 25,\n startIndex: 0,\n active: true,\n watchDrag: true,\n watchResize: true,\n watchSlides: true,\n watchFocus: true\n};\n\nfunction OptionsHandler(ownerWindow) {\n function mergeOptions(optionsA, optionsB) {\n return objectsMergeDeep(optionsA, optionsB || {});\n }\n function optionsAtMedia(options) {\n const optionsAtMedia = options.breakpoints || {};\n const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});\n return mergeOptions(options, matchedMediaOptions);\n }\n function optionsMediaQueries(optionsList) {\n return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);\n }\n const self = {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n };\n return self;\n}\n\nfunction PluginsHandler(optionsHandler) {\n let activePlugins = [];\n function init(emblaApi, plugins) {\n activePlugins = plugins.filter(({\n options\n }) => optionsHandler.optionsAtMedia(options).active !== false);\n activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));\n return plugins.reduce((map, plugin) => Object.assign(map, {\n [plugin.name]: plugin\n }), {});\n }\n function destroy() {\n activePlugins = activePlugins.filter(plugin => plugin.destroy());\n }\n const self = {\n init,\n destroy\n };\n return self;\n}\n\nfunction EmblaCarousel(root, userOptions, userPlugins) {\n const ownerDocument = root.ownerDocument;\n const ownerWindow = ownerDocument.defaultView;\n const optionsHandler = OptionsHandler(ownerWindow);\n const pluginsHandler = PluginsHandler(optionsHandler);\n const mediaHandlers = EventStore();\n const eventHandler = EventHandler();\n const {\n mergeOptions,\n optionsAtMedia,\n optionsMediaQueries\n } = optionsHandler;\n const {\n on,\n off,\n emit\n } = eventHandler;\n const reInit = reActivate;\n let destroyed = false;\n let engine;\n let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);\n let options = mergeOptions(optionsBase);\n let pluginList = [];\n let pluginApis;\n let container;\n let slides;\n function storeElements() {\n const {\n container: userContainer,\n slides: userSlides\n } = options;\n const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;\n container = customContainer || root.children[0];\n const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;\n slides = [].slice.call(customSlides || container.children);\n }\n function createEngine(options) {\n const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);\n if (options.loop && !engine.slideLooper.canLoop()) {\n const optionsWithoutLoop = Object.assign({}, options, {\n loop: false\n });\n return createEngine(optionsWithoutLoop);\n }\n return engine;\n }\n function activate(withOptions, withPlugins) {\n if (destroyed) return;\n optionsBase = mergeOptions(optionsBase, withOptions);\n options = optionsAtMedia(optionsBase);\n pluginList = withPlugins || pluginList;\n storeElements();\n engine = createEngine(options);\n optionsMediaQueries([optionsBase, ...pluginList.map(({\n options\n }) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));\n if (!options.active) return;\n engine.translate.to(engine.location.get());\n engine.animation.init();\n engine.slidesInView.init();\n engine.slideFocus.init(self);\n engine.eventHandler.init(self);\n engine.resizeHandler.init(self);\n engine.slidesHandler.init(self);\n if (engine.options.loop) engine.slideLooper.loop();\n if (container.offsetParent && slides.length) engine.dragHandler.init(self);\n pluginApis = pluginsHandler.init(self, pluginList);\n }\n function reActivate(withOptions, withPlugins) {\n const startIndex = selectedScrollSnap();\n deActivate();\n activate(mergeOptions({\n startIndex\n }, withOptions), withPlugins);\n eventHandler.emit('reInit');\n }\n function deActivate() {\n engine.dragHandler.destroy();\n engine.eventStore.clear();\n engine.translate.clear();\n engine.slideLooper.clear();\n engine.resizeHandler.destroy();\n engine.slidesHandler.destroy();\n engine.slidesInView.destroy();\n engine.animation.destroy();\n pluginsHandler.destroy();\n mediaHandlers.clear();\n }\n function destroy() {\n if (destroyed) return;\n destroyed = true;\n mediaHandlers.clear();\n deActivate();\n eventHandler.emit('destroy');\n eventHandler.clear();\n }\n function scrollTo(index, jump, direction) {\n if (!options.active || destroyed) return;\n engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);\n engine.scrollTo.index(index, direction || 0);\n }\n function scrollNext(jump) {\n const next = engine.index.add(1).get();\n scrollTo(next, jump, -1);\n }\n function scrollPrev(jump) {\n const prev = engine.index.add(-1).get();\n scrollTo(prev, jump, 1);\n }\n function canScrollNext() {\n const next = engine.index.add(1).get();\n return next !== selectedScrollSnap();\n }\n function canScrollPrev() {\n const prev = engine.index.add(-1).get();\n return prev !== selectedScrollSnap();\n }\n function scrollSnapList() {\n return engine.scrollSnapList;\n }\n function scrollProgress() {\n return engine.scrollProgress.get(engine.location.get());\n }\n function selectedScrollSnap() {\n return engine.index.get();\n }\n function previousScrollSnap() {\n return engine.indexPrevious.get();\n }\n function slidesInView() {\n return engine.slidesInView.get();\n }\n function slidesNotInView() {\n return engine.slidesInView.get(false);\n }\n function plugins() {\n return pluginApis;\n }\n function internalEngine() {\n return engine;\n }\n function rootNode() {\n return root;\n }\n function containerNode() {\n return container;\n }\n function slideNodes() {\n return slides;\n }\n const self = {\n canScrollNext,\n canScrollPrev,\n containerNode,\n internalEngine,\n destroy,\n off,\n on,\n emit,\n plugins,\n previousScrollSnap,\n reInit,\n rootNode,\n scrollNext,\n scrollPrev,\n scrollProgress,\n scrollSnapList,\n scrollTo,\n selectedScrollSnap,\n slideNodes,\n slidesInView,\n slidesNotInView\n };\n activate(userOptions, userPlugins);\n setTimeout(() => eventHandler.emit('init'), 0);\n return self;\n}\nEmblaCarousel.globalOptions = undefined;\n\nexport { EmblaCarousel as default };\n//# sourceMappingURL=embla-carousel.esm.js.map\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction normalizeDelay(emblaApi, delay) {\n const scrollSnaps = emblaApi.scrollSnapList();\n if (typeof delay === 'number') {\n return scrollSnaps.map(() => delay);\n }\n return delay(scrollSnaps, emblaApi);\n}\nfunction getAutoplayRootNode(emblaApi, rootNode) {\n const emblaRootNode = emblaApi.rootNode();\n return rootNode && rootNode(emblaRootNode) || emblaRootNode;\n}\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let delay;\n let timerStartTime = null;\n let timerId = 0;\n let autoplayActive = false;\n let mouseIsOver = false;\n let playOnDocumentVisible = false;\n let jump = false;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n delay = normalizeDelay(emblaApi, options.delay);\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const isDraggable = !!emblaApi.internalEngine().options.watchDrag;\n const root = getAutoplayRootNode(emblaApi, options.rootNode);\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (isDraggable) {\n emblaApi.on('pointerDown', pointerDown);\n }\n if (isDraggable && !options.stopOnInteraction) {\n emblaApi.on('pointerUp', pointerUp);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', mouseEnter);\n }\n if (options.stopOnMouseEnter && !options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', mouseLeave);\n }\n if (options.stopOnFocusIn) {\n emblaApi.on('slideFocusStart', stopAutoplay);\n }\n if (options.stopOnFocusIn && !options.stopOnInteraction) {\n eventStore.add(emblaApi.containerNode(), 'focusout', startAutoplay);\n }\n if (options.playOnInit) startAutoplay();\n }\n function destroy() {\n emblaApi.off('pointerDown', pointerDown).off('pointerUp', pointerUp).off('slideFocusStart', stopAutoplay);\n stopAutoplay();\n destroyed = true;\n autoplayActive = false;\n }\n function setTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = ownerWindow.setTimeout(next, delay[emblaApi.selectedScrollSnap()]);\n timerStartTime = new Date().getTime();\n emblaApi.emit('autoplay:timerset');\n }\n function clearTimer() {\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearTimeout(timerId);\n timerId = 0;\n timerStartTime = null;\n emblaApi.emit('autoplay:timerstopped');\n }\n function startAutoplay() {\n if (destroyed) return;\n if (documentIsHidden()) {\n playOnDocumentVisible = true;\n return;\n }\n if (!autoplayActive) emblaApi.emit('autoplay:play');\n setTimer();\n autoplayActive = true;\n }\n function stopAutoplay() {\n if (destroyed) return;\n if (autoplayActive) emblaApi.emit('autoplay:stop');\n clearTimer();\n autoplayActive = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n playOnDocumentVisible = autoplayActive;\n return stopAutoplay();\n }\n if (playOnDocumentVisible) startAutoplay();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function pointerDown() {\n if (!mouseIsOver) stopAutoplay();\n }\n function pointerUp() {\n if (!mouseIsOver) startAutoplay();\n }\n function mouseEnter() {\n mouseIsOver = true;\n stopAutoplay();\n }\n function mouseLeave() {\n mouseIsOver = false;\n startAutoplay();\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n startAutoplay();\n }\n function stop() {\n if (autoplayActive) stopAutoplay();\n }\n function reset() {\n if (autoplayActive) startAutoplay();\n }\n function isPlaying() {\n return autoplayActive;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n emblaApi.emit('autoplay:select');\n if (kill) return stopAutoplay();\n startAutoplay();\n }\n function timeUntilNext() {\n if (!timerStartTime) return null;\n const currentDelay = delay[emblaApi.selectedScrollSnap()];\n const timePastSinceStart = new Date().getTime() - timerStartTime;\n return currentDelay - timePastSinceStart;\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying,\n timeUntilNext\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n","function clampNumber(number, min, max) {\n return Math.min(Math.max(number, min), max);\n}\nfunction isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n}\n\nfunction Fade(userOptions = {}) {\n const fullOpacity = 1;\n const noOpacity = 0;\n const fadeFriction = 0.68;\n let emblaApi;\n let opacities = [];\n let fadeToNextDistance;\n let distanceFromPointerDown = 0;\n let fadeVelocity = 0;\n let progress = 0;\n let shouldFadePair = false;\n let defaultSettledBehaviour;\n let defaultProgressBehaviour;\n function init(emblaApiInstance) {\n emblaApi = emblaApiInstance;\n const selectedSnap = emblaApi.selectedScrollSnap();\n const {\n scrollBody,\n containerRect,\n axis\n } = emblaApi.internalEngine();\n const containerSize = axis.measureSize(containerRect);\n fadeToNextDistance = clampNumber(containerSize * 0.75, 200, 500);\n shouldFadePair = false;\n opacities = emblaApi.scrollSnapList().map((_, index) => index === selectedSnap ? fullOpacity : noOpacity);\n defaultSettledBehaviour = scrollBody.settled;\n defaultProgressBehaviour = emblaApi.scrollProgress;\n scrollBody.settled = settled;\n emblaApi.scrollProgress = scrollProgress;\n emblaApi.on('select', select).on('slideFocus', fadeToSelectedSnapInstantly).on('pointerDown', pointerDown).on('pointerUp', pointerUp);\n disableScroll();\n fadeToSelectedSnapInstantly();\n }\n function destroy() {\n const {\n scrollBody\n } = emblaApi.internalEngine();\n scrollBody.settled = defaultSettledBehaviour;\n emblaApi.scrollProgress = defaultProgressBehaviour;\n emblaApi.off('select', select).off('slideFocus', fadeToSelectedSnapInstantly).off('pointerDown', pointerDown).off('pointerUp', pointerUp);\n emblaApi.slideNodes().forEach(slideNode => {\n const slideStyle = slideNode.style;\n slideStyle.opacity = '';\n slideStyle.transform = '';\n slideStyle.pointerEvents = '';\n if (!slideNode.getAttribute('style')) slideNode.removeAttribute('style');\n });\n }\n function fadeToSelectedSnapInstantly() {\n const selectedSnap = emblaApi.selectedScrollSnap();\n setOpacities(selectedSnap, fullOpacity);\n }\n function pointerUp() {\n shouldFadePair = false;\n }\n function pointerDown() {\n shouldFadePair = false;\n distanceFromPointerDown = 0;\n fadeVelocity = 0;\n }\n function select() {\n const duration = emblaApi.internalEngine().scrollBody.duration();\n fadeVelocity = duration ? 0 : fullOpacity;\n shouldFadePair = true;\n if (!duration) fadeToSelectedSnapInstantly();\n }\n function getSlideTransform(position) {\n const {\n axis\n } = emblaApi.internalEngine();\n const translateAxis = axis.scroll.toUpperCase();\n return `translate${translateAxis}(${axis.direction(position)}px)`;\n }\n function disableScroll() {\n const {\n translate,\n slideLooper\n } = emblaApi.internalEngine();\n translate.clear();\n translate.toggleActive(false);\n slideLooper.loopPoints.forEach(({\n translate\n }) => {\n translate.clear();\n translate.toggleActive(false);\n });\n }\n function lockExcessiveScroll(fadeIndex) {\n const {\n scrollSnaps,\n location,\n target\n } = emblaApi.internalEngine();\n if (!isNumber(fadeIndex) || opacities[fadeIndex] < 0.5) return;\n location.set(scrollSnaps[fadeIndex]);\n target.set(location);\n }\n function setOpacities(fadeIndex, velocity) {\n const scrollSnaps = emblaApi.scrollSnapList();\n scrollSnaps.forEach((_, indexA) => {\n const absVelocity = Math.abs(velocity);\n const currentOpacity = opacities[indexA];\n const isFadeIndex = indexA === fadeIndex;\n const nextOpacity = isFadeIndex ? currentOpacity + absVelocity : currentOpacity - absVelocity;\n const clampedOpacity = clampNumber(nextOpacity, noOpacity, fullOpacity);\n opacities[indexA] = clampedOpacity;\n const fadePair = isFadeIndex && shouldFadePair;\n const indexB = emblaApi.previousScrollSnap();\n if (fadePair) opacities[indexB] = 1 - clampedOpacity;\n if (isFadeIndex) setProgress(fadeIndex, clampedOpacity);\n setOpacity(indexA);\n });\n }\n function setOpacity(index) {\n const slidesInSnap = emblaApi.internalEngine().slideRegistry[index];\n const {\n scrollSnaps,\n containerRect\n } = emblaApi.internalEngine();\n const opacity = opacities[index];\n slidesInSnap.forEach(slideIndex => {\n const slideStyle = emblaApi.slideNodes()[slideIndex].style;\n const roundedOpacity = parseFloat(opacity.toFixed(2));\n const hasOpacity = roundedOpacity > noOpacity;\n const position = hasOpacity ? scrollSnaps[index] : containerRect.width + 2;\n const transform = getSlideTransform(position);\n if (hasOpacity) slideStyle.transform = transform;\n slideStyle.opacity = roundedOpacity.toString();\n slideStyle.pointerEvents = opacity > 0.5 ? 'auto' : 'none';\n if (!hasOpacity) slideStyle.transform = transform;\n });\n }\n function setProgress(fadeIndex, opacity) {\n const {\n index,\n dragHandler,\n scrollSnaps\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const snapFraction = 1 / (scrollSnaps.length - 1);\n let indexA = fadeIndex;\n let indexB = pointerDown ? emblaApi.selectedScrollSnap() : emblaApi.previousScrollSnap();\n if (pointerDown && indexA === indexB) {\n const reverseSign = Math.sign(distanceFromPointerDown) * -1;\n indexA = indexB;\n indexB = index.clone().set(indexB).add(reverseSign).get();\n }\n const currentPosition = indexB * snapFraction;\n const diffPosition = (indexA - indexB) * snapFraction;\n progress = currentPosition + diffPosition * opacity;\n }\n function getFadeIndex() {\n const {\n dragHandler,\n index,\n scrollBody\n } = emblaApi.internalEngine();\n const selectedSnap = emblaApi.selectedScrollSnap();\n if (!dragHandler.pointerDown()) return selectedSnap;\n const directionSign = Math.sign(scrollBody.velocity());\n const distanceSign = Math.sign(distanceFromPointerDown);\n const nextSnap = index.clone().set(selectedSnap).add(directionSign * -1).get();\n if (!directionSign || !distanceSign) return null;\n return distanceSign === directionSign ? nextSnap : selectedSnap;\n }\n function fade(emblaApi) {\n const {\n dragHandler,\n scrollBody\n } = emblaApi.internalEngine();\n const pointerDown = dragHandler.pointerDown();\n const velocity = scrollBody.velocity();\n const duration = scrollBody.duration();\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n if (pointerDown) {\n if (!velocity) return;\n distanceFromPointerDown += velocity;\n fadeVelocity = Math.abs(velocity / fadeToNextDistance);\n lockExcessiveScroll(fadeIndex);\n }\n if (!pointerDown) {\n if (!duration || noFadeIndex) return;\n fadeVelocity += (fullOpacity - opacities[fadeIndex]) / duration;\n fadeVelocity *= fadeFriction;\n }\n if (noFadeIndex) return;\n setOpacities(fadeIndex, fadeVelocity);\n }\n function settled() {\n const {\n target,\n location\n } = emblaApi.internalEngine();\n const diffToTarget = target.get() - location.get();\n const notReachedTarget = Math.abs(diffToTarget) >= 1;\n const fadeIndex = getFadeIndex();\n const noFadeIndex = !isNumber(fadeIndex);\n fade(emblaApi);\n if (noFadeIndex || notReachedTarget) return false;\n return opacities[fadeIndex] > 0.999;\n }\n function scrollProgress() {\n return progress;\n }\n const self = {\n name: 'fade',\n options: userOptions,\n init,\n destroy\n };\n return self;\n}\nFade.globalOptions = undefined;\n\nexport { Fade as default };\n//# sourceMappingURL=embla-carousel-fade.esm.js.map\n","import { useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport EmblaCarousel from 'embla-carousel';\nimport * as React from 'react';\nimport { carouselCardClassNames } from './CarouselCard/useCarouselCardStyles.styles';\nimport { carouselSliderClassNames } from './CarouselSlider/useCarouselSliderStyles.styles';\nimport Autoplay from 'embla-carousel-autoplay';\nimport Fade from 'embla-carousel-fade';\nimport { pointerEventPlugin } from './pointerEvents';\nconst sliderClassname = `.${carouselSliderClassNames.root}`;\nconst DEFAULT_EMBLA_OPTIONS = {\n containScroll: 'trimSnaps',\n inViewThreshold: 0.99,\n watchDrag: false,\n skipSnaps: true,\n container: sliderClassname,\n slides: `.${carouselCardClassNames.root}`\n};\nexport const EMBLA_VISIBILITY_EVENT = 'embla:visibilitychange';\nexport function setTabsterDefault(element, isDefault) {\n const tabsterAttr = element.getAttribute('data-tabster');\n if (tabsterAttr) {\n const tabsterAttributes = JSON.parse(tabsterAttr);\n if (tabsterAttributes.focusable) {\n // If tabster.focusable isn't present, we will ignore.\n tabsterAttributes.focusable.isDefault = isDefault;\n element.setAttribute('data-tabster', JSON.stringify(tabsterAttributes));\n }\n }\n}\nexport function useEmblaCarousel(options) {\n const { align, direction, loop, slidesToScroll, watchDrag, containScroll, motion, onDragIndexChange, onAutoplayIndexChange } = options;\n const [activeIndex, setActiveIndex] = useControllableState({\n defaultState: options.defaultActiveIndex,\n state: options.activeIndex,\n initialState: 0\n });\n const onDragEvent = useEventCallback((event, index)=>{\n onDragIndexChange === null || onDragIndexChange === void 0 ? void 0 : onDragIndexChange(event, {\n event,\n type: 'drag',\n index\n });\n });\n const emblaOptions = React.useRef({\n align,\n direction,\n loop,\n slidesToScroll,\n startIndex: activeIndex,\n watchDrag,\n containScroll\n });\n const emblaApi = React.useRef(null);\n const autoplayRef = React.useRef(false);\n const resetAutoplay = React.useCallback(()=>{\n var _emblaApi_current_plugins_autoplay, _emblaApi_current;\n (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : (_emblaApi_current_plugins_autoplay = _emblaApi_current.plugins().autoplay) === null || _emblaApi_current_plugins_autoplay === void 0 ? void 0 : _emblaApi_current_plugins_autoplay.reset();\n }, []);\n const getPlugins = React.useCallback(()=>{\n const plugins = [];\n plugins.push(Autoplay({\n playOnInit: autoplayRef.current,\n /* stopOnInteraction: false causes autoplay to restart on interaction end*/ /* we'll handle this logic to ensure autoplay state is respected */ stopOnInteraction: true,\n stopOnFocusIn: false,\n stopOnMouseEnter: false\n }));\n // Optionally add Fade plugin\n if (motion === 'fade') {\n plugins.push(Fade());\n }\n if (watchDrag) {\n plugins.push(pointerEventPlugin({\n onSelectViaDrag: onDragEvent\n }));\n }\n return plugins;\n }, [\n motion,\n onDragEvent,\n watchDrag\n ]);\n /* This function enables autoplay to pause/play without affecting underlying state\n * Useful for pausing on focus etc. without having to reinitialize or set autoplay to off\n */ const enableAutoplay = React.useCallback((autoplay, temporary)=>{\n if (!temporary) {\n autoplayRef.current = autoplay;\n }\n if (autoplay && autoplayRef.current) {\n var // Autoplay should only enable in the case where underlying state is true, temporary should not override\n _emblaApi_current_plugins_autoplay, _emblaApi_current;\n (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : (_emblaApi_current_plugins_autoplay = _emblaApi_current.plugins().autoplay) === null || _emblaApi_current_plugins_autoplay === void 0 ? void 0 : _emblaApi_current_plugins_autoplay.play();\n // Reset after play to ensure timing and any focus/mouse pause state is reset.\n resetAutoplay();\n } else if (!autoplay) {\n var _emblaApi_current_plugins_autoplay1, _emblaApi_current1;\n (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : (_emblaApi_current_plugins_autoplay1 = _emblaApi_current1.plugins().autoplay) === null || _emblaApi_current_plugins_autoplay1 === void 0 ? void 0 : _emblaApi_current_plugins_autoplay1.stop();\n }\n }, [\n resetAutoplay\n ]);\n // Listeners contains callbacks for UI elements that may require state update based on embla changes\n const listeners = React.useRef(new Set());\n const subscribeForValues = React.useCallback((listener)=>{\n listeners.current.add(listener);\n return ()=>{\n listeners.current.delete(listener);\n };\n }, []);\n const updateIndex = ()=>{\n var _emblaApi_current, _emblaApi_current1, _emblaApi_current2;\n var _emblaApi_current_selectedScrollSnap;\n const newIndex = (_emblaApi_current_selectedScrollSnap = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.selectedScrollSnap()) !== null && _emblaApi_current_selectedScrollSnap !== void 0 ? _emblaApi_current_selectedScrollSnap : 0;\n const slides = (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.slideNodes();\n var _emblaApi_current_internalEngine_slideRegistry_newIndex_;\n const actualIndex = (_emblaApi_current_internalEngine_slideRegistry_newIndex_ = (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.internalEngine().slideRegistry[newIndex][0]) !== null && _emblaApi_current_internalEngine_slideRegistry_newIndex_ !== void 0 ? _emblaApi_current_internalEngine_slideRegistry_newIndex_ : 0;\n // We set the first card in the current group as the default tabster index for focus capture\n slides === null || slides === void 0 ? void 0 : slides.forEach((slide, slideIndex)=>{\n setTabsterDefault(slide, slideIndex === actualIndex);\n });\n setActiveIndex(newIndex);\n };\n const handleReinit = useEventCallback(()=>{\n var _emblaApi_current, _emblaApi_current1, _emblaApi_current2, _emblaApi_current3;\n var _emblaApi_current_slideNodes;\n const nodes = (_emblaApi_current_slideNodes = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.slideNodes()) !== null && _emblaApi_current_slideNodes !== void 0 ? _emblaApi_current_slideNodes : [];\n var _emblaApi_current_internalEngine_slideRegistry;\n const groupIndexList = (_emblaApi_current_internalEngine_slideRegistry = (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.internalEngine().slideRegistry) !== null && _emblaApi_current_internalEngine_slideRegistry !== void 0 ? _emblaApi_current_internalEngine_slideRegistry : [];\n const navItemsCount = groupIndexList.length > 0 ? groupIndexList.length : nodes.length;\n var _emblaApi_current_selectedScrollSnap;\n const data = {\n navItemsCount,\n activeIndex: (_emblaApi_current_selectedScrollSnap = (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.selectedScrollSnap()) !== null && _emblaApi_current_selectedScrollSnap !== void 0 ? _emblaApi_current_selectedScrollSnap : 0,\n groupIndexList,\n slideNodes: nodes\n };\n updateIndex();\n (_emblaApi_current3 = emblaApi.current) === null || _emblaApi_current3 === void 0 ? void 0 : _emblaApi_current3.scrollTo(activeIndex, false);\n for (const listener of listeners.current){\n listener(data);\n }\n });\n const handleIndexChange = useEventCallback((_, eventType)=>{\n var _emblaApi_current;\n var _emblaApi_current_selectedScrollSnap;\n const newIndex = (_emblaApi_current_selectedScrollSnap = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.selectedScrollSnap()) !== null && _emblaApi_current_selectedScrollSnap !== void 0 ? _emblaApi_current_selectedScrollSnap : 0;\n updateIndex();\n if (eventType === 'autoplay:select') {\n const noopEvent = new Event('autoplay');\n onAutoplayIndexChange === null || onAutoplayIndexChange === void 0 ? void 0 : onAutoplayIndexChange(noopEvent, {\n event: noopEvent,\n type: 'autoplay',\n index: newIndex\n });\n }\n });\n const viewportRef = React.useRef(null);\n const containerRef = React.useMemo(()=>{\n let currentElement = null;\n const handleVisibilityChange = ()=>{\n var _emblaApi_current, _emblaApi_current1;\n const cardElements = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.slideNodes();\n var _emblaApi_current_slidesInView;\n const visibleIndexes = (_emblaApi_current_slidesInView = (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.slidesInView()) !== null && _emblaApi_current_slidesInView !== void 0 ? _emblaApi_current_slidesInView : [];\n cardElements === null || cardElements === void 0 ? void 0 : cardElements.forEach((cardElement, index)=>{\n cardElement.dispatchEvent(new CustomEvent(EMBLA_VISIBILITY_EVENT, {\n bubbles: false,\n detail: {\n isVisible: visibleIndexes.includes(index)\n }\n }));\n });\n };\n // Get plugins using autoplayRef to prevent state change recreating EmblaCarousel\n const plugins = getPlugins();\n return {\n set current (newElement){\n if (currentElement) {\n var _emblaApi_current, _emblaApi_current1, _emblaApi_current2, _emblaApi_current3, _emblaApi_current4;\n (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.off('slidesInView', handleVisibilityChange);\n (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.off('select', handleIndexChange);\n (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.off('reInit', handleReinit);\n (_emblaApi_current3 = emblaApi.current) === null || _emblaApi_current3 === void 0 ? void 0 : _emblaApi_current3.off('autoplay:select', handleIndexChange);\n (_emblaApi_current4 = emblaApi.current) === null || _emblaApi_current4 === void 0 ? void 0 : _emblaApi_current4.destroy();\n }\n var _viewportRef_current;\n // Use direct viewport if available, else fallback to container (includes Carousel controls).\n currentElement = (_viewportRef_current = viewportRef.current) !== null && _viewportRef_current !== void 0 ? _viewportRef_current : newElement;\n if (currentElement) {\n var _emblaApi_current5, _emblaApi_current6, _emblaApi_current7, _emblaApi_current8;\n emblaApi.current = EmblaCarousel(currentElement, {\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current\n }, plugins);\n (_emblaApi_current5 = emblaApi.current) === null || _emblaApi_current5 === void 0 ? void 0 : _emblaApi_current5.on('reInit', handleReinit);\n (_emblaApi_current6 = emblaApi.current) === null || _emblaApi_current6 === void 0 ? void 0 : _emblaApi_current6.on('slidesInView', handleVisibilityChange);\n (_emblaApi_current7 = emblaApi.current) === null || _emblaApi_current7 === void 0 ? void 0 : _emblaApi_current7.on('select', handleIndexChange);\n (_emblaApi_current8 = emblaApi.current) === null || _emblaApi_current8 === void 0 ? void 0 : _emblaApi_current8.on('autoplay:select', handleIndexChange);\n }\n }\n };\n }, [\n getPlugins,\n handleIndexChange,\n handleReinit\n ]);\n const carouselApi = React.useMemo(()=>({\n scrollToElement: (element, jump)=>{\n var _emblaApi_current, _emblaApi_current1, _emblaApi_current2;\n const cardElements = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.slideNodes();\n var _emblaApi_current_internalEngine_slideRegistry;\n const groupIndexList = (_emblaApi_current_internalEngine_slideRegistry = (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.internalEngine().slideRegistry) !== null && _emblaApi_current_internalEngine_slideRegistry !== void 0 ? _emblaApi_current_internalEngine_slideRegistry : [];\n var _cardElements_indexOf;\n const cardIndex = (_cardElements_indexOf = cardElements === null || cardElements === void 0 ? void 0 : cardElements.indexOf(element)) !== null && _cardElements_indexOf !== void 0 ? _cardElements_indexOf : 0;\n const groupIndex = groupIndexList.findIndex((group)=>{\n return group.includes(cardIndex);\n });\n const indexFocus = groupIndex !== null && groupIndex !== void 0 ? groupIndex : cardIndex;\n (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.scrollTo(indexFocus, jump);\n return indexFocus;\n },\n scrollToIndex: (index, jump)=>{\n var _emblaApi_current;\n (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.scrollTo(index, jump);\n },\n scrollInDirection: (dir)=>{\n var _emblaApi_current;\n if (dir === 'prev') {\n var _emblaApi_current1;\n (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : _emblaApi_current1.scrollPrev();\n } else {\n var _emblaApi_current2;\n (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.scrollNext();\n }\n var _emblaApi_current_selectedScrollSnap;\n return (_emblaApi_current_selectedScrollSnap = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.selectedScrollSnap()) !== null && _emblaApi_current_selectedScrollSnap !== void 0 ? _emblaApi_current_selectedScrollSnap : 0;\n }\n }), []);\n React.useEffect(()=>{\n var _emblaApi_current;\n const plugins = getPlugins();\n emblaOptions.current = {\n startIndex: emblaOptions.current.startIndex,\n align,\n direction,\n loop,\n slidesToScroll,\n watchDrag,\n containScroll\n };\n (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.reInit({\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current\n }, plugins);\n }, [\n align,\n containScroll,\n direction,\n getPlugins,\n loop,\n slidesToScroll,\n watchDrag\n ]);\n React.useEffect(()=>{\n var _emblaApi_current, _emblaApi_current_slideNodes, _emblaApi_current1;\n var _emblaApi_current_selectedScrollSnap;\n // Scroll to controlled values on update\n // If active index is out of bounds, re-init will handle instead\n const currentActiveIndex = (_emblaApi_current_selectedScrollSnap = (_emblaApi_current = emblaApi.current) === null || _emblaApi_current === void 0 ? void 0 : _emblaApi_current.selectedScrollSnap()) !== null && _emblaApi_current_selectedScrollSnap !== void 0 ? _emblaApi_current_selectedScrollSnap : 0;\n var _emblaApi_current_slideNodes_length;\n const slideLength = (_emblaApi_current_slideNodes_length = (_emblaApi_current1 = emblaApi.current) === null || _emblaApi_current1 === void 0 ? void 0 : (_emblaApi_current_slideNodes = _emblaApi_current1.slideNodes()) === null || _emblaApi_current_slideNodes === void 0 ? void 0 : _emblaApi_current_slideNodes.length) !== null && _emblaApi_current_slideNodes_length !== void 0 ? _emblaApi_current_slideNodes_length : 0;\n emblaOptions.current.startIndex = activeIndex;\n if (activeIndex < slideLength && activeIndex !== currentActiveIndex) {\n var _emblaApi_current2;\n (_emblaApi_current2 = emblaApi.current) === null || _emblaApi_current2 === void 0 ? void 0 : _emblaApi_current2.scrollTo(activeIndex);\n }\n }, [\n activeIndex\n ]);\n return {\n activeIndex,\n carouselApi,\n viewportRef,\n containerRef,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay\n };\n}\n","import { carouselClassNames } from '../Carousel';\nexport function pointerEventPlugin(options) {\n let emblaApi;\n let pointerEvent;\n function documentDownListener(event) {\n const targetDocument = emblaApi.containerNode().ownerDocument;\n if (event.target) {\n const targetNode = event.target;\n if (targetNode.classList.contains(carouselClassNames.root) || emblaApi.containerNode().contains(targetNode)) {\n pointerEvent = event;\n }\n }\n targetDocument.removeEventListener('mousedown', documentDownListener);\n targetDocument.removeEventListener('pointerdown', documentDownListener);\n }\n function pointerUpListener() {\n const targetDocument = emblaApi.containerNode().ownerDocument;\n targetDocument.addEventListener('mousedown', documentDownListener);\n targetDocument.addEventListener('pointerdown', documentDownListener);\n }\n function clearPointerEvent() {\n pointerEvent = undefined;\n pointerUpListener();\n }\n function selectListener() {\n if (pointerEvent) {\n var _emblaApi_selectedScrollSnap;\n const newIndex = (_emblaApi_selectedScrollSnap = emblaApi.selectedScrollSnap()) !== null && _emblaApi_selectedScrollSnap !== void 0 ? _emblaApi_selectedScrollSnap : 0;\n options.onSelectViaDrag(pointerEvent, newIndex);\n }\n clearPointerEvent();\n }\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n // Initialize the listener for first mouse/pointerDown event\n const targetDocument = emblaApi.containerNode().ownerDocument;\n targetDocument.addEventListener('mousedown', documentDownListener);\n targetDocument.addEventListener('pointerdown', documentDownListener);\n emblaApi.on('pointerUp', pointerUpListener);\n emblaApi.on('select', selectListener);\n // Settle is used to clear pointer in cases where active index does not change\n emblaApi.on('settle', clearPointerEvent);\n }\n function destroy() {\n const targetDocument = emblaApi.containerNode().ownerDocument;\n targetDocument.removeEventListener('mousedown', documentDownListener);\n targetDocument.removeEventListener('pointerdown', documentDownListener);\n emblaApi.off('pointerUp', pointerUpListener);\n emblaApi.off('select', selectListener);\n emblaApi.off('settle', clearPointerEvent);\n }\n return {\n name: 'pointerEvent',\n options,\n init,\n destroy\n };\n}\n","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, find, getId } from '@fluentui/react/lib/Utilities';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nvar getClassNames = classNamesFunction();\nvar HorizontalBarChartBase = /** @class */ (function (_super) {\n __extends(HorizontalBarChartBase, _super);\n function HorizontalBarChartBase(props) {\n var _this = _super.call(this, props) || this;\n _this._handleChartMouseLeave = function () {\n _this._calloutAnchorPoint = null;\n if (_this.state.isCalloutVisible) {\n _this.setState({\n isCalloutVisible: false,\n hoverValue: '',\n refSelected: null,\n lineColor: '',\n legend: '',\n });\n }\n };\n _this._adjustProps = function () {\n _this._barHeight = _this.props.barHeight || 8;\n _this._classNames = getClassNames(_this.props.styles, {\n theme: _this.props.theme,\n width: _this.props.width,\n className: _this.props.className,\n barHeight: _this._barHeight,\n color: _this.state.lineColor,\n });\n };\n _this._getChartDataText = function (data) {\n return _this.props.barChartCustomData ? (React.createElement(\"div\", { \"data-is-focusable\": true, role: \"text\" }, _this.props.barChartCustomData(data))) : (_this._getDefaultTextData(data));\n };\n _this._closeCallout = function () {\n _this.setState({\n isCalloutVisible: false,\n });\n };\n _this._getAccessibleDataObject = function (accessibleData, role) {\n if (role === void 0) { role = 'text'; }\n accessibleData = accessibleData !== null && accessibleData !== void 0 ? accessibleData : {};\n return {\n role: role,\n 'data-is-focusable': true,\n 'aria-label': accessibleData.ariaLabel,\n 'aria-labelledby': accessibleData.ariaLabelledBy,\n 'aria-describedby': accessibleData.ariaDescribedBy,\n };\n };\n _this.state = {\n isCalloutVisible: false,\n hoverValue: '',\n lineColor: '',\n legend: '',\n refSelected: null,\n // eslint-disable-next-line react/no-unused-state\n color: '',\n xCalloutValue: '',\n yCalloutValue: '',\n };\n _this._refArray = [];\n _this._uniqLineText = '_HorizontalLine_' + Math.random().toString(36).substring(7);\n _this._hoverOff = _this._hoverOff.bind(_this);\n _this._calloutId = getId('callout');\n return _this;\n }\n HorizontalBarChartBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, theme = _a.theme;\n this._adjustProps();\n var palette = theme.palette;\n var datapoint = 0;\n return (React.createElement(\"div\", { className: this._classNames.root, onMouseLeave: this._handleChartMouseLeave },\n data.map(function (points, index) {\n if (points.chartData && points.chartData[0] && points.chartData[0].horizontalBarChartdata.x) {\n datapoint = points.chartData[0].horizontalBarChartdata.x;\n }\n else {\n datapoint = 0;\n }\n points.chartData[1] = {\n legend: '',\n horizontalBarChartdata: {\n x: points.chartData[0].horizontalBarChartdata.y - datapoint,\n y: points.chartData[0].horizontalBarChartdata.y,\n },\n color: palette.neutralTertiaryAlt,\n };\n var chartDataText = _this._getChartDataText(points);\n var bars = _this._createBars(points, palette);\n var keyVal = _this._uniqLineText + '_' + index;\n return (React.createElement(\"div\", { key: index, className: _this._classNames.items },\n React.createElement(\"div\", { className: _this._classNames.items },\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"div\", { className: _this._classNames.chartTitle },\n points.chartTitle && (React.createElement(\"div\", __assign({ className: _this._classNames.chartDataText }, _this._getAccessibleDataObject(points.chartTitleAccessibilityData)), points.chartTitle)),\n chartDataText)),\n points.chartData[0].data && _this._createBenchmark(points),\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"svg\", { className: _this._classNames.chart, \"aria-label\": points.chartTitle },\n React.createElement(\"g\", { id: keyVal, key: keyVal, ref: function (e) {\n _this._refCallback(e, points.chartData[0].legend);\n }, \n // NOTE: points.chartData![0] contains current data value\n onClick: function () {\n var p = points.chartData[0];\n if (p && p.onClick) {\n p.onClick();\n }\n }, className: _this._classNames.barWrapper }, bars))))));\n }),\n React.createElement(Callout, __assign({ target: this.state.refSelected, coverTarget: true, isBeakVisible: false, gapSpace: 30, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData)),\n React.createElement(React.Fragment, null, this.props.onRenderCalloutPerHorizontalBar ? (this.props.onRenderCalloutPerHorizontalBar(this.state.barCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend, YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.hoverValue, color: this.state.lineColor, culture: this.props.culture }))))));\n };\n HorizontalBarChartBase.prototype._refCallback = function (element, legendTitle) {\n this._refArray.push({ index: legendTitle, refElement: element });\n };\n HorizontalBarChartBase.prototype._hoverOn = function (hoverValue, point) {\n if ((!this.state.isCalloutVisible || this.state.legend !== point.legend) && this._calloutAnchorPoint !== point) {\n var currentHoveredElement = find(this._refArray, function (currentElement) { return currentElement.index === point.legend; });\n this._calloutAnchorPoint = point;\n this.setState({\n isCalloutVisible: true,\n hoverValue: hoverValue,\n lineColor: point.color,\n legend: point.legend,\n refSelected: currentHoveredElement.refElement,\n xCalloutValue: point.xAxisCalloutData,\n yCalloutValue: point.yAxisCalloutData,\n barCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n };\n HorizontalBarChartBase.prototype._hoverOff = function () {\n /**/\n };\n HorizontalBarChartBase.prototype._getDefaultTextData = function (data) {\n var culture = this.props.culture;\n var chartDataMode = this.props.chartDataMode || 'default';\n var chartData = data.chartData[0];\n var x = chartData.horizontalBarChartdata.x;\n var y = chartData.horizontalBarChartdata.y;\n var accessibilityData = this._getAccessibleDataObject(data.chartDataAccessibilityData);\n switch (chartDataMode) {\n case 'default':\n return (React.createElement(\"div\", __assign({ className: this._classNames.chartDataText }, accessibilityData), convertToLocaleString(x, culture)));\n case 'fraction':\n return (React.createElement(\"div\", __assign({}, accessibilityData),\n React.createElement(\"span\", { className: this._classNames.chartDataText }, convertToLocaleString(x, culture)),\n React.createElement(\"span\", { className: this._classNames.chartDataTextDenominator }, '/' + convertToLocaleString(y, culture))));\n case 'percentage':\n var dataRatioPercentage = convertToLocaleString(Math.round((x / y) * 100), culture) + \"%\";\n return (React.createElement(\"div\", __assign({ className: this._classNames.chartDataText }, accessibilityData), dataRatioPercentage));\n }\n };\n HorizontalBarChartBase.prototype._createBenchmark = function (data) {\n var totalData = data.chartData[0].horizontalBarChartdata.y;\n var benchmarkData = data.chartData[0].data;\n var benchmarkRatio = Math.round(((benchmarkData ? benchmarkData : 0) / totalData) * 100);\n var benchmarkStyles = {\n marginLeft: 'calc(' + benchmarkRatio + '% - 4px)',\n marginRight: 'calc(' + (100 - benchmarkRatio) + '% - 4px)',\n };\n return React.createElement(\"div\", { className: this._classNames.triangle, style: benchmarkStyles });\n };\n HorizontalBarChartBase.prototype._createBars = function (data, palette) {\n var _this = this;\n var defaultPalette = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n var startingPoint = [];\n var total = data.chartData.reduce(function (acc, point) {\n return acc + (point.horizontalBarChartdata.x ? point.horizontalBarChartdata.x : 0);\n }, 0);\n var prevPosition = 0;\n var value = 0;\n var bars = data.chartData.map(function (point, index) {\n var color = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n var pointData = point.horizontalBarChartdata.x ? point.horizontalBarChartdata.x : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n }\n else if (value < 1 && value !== 0) {\n value = 1;\n }\n startingPoint.push(prevPosition);\n if (value < 1) {\n return React.createElement(React.Fragment, { key: index }, \" \");\n }\n var xValue = point.horizontalBarChartdata.x;\n return (React.createElement(\"rect\", { key: index, x: startingPoint[index] + '%', y: 0, \"data-is-focusable\": point.legend !== '' ? true : false, width: value + '%', height: _this._barHeight, fill: color, onMouseOver: point.legend !== '' ? _this._hoverOn.bind(_this, xValue, point) : undefined, onFocus: point.legend !== '' ? _this._hoverOn.bind(_this, xValue, point) : undefined, \"aria-labelledby\": _this._calloutId, role: \"img\", \"aria-label\": \"Horizontal bar chart\", onBlur: _this._hoverOff, onMouseLeave: _this._hoverOff }));\n });\n return bars;\n };\n return HorizontalBarChartBase;\n}(React.Component));\nexport { HorizontalBarChartBase };\n//# sourceMappingURL=HorizontalBarChart.base.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { HorizontalBarChartBase } from './HorizontalBarChart.base';\nimport { getHorizontalBarChartStyles } from './HorizontalBarChart.styles';\n// Create a HorizontalBarChart variant which uses these default styles and this styled subcomponent.\nexport var HorizontalBarChart = styled(HorizontalBarChartBase, getHorizontalBarChartStyles);\n//# sourceMappingURL=HorizontalBarChart.js.map","import { __assign } from \"tslib\";\nimport { FontWeights } from '@fluentui/react/lib/Styling';\nexport var getHorizontalBarChartStyles = function (props) {\n var className = props.className, theme = props.theme, width = props.width;\n var palette = theme.palette;\n return {\n root: [\n {\n display: 'flex',\n flexDirection: 'column',\n width: width ? width : '100%',\n },\n className,\n ],\n items: {\n height: '32px',\n marginTop: '5px',\n position: 'relative',\n },\n chart: {\n width: '100%',\n height: '8px',\n marginBottom: '11px',\n },\n barWrapper: {\n stroke: theme.palette.white,\n strokeWidth: 2,\n },\n chartTitle: __assign(__assign({}, theme.fonts.small), { display: 'flex', justifyContent: 'space-between', marginBottom: '5px' }),\n chartDataText: {\n fontWeight: FontWeights.bold,\n },\n chartDataTextDenominator: {\n fontWeight: FontWeights.semibold,\n },\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '4px solid transparent',\n borderRight: '4px solid transparent',\n borderTop: '8px solid',\n borderTopColor: palette.blue,\n marginBottom: '4px',\n position: 'absolute',\n top: '12px',\n },\n };\n};\n//# sourceMappingURL=HorizontalBarChart.styles.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { HoverCard, HoverCardType } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { OverflowSet } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { Shape } from './shape';\nimport { silceOrAppendToArray } from '../../utilities/utilities';\nvar getClassNames = classNamesFunction();\nvar LegendsBase = /** @class */ (function (_super) {\n __extends(LegendsBase, _super);\n function LegendsBase(props) {\n var _this = _super.call(this, props) || this;\n _this._onRenderData = function (data) {\n var _a = _this.props, overflowProps = _a.overflowProps, _b = _a.allowFocusOnLegends, allowFocusOnLegends = _b === void 0 ? true : _b;\n var rootStyles = {\n root: {\n justifyContent: _this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n };\n return (React.createElement(OverflowSet, __assign({}, (allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' }), { items: data.primary, overflowItems: data.overflow, onRenderItem: _this._renderButton, onRenderOverflowButton: _this._renderOverflowItems }, overflowProps, { styles: __assign(__assign({}, rootStyles), overflowProps === null || overflowProps === void 0 ? void 0 : overflowProps.styles) })));\n };\n _this._onReduceData = function (currentdata) {\n if (currentdata.primary.length === 0) {\n return;\n }\n var overflow = __spreadArray(__spreadArray([], currentdata.primary.slice(-1)), currentdata.overflow);\n var primary = currentdata.primary.slice(0, -1);\n return { primary: primary, overflow: overflow };\n };\n _this._onGrowData = function (currentdata) {\n if (currentdata.overflow.length === 0) {\n return;\n }\n var overflow = currentdata.overflow.slice(1);\n var primary = __spreadArray(__spreadArray([], currentdata.primary), currentdata.overflow.slice(0, 1));\n return { primary: primary, overflow: overflow };\n };\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n _this._canSelectMultipleLegends = function (legend) {\n var selectedLegends = silceOrAppendToArray(_this.state.selectedLegends, legend.title);\n _this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === _this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState: selectedLegends.length === 0 || selectedLegends.length === _this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: _this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n _this._canSelectOnlySingleLegend = function (legend) {\n if (_this.state.selectedState === true && _this.state.selectedLegend === legend.title) {\n _this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: _this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n else {\n _this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: _this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n _this._onClick = function (legend) {\n if (legend.action) {\n var _a = _this.props.canSelectMultipleLegends, canSelectMultipleLegends = _a === void 0 ? false : _a;\n if (canSelectMultipleLegends) {\n _this._canSelectMultipleLegends(legend);\n }\n else {\n _this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n _this._onRenderCompactCard = function (expandingCard) {\n var _a = _this.props, _b = _a.allowFocusOnLegends, allowFocusOnLegends = _b === void 0 ? true : _b, className = _a.className, styles = _a.styles, theme = _a.theme;\n var overflowHoverCardLegends = [];\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n expandingCard.renderData.forEach(function (legend, index) {\n var hoverCardElement = _this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n var hoverCardData = (React.createElement(FocusZone, __assign({}, (allowFocusOnLegends && { role: 'listbox' }), { direction: FocusZoneDirection.vertical }, _this.props.focusZonePropsInHoverCard, { className: classNames.hoverCardRoot }), overflowHoverCardLegends));\n return hoverCardData;\n };\n _this._renderOverflowItems = function (legends) {\n var _a = _this.props.allowFocusOnLegends, allowFocusOnLegends = _a === void 0 ? true : _a;\n var items = [];\n legends.forEach(function (legend, i) {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n var renderOverflowData = { renderData: legends };\n var _b = _this.props, theme = _b.theme, className = _b.className, styles = _b.styles, overflowText = _b.overflowText;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var plainCardProps = {\n onRenderPlainCard: _this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n var overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n var onHoverCardHideHandler = function () {\n var _a = _this.props.canSelectMultipleLegends, canSelectMultipleLegends = _a === void 0 ? false : _a;\n var selectedOverflowItem = find(legends, function (legend) {\n return legend.title === _this.state.selecetedLegendInHoverCard || legend.title === _this.state.selectedLegend;\n });\n _this.setState({\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n }, function () {\n if (selectedOverflowItem) {\n _this.setState({ selectedLegend: 'none', selectedState: false }, function () {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (_this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n _this.props.onLegendHoverCardLeave();\n }\n _this.setState({ hoverState: false }, function () {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n });\n };\n return (React.createElement(HoverCard, { type: HoverCardType.plain, plainCardProps: plainCardProps, instantOpenOnClick: true, \n // eslint-disable-next-line react/jsx-no-bind\n onCardHide: onHoverCardHideHandler, setInitialFocus: true, trapFocus: true, onCardVisible: _this._hoverCardVisible, styles: classNames.subComponentStyles.hoverCardStyles, cardDismissDelay: 300, target: _this._hoverCardRef },\n React.createElement(\"div\", __assign({ className: classNames.overflowIndicationTextStyle, ref: function (rootElem) { return (_this._hoverCardRef = rootElem); } }, (allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': _this.state.isHoverCardVisible,\n 'aria-label': items.length + \" \" + overflowString,\n }), { \"data-is-focusable\": allowFocusOnLegends }),\n items.length,\n \" \",\n overflowString)));\n };\n _this._hoverCardVisible = function () {\n _this.setState({ isHoverCardVisible: true });\n };\n _this._onHoverOverLegend = function (legend) {\n if (!_this.state.selectedState) {\n if (legend.hoverAction) {\n _this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n _this._onLeave = function (legend) {\n if (!_this.state.selectedState) {\n if (legend.onMouseOutAction) {\n _this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n _this._renderButton = function (data, index, overflow) {\n var _a = _this.props.allowFocusOnLegends, allowFocusOnLegends = _a === void 0 ? true : _a;\n var legend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n var color = _this._getColor(legend.title, legend.color);\n var _b = _this.props, theme = _b.theme, className = _b.className, styles = _b.styles;\n var classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n var onClickHandler = function () {\n _this._onClick(legend);\n };\n var onHoverHandler = function () {\n _this._onHoverOverLegend(legend);\n };\n var onMouseOut = function () {\n _this._onLeave(legend);\n };\n var shape = _this._getShape(classNames, legend, color);\n return (React.createElement(\"button\", __assign({}, (allowFocusOnLegends && {\n 'aria-selected': _this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title + \" selected\",\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n }), (data.nativeButtonProps && __assign({}, data.nativeButtonProps)), { key: index, className: classNames.legend, onClick: onClickHandler, onMouseOver: onHoverHandler, onMouseOut: onMouseOut, onFocus: onHoverHandler, onBlur: onMouseOut, \"data-is-focusable\": allowFocusOnLegends }),\n shape,\n React.createElement(\"div\", { className: classNames.text }, legend.title)));\n };\n _this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n return _this;\n }\n LegendsBase.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend });\n }\n };\n LegendsBase.prototype.render = function () {\n var _a = this.props, theme = _a.theme, className = _a.className, styles = _a.styles;\n this._classNames = getClassNames(styles, {\n theme: theme,\n className: className,\n });\n var dataToRender = this._generateData();\n return (React.createElement(\"div\", { className: this._classNames.root }, this.props.enabledWrapLines ? (this._onRenderData(dataToRender)) : (React.createElement(ResizeGroup, { data: dataToRender, onReduceData: this._onReduceData, onRenderData: this._onRenderData, onGrowData: this._onGrowData }))));\n };\n LegendsBase.prototype._generateData = function () {\n var _this = this;\n var _a = this.props.allowFocusOnLegends, allowFocusOnLegends = _a === void 0 ? true : _a;\n var dataItems = this.props.legends.map(function (legend, index) {\n return __assign(__assign({}, (allowFocusOnLegends && {\n nativeButtonProps: getNativeProps(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': _this.props.legends.length,\n 'aria-posinset': index + 1,\n })), { title: legend.title, action: legend.action, hoverAction: legend.hoverAction, onMouseOutAction: legend.onMouseOutAction, color: legend.color, shape: legend.shape, stripePattern: legend.stripePattern, isLineLegendInBarChart: legend.isLineLegendInBarChart, opacity: legend.opacity, key: index });\n });\n var result = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n };\n LegendsBase.prototype._getShape = function (classNames, legend, color) {\n var svgParentProps = {\n className: classNames.shape,\n };\n var svgChildProps = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (React.createElement(Shape, { svgProps: svgParentProps, pathProps: svgChildProps, shape: legend.shape, classNameForNonSvg: classNames.rect }));\n };\n LegendsBase.prototype._getColor = function (title, color) {\n var _a = this.props, theme = _a.theme, _b = _a.canSelectMultipleLegends, canSelectMultipleLegends = _b === void 0 ? false : _b;\n var palette = theme.palette;\n var legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if ((!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0) {\n legendColor = color;\n }\n else {\n legendColor = palette.white;\n }\n return legendColor;\n };\n return LegendsBase;\n}(React.Component));\nexport { LegendsBase };\n//# sourceMappingURL=Legends.base.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { LegendsBase } from './Legends.base';\nimport { getStyles } from './Legends.styles';\nexport var Legends = styled(LegendsBase, getStyles);\n//# sourceMappingURL=Legends.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelector, getFocusStyle } from '@fluentui/react/lib/Styling';\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, theme = props.theme, _c = props.isLineLegendInBarChart, isLineLegendInBarChart = _c === void 0 ? false : _c;\n var _d = theme, palette = _d.palette, fonts = _d.fonts;\n var options = {\n inset: undefined,\n position: undefined,\n highContrastStyle: {\n outlineColor: theme.semanticColors.focusBorder,\n },\n borderColor: 'transparent',\n outlineColor: undefined,\n };\n return {\n root: [\n {\n whiteSpace: 'nowrap',\n width: '100%',\n alignItems: 'center',\n margin: '-8px 0 0 -8px',\n },\n className,\n ],\n legend: [\n getFocusStyle(theme, options),\n {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n border: 'none',\n padding: '8px',\n background: 'none',\n textTransform: 'capitalize',\n },\n ],\n rect: {\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n content: \"linear-gradient(to right, \" + props.colorOnSelectedState + \", \" + props.colorOnSelectedState + \")\",\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : '',\n },\n _a),\n width: '12px',\n height: isLineLegendInBarChart ? '4px' : '12px',\n backgroundColor: props.stripePattern ? '' : props.colorOnSelectedState,\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : theme === null || theme === void 0 ? void 0 : theme.semanticColors.buttonBorder,\n content: props.stripePattern\n ? // eslint-disable-next-line @fluentui/max-len\n \"repeating-linear-gradient(135deg, transparent, transparent 3px, \" + props.colorOnSelectedState + \" 1px, \" + props.colorOnSelectedState + \" 4px)\"\n : '',\n },\n shape: [\n {\n marginRight: '8px',\n },\n ],\n triangle: {\n width: '0',\n height: '0',\n borderLeft: '6px solid transparent',\n borderRight: '6px solid transparent',\n borderTop: '10.4px solid',\n borderTopColor: props.colorOnSelectedState,\n marginRight: '8px',\n opacity: props.colorOnSelectedState === palette.white ? '0.6' : props.opacity ? props.opacity : '',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '0px',\n height: '10.4px',\n width: '10.4px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: \"linear-gradient(to right, \" + props.colorOnSelectedState + \", \" + props.colorOnSelectedState + \")\",\n },\n _b),\n },\n text: __assign(__assign({}, fonts.small), { lineHeight: '16px', color: theme === null || theme === void 0 ? void 0 : theme.semanticColors.bodyText, opacity: props.colorOnSelectedState === palette.white ? '0.6' : '' }),\n hoverChange: {\n width: '12px',\n height: '12px',\n backgroundColor: 'white',\n marginRight: '8px',\n border: '1px solid',\n borderColor: props.borderColor ? props.borderColor : palette.black,\n },\n overflowIndicationTextStyle: [\n getFocusStyle(theme, options),\n __assign(__assign({ cursor: 'pointer', color: theme === null || theme === void 0 ? void 0 : theme.semanticColors.bodyText }, fonts.small), { lineHeight: '16px', padding: '8px' }),\n ],\n hoverCardRoot: {\n padding: '8px',\n },\n subComponentStyles: {\n hoverCardStyles: {\n host: [getFocusStyle(theme, options)],\n },\n },\n };\n};\n//# sourceMappingURL=Legends.styles.js.map","var _a;\nimport { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { CustomPoints, Points } from '../../utilities/utilities';\nvar pointPath = (_a = {},\n _a[\"\" + Points[Points.circle]] = 'M1 6 A5 5 0 1 0 12 6 M1 6 A5 5 0 0 1 12 6',\n _a[\"\" + Points[Points.square]] = 'M1 1 L12 1 L12 12 L1 12 L1 1 Z',\n _a[\"\" + Points[Points.triangle]] = 'M6 10L8.74228e-07 -1.04907e-06L12 0L6 10Z',\n _a[\"\" + Points[Points.pyramid]] = 'M6 10L8.74228e-07 -1.04907e-06L12 0L6 10Z',\n _a[\"\" + Points[Points.diamond]] = 'M2 2 L10 2 L10 10 L2 10 L2 2 Z',\n _a[\"\" + Points[Points.hexagon]] = 'M9 0H3L0 5L3 10H9L12 5L9 0Z',\n _a[\"\" + Points[Points.pentagon]] = 'M6.06061 0L0 4.21277L2.30303 11H9.69697L12 4.21277L6.06061 0Z',\n _a[\"\" + Points[Points.octagon]] = 'M7.08333 0H2.91667L0 2.91667V7.08333L2.91667 10H7.08333L10 7.08333V2.91667L7.08333 0Z',\n _a[\"\" + CustomPoints[CustomPoints.dottedLine]] = 'M0 6 H3 M5 6 H8 M10 6 H13',\n _a);\nexport var Shape = function (_a) {\n var svgProps = _a.svgProps, pathProps = _a.pathProps, shape = _a.shape, classNameForNonSvg = _a.classNameForNonSvg;\n if (Object.keys(pointPath).indexOf(shape) === -1) {\n return React.createElement(\"div\", { className: classNameForNonSvg });\n }\n return (React.createElement(\"svg\", __assign({ width: 14, height: 14, viewBox: '-1 -1 14 14' }, svgProps, { transform: \"rotate(\" + (shape === Points[Points.diamond] ? 45 : shape === Points[Points.triangle] ? 180 : 0) + \", 0, 0)\" }),\n React.createElement(\"path\", __assign({ d: pointPath[shape] }, pathProps))));\n};\n//# sourceMappingURL=shape.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getId, getRTL } from '@fluentui/react/lib/Utilities';\nimport { Callout } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ChartHoverCard, convertToLocaleString, createNumericXAxis, createStringXAxis, getAccessibleDataObject, getDomainNRangeValues, createDateXAxis, createYAxis, createStringYAxis, getMinMaxOfYAxis, XAxisTypes, YAxisType, createWrapOfXLabels, rotateXAxisLabels, Points, pointTypes, } from '../../utilities/index';\nimport { Shape } from '../Legends/index';\nvar getClassNames = classNamesFunction();\n/**\n * Cartesian chart used for\n * 1.draw X and Y axis of the chart\n * 2.Callout\n * 3.Fit parent Continer\n */\nvar CartesianChartBase = /** @class */ (function (_super) {\n __extends(CartesianChartBase, _super);\n function CartesianChartBase(props) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n var _this = _super.call(this, props) || this;\n _this.minLegendContainerHeight = 32;\n _this._isRtl = getRTL();\n // TO DO: Write a common functional component for Multi value callout and divide sub count method\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._multiValueCallout = function (calloutProps) {\n var yValueHoverSubCountsExists = _this._yValueHoverSubCountsExists(calloutProps.YValueHover);\n return (React.createElement(\"div\", { className: _this._classNames.calloutContentRoot },\n React.createElement(\"div\", { className: _this._classNames.calloutDateTimeContainer, style: yValueHoverSubCountsExists ? { marginBottom: '11px' } : {} },\n React.createElement(\"div\", __assign({ className: _this._classNames.calloutContentX }, getAccessibleDataObject(calloutProps.xAxisCalloutAccessibilityData, 'text', false)), convertToLocaleString(calloutProps.hoverXValue, _this.props.culture))),\n React.createElement(\"div\", { className: _this._classNames.calloutInfoContainer, style: yValueHoverSubCountsExists ? { display: 'flex' } : {} },\n calloutProps.YValueHover &&\n calloutProps.YValueHover.map(function (yValue, index, yValues) {\n var isLast = index + 1 === yValues.length;\n var _a = yValue.shouldDrawBorderBottom, shouldDrawBorderBottom = _a === void 0 ? false : _a;\n return (React.createElement(\"div\", __assign({}, getAccessibleDataObject(yValue.callOutAccessibilityData, 'text', false), { key: \"callout-content-\" + index, style: yValueHoverSubCountsExists\n ? __assign({ display: 'inline-block' }, (shouldDrawBorderBottom && {\n borderBottom: \"1px solid \" + _this.props.theme.semanticColors.menuDivider,\n paddingBottom: '10px',\n })) : __assign({}, (shouldDrawBorderBottom && {\n borderBottom: \"1px solid \" + _this.props.theme.semanticColors.menuDivider,\n paddingBottom: '10px',\n })) }), _this._getCalloutContent(yValue, index, yValueHoverSubCountsExists, isLast)));\n }),\n !!calloutProps.descriptionMessage && (React.createElement(\"div\", { className: _this._classNames.descriptionMessage }, calloutProps.descriptionMessage)))));\n };\n // Call back to the chart.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this._getData = function (xScale, yScale) {\n _this.props.getGraphData &&\n _this.props.getGraphData(xScale, yScale, _this.state.containerHeight - _this.state._removalValueForTextTuncate, _this.state.containerWidth, _this.xAxisElement);\n };\n _this.state = {\n containerHeight: 0,\n containerWidth: 0,\n _width: _this.props.width || 600,\n _height: _this.props.height || 350,\n _removalValueForTextTuncate: 0,\n isRemoveValCalculated: true,\n };\n _this.idForGraph = getId('chart_');\n /**\n * In RTL mode, Only graph will be rendered left/right. We need to provide left and right margins manually.\n * So that, in RTL, left margins becomes right margins and viceversa.\n * As graph needs to be drawn perfecty, these values consider as default values.\n * Same margins using for all other cartesian charts. Can be accessible through 'getMargins' call back method.\n */\n _this.margins = {\n top: (_b = (_a = _this.props.margins) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 20,\n bottom: (_d = (_c = _this.props.margins) === null || _c === void 0 ? void 0 : _c.bottom) !== null && _d !== void 0 ? _d : 35,\n right: _this._isRtl ? (_f = (_e = _this.props.margins) === null || _e === void 0 ? void 0 : _e.left) !== null && _f !== void 0 ? _f : 40 : (_h = (_g = _this.props.margins) === null || _g === void 0 ? void 0 : _g.right) !== null && _h !== void 0 ? _h : 20,\n left: _this._isRtl ? (_k = (_j = _this.props.margins) === null || _j === void 0 ? void 0 : _j.right) !== null && _k !== void 0 ? _k : 20 : (_m = (_l = _this.props.margins) === null || _l === void 0 ? void 0 : _l.left) !== null && _m !== void 0 ? _m : 40,\n };\n return _this;\n }\n CartesianChartBase.prototype.componentDidMount = function () {\n this._fitParentContainer();\n };\n CartesianChartBase.prototype.componentWillUnmount = function () {\n cancelAnimationFrame(this._reqID);\n };\n CartesianChartBase.prototype.componentDidUpdate = function (prevProps) {\n if (prevProps.height !== this.props.height || prevProps.width !== this.props.width) {\n this._fitParentContainer();\n }\n if (!this.props.wrapXAxisLables &&\n this.props.rotateXAxisLables &&\n this.props.xAxisType === XAxisTypes.StringAxis) {\n var rotateLabelProps = {\n node: this.xAxisElement,\n xAxis: this._xScale,\n };\n var rotatedHeight = rotateXAxisLabels(rotateLabelProps);\n if (this.state.isRemoveValCalculated &&\n this.state._removalValueForTextTuncate !== rotatedHeight + this.margins.bottom &&\n rotatedHeight > 0) {\n this.setState({\n _removalValueForTextTuncate: rotatedHeight + this.margins.bottom,\n isRemoveValCalculated: false,\n });\n }\n }\n };\n CartesianChartBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, calloutProps = _a.calloutProps, points = _a.points, chartType = _a.chartType, chartHoverProps = _a.chartHoverProps, svgFocusZoneProps = _a.svgFocusZoneProps, svgProps = _a.svgProps, culture = _a.culture;\n if (this.props.parentRef) {\n this._fitParentContainer();\n }\n // Callback for margins to the chart\n this.props.getmargins && this.props.getmargins(this.margins);\n var XAxisParams = {\n domainNRangeValues: getDomainNRangeValues(points, this.margins, this.state.containerWidth, chartType, this._isRtl, this.props.xAxisType, this.props.barwidth, this.props.tickValues),\n xAxisElement: this.xAxisElement,\n showRoundOffXTickValues: true,\n xAxisCount: this.props.xAxisTickCount,\n xAxistickSize: this.props.xAxistickSize,\n tickPadding: this.props.tickPadding || this.props.showXAxisLablesTooltip ? 5 : 10,\n xAxisPadding: this.props.xAxisPadding,\n };\n var YAxisParams = {\n margins: this.margins,\n containerWidth: this.state.containerWidth,\n containerHeight: this.state.containerHeight - this.state._removalValueForTextTuncate,\n yAxisElement: this.yAxisElement,\n yAxisTickFormat: this.props.yAxisTickFormat,\n yAxisTickCount: this.props.yAxisTickCount,\n yMinValue: this.props.yMinValue || 0,\n yMaxValue: this.props.yMaxValue || 0,\n tickPadding: 10,\n maxOfYVal: this.props.maxOfYVal,\n yMinMaxValues: getMinMaxOfYAxis(points, chartType),\n yAxisPadding: this.props.yAxisPadding,\n };\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var xScale;\n switch (this.props.xAxisType) {\n case XAxisTypes.NumericAxis:\n xScale = createNumericXAxis(XAxisParams, culture);\n break;\n case XAxisTypes.DateAxis:\n xScale = createDateXAxis(XAxisParams, this.props.tickParams);\n break;\n case XAxisTypes.StringAxis:\n xScale = createStringXAxis(XAxisParams, this.props.tickParams, this.props.datasetForXAxisDomain, culture);\n break;\n default:\n xScale = createNumericXAxis(XAxisParams, culture);\n }\n this._xScale = xScale;\n /*\n * To enable wrapping of x axis tick values or to disaply complete x axis tick values,\n * we need to calculate how much space it needed to render the text.\n * No need to re-calculate every time the chart renders and same time need to get an update. So using setState.\n * Required space will be calculated first time chart rendering and if any width/height of chart updated.\n * */\n if (this.props.wrapXAxisLables || this.props.showXAxisLablesTooltip) {\n var wrapLabelProps = {\n node: this.xAxisElement,\n xAxis: xScale,\n showXAxisLablesTooltip: this.props.showXAxisLablesTooltip || false,\n noOfCharsToTruncate: this.props.noOfCharsToTruncate || 4,\n };\n var temp = xScale && createWrapOfXLabels(wrapLabelProps);\n // this value need to be updated for draw graph updated. So instead of using private value, using set state.\n if (this.state.isRemoveValCalculated && this.state._removalValueForTextTuncate !== temp) {\n this.setState({ _removalValueForTextTuncate: temp, isRemoveValCalculated: false });\n }\n }\n /**\n * These scales used for 2 purposes.\n * 1. To create x and y axis\n * 2. To draw the graph.\n * For area/line chart using same scales. For other charts, creating their own scales to draw the graph.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var yScale;\n var axisData = { yAxisDomainValues: [] };\n if (this.props.yAxisType && this.props.yAxisType === YAxisType.StringAxis) {\n yScale = createStringYAxis(YAxisParams, this.props.stringDatasetForYAxisDomain, this._isRtl);\n }\n else {\n yScale = createYAxis(YAxisParams, this._isRtl, axisData);\n }\n this.props.getAxisData && this.props.getAxisData(axisData);\n // Callback function for chart, returns axis\n this._getData(xScale, yScale);\n this._classNames = getClassNames(this.props.styles, {\n theme: this.props.theme,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n });\n var svgDimensions = {\n width: this.state.containerWidth,\n height: this.state.containerHeight,\n };\n var children = this.props.children(__assign(__assign({}, this.state), { xScale: xScale, yScale: yScale }));\n var focusDirection;\n if (this.props.focusZoneDirection === FocusZoneDirection.vertical) {\n focusDirection = this.props.focusZoneDirection;\n }\n else if (this.props.focusZoneDirection) {\n focusDirection = this.props.focusZoneDirection;\n }\n else {\n focusDirection = FocusZoneDirection.horizontal;\n }\n return (React.createElement(\"div\", { id: this.idForGraph, className: this._classNames.root, role: 'presentation', ref: function (rootElem) { return (_this.chartContainer = rootElem); }, onMouseLeave: this.props.onChartMouseLeave },\n React.createElement(FocusZone, __assign({ direction: focusDirection }, svgFocusZoneProps),\n React.createElement(\"svg\", __assign({ width: svgDimensions.width, height: svgDimensions.height, \"aria-label\": this.props.chartTitle, style: { display: 'block' } }, svgProps),\n React.createElement(\"g\", { ref: function (e) {\n _this.xAxisElement = e;\n }, id: \"xAxisGElement\" + this.idForGraph, \n // To add wrap of x axis lables feature, need to remove word height from svg height.\n transform: \"translate(0, \" + (svgDimensions.height - this.margins.bottom - this.state._removalValueForTextTuncate) + \")\", className: this._classNames.xAxis }),\n React.createElement(\"g\", { ref: function (e) {\n _this.yAxisElement = e;\n }, id: \"yAxisGElement\" + this.idForGraph, transform: \"translate(\" + (this._isRtl ? svgDimensions.width - this.margins.right : this.margins.left) + \", 0)\", className: this._classNames.yAxis }),\n children)),\n !this.props.hideLegend && (React.createElement(\"div\", { ref: function (e) { return (_this.legendContainer = e); }, className: this._classNames.legendContainer }, this.props.legendBars)),\n !this.props.hideTooltip && calloutProps.isCalloutVisible && (React.createElement(Callout, __assign({}, calloutProps),\n this.props.customizedCallout && this.props.customizedCallout,\n !this.props.customizedCallout && this.props.isCalloutForStack && this._multiValueCallout(calloutProps),\n !this.props.customizedCallout && !this.props.isCalloutForStack && (React.createElement(ChartHoverCard, __assign({ XValue: calloutProps.XValue, Legend: calloutProps.legend, YValue: calloutProps.YValue, color: calloutProps.color, culture: this.props.culture }, chartHoverProps)))))));\n };\n CartesianChartBase.prototype._yValueHoverSubCountsExists = function (yValueHover) {\n if (yValueHover) {\n return yValueHover.some(function (yValue) { return yValue.yAxisCalloutData && typeof yValue.yAxisCalloutData !== 'string'; });\n }\n return false;\n };\n CartesianChartBase.prototype._getCalloutContent = function (xValue, index, yValueHoverSubCountsExists, isLast) {\n var marginStyle = isLast ? {} : { marginRight: '16px' };\n var toDrawShape = xValue.index !== undefined && xValue.index !== -1;\n var _classNames = getClassNames(this.props.styles, {\n theme: this.props.theme,\n width: this.state._width,\n height: this.state._height,\n className: this.props.className,\n isRtl: this._isRtl,\n lineColor: xValue.color,\n toDrawShape: toDrawShape,\n });\n var culture = this.props.culture;\n var yValue = convertToLocaleString(xValue.y, culture);\n if (!xValue.yAxisCalloutData || typeof xValue.yAxisCalloutData === 'string') {\n return (React.createElement(\"div\", { style: yValueHoverSubCountsExists ? marginStyle : {} },\n yValueHoverSubCountsExists && (React.createElement(\"div\", { className: \"ms-fontWeight-semibold\", style: { fontSize: '12pt' } },\n xValue.legend,\n \" (\",\n yValue,\n \")\")),\n React.createElement(\"div\", { id: index + \"_\" + xValue.y, className: _classNames.calloutBlockContainer },\n toDrawShape && (React.createElement(Shape, { svgProps: {\n className: _classNames.shapeStyles,\n }, pathProps: { fill: xValue.color }, shape: Points[xValue.index % Object.keys(pointTypes).length] })),\n React.createElement(\"div\", null,\n React.createElement(\"div\", { className: _classNames.calloutlegendText },\n \" \",\n xValue.legend),\n React.createElement(\"div\", { className: _classNames.calloutContentY }, convertToLocaleString(xValue.yAxisCalloutData ? xValue.yAxisCalloutData : xValue.y || xValue.data, culture))))));\n }\n else {\n var subcounts_1 = xValue.yAxisCalloutData;\n return (React.createElement(\"div\", { style: marginStyle },\n React.createElement(\"div\", { className: \"ms-fontWeight-semibold\", style: { fontSize: '12pt' } },\n xValue.legend,\n \" (\",\n yValue,\n \")\"),\n Object.keys(subcounts_1).map(function (subcountName) {\n return (React.createElement(\"div\", { key: subcountName, className: _classNames.calloutBlockContainer },\n React.createElement(\"div\", { className: _classNames.calloutlegendText },\n \" \",\n convertToLocaleString(subcountName, culture)),\n React.createElement(\"div\", { className: _classNames.calloutContentY }, convertToLocaleString(subcounts_1[subcountName], culture))));\n })));\n }\n };\n /**\n * When screen resizes, along with screen, chart also auto adjusted.\n * This method used to adjust height and width of the charts.\n */\n CartesianChartBase.prototype._fitParentContainer = function () {\n var _this = this;\n var _a = this.state, containerWidth = _a.containerWidth, containerHeight = _a.containerHeight;\n this._reqID = requestAnimationFrame(function () {\n var legendContainerHeight;\n if (_this.props.hideLegend) {\n // If there is no legend, need not to allocate some space from total chart space.\n legendContainerHeight = 0;\n }\n else {\n var legendContainerComputedStyles = getComputedStyle(_this.legendContainer);\n legendContainerHeight =\n (_this.legendContainer.getBoundingClientRect().height || _this.minLegendContainerHeight) +\n parseFloat(legendContainerComputedStyles.marginTop || '0') +\n parseFloat(legendContainerComputedStyles.marginBottom || '0');\n }\n var container = _this.props.parentRef ? _this.props.parentRef : _this.chartContainer;\n var currentContainerWidth = container.getBoundingClientRect().width;\n var currentContainerHeight = container.getBoundingClientRect().height > legendContainerHeight\n ? container.getBoundingClientRect().height\n : 350;\n var shouldResize = containerWidth !== currentContainerWidth || containerHeight !== currentContainerHeight - legendContainerHeight;\n if (shouldResize) {\n _this.setState({\n containerWidth: currentContainerWidth,\n containerHeight: currentContainerHeight - legendContainerHeight,\n });\n }\n });\n };\n return CartesianChartBase;\n}(React.Component));\nexport { CartesianChartBase };\n//# sourceMappingURL=CartesianChart.base.js.map","import { __assign } from \"tslib\";\nimport { HighContrastSelectorBlack, HighContrastSelector } from '@fluentui/react/lib/Styling';\nimport { isIE11 } from '@fluentui/react';\nvar isIE11Var = isIE11();\nexport var getStyles = function (props) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var className = props.className, theme = props.theme, isRtl = props.isRtl, shouldHighlight = props.shouldHighlight, href = props.href, _j = props.lineColor, lineColor = _j === void 0 ? 'transparent' : _j, toDrawShape = props.toDrawShape;\n var fonts = theme.fonts;\n return {\n root: [\n theme.fonts.medium,\n {\n display: 'flex',\n width: '100%',\n height: '100%',\n flexDirection: 'column',\n overflow: 'hidden',\n },\n className,\n ],\n xAxis: {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: (_a = {},\n _a[HighContrastSelectorBlack] = {\n fill: 'rgb(179, 179, 179)',\n },\n _a),\n },\n ],\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n width: '1px',\n selectors: (_b = {},\n _b[HighContrastSelectorBlack] = {\n opacity: 0.1,\n stroke: 'rgb(179, 179, 179)',\n },\n _b),\n },\n path: {\n display: 'none',\n },\n },\n },\n yAxis: {\n selectors: {\n text: [\n theme.fonts.tiny,\n {\n fill: theme.semanticColors.bodyText,\n fontWeight: '600',\n selectors: (_c = {},\n _c[HighContrastSelectorBlack] = {\n fill: 'rgb(179, 179, 179)',\n },\n _c),\n },\n ],\n path: {\n display: 'none',\n },\n line: {\n opacity: 0.2,\n stroke: theme.semanticColors.bodyText,\n selectors: (_d = {},\n _d[HighContrastSelectorBlack] = {\n opacity: 0.1,\n stroke: 'rgb(179, 179, 179)',\n },\n _d),\n },\n g: [\n isRtl &&\n !isIE11Var && {\n textAnchor: 'end',\n },\n ],\n },\n },\n opacityChangeOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: href ? 'pointer' : 'default',\n },\n legendContainer: [\n {\n marginTop: '8px',\n marginLeft: '20px',\n },\n ],\n calloutContentRoot: [\n {\n display: 'grid',\n overflow: 'hidden',\n padding: '11px 16px 10px 16px',\n backgroundColor: theme.semanticColors.bodyBackground,\n backgroundBlendMode: 'normal, luminosity',\n },\n ],\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: [\n __assign(__assign({}, fonts.small), { lineHeight: '16px', opacity: '0.8', color: theme.semanticColors.bodySubtext }),\n ],\n calloutBlockContainer: [\n theme.fonts.mediumPlus,\n {\n marginTop: '13px',\n color: theme.semanticColors.bodyText,\n },\n !toDrawShape && {\n selectors: (_e = {},\n _e[HighContrastSelector] = {\n forcedColorAdjust: 'none',\n },\n _e),\n borderLeft: \"4px solid \" + lineColor,\n paddingLeft: '8px',\n },\n toDrawShape && {\n display: 'flex',\n },\n ],\n shapeStyles: {\n marginRight: '8px',\n },\n calloutlegendText: __assign(__assign({}, fonts.small), { lineHeight: '16px', selectors: (_f = {},\n _f[HighContrastSelectorBlack] = {\n color: 'rgb(255, 255, 255)',\n },\n _f), color: theme.semanticColors.bodySubtext }),\n calloutContentY: [\n __assign(__assign({}, fonts.mediumPlus), { fontWeight: 'bold', lineHeight: '22px', selectors: (_g = {},\n _g[HighContrastSelectorBlack] = {\n color: 'rgb(255, 255, 255)',\n },\n _g) }),\n ],\n descriptionMessage: [\n theme.fonts.small,\n {\n selectors: (_h = {},\n _h[HighContrastSelectorBlack] = {\n color: 'rgb(255, 255, 255)',\n },\n _h),\n color: theme.semanticColors.bodyText,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: \"1px solid \" + theme.semanticColors.menuDivider,\n },\n ],\n };\n};\n//# sourceMappingURL=CartesianChart.styles.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { CartesianChartBase } from './CartesianChart.base';\nimport { getStyles } from './CartesianChart.styles';\nexport var CartesianChart = styled(CartesianChartBase, getStyles);\n//# sourceMappingURL=CartesianChart.js.map","import { __assign, __rest } from \"tslib\";\nimport * as React from 'react';\nimport { select } from 'd3-selection';\nexport var Textbox = function (props) {\n var textElementRef = React.useRef(null);\n var wrapWords = function () {\n if (!textElementRef.current) {\n return;\n }\n var text = select(textElementRef.current);\n var words = props.text.split(/\\s+/);\n var line = [];\n var tspan = text.append('tspan');\n var numLines = 0;\n words.forEach(function (word) {\n line.push(word);\n tspan.text(line.join(' '));\n var node = tspan.node();\n if (node && node.getComputedTextLength() > props.width && line.length > 1) {\n numLines++;\n line.pop();\n tspan.text(line.join(' '));\n line = [word];\n tspan = text.append('tspan').text(word).attr('dy', props.lineHeight).attr('x', props.x);\n }\n });\n // bottom aligns text\n text.attr('dy', -numLines * props.lineHeight);\n return function () {\n text.selectAll('tspan').remove();\n };\n };\n React.useEffect(wrapWords);\n var lineHeight = props.lineHeight, rest = __rest(props, [\"lineHeight\"]);\n return React.createElement(\"text\", __assign({ ref: textElementRef }, rest));\n};\n//# sourceMappingURL=Textbox.js.map","import * as React from 'react';\nimport { Callout, FocusZone, FocusZoneDirection, List } from '@fluentui/react';\nimport { Textbox } from './Textbox';\nexport var LabelLink = function (props) {\n var gRef = React.useRef(null);\n var _a = React.useState(false), showCard = _a[0], setShowCard = _a[1];\n var onDismiss = function () { return setShowCard(false); };\n var onClick = function () { return setShowCard(true); };\n var onRenderCell = function (i) { return React.createElement(\"div\", { \"data-is-focusable\": true }, i && i()); };\n var callout = null;\n if (showCard) {\n var cards = props.labelDef.aggregatedIdx.map(function (i) { return props.lineDefs[i].onRenderCard; }).filter(function (c) { return !!c; });\n if (cards.length > 0) {\n callout = (React.createElement(Callout, { target: gRef.current, \n // eslint-disable-next-line react/jsx-no-bind\n onDismiss: onDismiss, setInitialFocus: true, role: \"dialog\" },\n React.createElement(FocusZone, { isCircularNavigation: true, direction: FocusZoneDirection.vertical },\n React.createElement(List, { items: cards, \n // eslint-disable-next-line react/jsx-no-bind\n onRenderCell: onRenderCell }))));\n }\n }\n var text;\n var darkThemeMq = window.matchMedia('(prefers-color-scheme: dark)');\n var fill = darkThemeMq.matches ? 'rgb(255,255,255)' : props.textColor;\n if (props.labelDef.aggregatedIdx.length === 1) {\n text = props.lineDefs[props.labelDef.aggregatedIdx[0]].event;\n }\n else {\n text = props.mergedLabel(props.labelDef.aggregatedIdx.length);\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(\"g\", { ref: gRef, onClick: onClick, \"data-is-focusable\": false, style: { cursor: 'pointer' } },\n React.createElement(Textbox, { text: text, x: props.labelDef.x, y: props.textY, width: props.textWidth, lineHeight: props.textLineHeight, textAnchor: props.labelDef.anchor, fontSize: props.textFontSize, fill: fill })),\n callout));\n};\n//# sourceMappingURL=LabelLink.js.map","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { findIndex } from '@fluentui/react/lib/Utilities';\nimport { LabelLink } from './LabelLink';\nexport var EventsAnnotation = function (props) {\n var textWidth = props.labelWidth ? props.labelWidth : 105;\n var textY = props.chartYTop - 20;\n var lineTopY = textY + 7;\n var textPadding = 5;\n var lineHeight = 18;\n var fontSize = '10pt';\n var axisRange = props.scale.range();\n var lineDefs = props.events.map(function (e) { return (__assign(__assign({}, e), { x: props.scale(e.date) })); });\n lineDefs.sort(function (e1, e2) { return +e1.date - +e2.date; });\n var darkThemeMq = window.matchMedia('(prefers-color-scheme: dark)');\n var fill = darkThemeMq.matches ? 'rgb(255,255,255)' : props.strokeColor;\n var lines = uniqBy(lineDefs, function (x) { return x.date.toString(); }).map(function (x, i) { return (React.createElement(\"line\", { key: i, x1: x.x, x2: x.x, y1: lineTopY, y2: props.chartYBottom, stroke: fill, strokeDasharray: \"8\" })); });\n var labelLinks = calculateLabels(lineDefs, textWidth + textPadding, axisRange[1], axisRange[0]).map(function (x, i) { return (React.createElement(LabelLink, __assign({ key: i }, {\n lineDefs: lineDefs,\n labelDef: x,\n textY: textY,\n textWidth: textWidth,\n textLineHeight: lineHeight,\n textFontSize: fontSize,\n textColor: props.labelColor,\n mergedLabel: props.mergedLabel,\n }))); });\n return (React.createElement(React.Fragment, null,\n lines,\n labelLinks));\n};\nfunction calculateLabels(lineDefs, textWidth, maxX, minX) {\n var calculateLabel = function (lastX, currentIdx) {\n // base case 1\n if (currentIdx === lineDefs.length) {\n return [];\n }\n var x = lineDefs[currentIdx].x;\n var leftXBoundary = x - textWidth;\n // cannot render on top of other text\n if (x < lastX) {\n return [];\n }\n // base case 2\n if (currentIdx === lineDefs.length - 1) {\n if (lastX < leftXBoundary) {\n return [{ x: x, anchor: 'end', aggregatedIdx: [currentIdx] }];\n }\n else if (x + textWidth < maxX) {\n return [{ x: x, anchor: 'start', aggregatedIdx: [currentIdx] }];\n }\n return [];\n }\n if (lastX < leftXBoundary) {\n // label on left side\n return backtrack(currentIdx, 'end');\n }\n else {\n // label on right side\n return backtrack(currentIdx, 'start');\n }\n };\n var backtrack = function (currentIdx, anchor) {\n var bd = anchor === 'end' ? lineDefs[currentIdx].x : lineDefs[currentIdx].x + textWidth;\n var idx = findIndex(lineDefs, function (ds) { return ds.x > bd && (ds.x - textWidth >= bd || ds.x + textWidth < maxX); }, currentIdx + 1);\n if (idx === -1) {\n idx = lineDefs.length;\n }\n var aggregatedIdx = [];\n for (var i = currentIdx; i < idx; i++) {\n aggregatedIdx.push(i);\n }\n var next = calculateLabel(bd, idx);\n next.unshift({ x: lineDefs[currentIdx].x, anchor: anchor, aggregatedIdx: aggregatedIdx });\n return next;\n };\n return calculateLabel(minX, 0);\n}\n/** Get unique items of `arr`, comparing based on the result of calling `iteratee` on each item. */\nfunction uniqBy(arr, iteratee) {\n var seen = [];\n var result = [];\n for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {\n var x = arr_1[_i];\n var comp = iteratee(x);\n if (seen.indexOf(comp) === -1) {\n result.push(x);\n seen.push(comp);\n }\n }\n return result;\n}\n//# sourceMappingURL=EventAnnotation.js.map","import { __assign, __extends, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { select as d3Select } from 'd3-selection';\nimport { Legends } from '../Legends/index';\nimport { classNamesFunction, getId, find } from '@fluentui/react/lib/Utilities';\nimport { CartesianChart, } from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport { calloutData, ChartTypes, getXAxisType, XAxisTypes, tooltipOfXAxislabels, Points, pointTypes, getMinMaxOfYAxis, } from '../../utilities/index';\nvar getClassNames = classNamesFunction();\nvar PointSize;\n(function (PointSize) {\n PointSize[PointSize[\"hoverSize\"] = 11] = \"hoverSize\";\n PointSize[PointSize[\"invisibleSize\"] = 1] = \"invisibleSize\";\n})(PointSize || (PointSize = {}));\nvar DEFAULT_LINE_STROKE_SIZE = 4;\n// The given shape of a icon must be 2.5 times bigger than line width (known as stroke width)\nvar PATH_MULTIPLY_SIZE = 2.5;\n/**\n *\n * @param x units from origin\n * @param y units from origin\n * @param w is the legnth of the each side of a shape\n * @param index index to get the shape path\n */\nvar _getPointPath = function (x, y, w, index) {\n var allPointPaths = [\n // circle path\n \"M\" + (x - w / 2) + \" \" + y + \"\\n A\" + w / 2 + \" \" + w / 2 + \" 0 1 0 \" + (x + w / 2) + \" \" + y + \"\\n M\" + (x - w / 2) + \" \" + y + \"\\n A \" + w / 2 + \" \" + w / 2 + \" 0 1 1 \" + (x + w / 2) + \" \" + y + \"\\n \",\n //square\n \"M\" + (x - w / 2) + \" \" + (y - w / 2) + \"\\n L\" + (x + w / 2) + \" \" + (y - w / 2) + \"\\n L\" + (x + w / 2) + \" \" + (y + w / 2) + \"\\n L\" + (x - w / 2) + \" \" + (y + w / 2) + \"\\n Z\",\n //triangle\n \"M\" + (x - w / 2) + \" \" + (y - 0.2886 * w) + \"\\n H \" + (x + w / 2) + \"\\n L\" + x + \" \" + (y + 0.5774 * w) + \" Z\",\n //diamond\n \"M\" + x + \" \" + (y - w / 2) + \"\\n L\" + (x + w / 2) + \" \" + y + \"\\n L\" + x + \" \" + (y + w / 2) + \"\\n L\" + (x - w / 2) + \" \" + y + \"\\n Z\",\n //pyramid\n \"M\" + x + \" \" + (y - 0.5774 * w) + \"\\n L\" + (x + w / 2) + \" \" + (y + 0.2886 * w) + \"\\n L\" + (x - w / 2) + \" \" + (y + 0.2886 * w) + \" Z\",\n //hexagon\n \"M\" + (x - 0.5 * w) + \" \" + (y - 0.866 * w) + \"\\n L\" + (x + 0.5 * w) + \" \" + (y - 0.866 * w) + \"\\n L\" + (x + w) + \" \" + y + \"\\n L\" + (x + 0.5 * w) + \" \" + (y + 0.866 * w) + \"\\n L\" + (x - 0.5 * w) + \" \" + (y + 0.866 * w) + \"\\n L\" + (x - w) + \" \" + y + \"\\n Z\",\n //pentagon\n \"M\" + x + \" \" + (y - 0.851 * w) + \"\\n L\" + (x + 0.6884 * w) + \" \" + (y - 0.2633 * w) + \"\\n L\" + (x + 0.5001 * w) + \" \" + (y + 0.6884 * w) + \"\\n L\" + (x - 0.5001 * w) + \" \" + (y + 0.6884 * w) + \"\\n L\" + (x - 0.6884 * w) + \" \" + (y - 0.2633 * w) + \"\\n Z\",\n //octagon\n \"M\" + (x - 0.5001 * w) + \" \" + (y - 1.207 * w) + \"\\n L\" + (x + 0.5001 * w) + \" \" + (y - 1.207 * w) + \"\\n L\" + (x + 1.207 * w) + \" \" + (y - 0.5001 * w) + \"\\n L\" + (x + 1.207 * w) + \" \" + (y + 0.5001 * w) + \"\\n L\" + (x + 0.5001 * w) + \" \" + (y + 1.207 * w) + \"\\n L\" + (x - 0.5001 * w) + \" \" + (y + 1.207 * w) + \"\\n L\" + (x - 1.207 * w) + \" \" + (y + 0.5001 * w) + \"\\n L\" + (x - 1.207 * w) + \" \" + (y - 0.5001 * w) + \"\\n Z\",\n ];\n return allPointPaths[index];\n};\nvar LineChartBase = /** @class */ (function (_super) {\n __extends(LineChartBase, _super);\n function LineChartBase(props) {\n var _this_1 = _super.call(this, props) || this;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this_1._xAxisScale = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this_1._yAxisScale = '';\n _this_1.eventLabelHeight = 36;\n _this_1._injectIndexPropertyInLineChartData = function (lineChartData) {\n var _a = _this_1.props.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _a === void 0 ? false : _a;\n return lineChartData\n ? lineChartData.map(function (item, index) { return (__assign(__assign({}, item), { index: allowMultipleShapesForPoints ? index : -1 })); })\n : [];\n };\n _this_1._getCustomizedCallout = function () {\n return _this_1.props.onRenderCalloutPerStack\n ? _this_1.props.onRenderCalloutPerStack(_this_1.state.stackCalloutProps)\n : _this_1.props.onRenderCalloutPerDataPoint\n ? _this_1.props.onRenderCalloutPerDataPoint(_this_1.state.dataPointCalloutProps)\n : null;\n };\n _this_1._getMargins = function (margins) {\n _this_1.margins = margins;\n };\n _this_1._initializeLineChartData = function (xScale, yScale, containerHeight, containerWidth, xElement) {\n _this_1._xAxisScale = xScale;\n _this_1._yAxisScale = yScale;\n _this_1._renderedColorFillBars = _this_1.props.colorFillBars ? _this_1._createColorFillBars(containerHeight) : [];\n _this_1.lines = _this_1._createLines(xElement, containerHeight);\n };\n _this_1._handleSingleLegendSelectionAction = function (lineChartItem) {\n if (_this_1.state.selectedLegend === lineChartItem.legend) {\n _this_1.setState({ selectedLegend: '', activeLegend: lineChartItem.legend });\n _this_1._handleLegendClick(lineChartItem, null);\n }\n else {\n _this_1.setState({\n selectedLegend: lineChartItem.legend,\n activeLegend: lineChartItem.legend,\n });\n _this_1._handleLegendClick(lineChartItem, lineChartItem.legend);\n }\n };\n _this_1._onHoverCardHide = function () {\n _this_1.setState({\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n });\n };\n _this_1._closeCallout = function () {\n _this_1.setState({\n isCalloutVisible: false,\n });\n };\n _this_1._getBoxWidthOfShape = function (pointId, pointIndex, isLastPoint) {\n var _a = _this_1.props, _b = _a.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _b === void 0 ? false : _b, _c = _a.strokeWidth, strokeWidth = _c === void 0 ? DEFAULT_LINE_STROKE_SIZE : _c;\n var activePoint = _this_1.state.activePoint;\n if (allowMultipleShapesForPoints) {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n }\n else if (pointIndex === 1 || isLastPoint) {\n return strokeWidth * PATH_MULTIPLY_SIZE;\n }\n else {\n return PointSize.invisibleSize;\n }\n }\n else {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n }\n else {\n return PointSize.invisibleSize;\n }\n }\n };\n _this_1._getPath = function (xPos, yPos, pointId, pointIndex, isLastPoint, pointOftheLine) {\n var _a = _this_1.props.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _a === void 0 ? false : _a;\n var w = _this_1._getBoxWidthOfShape(pointId, pointIndex, isLastPoint);\n var index = allowMultipleShapesForPoints ? pointOftheLine % Object.keys(pointTypes).length : 0;\n var widthRatio = pointTypes[index].widthRatio;\n w = widthRatio > 1 ? w / widthRatio : w;\n return _getPointPath(xPos, yPos, w, index);\n };\n _this_1._getPointFill = function (lineColor, pointId, pointIndex, isLastPoint) {\n var activePoint = _this_1.state.activePoint;\n var _a = _this_1.props, theme = _a.theme, _b = _a.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _b === void 0 ? false : _b;\n if (allowMultipleShapesForPoints) {\n if (pointIndex === 1 || isLastPoint) {\n if (activePoint === pointId) {\n return theme.palette.white;\n }\n else {\n return lineColor;\n }\n }\n else {\n if (activePoint === pointId) {\n return theme.palette.white;\n }\n else {\n return lineColor;\n }\n }\n }\n else {\n if (activePoint === pointId) {\n return theme.palette.white;\n }\n else {\n return lineColor;\n }\n }\n };\n _this_1._createColorFillBars = function (containerHeight) {\n var colorFillBars = [];\n if (_this_1.state.isSelectedLegend) {\n _this_1._colorFillBars = _this_1.state.selectedColorBarLegend;\n }\n else {\n _this_1._colorFillBars = _this_1.props.colorFillBars;\n }\n var yMinMaxValues = getMinMaxOfYAxis(_this_1._points, ChartTypes.LineChart);\n var FILL_Y_PADDING = 3;\n for (var i = 0; i < _this_1._colorFillBars.length; i++) {\n var colorFillBar = _this_1._colorFillBars[i];\n var colorFillBarId = getId(colorFillBar.legend.replace(/\\W/g, ''));\n if (colorFillBar.applyPattern) {\n // Using a pattern element because CSS was unable to render diagonal stripes for rect elements\n colorFillBars.push(_this_1._getStripePattern(colorFillBar.color, i));\n }\n for (var j = 0; j < colorFillBar.data.length; j++) {\n var startX = colorFillBar.data[j].startX;\n var endX = colorFillBar.data[j].endX;\n var opacity = _this_1.state.activeLegend === colorFillBar.legend ||\n _this_1.state.activeLegend === '' ||\n _this_1.state.isSelectedLegend\n ? _this_1._colorFillBarsOpacity\n : 0.1;\n colorFillBars.push(React.createElement(\"rect\", { fill: colorFillBar.applyPattern ? \"url(#\" + _this_1._colorFillBarPatternId + i + \")\" : colorFillBar.color, fillOpacity: opacity, x: _this_1._xAxisScale(startX), y: _this_1._yAxisScale(yMinMaxValues.endValue) - FILL_Y_PADDING, width: Math.abs(_this_1._xAxisScale(endX) - _this_1._xAxisScale(startX)), height: _this_1._yAxisScale(_this_1.props.yMinValue || 0) - _this_1._yAxisScale(yMinMaxValues.endValue) + FILL_Y_PADDING, key: \"\" + colorFillBarId + j }));\n }\n }\n return colorFillBars;\n };\n _this_1._getStripePattern = function (color, id) {\n // This describes a tile pattern that resembles diagonal stripes\n // For more information: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n var stripePath = 'M-4,4 l8,-8 M0,16 l16,-16 M12,20 l8,-8';\n return (React.createElement(\"pattern\", { id: \"\" + _this_1._colorFillBarPatternId + id, width: 16, height: 16, key: \"\" + _this_1._colorFillBarPatternId + id, patternUnits: 'userSpaceOnUse' },\n React.createElement(\"path\", { d: stripePath, stroke: color, strokeWidth: 1.25 })));\n };\n _this_1._checkInGap = function (pointIndex, gaps, currentGapIndex) {\n var gapIndex = currentGapIndex;\n var isInGap = false;\n while (gapIndex < gaps.length && pointIndex > gaps[gapIndex].endIndex) {\n gapIndex++;\n }\n if (gapIndex < gaps.length && pointIndex > gaps[gapIndex].startIndex && pointIndex <= gaps[gapIndex].endIndex) {\n isInGap = true;\n }\n return { isInGap: isInGap, gapIndex: gapIndex };\n };\n _this_1._handleFocus = function (lineId, x, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData) {\n _this_1._uniqueCallOutID = circleId;\n var formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n var xVal = x instanceof Date ? x.getTime() : x;\n var found = find(_this_1._calloutPoints, function (element) { return element.x === xVal; });\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n var _this_2 = _this_1;\n d3Select('#' + circleId).attr('aria-labelledby', \"toolTip\" + _this_1._uniqueCallOutID);\n d3Select(\"#\" + _this_1._verticalLine)\n .attr('transform', function () { return \"translate(\" + _this_2._xAxisScale(x) + \", 0)\"; })\n .attr('visibility', 'visibility');\n _this_1._refArray.forEach(function (obj) {\n if (obj.index === lineId) {\n _this_1.setState({\n isCalloutVisible: true,\n refSelected: obj.refElement,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found,\n dataPointCalloutProps: found,\n activePoint: circleId,\n xAxisCalloutAccessibilityData: xAxisCalloutAccessibilityData,\n });\n }\n });\n }\n else {\n _this_1.setState({\n activePoint: circleId,\n });\n }\n };\n _this_1._handleHover = function (x, y, lineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, mouseEvent) {\n mouseEvent.persist();\n var formattedData = x instanceof Date ? x.toLocaleDateString() : x;\n var xVal = x instanceof Date ? x.getTime() : x;\n var _this = _this_1;\n var found = find(_this_1._calloutPoints, function (element) { return element.x === xVal; });\n // if no points need to be called out then don't show vertical line and callout card\n if (found) {\n d3Select(\"#\" + _this_1._verticalLine)\n .attr('transform', function () { return \"translate(\" + _this._xAxisScale(x) + \", \" + _this._yAxisScale(y) + \")\"; })\n .attr('visibility', 'visibility')\n .attr('y2', \"\" + (lineHeight - _this._yAxisScale(y)));\n if (_this_1._uniqueCallOutID !== circleId) {\n _this_1._uniqueCallOutID = circleId;\n _this_1.setState({\n isCalloutVisible: true,\n refSelected: \"#\" + circleId,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found,\n dataPointCalloutProps: found,\n activePoint: circleId,\n xAxisCalloutAccessibilityData: xAxisCalloutAccessibilityData,\n });\n }\n }\n else {\n _this_1.setState({\n activePoint: circleId,\n });\n }\n };\n _this_1._onLineClick = function (func) {\n if (func) {\n func();\n }\n };\n _this_1._onDataPointClick = function (func) {\n if (func) {\n func();\n }\n };\n _this_1._handleMouseOut = function () {\n d3Select(\"#\" + _this_1._verticalLine).attr('visibility', 'hidden');\n };\n _this_1._handleChartMouseLeave = function () {\n _this_1._uniqueCallOutID = null;\n _this_1.setState({\n isCalloutVisible: false,\n activePoint: '',\n });\n };\n _this_1._handleLegendClick = function (lineChartItem, selectedLegend) {\n if (lineChartItem.onLegendClick) {\n lineChartItem.onLegendClick(selectedLegend);\n }\n };\n _this_1._handleMultipleLineLegendSelectionAction = function (selectedLine) {\n var selectedLineIndex = _this_1.state.selectedLegendPoints.reduce(function (acc, line, index) {\n if (acc > -1 || line.legend !== selectedLine.legend) {\n return acc;\n }\n else {\n return index;\n }\n }, -1);\n var selectedLines;\n if (selectedLineIndex === -1) {\n selectedLines = __spreadArray(__spreadArray([], _this_1.state.selectedLegendPoints), [selectedLine]);\n }\n else {\n selectedLines = _this_1.state.selectedLegendPoints\n .slice(0, selectedLineIndex)\n .concat(_this_1.state.selectedLegendPoints.slice(selectedLineIndex + 1));\n }\n var areAllLineLegendsSelected = _this_1.props.data && selectedLines.length === _this_1.props.data.lineChartData.length;\n if (areAllLineLegendsSelected &&\n ((_this_1.props.colorFillBars && _this_1.props.colorFillBars.length === _this_1.state.selectedColorBarLegend.length) ||\n !_this_1.props.colorFillBars)) {\n // Clear all legends if all legends including color fill bar legends are selected\n // Or clear all legends if all legends are selected and there are no color fill bars\n _this_1._clearMultipleLegendSelections();\n }\n else if (!selectedLines.length && !_this_1.state.selectedColorBarLegend.length) {\n // Clear all legends if no legends including color fill bar legends are selected\n _this_1._clearMultipleLegendSelections();\n }\n else {\n // Otherwise, set state when one or more legends are selected, including color fill bar legends\n _this_1.setState({\n selectedLegendPoints: selectedLines,\n isSelectedLegend: true,\n });\n }\n var selectedLegendTitlesToPass = selectedLines.map(function (line) { return line.legend; });\n _this_1._handleLegendClick(selectedLine, selectedLegendTitlesToPass);\n };\n _this_1._handleMultipleColorFillBarLegendSelectionAction = function (selectedColorFillBar) {\n var selectedColorFillBarIndex = _this_1.state.selectedColorBarLegend.reduce(function (acc, colorFillBar, index) {\n if (acc > -1 || colorFillBar.legend !== selectedColorFillBar.legend) {\n return acc;\n }\n else {\n return index;\n }\n }, -1);\n var selectedColorFillBars;\n if (selectedColorFillBarIndex === -1) {\n selectedColorFillBars = __spreadArray(__spreadArray([], _this_1.state.selectedColorBarLegend), [selectedColorFillBar]);\n }\n else {\n selectedColorFillBars = _this_1.state.selectedColorBarLegend\n .slice(0, selectedColorFillBarIndex)\n .concat(_this_1.state.selectedColorBarLegend.slice(selectedColorFillBarIndex + 1));\n }\n var areAllColorFillBarLegendsSelected = selectedColorFillBars.length === (_this_1.props.colorFillBars && _this_1.props.colorFillBars.length);\n if (areAllColorFillBarLegendsSelected &&\n ((_this_1.props.data && _this_1.props.data.lineChartData.length === _this_1.state.selectedLegendPoints.length) ||\n !_this_1.props.data)) {\n // Clear all legends if all legends, including line legends, are selected\n // Or clear all legends if all legends are selected and there is no line data\n _this_1._clearMultipleLegendSelections();\n }\n else if (!selectedColorFillBars.length && !_this_1.state.selectedLegendPoints.length) {\n // Clear all legends if no legends are selected, including line legends\n _this_1._clearMultipleLegendSelections();\n }\n else {\n // set state when one or more legends are selected, including line legends\n _this_1.setState({\n selectedColorBarLegend: selectedColorFillBars,\n isSelectedLegend: true,\n });\n }\n var selectedLegendTitlesToPass = selectedColorFillBars.map(function (colorFillBar) { return colorFillBar.legend; });\n _this_1._handleLegendClick(selectedColorFillBar, selectedLegendTitlesToPass);\n };\n _this_1._clearMultipleLegendSelections = function () {\n _this_1.setState({\n selectedColorBarLegend: [],\n selectedLegendPoints: [],\n isSelectedLegend: false,\n });\n };\n _this_1.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n refSelected: '',\n selectedLegend: '',\n isCalloutVisible: false,\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n activePoint: '',\n };\n _this_1._refArray = [];\n _this_1._points = _this_1._injectIndexPropertyInLineChartData(_this_1.props.data.lineChartData);\n _this_1._colorFillBars = [];\n _this_1._colorFillBarsOpacity = 0.5;\n _this_1._calloutPoints = calloutData(_this_1._points) || [];\n _this_1._circleId = getId('circle');\n _this_1._lineId = getId('lineID');\n _this_1._borderId = getId('borderID');\n _this_1._verticalLine = getId('verticalLine');\n _this_1._colorFillBarPatternId = getId('colorFillBarPattern');\n _this_1._tooltipId = getId('LineChartTooltipId_');\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (_this_1.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n return _this_1;\n }\n LineChartBase.prototype.componentDidUpdate = function (prevProps) {\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responisble for setting the height and width or resizing of the svg/chart\n */\n if (prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data) {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._calloutPoints = calloutData(this._points) || [];\n }\n };\n LineChartBase.prototype.render = function () {\n var _this_1 = this;\n var _a = this.props, tickValues = _a.tickValues, tickFormat = _a.tickFormat, eventAnnotationProps = _a.eventAnnotationProps, legendProps = _a.legendProps, data = _a.data;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n var isXAxisDateType = getXAxisType(this._points);\n var points = this._points;\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = this.state.selectedLegendPoints.length >= 1 ? this.state.selectedLegendPoints : this._points;\n this._calloutPoints = calloutData(points);\n }\n var legendBars = this._createLegends(this._points);\n var calloutProps = __assign({ isCalloutVisible: this.state.isCalloutVisible, directionalHint: DirectionalHint.topAutoEdge, YValueHover: this.state.YValueHover, hoverXValue: this.state.hoverXValue, id: \"toolTip\" + this._uniqueCallOutID, target: this.state.refSelected, isBeakVisible: false, gapSpace: 15, onDismiss: this._closeCallout, preventDismissOnEvent: function () { return true; }, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), descriptionMessage: this.props.getCalloutDescriptionMessage && this.state.stackCalloutProps\n ? this.props.getCalloutDescriptionMessage(this.state.stackCalloutProps)\n : undefined, 'data-is-focusable': true, xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData }, this.props.calloutProps);\n var tickParams = {\n tickValues: tickValues,\n tickFormat: tickFormat,\n };\n return (React.createElement(CartesianChart, __assign({}, this.props, { chartTitle: data.chartTitle, points: points, chartType: ChartTypes.LineChart, isCalloutForStack: true, calloutProps: calloutProps, tickParams: tickParams, legendBars: legendBars, getmargins: this._getMargins, getGraphData: this._initializeLineChartData, xAxisType: isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis, customizedCallout: this._getCustomizedCallout(), onChartMouseLeave: this._handleChartMouseLeave, \n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children: function (props) {\n _this_1._xAxisScale = props.xScale;\n _this_1._yAxisScale = props.yScale;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"g\", null,\n React.createElement(\"line\", { x1: 0, y1: 0, x2: 0, y2: props.containerHeight, stroke: '#C8C8C8', id: _this_1._verticalLine, visibility: 'hidden', strokeDasharray: '5,5' }),\n React.createElement(\"g\", null,\n _this_1._renderedColorFillBars,\n _this_1.lines),\n eventAnnotationProps && (React.createElement(EventsAnnotation, __assign({}, eventAnnotationProps, { scale: props.xScale, chartYTop: _this_1.margins.top + _this_1.eventLabelHeight, chartYBottom: props.containerHeight - 35 }))))));\n } })));\n };\n LineChartBase.prototype._createLegends = function (data) {\n var _this_1 = this;\n var _a = this.props, legendProps = _a.legendProps, _b = _a.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _b === void 0 ? false : _b;\n var isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n var legendDataItems = data.map(function (point) {\n var color = point.color;\n // mapping data to the format Legends component needs\n var legend = __assign(__assign({ title: point.legend, color: color, action: function () {\n if (isLegendMultiSelectEnabled) {\n _this_1._handleMultipleLineLegendSelectionAction(point);\n }\n else {\n _this_1._handleSingleLegendSelectionAction(point);\n }\n }, onMouseOutAction: function () {\n _this_1.setState({ activeLegend: '' });\n }, hoverAction: function () {\n _this_1.setState({ activeLegend: point.legend });\n } }, (point.legendShape && {\n shape: point.legendShape,\n })), (allowMultipleShapesForPoints && {\n shape: Points[point.index % Object.keys(pointTypes).length],\n }));\n return legend;\n });\n var colorFillBarsLegendDataItems = this.props.colorFillBars\n ? this.props.colorFillBars.map(function (colorFillBar, index) {\n var title = colorFillBar.legend;\n var legend = {\n title: title,\n color: colorFillBar.color,\n action: function () {\n if (isLegendMultiSelectEnabled) {\n _this_1._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);\n }\n else {\n _this_1._handleSingleLegendSelectionAction(colorFillBar);\n }\n },\n onMouseOutAction: function () {\n _this_1.setState({ activeLegend: '' });\n },\n hoverAction: function () {\n _this_1.setState({ activeLegend: title });\n },\n opacity: _this_1._colorFillBarsOpacity,\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n var legends = (React.createElement(Legends, __assign({ legends: __spreadArray(__spreadArray([], legendDataItems), colorFillBarsLegendDataItems), enabledWrapLines: this.props.enabledLegendsWrapLines, overflowProps: this.props.legendsOverflowProps, focusZonePropsInHoverCard: this.props.focusZonePropsForLegendsInHoverCard, overflowText: this.props.legendsOverflowText }, (isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide }), this.props.legendProps)));\n return legends;\n };\n LineChartBase.prototype._createLines = function (xElement, containerHeight) {\n var _this_1 = this;\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n var lines = [];\n if (this.state.isSelectedLegend) {\n this._points = this.state.selectedLegendPoints;\n }\n else {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n }\n for (var i = 0; i < this._points.length; i++) {\n var linesForLine = [];\n var bordersForLine = [];\n var pointsForLine = [];\n var legendVal = this._points[i].legend;\n var lineColor = this._points[i].color;\n var activePoint = this.state.activePoint;\n var theme = this.props.theme;\n var verticaLineHeight = containerHeight - this.margins.bottom + 6;\n if (this._points[i].data.length === 1) {\n var _r = this._points[i].data[0], x1 = _r.x, y1 = _r.y, xAxisCalloutData = _r.xAxisCalloutData, xAxisCalloutAccessibilityData = _r.xAxisCalloutAccessibilityData;\n var circleId = \"\" + this._circleId + i;\n pointsForLine.push(React.createElement(\"circle\", { id: \"\" + this._circleId + i, key: \"\" + this._circleId + i, r: activePoint === circleId ? 5.5 : 3.5, cx: this._xAxisScale(x1), cy: this._yAxisScale(y1), fill: activePoint === circleId ? theme.palette.white : lineColor, onMouseOver: this._handleHover.bind(this, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseMove: this._handleHover.bind(this, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseOut: this._handleMouseOut, strokeWidth: activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0, stroke: activePoint === circleId ? lineColor : '' }));\n }\n var gapIndex = 0;\n var gaps = (_b = (_a = this._points[i].gaps) === null || _a === void 0 ? void 0 : _a.sort(function (a, b) { return a.startIndex - b.startIndex; })) !== null && _b !== void 0 ? _b : [];\n var _loop_1 = function (j) {\n var gapResult = this_1._checkInGap(j, gaps, gapIndex);\n var isInGap = gapResult.isInGap;\n gapIndex = gapResult.gapIndex;\n var lineId = \"\" + this_1._lineId + i + j;\n var borderId = \"\" + this_1._borderId + i + j;\n var circleId = \"\" + this_1._circleId + i + j;\n var _s = this_1._points[i].data[j - 1], x1 = _s.x, y1 = _s.y, xAxisCalloutData = _s.xAxisCalloutData, xAxisCalloutAccessibilityData = _s.xAxisCalloutAccessibilityData;\n var _t = this_1._points[i].data[j], x2 = _t.x, y2 = _t.y;\n var path = this_1._getPath(this_1._xAxisScale(x1), this_1._yAxisScale(y1), circleId, j, false, this_1._points[i].index);\n var strokeWidth = ((_c = this_1._points[i].lineOptions) === null || _c === void 0 ? void 0 : _c.strokeWidth) || this_1.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n var isLegendSelected = this_1.state.activeLegend === legendVal || this_1.state.activeLegend === '' || this_1.state.isSelectedLegend;\n var currentPointHidden = this_1._points[i].hideNonActiveDots && activePoint !== circleId;\n pointsForLine.push(React.createElement(\"path\", { id: circleId, key: circleId, d: path, \"data-is-focusable\": true, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseOut: this_1._handleMouseOut, onFocus: function () { return _this_1._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData); }, onBlur: this_1._handleMouseOut, onClick: this_1._onDataPointClick.bind(this_1, this_1._points[i].data[j - 1].onDataPointClick), opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, circleId, j, false), stroke: lineColor, strokeWidth: strokeWidth }));\n if (j + 1 === this_1._points[i].data.length) {\n var lastCircleId_1 = \"\" + circleId + j + \"L\";\n var lastPointHidden = this_1._points[i].hideNonActiveDots && activePoint !== lastCircleId_1;\n path = this_1._getPath(this_1._xAxisScale(x2), this_1._yAxisScale(y2), lastCircleId_1, j, true, this_1._points[i].index);\n var _u = this_1._points[i].data[j], lastCirlceXCallout_1 = _u.xAxisCalloutData, lastCirlceXCalloutAccessibilityData_1 = _u.xAxisCalloutAccessibilityData;\n pointsForLine.push(React.createElement(\"path\", { id: lastCircleId_1, key: lastCircleId_1, d: path, \"data-is-focusable\": true, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1), onMouseOut: this_1._handleMouseOut, onFocus: function () {\n return _this_1._handleFocus(lineId, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1);\n }, onBlur: this_1._handleMouseOut, onClick: this_1._onDataPointClick.bind(this_1, this_1._points[i].data[j].onDataPointClick), opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: strokeWidth }));\n /* eslint-enable react/jsx-no-bind */\n }\n if (isLegendSelected) {\n // don't draw line if it is in a gap\n if (!isInGap) {\n var lineBorderWidth = ((_d = this_1._points[i].lineOptions) === null || _d === void 0 ? void 0 : _d.lineBorderWidth)\n ? Number.parseFloat(this_1._points[i].lineOptions.lineBorderWidth.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(React.createElement(\"line\", { id: borderId, key: borderId, x1: this_1._xAxisScale(x1), y1: this_1._yAxisScale(y1), x2: this_1._xAxisScale(x2), y2: this_1._yAxisScale(y2), strokeLinecap: (_f = (_e = this_1._points[i].lineOptions) === null || _e === void 0 ? void 0 : _e.strokeLinecap) !== null && _f !== void 0 ? _f : 'round', strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth, stroke: ((_g = this_1._points[i].lineOptions) === null || _g === void 0 ? void 0 : _g.lineBorderColor) || theme.palette.white, opacity: 1 }));\n }\n linesForLine.push(React.createElement(\"line\", { id: lineId, key: lineId, x1: this_1._xAxisScale(x1), y1: this_1._yAxisScale(y1), x2: this_1._xAxisScale(x2), y2: this_1._yAxisScale(y2), strokeWidth: strokeWidth, ref: function (e) {\n _this_1._refCallback(e, lineId);\n }, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData), onMouseOut: this_1._handleMouseOut, stroke: lineColor, strokeLinecap: (_j = (_h = this_1._points[i].lineOptions) === null || _h === void 0 ? void 0 : _h.strokeLinecap) !== null && _j !== void 0 ? _j : 'round', strokeDasharray: (_k = this_1._points[i].lineOptions) === null || _k === void 0 ? void 0 : _k.strokeDasharray, strokeDashoffset: (_l = this_1._points[i].lineOptions) === null || _l === void 0 ? void 0 : _l.strokeDashoffset, opacity: 1, onClick: this_1._onLineClick.bind(this_1, this_1._points[i].onLineClick) }));\n }\n }\n else {\n if (!isInGap) {\n linesForLine.push(React.createElement(\"line\", { id: lineId, key: lineId, x1: this_1._xAxisScale(x1), y1: this_1._yAxisScale(y1), x2: this_1._xAxisScale(x2), y2: this_1._yAxisScale(y2), strokeWidth: strokeWidth, stroke: lineColor, strokeLinecap: (_o = (_m = this_1._points[i].lineOptions) === null || _m === void 0 ? void 0 : _m.strokeLinecap) !== null && _o !== void 0 ? _o : 'round', strokeDasharray: (_p = this_1._points[i].lineOptions) === null || _p === void 0 ? void 0 : _p.strokeDasharray, strokeDashoffset: (_q = this_1._points[i].lineOptions) === null || _q === void 0 ? void 0 : _q.strokeDashoffset, opacity: 0.1 }));\n }\n }\n };\n var this_1 = this;\n for (var j = 1; j < this._points[i].data.length; j++) {\n _loop_1(j);\n }\n lines.push.apply(lines, __spreadArray(__spreadArray(__spreadArray([], bordersForLine), linesForLine), pointsForLine));\n }\n var classNames = getClassNames(this.props.styles, {\n theme: this.props.theme,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();\n // eslint-disable-next-line no-empty\n }\n catch (e) { }\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n var xAxisElement = d3Select(xElement).call(this._xAxisScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId).remove();\n // eslint-disable-next-line no-empty\n }\n catch (e) { }\n var tooltipProps = {\n tooltipCls: classNames.tooltip,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return lines;\n };\n LineChartBase.prototype._refCallback = function (element, legendTitle) {\n this._refArray.push({ index: legendTitle, refElement: element });\n };\n return LineChartBase;\n}(React.Component));\nexport { LineChartBase };\n//# sourceMappingURL=LineChart.base.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { LineChartBase } from './LineChart.base';\nimport { getStyles } from './LineChart.styles';\n// Create a LineChart variant which uses these default styles and this styled subcomponent.\nexport var LineChart = styled(LineChartBase, getStyles);\n//# sourceMappingURL=LineChart.js.map","import { __assign } from \"tslib\";\nexport var getStyles = function (props) {\n return {\n tooltip: __assign(__assign({}, props.theme.fonts.medium), { display: 'flex', flexDirection: 'column', padding: '8px', position: 'absolute', textAlign: 'center', top: '0px', background: props.theme.semanticColors.bodyBackground, borderRadius: '2px', pointerEvents: 'none' }),\n };\n};\n//# sourceMappingURL=LineChart.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport { Legends } from '../Legends/index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\nvar getClassNames = classNamesFunction();\nvar MultiStackedBarChartBase = /** @class */ (function (_super) {\n __extends(MultiStackedBarChartBase, _super);\n function MultiStackedBarChartBase(props) {\n var _this = _super.call(this, props) || this;\n _this._adjustProps = function () {\n var _a = _this.props, theme = _a.theme, className = _a.className, styles = _a.styles, width = _a.width, barHeight = _a.barHeight;\n _this._classNames = getClassNames(styles, {\n legendColor: _this.state.color,\n theme: theme,\n width: width,\n className: className,\n barHeight: barHeight,\n });\n };\n _this._getLegendData = function (data, hideRatio, palette) {\n var defaultPalette = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n var actions = [];\n data.forEach(function (singleChartData, index) {\n var validChartData = singleChartData.chartData.filter(function (_) { return !_.placeHolder; });\n if (validChartData.length < 3) {\n var hideNumber = hideRatio[index] === undefined ? false : hideRatio[index];\n if (hideNumber) {\n validChartData.forEach(function (point) {\n var color = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n var checkSimilarLegends = actions.filter(function (leg) { return leg.title === point.legend && leg.color === color; });\n if (checkSimilarLegends.length > 0) {\n return;\n }\n var legend = {\n title: point.legend,\n color: color,\n action: function () {\n _this._onClick(point.legend);\n },\n hoverAction: function () {\n _this._onHover(point.legend);\n },\n onMouseOutAction: function (isLegendSelected) {\n _this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n }\n else {\n validChartData.forEach(function (point) {\n var color = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n var checkSimilarLegends = actions.filter(function (leg) { return leg.title === point.legend && leg.color === color; });\n if (checkSimilarLegends.length > 0) {\n return;\n }\n var legend = {\n title: point.legend,\n color: color,\n action: function () {\n _this._onClick(point.legend);\n },\n hoverAction: function () {\n _this._onHover(point.legend);\n },\n onMouseOutAction: function (isLegendSelected) {\n _this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n });\n return (React.createElement(Legends, __assign({ legends: actions, overflowProps: _this.props.legendsOverflowProps, focusZonePropsInHoverCard: _this.props.focusZonePropsForLegendsInHoverCard, overflowText: _this.props.legendsOverflowText }, _this.props.legendProps)));\n };\n _this._handleChartMouseLeave = function () {\n _this._calloutAnchorPoint = null;\n _this.setState({\n isCalloutVisible: false,\n });\n };\n _this._closeCallout = function () {\n _this.setState({\n isCalloutVisible: false,\n });\n };\n _this._getAccessibleDataObject = function (accessibleData, role, isDataFocusable) {\n if (role === void 0) { role = 'text'; }\n if (isDataFocusable === void 0) { isDataFocusable = true; }\n accessibleData = accessibleData !== null && accessibleData !== void 0 ? accessibleData : {};\n return {\n role: role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData.ariaLabel,\n 'aria-labelledby': accessibleData.ariaLabelledBy,\n 'aria-describedby': accessibleData.ariaDescribedBy,\n };\n };\n _this.state = {\n isCalloutVisible: false,\n refArray: [],\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n isLegendHovered: false,\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n };\n _this._onLeave = _this._onLeave.bind(_this);\n _this._onBarLeave = _this._onBarLeave.bind(_this);\n _this._calloutId = getId('callout');\n return _this;\n }\n MultiStackedBarChartBase.prototype.render = function () {\n var _this = this;\n var _a = this.props, data = _a.data, theme = _a.theme, culture = _a.culture;\n this._adjustProps();\n var palette = theme.palette;\n var legends = this._getLegendData(data, this.props.hideRatio, palette);\n var isCalloutVisible = this.state.isCalloutVisible;\n this._classNames = getClassNames(this.props.styles, {\n legendColor: this.state.color,\n theme: theme,\n });\n var legendName = this.state.xCalloutValue ? this.state.xCalloutValue : this.state.selectedLegendTitle;\n var calloutYVal = this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard;\n var bars = data.map(function (singleChartData, index) {\n var singleChartBars = _this._createBarsAndLegends(singleChartData, _this.props.barHeight, palette, _this.props.hideRatio[index], _this.props.hideDenominator[index], _this.props.href);\n return React.createElement(\"div\", { key: index }, singleChartBars);\n });\n return (React.createElement(\"div\", { className: this._classNames.root, onMouseLeave: this._handleChartMouseLeave },\n bars,\n !this.props.hideLegend && React.createElement(\"div\", { className: this._classNames.legendContainer }, legends),\n React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)),\n React.createElement(React.Fragment, null, this.props.onRenderCalloutPerDataPoint ? (this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: legendName, YValue: calloutYVal, color: this.state.color, culture: culture }))))));\n };\n MultiStackedBarChartBase.prototype._createBarsAndLegends = function (data, barHeight, palette, hideRatio, hideDenominator, href) {\n var _this = this;\n var culture = this.props.culture;\n var defaultPalette = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n var startingPoint = [];\n var total = data.chartData.reduce(function (acc, point) { return acc + (point.data ? point.data : 0); }, 0);\n var prevPosition = 0;\n var value = 0;\n var bars = data.chartData.map(function (point, index) {\n var color = point.color\n ? point.color\n : point.placeHolder\n ? palette.neutralTertiaryAlt\n : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n var pointData = point.data ? point.data : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100 ? (pointData / total) * 100 : 0;\n startingPoint.push(prevPosition);\n var styles = _this.props.styles;\n var shouldHighlight = true;\n if (_this.state.isLegendHovered || _this.state.isLegendSelected) {\n shouldHighlight = _this.state.selectedLegendTitle === point.legend;\n }\n _this._classNames = getClassNames(styles, {\n theme: _this.props.theme,\n shouldHighlight: shouldHighlight,\n href: href,\n });\n if (value < 1) {\n return React.createElement(React.Fragment, { key: index }, \" \");\n }\n return (React.createElement(\"g\", { key: index, className: point.placeHolder ? _this._classNames.placeHolderOnHover : _this._classNames.opacityChangeOnHover, ref: function (e) {\n _this._refCallback(e, point.legend);\n }, \"data-is-focusable\": !_this.props.hideTooltip, onFocus: _this._onBarFocus.bind(_this, pointData, color, point), onBlur: _this._onBarLeave, \"aria-labelledby\": _this._calloutId, role: \"img\", \"aria-label\": \"Multi stacked bar chart\", onMouseOver: point.placeHolder ? undefined : _this._onBarHover.bind(_this, pointData, color, point), onMouseMove: point.placeHolder ? undefined : _this._onBarHover.bind(_this, pointData, color, point), onMouseLeave: point.placeHolder ? undefined : _this._onBarLeave, onClick: href ? (point.placeHolder ? undefined : _this._redirectToUrl.bind(_this, href)) : point.onClick },\n React.createElement(\"rect\", { key: index, x: startingPoint[index] + '%', y: 0, width: value + '%', height: barHeight, fill: color })));\n });\n if (data.chartData.length === 0) {\n bars.push(React.createElement(\"g\", { key: 0, className: this._classNames.noData, onClick: this._redirectToUrl.bind(this, href) },\n React.createElement(\"rect\", { key: 0, x: '0%', y: 0, width: '100%', height: barHeight, fill: palette.neutralTertiaryAlt })));\n }\n if (total === 0) {\n bars.push(React.createElement(\"g\", { key: 'empty', className: this._classNames.noData, onClick: this._redirectToUrl.bind(this, href) },\n React.createElement(\"rect\", { key: 0, x: '0%', y: 0, width: '100%', height: barHeight, fill: palette.neutralTertiaryAlt })));\n }\n var hideNumber = hideRatio === undefined ? false : hideRatio;\n var showRatio = !hideNumber && data.chartData.length === 2;\n var showNumber = !hideNumber && data.chartData.length === 1;\n var getChartData = function () { return convertToLocaleString(data.chartData[0].data ? data.chartData[0].data : 0, culture); };\n return (React.createElement(\"div\", { className: this._classNames.singleChartRoot },\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"div\", { className: this._classNames.chartTitle },\n data.chartTitle && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartTitleAccessibilityData, culture)),\n React.createElement(\"strong\", null, data.chartTitle))),\n showRatio && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartDataAccessibilityData)),\n React.createElement(\"strong\", null, getChartData()),\n !hideDenominator && React.createElement(\"span\", null,\n \"/\",\n convertToLocaleString(total, culture)))),\n showNumber && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartDataAccessibilityData)),\n React.createElement(\"strong\", null, getChartData()))))),\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"div\", null,\n React.createElement(\"svg\", { className: this._classNames.chart, \"aria-label\": data === null || data === void 0 ? void 0 : data.chartTitle }, bars)))));\n };\n MultiStackedBarChartBase.prototype._onBarFocus = function (pointData, color, point) {\n var _this = this;\n if (this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)) {\n this.state.refArray.forEach(function (obj) {\n if (obj.legendText === point.legend) {\n _this.setState({\n refSelected: obj.refElement,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n });\n }\n };\n MultiStackedBarChartBase.prototype._refCallback = function (element, legendTitle) {\n this.state.refArray.push({ legendText: legendTitle, refElement: element });\n };\n MultiStackedBarChartBase.prototype._onHover = function (customMessage) {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n };\n MultiStackedBarChartBase.prototype._onClick = function (customMessage) {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n });\n }\n else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n }\n else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n };\n MultiStackedBarChartBase.prototype._onLeave = function (isLegendFocused) {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n };\n MultiStackedBarChartBase.prototype._onBarHover = function (pointData, color, point, mouseEvent) {\n mouseEvent.persist();\n if ((this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)) &&\n this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n };\n MultiStackedBarChartBase.prototype._onBarLeave = function () {\n /**/\n };\n MultiStackedBarChartBase.prototype._redirectToUrl = function (href) {\n href ? (window.location.href = href) : '';\n };\n MultiStackedBarChartBase.defaultProps = {\n barHeight: 16,\n hideRatio: [],\n hideDenominator: [],\n };\n return MultiStackedBarChartBase;\n}(React.Component));\nexport { MultiStackedBarChartBase };\n//# sourceMappingURL=MultiStackedBarChart.base.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { MultiStackedBarChartBase } from './MultiStackedBarChart.base';\nimport { getMultiStackedBarChartStyles } from './MultiStackedBarChart.styles';\n// Create a MultiStackedBarChart variant which uses these default styles and this styled subcomponent.\nexport var MultiStackedBarChart = styled(MultiStackedBarChartBase, getMultiStackedBarChartStyles);\n//# sourceMappingURL=MultiStackedBarChart.js.map","import { __assign } from \"tslib\";\nexport var getMultiStackedBarChartStyles = function (props) {\n var className = props.className, width = props.width, barHeight = props.barHeight, shouldHighlight = props.shouldHighlight, theme = props.theme, href = props.href;\n return {\n root: [\n theme.fonts.medium,\n 'ms-StackedBarChart',\n {\n display: 'flex',\n flexDirection: 'column',\n width: width ? width : '100%',\n },\n className,\n ],\n items: {\n marginBottom: '11px',\n },\n chart: {\n width: '100%',\n height: barHeight ? barHeight : 16,\n },\n chartTitle: __assign(__assign({}, theme.fonts.small), { display: 'flex', justifyContent: 'space-between', marginBottom: '5px' }),\n singleChartRoot: {\n width: width ? width : '100%',\n display: 'flex',\n flexDirection: 'column',\n marginBottom: '16px',\n },\n opacityChangeOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: href ? 'pointer' : 'default',\n stroke: theme.palette.white,\n strokeWidth: 2,\n selectors: {\n '&:focus': {\n stroke: theme.palette.black,\n strokeWidth: '2px',\n },\n },\n },\n placeHolderOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: 'default',\n stroke: theme.palette.white,\n strokeWidth: '2',\n selectors: {\n '&:focus': {\n stroke: theme.palette.black,\n strokeWidth: '2px',\n },\n },\n },\n legendContainer: {\n margin: '5px 0px 0px 4px',\n },\n noData: {\n cursor: href ? 'pointer' : 'default',\n },\n };\n};\n//# sourceMappingURL=MultiStackedBarChart.styles.js.map","import { __assign, __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport { Legends } from '../Legends/index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\nvar getClassNames = classNamesFunction();\nvar StackedBarChartBase = /** @class */ (function (_super) {\n __extends(StackedBarChartBase, _super);\n function StackedBarChartBase(props) {\n var _this = _super.call(this, props) || this;\n _this._handleChartMouseLeave = function () {\n _this._calloutAnchorPoint = null;\n _this.setState({\n isCalloutVisible: false,\n });\n };\n _this._closeCallout = function () {\n _this.setState({\n isCalloutVisible: false,\n });\n };\n _this._getAccessibleDataObject = function (accessibleData, role, isDataFocusable) {\n if (role === void 0) { role = 'text'; }\n if (isDataFocusable === void 0) { isDataFocusable = true; }\n accessibleData = accessibleData !== null && accessibleData !== void 0 ? accessibleData : {};\n return {\n role: role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData.ariaLabel,\n 'aria-labelledby': accessibleData.ariaLabelledBy,\n 'aria-describedby': accessibleData.ariaDescribedBy,\n };\n };\n _this.state = {\n isCalloutVisible: false,\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n isLegendHovered: false,\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n };\n _this._refArray = [];\n _this._onLeave = _this._onLeave.bind(_this);\n _this._refCallback = _this._refCallback.bind(_this);\n _this._onBarLeave = _this._onBarLeave.bind(_this);\n _this._calloutId = getId('callout');\n return _this;\n }\n StackedBarChartBase.prototype.render = function () {\n this._adjustProps();\n var _a = this.props, data = _a.data, benchmarkData = _a.benchmarkData, targetData = _a.targetData, hideNumberDisplay = _a.hideNumberDisplay, ignoreFixStyle = _a.ignoreFixStyle, culture = _a.culture;\n var palette = this.props.theme.palette;\n var barHeight = ignoreFixStyle || data.chartData.length > 2 ? this.props.barHeight : 8;\n if (benchmarkData) {\n // benchmark color is used to render color for benchmark triangle and benchmark legend\n benchmarkData.color = benchmarkData.color || palette.neutralTertiary;\n }\n if (targetData) {\n // target color is used to render color for target triangle and target legend\n targetData.color = targetData.color || palette.neutralSecondary;\n }\n var bars = this._createBarsAndLegends(data, barHeight, palette, benchmarkData, targetData);\n var showRatio = hideNumberDisplay === false && !ignoreFixStyle && data.chartData.length === 2;\n var showNumber = hideNumberDisplay === false && !ignoreFixStyle && data.chartData.length === 1;\n var total = data.chartData.reduce(function (acc, value) { return acc + (value.data ? value.data : 0); }, 0);\n var benchmarkRatio = 0;\n if (benchmarkData && total) {\n benchmarkRatio = (benchmarkData.data / total) * 100;\n }\n var targetRatio = 0;\n if (targetData && total) {\n targetRatio = (targetData.data / total) * 100;\n }\n var showLegend = this.props.hideLegend === false && (ignoreFixStyle || data.chartData.length > 2);\n this._classNames = getClassNames(this.props.styles, {\n legendColor: this.state.color,\n theme: this.props.theme,\n benchmarkColor: benchmarkData ? benchmarkData.color : '',\n benchmarkRatio: benchmarkRatio,\n targetColor: targetData ? targetData.color : '',\n targetRatio: targetRatio,\n });\n var getChartData = function () { return convertToLocaleString(data.chartData[0].data ? data.chartData[0].data : 0, culture); };\n return (React.createElement(\"div\", { className: this._classNames.root, onMouseLeave: this._handleChartMouseLeave },\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"div\", { className: this._classNames.chartTitle },\n data.chartTitle && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartTitleAccessibilityData)),\n React.createElement(\"strong\", null, data.chartTitle))),\n showRatio && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartDataAccessibilityData)),\n React.createElement(\"span\", { className: this._classNames.ratioNumerator }, getChartData()),\n !this.props.hideDenominator && (React.createElement(\"span\", null,\n \"/\",\n React.createElement(\"span\", { className: this._classNames.ratioDenominator }, convertToLocaleString(total, culture)))))),\n showNumber && (React.createElement(\"div\", __assign({}, this._getAccessibleDataObject(data.chartDataAccessibilityData)),\n React.createElement(\"strong\", null, getChartData())))),\n (benchmarkData || targetData) && (React.createElement(\"div\", { className: this._classNames.benchmarkContainer },\n benchmarkData && React.createElement(\"div\", { className: this._classNames.benchmark, role: \"text\" }),\n targetData && React.createElement(\"div\", { className: this._classNames.target, role: \"text\" })))),\n React.createElement(FocusZone, { direction: FocusZoneDirection.horizontal },\n React.createElement(\"div\", null,\n React.createElement(\"svg\", { className: this._classNames.chart, \"aria-label\": data === null || data === void 0 ? void 0 : data.chartTitle },\n React.createElement(\"g\", null, bars[0]),\n React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)),\n React.createElement(React.Fragment, null, this.props.onRenderCalloutPerDataPoint ? (this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: this.state.xCalloutValue ? this.state.xCalloutValue : this.state.selectedLegendTitle, YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard, color: this.state.color, culture: culture }))))))),\n showLegend && React.createElement(\"div\", { className: this._classNames.legendContainer }, bars[1])));\n };\n StackedBarChartBase.prototype._adjustProps = function () {\n this._classNames = getClassNames(this.props.styles, {\n legendColor: this.state.color,\n theme: this.props.theme,\n width: this.props.width,\n barHeight: this.props.barHeight,\n className: this.props.className,\n });\n };\n StackedBarChartBase.prototype._createBarsAndLegends = function (data, barHeight, palette, benchmarkData, targetData) {\n var _this = this;\n var defaultPalette = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n var legendDataItems = [];\n // calculating starting point of each bar and it's range\n var startingPoint = [];\n var total = data.chartData.reduce(function (acc, point) { return acc + (point.data ? point.data : 0); }, 0);\n var prevPosition = 0;\n var value = 0;\n var bars = data.chartData.map(function (point, index) {\n var color = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n var pointData = point.data ? point.data : 0;\n // mapping data to the format Legends component needs\n var legend = {\n title: point.legend,\n color: color,\n action: total > 0\n ? function () {\n _this._onClick(point.legend);\n }\n : undefined,\n hoverAction: total > 0\n ? function () {\n _this._onHover(point.legend);\n }\n : undefined,\n onMouseOutAction: total > 0\n ? function (isLegendFocused) {\n _this._onLeave(isLegendFocused);\n }\n : undefined,\n };\n if (!point.placeHolder) {\n legendDataItems.push(legend);\n }\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 1 && value !== 0) {\n value = 1;\n }\n else if (value > 99 && value !== 100) {\n value = 99;\n }\n startingPoint.push(prevPosition);\n var styles = _this.props.styles;\n var shouldHighlight = true;\n if (_this.state.isLegendHovered || _this.state.isLegendSelected) {\n shouldHighlight = _this.state.selectedLegendTitle === point.legend;\n }\n _this._classNames = getClassNames(styles, {\n theme: _this.props.theme,\n shouldHighlight: shouldHighlight,\n href: _this.props.href,\n });\n if (value < 1) {\n return React.createElement(React.Fragment, { key: index }, \" \");\n }\n return (React.createElement(\"g\", { key: index, className: _this._classNames.opacityChangeOnHover, ref: function (e) {\n _this._refCallback(e, legend.title);\n }, \"data-is-focusable\": !_this.props.hideTooltip, onFocus: _this._onBarFocus.bind(_this, pointData, color, point), onBlur: _this._onBarLeave, \"aria-label\": \"Stacked bar chart\", role: \"img\", \"aria-labelledby\": _this._calloutId, onMouseOver: _this._onBarHover.bind(_this, pointData, color, point), onMouseMove: _this._onBarHover.bind(_this, pointData, color, point), onMouseLeave: _this._onBarLeave, pointerEvents: \"all\", onClick: _this.props.href ? _this._redirectToUrl.bind(_this, _this.props.href) : point.onClick },\n React.createElement(\"rect\", { key: index, x: startingPoint[index] + '%', y: 0, width: value + '%', height: barHeight, fill: color })));\n });\n // add benchmark legends\n this._addLegend(legendDataItems, benchmarkData);\n this._addLegend(legendDataItems, targetData);\n var legends = (React.createElement(Legends, __assign({ legends: legendDataItems, enabledWrapLines: this.props.enabledLegendsWrapLines, overflowProps: this.props.legendsOverflowProps, focusZonePropsInHoverCard: this.props.focusZonePropsForLegendsInHoverCard, overflowText: this.props.legendsOverflowText }, this.props.legendProps)));\n return [\n total === 0\n ? [\n this._generateEmptyBar(barHeight, this.props.barBackgroundColor ? this.props.barBackgroundColor : palette.neutralTertiary),\n ]\n : bars,\n legends,\n ];\n };\n StackedBarChartBase.prototype._onBarFocus = function (pointData, color, point) {\n var _this = this;\n if (this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)) {\n this._refArray.forEach(function (obj) {\n if (obj.index === point.legend) {\n _this.setState({\n refSelected: obj.refElement,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n });\n }\n };\n StackedBarChartBase.prototype._addLegend = function (legendDataItems, data) {\n if (data) {\n var legend = {\n title: data.legend,\n color: data.color,\n shape: 'triangle',\n };\n legendDataItems.push(legend);\n }\n };\n StackedBarChartBase.prototype._generateEmptyBar = function (barHeight, color) {\n return (React.createElement(\"g\", { key: 0, className: this._classNames.opacityChangeOnHover },\n React.createElement(\"rect\", { key: 0, x: '0%', y: 0, width: '100%', height: barHeight, fill: color })));\n };\n StackedBarChartBase.prototype._refCallback = function (element, legendTitle) {\n this._refArray.push({ index: legendTitle, refElement: element });\n };\n StackedBarChartBase.prototype._onClick = function (customMessage) {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n isLegendHovered: true,\n });\n }\n else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n }\n else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n };\n StackedBarChartBase.prototype._onHover = function (customMessage) {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n };\n StackedBarChartBase.prototype._onLeave = function (isLegendFocused) {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n };\n StackedBarChartBase.prototype._onBarHover = function (pointData, color, point, mouseEvent) {\n mouseEvent.persist();\n if ((this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)) &&\n this._calloutAnchorPoint !== point) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n };\n StackedBarChartBase.prototype._onBarLeave = function () {\n /**/\n };\n StackedBarChartBase.prototype._redirectToUrl = function (href) {\n href ? (window.location.href = href) : '';\n };\n StackedBarChartBase.defaultProps = {\n barHeight: 16,\n hideNumberDisplay: false,\n hideLegend: false,\n ignoreFixStyle: false,\n };\n return StackedBarChartBase;\n}(React.Component));\nexport { StackedBarChartBase };\n//# sourceMappingURL=StackedBarChart.base.js.map","import { styled } from '@fluentui/react/lib/Utilities';\nimport { StackedBarChartBase } from './StackedBarChart.base';\nimport { getStyles } from './StackedBarChart.styles';\n// Create a StackedBarChart variant which uses these default styles and this styled subcomponent.\nexport var StackedBarChart = styled(StackedBarChartBase, getStyles);\n//# sourceMappingURL=StackedBarChart.js.map","import { __assign } from \"tslib\";\nimport { FontSizes, FontWeights, HighContrastSelector } from '@fluentui/react/lib/Styling';\nexport var getStyles = function (props) {\n var _a, _b;\n var className = props.className, width = props.width, barHeight = props.barHeight, shouldHighlight = props.shouldHighlight, theme = props.theme, href = props.href, benchmarkColor = props.benchmarkColor, benchmarkRatio = props.benchmarkRatio, targetColor = props.targetColor, targetRatio = props.targetRatio;\n return {\n root: [\n theme.fonts.medium,\n 'ms-StackedBarChart',\n {\n width: width ? width : '100%',\n display: 'flex',\n flexDirection: 'column',\n },\n className,\n ],\n chart: {\n width: '100%',\n height: barHeight ? barHeight : 16,\n marginBottom: '12px',\n },\n chartTitle: __assign(__assign({}, theme.fonts.small), { display: 'flex', justifyContent: 'space-between', marginBottom: '5px' }),\n legendContainer: {\n margin: '4px 0px 0px 4px',\n },\n opacityChangeOnHover: {\n opacity: shouldHighlight ? '' : '0.1',\n cursor: href ? 'pointer' : 'default',\n stroke: theme.palette.white,\n strokeWidth: 2,\n selectors: {\n '&:focus': {\n stroke: theme.palette.black,\n strokeWidth: '2px',\n },\n },\n },\n ratioNumerator: {\n fontSize: FontSizes.small,\n fontWeight: FontWeights.semibold,\n color: theme.palette.black,\n },\n ratioDenominator: {\n fontSize: FontSizes.small,\n color: theme.palette.black,\n opacity: '0.6',\n },\n benchmarkContainer: {\n position: 'relative',\n height: '12px',\n },\n benchmark: {\n position: 'absolute',\n left: 'calc(' + benchmarkRatio + '% - 4.5px)',\n width: '0',\n height: '0',\n borderLeft: '4.5px solid transparent',\n borderRight: '4.5px solid transparent',\n borderTop: '7.8px solid',\n borderTopColor: benchmarkColor,\n marginBottom: '4px',\n selectors: (_a = {},\n _a[HighContrastSelector] = {\n border: '0px',\n height: '7.8px',\n width: '7.8px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: \"linear-gradient(to right, \" + benchmarkColor + \", \" + benchmarkColor + \")\",\n },\n _a),\n },\n target: {\n position: 'absolute',\n left: 'calc(' + targetRatio + '% - 4.5px)',\n width: '0',\n height: '0',\n borderLeft: '4.5px solid transparent',\n borderRight: '4.5px solid transparent',\n borderTop: '7.8px solid',\n borderTopColor: targetColor,\n marginBottom: '4px',\n selectors: (_b = {},\n _b[HighContrastSelector] = {\n border: '0px',\n height: '7.8px',\n width: '7.8px',\n clipPath: 'polygon(50% 100%, 0 0, 100% 0)',\n backgroundImage: \"linear-gradient(to right, \" + targetColor + \", \" + targetColor + \")\",\n },\n _b),\n },\n };\n};\n//# sourceMappingURL=StackedBarChart.styles.js.map","import { __extends } from \"tslib\";\nimport * as React from 'react';\nimport { classNamesFunction } from '@fluentui/react';\nimport { convertToLocaleString } from '../index';\nvar getClassNames = classNamesFunction();\nvar ChartHoverCardBase = /** @class */ (function (_super) {\n __extends(ChartHoverCardBase, _super);\n function ChartHoverCardBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartHoverCardBase.prototype.render = function () {\n var _a = this.props, color = _a.color, Legend = _a.Legend, XValue = _a.XValue, YValue = _a.YValue, styles = _a.styles, theme = _a.theme, ratio = _a.ratio, descriptionMessage = _a.descriptionMessage, culture = _a.culture;\n this._classNames = getClassNames(styles, {\n theme: theme,\n color: color,\n XValue: XValue,\n isRatioPresent: !!ratio,\n });\n return (React.createElement(\"div\", { className: this._classNames.calloutContentRoot },\n React.createElement(\"div\", { className: this._classNames.calloutDateTimeContainer },\n React.createElement(\"div\", { className: this._classNames.calloutContentX },\n XValue,\n \" \")),\n React.createElement(\"div\", { className: this._classNames.calloutInfoContainer },\n React.createElement(\"div\", { className: this._classNames.calloutBlockContainer },\n React.createElement(\"div\", { className: this._classNames.calloutlegendText }, convertToLocaleString(Legend, culture)),\n React.createElement(\"div\", { className: this._classNames.calloutContentY }, convertToLocaleString(YValue, culture))),\n !!ratio && (React.createElement(\"div\", { className: this._classNames.ratio },\n React.createElement(React.Fragment, null,\n React.createElement(\"span\", { className: this._classNames.numerator }, convertToLocaleString(ratio[0], culture)),\n \"/\",\n React.createElement(\"span\", { className: this._classNames.denominator }, convertToLocaleString(ratio[1], culture)))))),\n !!descriptionMessage && React.createElement(\"div\", { className: this._classNames.descriptionMessage }, descriptionMessage)));\n };\n return ChartHoverCardBase;\n}(React.Component));\nexport { ChartHoverCardBase };\n//# sourceMappingURL=ChartHoverCard.base.js.map","import { styled } from '../../Utilities';\nimport { ChartHoverCardBase } from './ChartHoverCard.base';\nimport { getChartHoverCardStyles } from './ChartHoverCard.styles';\n// Create a ChartHoverCard variant which uses these default styles and this styled subcomponent.\nexport var ChartHoverCard = styled(ChartHoverCardBase, getChartHoverCardStyles);\n//# sourceMappingURL=ChartHoverCard.js.map","import { FontWeights } from '@fluentui/react/lib/Styling';\nexport var getChartHoverCardStyles = function (props) {\n var color = props.color, XValue = props.XValue, theme = props.theme, _a = props.isRatioPresent, isRatioPresent = _a === void 0 ? false : _a;\n return {\n calloutContentRoot: [\n {\n display: 'grid',\n overflow: 'hidden',\n padding: '11px 16px 10px 16px',\n backgroundColor: theme.semanticColors.bodyBackground,\n backgroundBlendMode: 'normal, luminosity',\n },\n ],\n calloutDateTimeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n calloutContentX: [\n theme.fonts.small,\n {\n lineHeight: '16px',\n opacity: '0.8',\n color: theme.semanticColors.bodySubtext,\n },\n ],\n calloutBlockContainer: [\n theme.fonts.xxLarge,\n {\n marginTop: XValue ? '13px' : 'unset',\n paddingLeft: '8px',\n lineHeight: '22px',\n color: theme.semanticColors.bodyText,\n borderLeft: \"4px solid \" + color,\n },\n ],\n calloutlegendText: [\n theme.fonts.small,\n {\n lineHeight: '16px',\n color: theme.semanticColors.bodyText,\n },\n ],\n calloutContentY: [\n theme.fonts.xxLarge,\n {\n color: color ? color : theme.semanticColors.bodyText,\n fontWeight: 'bold',\n lineHeight: '36px',\n },\n ],\n calloutInfoContainer: [\n isRatioPresent && {\n display: 'flex',\n alignItems: 'flex-end',\n },\n ],\n ratio: [\n theme.fonts.small,\n {\n marginLeft: '6px',\n color: theme.semanticColors.bodyText,\n },\n ],\n numerator: {\n fontWeight: FontWeights.bold,\n },\n denominator: {\n fontWeight: FontWeights.semibold,\n },\n descriptionMessage: [\n theme.fonts.small,\n {\n color: theme.semanticColors.bodyText,\n marginTop: '10px',\n paddingTop: '10px',\n borderTop: \"1px solid \" + theme.semanticColors.menuDivider,\n },\n ],\n };\n};\n//# sourceMappingURL=ChartHoverCard.styles.js.map","export var slice = Array.prototype.slice;\n","export default function(x) {\n return x;\n}\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"#000\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"#000\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"#000\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter\n : \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter);\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band()\n .domain(domain())\n .range(range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band().paddingInner(1));\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp());\n}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","var _a;\nimport { __assign, __spreadArray } from \"tslib\";\nimport { axisRight as d3AxisRight, axisBottom as d3AxisBottom, axisLeft as d3AxisLeft } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear, scaleTime as d3ScaleTime, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { select as d3Select, event as d3Event, selectAll as d3SelectAll } from 'd3-selection';\nimport { format as d3Format } from 'd3-format';\nimport * as d3TimeFormat from 'd3-time-format';\nexport var ChartTypes;\n(function (ChartTypes) {\n ChartTypes[ChartTypes[\"AreaChart\"] = 0] = \"AreaChart\";\n ChartTypes[ChartTypes[\"LineChart\"] = 1] = \"LineChart\";\n ChartTypes[ChartTypes[\"VerticalBarChart\"] = 2] = \"VerticalBarChart\";\n ChartTypes[ChartTypes[\"VerticalStackedBarChart\"] = 3] = \"VerticalStackedBarChart\";\n ChartTypes[ChartTypes[\"GroupedVerticalBarChart\"] = 4] = \"GroupedVerticalBarChart\";\n ChartTypes[ChartTypes[\"HeatMapChart\"] = 5] = \"HeatMapChart\";\n})(ChartTypes || (ChartTypes = {}));\nexport var XAxisTypes;\n(function (XAxisTypes) {\n XAxisTypes[XAxisTypes[\"NumericAxis\"] = 0] = \"NumericAxis\";\n XAxisTypes[XAxisTypes[\"DateAxis\"] = 1] = \"DateAxis\";\n XAxisTypes[XAxisTypes[\"StringAxis\"] = 2] = \"StringAxis\";\n})(XAxisTypes || (XAxisTypes = {}));\nexport var YAxisType;\n(function (YAxisType) {\n YAxisType[YAxisType[\"NumericAxis\"] = 0] = \"NumericAxis\";\n YAxisType[YAxisType[\"DateAxis\"] = 1] = \"DateAxis\";\n YAxisType[YAxisType[\"StringAxis\"] = 2] = \"StringAxis\";\n})(YAxisType || (YAxisType = {}));\n/**\n * Create Numeric X axis\n * @export\n * @param {IXAxisParams} xAxisParams\n */\nexport function createNumericXAxis(xAxisParams, culture) {\n var domainNRangeValues = xAxisParams.domainNRangeValues, _a = xAxisParams.showRoundOffXTickValues, showRoundOffXTickValues = _a === void 0 ? false : _a, _b = xAxisParams.xAxistickSize, xAxistickSize = _b === void 0 ? 6 : _b, _c = xAxisParams.tickPadding, tickPadding = _c === void 0 ? 10 : _c, _d = xAxisParams.xAxisCount, xAxisCount = _d === void 0 ? 6 : _d, xAxisElement = xAxisParams.xAxisElement;\n var xAxisScale = d3ScaleLinear()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n showRoundOffXTickValues && xAxisScale.nice();\n var xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickSizeOuter(0)\n .tickFormat(function (domainValue, index) {\n var xAxisValue = typeof domainValue === 'number' ? domainValue : domainValue.valueOf();\n return convertToLocaleString(xAxisValue, culture);\n });\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n/**\n * Creating Date x axis of the Chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n */\nexport function createDateXAxis(xAxisParams, tickParams) {\n var domainNRangeValues = xAxisParams.domainNRangeValues, xAxisElement = xAxisParams.xAxisElement, _a = xAxisParams.tickPadding, tickPadding = _a === void 0 ? 6 : _a, _b = xAxisParams.xAxistickSize, xAxistickSize = _b === void 0 ? 6 : _b, _c = xAxisParams.xAxisCount, xAxisCount = _c === void 0 ? 6 : _c;\n var xAxisScale = d3ScaleTime()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n var xAxis = d3AxisBottom(xAxisScale).tickSize(xAxistickSize).tickPadding(tickPadding).ticks(xAxisCount);\n tickParams.tickValues ? xAxis.tickValues(tickParams.tickValues) : '';\n tickParams.tickFormat ? xAxis.tickFormat(d3TimeFormat.timeFormat(tickParams.tickFormat)) : '';\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n/**\n * Create String X axis\n * Currently using for only Vetical stacked bar chart and grouped vertical bar chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n * @param {string[]} dataset\n * @returns\n */\nexport function createStringXAxis(xAxisParams, tickParams, dataset, culture) {\n var domainNRangeValues = xAxisParams.domainNRangeValues, _a = xAxisParams.xAxisCount, xAxisCount = _a === void 0 ? 6 : _a, _b = xAxisParams.xAxistickSize, xAxistickSize = _b === void 0 ? 6 : _b, _c = xAxisParams.tickPadding, tickPadding = _c === void 0 ? 10 : _c, _d = xAxisParams.xAxisPadding, xAxisPadding = _d === void 0 ? 0.1 : _d;\n var xAxisScale = d3ScaleBand()\n .domain(dataset)\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue])\n .padding(xAxisPadding);\n var xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickFormat(function (x, index) {\n return convertToLocaleString(dataset[index], culture);\n });\n if (xAxisParams.xAxisElement) {\n d3Select(xAxisParams.xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n/**\n * This method used for creating data points for the y axis.\n * @export\n * @param {number} maxVal\n * @param {number} minVal\n * @param {number} splitInto\n * @returns {number[]}\n */\nexport function prepareDatapoints(maxVal, minVal, splitInto) {\n var val = Math.ceil((maxVal - minVal) / splitInto);\n var dataPointsArray = [minVal, minVal + val];\n while (dataPointsArray[dataPointsArray.length - 1] < maxVal) {\n dataPointsArray.push(dataPointsArray[dataPointsArray.length - 1] + val);\n }\n return dataPointsArray;\n}\n/**\n * Creating Numeric Y axis of the chart\n * @export\n * @param {IYAxisParams} yAxisParams\n * @param {boolean} isRtl\n */\nexport function createYAxis(yAxisParams, isRtl, axisData) {\n var _a = yAxisParams.yMinMaxValues, yMinMaxValues = _a === void 0 ? { startValue: 0, endValue: 0 } : _a, _b = yAxisParams.yAxisElement, yAxisElement = _b === void 0 ? null : _b, _c = yAxisParams.yMaxValue, yMaxValue = _c === void 0 ? 0 : _c, _d = yAxisParams.yMinValue, yMinValue = _d === void 0 ? 0 : _d, containerHeight = yAxisParams.containerHeight, containerWidth = yAxisParams.containerWidth, margins = yAxisParams.margins, _e = yAxisParams.tickPadding, tickPadding = _e === void 0 ? 12 : _e, _f = yAxisParams.maxOfYVal, maxOfYVal = _f === void 0 ? 0 : _f, yAxisTickFormat = yAxisParams.yAxisTickFormat, _g = yAxisParams.yAxisTickCount, yAxisTickCount = _g === void 0 ? 4 : _g, eventAnnotationProps = yAxisParams.eventAnnotationProps, eventLabelHeight = yAxisParams.eventLabelHeight;\n // maxOfYVal coming from only area chart and Grouped vertical bar chart(Calculation done at base file)\n var tempVal = maxOfYVal || yMinMaxValues.endValue;\n var finalYmax = tempVal > yMaxValue ? tempVal : yMaxValue;\n var finalYmin = yMinMaxValues.startValue < yMinValue ? 0 : yMinValue;\n var domainValues = prepareDatapoints(finalYmax, finalYmin, yAxisTickCount);\n var yAxisScale = d3ScaleLinear()\n .domain([finalYmin, domainValues[domainValues.length - 1]])\n .range([containerHeight - margins.bottom, margins.top + (eventAnnotationProps ? eventLabelHeight : 0)]);\n var axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n var yAxis = axis\n .tickPadding(tickPadding)\n .tickValues(domainValues)\n .tickSizeInner(-(containerWidth - margins.left - margins.right));\n yAxisTickFormat ? yAxis.tickFormat(yAxisTickFormat) : yAxis.tickFormat(d3Format('.2~s'));\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text').attr('aria-hidden', 'true') : '';\n axisData.yAxisDomainValues = domainValues;\n return yAxisScale;\n}\n/**\n * Creating String Y axis of the chart\n * @param yAxisParams\n * @param dataPoints\n * @param isRtl\n */\nexport var createStringYAxis = function (yAxisParams, dataPoints, isRtl) {\n var containerHeight = yAxisParams.containerHeight, _a = yAxisParams.tickPadding, tickPadding = _a === void 0 ? 12 : _a, margins = yAxisParams.margins, yAxisTickFormat = yAxisParams.yAxisTickFormat, yAxisElement = yAxisParams.yAxisElement, _b = yAxisParams.yAxisPadding, yAxisPadding = _b === void 0 ? 0 : _b;\n var yAxisScale = d3ScaleBand()\n .domain(dataPoints)\n .range([containerHeight - margins.bottom, margins.top])\n .padding(yAxisPadding);\n var axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n var yAxis = axis.tickPadding(tickPadding).tickValues(dataPoints).tickSize(0);\n if (yAxisTickFormat) {\n yAxis.tickFormat(yAxisTickFormat);\n }\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text') : '';\n return yAxisScale;\n};\nexport function calloutData(values) {\n var combinedResult = [];\n values.forEach(function (element) {\n var elements = element.data\n .filter(function (ele) { return !ele.hideCallout; })\n .map(function (ele) {\n return __assign(__assign({ legend: element.legend }, ele), { color: element.color, index: element.index });\n });\n combinedResult = combinedResult.concat(elements);\n });\n var result = [];\n combinedResult.forEach(function (e1, index) {\n e1.x = e1.x instanceof Date ? e1.x.getTime() : e1.x;\n var filteredValues = [\n {\n legend: e1.legend,\n y: e1.y,\n color: e1.color,\n yAxisCalloutData: e1.yAxisCalloutData,\n callOutAccessibilityData: e1.callOutAccessibilityData,\n index: e1.index,\n },\n ];\n combinedResult.slice(index + 1).forEach(function (e2) {\n e2.x = e2.x instanceof Date ? e2.x.getTime() : e2.x;\n if (e1.x === e2.x) {\n filteredValues.push({\n legend: e2.legend,\n y: e2.y,\n color: e2.color,\n yAxisCalloutData: e2.yAxisCalloutData,\n callOutAccessibilityData: e2.callOutAccessibilityData,\n index: e2.index,\n });\n }\n });\n result.push({ x: e1.x, values: filteredValues });\n });\n return getUnique(result, 'x');\n}\nexport function getUnique(arr, comp) {\n var unique = arr\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map(function (e) { return e[comp]; })\n // store the keys of the unique objects\n .map(function (e, i, final) { return final.indexOf(e) === i && i; })\n // eliminate the dead keys & store unique objects\n .filter(function (e) { return arr[e]; })\n .map(function (e) { return arr[e]; });\n return unique;\n}\n/**\n * This function takes two paramerter\n * 1. an array of strings\n * 2. a string value\n * if the value is not present in the given array then it will return the new\n * array by appending the value to the present arrray.\n *\n * if the value is already present in the given array then it will return the new\n * array by deleteing the value from the the array\n * @param array\n * @param value\n */\nexport function silceOrAppendToArray(array, value) {\n var pos = array.indexOf(value);\n if (pos === -1) {\n return __spreadArray(__spreadArray([], array), [value]);\n }\n else {\n return array.slice(0, pos).concat(array.slice(pos + 1));\n }\n}\n/**\n * This method used for wrapping of x axis labels (tick values).\n * It breaks down given text value by space separated and calculates the total height needed to display all the words.\n * That value = removal value. This value needs to be remove from total svg height, svg will shrink and\n * total text will be displayed.\n * @export\n * @param {IWrapLabelProps} wrapLabelProps\n * @returns\n */\nexport function createWrapOfXLabels(wrapLabelProps) {\n var node = wrapLabelProps.node, xAxis = wrapLabelProps.xAxis, noOfCharsToTruncate = wrapLabelProps.noOfCharsToTruncate, showXAxisLablesTooltip = wrapLabelProps.showXAxisLablesTooltip;\n if (node === null) {\n return;\n }\n var axisNode = d3Select(node).call(xAxis);\n var removeVal = 0;\n var width = 10;\n var arr = [];\n axisNode.selectAll('.tick text').each(function () {\n var text = d3Select(this);\n var totalWord = text.text();\n var truncatedWord = text.text().slice(0, noOfCharsToTruncate) + \"...\";\n var totalWordLength = text.text().length;\n var words = text.text().split(/\\s+/).reverse();\n arr.push(words.length);\n var word = '';\n var line = [];\n var lineNumber = 0;\n var lineHeight = 1.1; // ems\n var y = text.attr('y');\n var dy = parseFloat(text.attr('dy'));\n var tspan = text\n .text(null)\n .append('tspan')\n .attr('x', 0)\n .attr('y', y)\n .attr('id', 'BaseSpan')\n .attr('dy', dy + 'em')\n .attr('data-', totalWord);\n if (showXAxisLablesTooltip && totalWordLength > noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'showDots')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(truncatedWord);\n }\n else if (showXAxisLablesTooltip && totalWordLength <= noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'LessLength')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(totalWord);\n }\n else {\n while ((word = words.pop())) {\n line.push(word);\n tspan.text(line.join(' '));\n if (tspan.node().getComputedTextLength() > width && line.length > 1) {\n line.pop();\n tspan.text(line.join(' '));\n line = [word];\n tspan = text\n .append('tspan')\n .attr('id', 'WordBreakId')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(word);\n }\n }\n var maxDigit = Math.max.apply(Math, arr);\n var maxHeight_1 = 12; // intial value to render corretly first time\n axisNode.selectAll('text').each(function () {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var outerHTMLElement = document.getElementById('WordBreakId');\n var BoxCordinates = outerHTMLElement && outerHTMLElement.getBoundingClientRect();\n var boxHeight = BoxCordinates && BoxCordinates.height;\n if (boxHeight > maxHeight_1) {\n maxHeight_1 = boxHeight;\n }\n });\n // If we take directly maxDigit * maxheight, then it will show more height between x axis tick values and bottom.\n // To avoid this, reducing maxDigit value by removing some digit based on legth of word.\n var removeDigit = 4;\n if (maxDigit <= 2) {\n removeDigit = 1;\n }\n else if (maxDigit > 2 && maxDigit <= 6) {\n removeDigit = 2;\n }\n else if (maxDigit > 6 && maxDigit <= 9) {\n removeDigit = 3;\n }\n removeVal = (maxDigit - removeDigit) * maxHeight_1;\n }\n });\n return removeVal > 0 ? removeVal : 0;\n}\n/**\n * This method displays a tooltip to the x axis lables(tick values)\n * when prop 'showXAxisLablesTooltip' enables to the respected chart.\n * On hover of the truncated word(at x axis labels tick), a tooltip will be appeared.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function tooltipOfXAxislabels(xAxistooltipProps) {\n var tooltipCls = xAxistooltipProps.tooltipCls, xAxis = xAxistooltipProps.xAxis, id = xAxistooltipProps.id;\n if (xAxis === null) {\n return null;\n }\n var div = d3Select('body').append('div').attr('id', id).attr('class', tooltipCls).style('opacity', 0);\n var aa = xAxis.selectAll('#BaseSpan')._groups[0];\n var baseSpanLength = aa && Object.keys(aa).length;\n var originalDataArray = [];\n for (var i = 0; i < baseSpanLength; i++) {\n var originalData = aa[i].dataset && Object.values(aa[i].dataset)[0];\n originalDataArray.push(originalData);\n }\n var tickObject = xAxis.selectAll('.tick')._groups[0];\n var tickObjectLength = tickObject && Object.keys(tickObject).length;\n var _loop_1 = function (i) {\n var d1 = tickObject[i];\n d3Select(d1)\n .on('mouseover', function (d) {\n div.style('opacity', 0.9);\n div\n .html(originalDataArray[i])\n .style('left', d3Event.pageX + 'px')\n .style('top', d3Event.pageY - 28 + 'px');\n })\n .on('mouseout', function (d) {\n div.style('opacity', 0);\n });\n };\n for (var i = 0; i < tickObjectLength; i++) {\n _loop_1(i);\n }\n}\n/**\n * Find the axis type of line chart and area chart from given data\n * @param points\n */\nexport function getXAxisType(points) {\n var isXAxisDateType = false;\n if (points && points.length > 0) {\n points.forEach(function (chartData) {\n if (chartData.data.length > 0) {\n isXAxisDateType = chartData.data[0].x instanceof Date;\n return;\n }\n });\n }\n return isXAxisDateType;\n}\n/**\n * Calculates Domain and range values for Date X axis.\n * This method calculates Area chart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {Date[] | number[]} tickValues\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfDateForAreaChart(points, margins, width, isRTL, tickValues) {\n if (tickValues === void 0) { tickValues = []; }\n var sDate = d3Min(points, function (point) {\n return d3Min(point.data, function (item) {\n return item.x;\n });\n });\n var lDate = d3Max(points, function (point) {\n return d3Max(point.data, function (item) {\n return item.x;\n });\n });\n // Need to draw graph with given small and large date (Which Involves customization of date axis tick values)\n // That may be Either from given graph data or from prop 'tickValues' date values.\n // So, Finding smallest and largest dates\n var smallestDate = d3Min(__spreadArray(__spreadArray([], tickValues), [sDate]));\n var largestDate = d3Max(__spreadArray(__spreadArray([], tickValues), [lDate]));\n var rStartValue = margins.left;\n var rEndValue = width - margins.right;\n return isRTL\n ? { dStartValue: largestDate, dEndValue: smallestDate, rStartValue: rStartValue, rEndValue: rEndValue }\n : { dStartValue: smallestDate, dEndValue: largestDate, rStartValue: rStartValue, rEndValue: rEndValue };\n}\n/**\n * Calculates Domain and range values for Numeric X axis.\n * This method calculates Area cart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfNumericForAreaChart(points, margins, width, isRTL) {\n var xMin = d3Min(points, function (point) {\n return d3Min(point.data, function (item) { return item.x; });\n });\n var xMax = d3Max(points, function (point) {\n return d3Max(point.data, function (item) {\n return item.x;\n });\n });\n var rStartValue = margins.left;\n var rEndValue = width - margins.right;\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rStartValue, rEndValue: rEndValue }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rStartValue, rEndValue: rEndValue };\n}\n/**\n * Calculates Range values of x Axis string axis\n * For String axis, we need to give domain values (Not start and end array values)\n * So sending 0 as domain values. Domain will be handled at creation of string axis\n * For charts stacked bar chart, grouped vertical bar chart, HeatMapChart and Vertical bar chart\n * @export\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfXStringAxis(margins, width, isRTL) {\n var rMin = margins.left;\n var rMax = width - margins.right;\n return isRTL\n ? { dStartValue: 0, dEndValue: 0, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: 0, dEndValue: 0, rStartValue: rMin, rEndValue: rMax };\n}\n/**\n * Calculate domain and range values to the Vertical stacked bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth) {\n var xMin = d3Min(points, function (point) { return point.x; });\n var xMax = d3Max(points, function (point) { return point.x; });\n // barWidth / 2 - for to get tick middle of the bar\n var rMax = margins.left + barWidth / 2;\n var rMin = width - margins.right - barWidth / 2;\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMax, rEndValue: rMin };\n}\n/**\n * Calculate domain and range values to the Vertical bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} containerWidth\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRageOfVerticalNumeric(points, margins, containerWidth, isRTL, barWidth) {\n var xMax = d3Max(points, function (point) { return point.x; });\n var xMin = d3Min(points, function (point) { return point.x; });\n var rMin = margins.left + barWidth;\n var rMax = containerWidth - margins.right - barWidth;\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMin, rEndValue: rMax }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMin, rEndValue: rMax };\n}\n/**\n * For creating X axis, need to calculate x axis domain and range values from given points.\n * This may vary based on chart type and type of x axis\n * So, this method will define which method need to call based on chart type and axis type.\n * @export\n * @param {*} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {ChartTypes} chartType\n * @param {boolean} isRTL\n * @param {XAxisTypes} xAxisType\n * @param {number} [barWidth]\n * @returns {IDomainNRange}\n */\nexport function getDomainNRangeValues(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\npoints, margins, width, chartType, isRTL, xAxisType, barWidth, tickValues) {\n var domainNRangeValue;\n if (xAxisType === XAxisTypes.NumericAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n break;\n case ChartTypes.VerticalStackedBarChart:\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth);\n break;\n case ChartTypes.VerticalBarChart:\n domainNRangeValue = domainRageOfVerticalNumeric(points, margins, width, isRTL, barWidth);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n }\n else if (xAxisType === XAxisTypes.DateAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfDateForAreaChart(points, margins, width, isRTL, tickValues);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n }\n else {\n // String Axis type\n switch (chartType) {\n case ChartTypes.VerticalStackedBarChart:\n case ChartTypes.GroupedVerticalBarChart:\n case ChartTypes.VerticalBarChart:\n case ChartTypes.HeatMapChart:\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n }\n return domainNRangeValue;\n}\n/**\n * Calculating start and ending values of the Area chart and LineChart\n * @export\n * @param {ILineChartPoints[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findNumericMinMaxOfY(points) {\n var yMax = d3Max(points, function (point) {\n return d3Max(point.data, function (item) { return item.y; });\n });\n var yMin = d3Min(points, function (point) {\n return d3Min(point.data, function (item) { return item.y; });\n });\n return {\n startValue: yMin,\n endValue: yMax,\n };\n}\n/**\n * Find the minimum and maximum values of the vertical stacked bar chart y axis data point. Used for create y axis.\n * @export\n * @param {IDataPoint[]} dataset\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVSBCNumericMinMaxOfY(dataset) {\n var yMax = d3Max(dataset, function (point) { return point.y; });\n var yMin = d3Min(dataset, function (point) { return point.y; });\n return { startValue: yMin, endValue: yMax };\n}\n/**\n * Fins the min and max values of the vertical bar chart y axis data point.\n * @export\n * @param {IVerticalBarChartDataPoint[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVerticalNumericMinMaxOfY(points) {\n var yMax = d3Max(points, function (point) { return point.y; });\n var yMin = d3Min(points, function (point) { return point.y; });\n return { startValue: yMin, endValue: yMax };\n}\n/**\n * For creating Y axis, need to calculate y axis domain values from given points. This may vary based on chart type.\n * So, this method will define which method need to call based on chart type to find out min and max values(For Domain).\n * For grouped vertical bar chart, Calculating yMax value in the base file and sending as MaxOfYVal to cartesian.\n * @export\n * @param {*} points\n * @param {ChartTypes} chartType\n * @returns {{ startValue: number; endValue: number }}\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMinMaxOfYAxis(points, chartType) {\n var minMaxValues;\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n minMaxValues = findNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalStackedBarChart:\n minMaxValues = findVSBCNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalBarChart:\n minMaxValues = findVerticalNumericMinMaxOfY(points);\n break;\n default:\n minMaxValues = { startValue: 0, endValue: 0 };\n }\n return minMaxValues;\n}\n/**\n * @param p string or number or Date\n *\n * This function takes the single data point of the x-aixs\n * and decides what is the x-axis\n */\nexport var getTypeOfAxis = function (p, isXAsix) {\n if (isXAsix) {\n switch (typeof p) {\n case 'string':\n return XAxisTypes.StringAxis;\n case 'number':\n return XAxisTypes.NumericAxis;\n default:\n return XAxisTypes.DateAxis;\n }\n }\n else {\n switch (typeof p) {\n case 'string':\n return YAxisType.StringAxis;\n case 'number':\n return YAxisType.NumericAxis;\n default:\n return YAxisType.DateAxis;\n }\n }\n};\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in pointTypes below and vise-versa\n */\nexport var Points;\n(function (Points) {\n Points[Points[\"circle\"] = 0] = \"circle\";\n Points[Points[\"square\"] = 1] = \"square\";\n Points[Points[\"triangle\"] = 2] = \"triangle\";\n Points[Points[\"diamond\"] = 3] = \"diamond\";\n Points[Points[\"pyramid\"] = 4] = \"pyramid\";\n Points[Points[\"hexagon\"] = 5] = \"hexagon\";\n Points[Points[\"pentagon\"] = 6] = \"pentagon\";\n Points[Points[\"octagon\"] = 7] = \"octagon\";\n})(Points || (Points = {}));\nexport var CustomPoints;\n(function (CustomPoints) {\n CustomPoints[CustomPoints[\"dottedLine\"] = 0] = \"dottedLine\";\n})(CustomPoints || (CustomPoints = {}));\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in enum Point and vise-versa\n */\nexport var pointTypes = (_a = {},\n _a[Points.circle] = {\n widthRatio: 1,\n },\n _a[Points.square] = {\n widthRatio: 1,\n },\n _a[Points.triangle] = {\n widthRatio: 1,\n },\n _a[Points.diamond] = {\n widthRatio: 1,\n },\n _a[Points.pyramid] = {\n widthRatio: 1,\n },\n _a[Points.hexagon] = {\n widthRatio: 2,\n },\n _a[Points.pentagon] = {\n widthRatio: 1.168,\n },\n _a[Points.octagon] = {\n widthRatio: 2.414,\n },\n _a);\n/**\n * @param accessibleData accessible data\n * @param role string to define role of tag\n * @param isDataFocusable boolean\n * function returns the accessibility data object\n */\nexport var getAccessibleDataObject = function (accessibleData, role, isDataFocusable) {\n if (role === void 0) { role = 'text'; }\n if (isDataFocusable === void 0) { isDataFocusable = true; }\n accessibleData = accessibleData !== null && accessibleData !== void 0 ? accessibleData : {};\n return {\n role: role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData.ariaLabel,\n 'aria-labelledby': accessibleData.ariaLabelledBy,\n 'aria-describedby': accessibleData.ariaDescribedBy,\n };\n};\nexport var convertToLocaleString = function (data, culture) {\n if (!data) {\n return data;\n }\n culture = culture || undefined;\n if (typeof data === 'number') {\n return data.toLocaleString(culture);\n }\n if (typeof data === 'string' && !window.isNaN(Number(data))) {\n var num = Number(data);\n return num.toLocaleString(culture);\n }\n return data;\n};\nexport function rotateXAxisLabels(rotateLabelProps) {\n var node = rotateLabelProps.node, xAxis = rotateLabelProps.xAxis;\n if (node === null || xAxis === null) {\n return;\n }\n var maxHeight = 0;\n var xAxisTranslations = [];\n d3Select(node)\n .call(xAxis)\n .selectAll('.tick')\n .each(function () {\n var translateValue = this.getAttribute('transform');\n if ((translateValue === null || translateValue === void 0 ? void 0 : translateValue.indexOf('rotate')) === -1) {\n var translatePair = translateValue\n .substring(translateValue.indexOf('(') + 1, translateValue.indexOf(')'))\n .split(',');\n if (translatePair.length === 2) {\n xAxisTranslations.push(translatePair[0]);\n this.setAttribute('transform', \"translate(\" + translatePair[0] + \",0)rotate(-45)\");\n }\n }\n var BoxCordinates = this.getBoundingClientRect();\n var boxHeight = BoxCordinates && BoxCordinates.height;\n if (boxHeight > maxHeight) {\n maxHeight = boxHeight;\n }\n });\n var idx = 0;\n d3Select(node)\n .call(xAxis)\n .selectAll('.tick')\n .each(function () {\n if (xAxisTranslations.length > idx) {\n this.setAttribute('transform', \"translate(\" + xAxisTranslations[idx] + \",\" + maxHeight / 2 + \")rotate(-45)\"); // Translate y by max height/2\n idx += 1;\n }\n });\n return Math.floor(maxHeight / 1.414); // Compute maxHeight/tanInverse(45) to get the vertical height of labels.\n}\nexport function wrapTextInsideDonut(selectorClass, maxWidth) {\n var idx = 0;\n d3SelectAll(\".\" + selectorClass).each(function () {\n var text = d3Select(this);\n var words = text.text().split(/\\s+/).reverse();\n var word = '';\n var line = [];\n var lineNumber = 0;\n var lineHeight = 1.1; // ems\n var y = text.attr('y');\n var tspan = text\n .text(null)\n .append('tspan')\n .attr('id', \"WordBreakId-\" + idx + \"-\" + lineNumber)\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', lineNumber++ * lineHeight + 'em');\n while ((word = words.pop())) {\n line.push(word);\n tspan.text(line.join(' ') + ' ');\n if (tspan.node().getComputedTextLength() > maxWidth && line.length > 1) {\n line.pop();\n tspan.text(line.join(' ') + ' ');\n line = [word];\n tspan = text\n .append('tspan')\n .attr('id', \"WordBreakId-\" + idx + \"-\" + lineNumber)\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', lineNumber++ * lineHeight + 'em')\n .text(word);\n }\n }\n idx += 1;\n });\n}\n//# sourceMappingURL=utilities.js.map","import * as React from 'react';\nimport { Option } from '../Option';\nfunction defaultFilter(optionText, query) {\n if (query === '') {\n return true;\n }\n return optionText.toLowerCase().includes(query.toLowerCase());\n}\nfunction defaultToString(option) {\n return typeof option === 'string' ? option : option.value;\n}\n/**\n * @internal\n */ export function useComboboxFilter(query, options, config) {\n const { filter = defaultFilter, noOptionsMessage = \"We couldn't find any matches.\", optionToReactKey = defaultToString, optionToText = defaultToString, renderOption = (option)=>{\n if (typeof option === 'string') {\n return /*#__PURE__*/ React.createElement(Option, {\n key: option\n }, option);\n }\n return /*#__PURE__*/ React.createElement(Option, {\n ...option,\n key: optionToReactKey(option),\n text: optionToText(option),\n value: option.value\n }, option.children);\n } } = config;\n const filteredOptions = React.useMemo(()=>{\n const searchValue = query.trim();\n return options.filter((option)=>filter(optionToText(option), searchValue));\n }, [\n options,\n optionToText,\n filter,\n query\n ]);\n if (filteredOptions.length === 0) {\n return [\n /*#__PURE__*/ React.createElement(Option, {\n \"aria-disabled\": \"true\",\n key: \"no-results\",\n text: \"\"\n }, noOptionsMessage)\n ];\n }\n return filteredOptions.map((option)=>renderOption(option));\n}\n","import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n/**\n * @internal\n * This hook returns context selected value by selector.\n * It will only accept context created by `createContext`.\n * It will trigger re-render if only the selected value is referentially changed.\n */ export const useContextSelector = (context, selector)=>{\n const contextValue = React.useContext(context);\n const { value: { current: value }, version: { current: version }, listeners } = contextValue;\n const selected = selector(value);\n const [state, dispatch] = React.useReducer((prevState, payload)=>{\n if (!payload) {\n // early bail out when is dispatched during render\n return [\n value,\n selected\n ];\n }\n if (payload[0] <= version) {\n if (objectIs(prevState[1], selected)) {\n return prevState; // bail out\n }\n return [\n value,\n selected\n ];\n }\n try {\n if (objectIs(prevState[0], payload[1])) {\n return prevState; // do not update\n }\n const nextSelected = selector(payload[1]);\n if (objectIs(prevState[1], nextSelected)) {\n return prevState; // do not update\n }\n return [\n payload[1],\n nextSelected\n ];\n } catch (e) {\n // ignored (stale props or some other reason)\n }\n // explicitly spread to enforce typing\n return [\n prevState[0],\n prevState[1]\n ]; // schedule update\n }, [\n value,\n selected\n ]);\n if (!objectIs(state[1], selected)) {\n // schedule re-render\n // this is safe because it's self contained\n dispatch(undefined);\n }\n useIsomorphicLayoutEffect(()=>{\n listeners.push(dispatch);\n return ()=>{\n const index = listeners.indexOf(dispatch);\n listeners.splice(index, 1);\n };\n }, [\n listeners\n ]);\n return state[1];\n};\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */ // eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst objectIs = // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore fallback to native if it exists (not in IE11)\ntypeof Object.is === 'function' ? Object.is : is;\n","import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nconst defaultContextValue = {\n open: false,\n inertTrapFocus: false,\n modalType: 'modal',\n isNestedDialog: false,\n dialogRef: {\n current: null\n },\n requestOpenChange () {\n /* noop */ }\n};\n// Contexts should default to undefined\nexport const DialogContext = createContext(undefined);\nexport const DialogProvider = DialogContext.Provider;\nexport const useDialogContext_unstable = (selector)=>useContextSelector(DialogContext, (ctx = defaultContextValue)=>selector(ctx));\n","import { useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { unstable_NormalPriority as NormalPriority, unstable_runWithPriority as runWithPriority } from 'scheduler';\nconst createProvider = (Original)=>{\n const Provider = (props)=>{\n // Holds an actual \"props.value\"\n const valueRef = React.useRef(props.value);\n // Used to sync context updates and avoid stale values, can be considered as render/effect counter of Provider.\n const versionRef = React.useRef(0);\n // A stable object, is used to avoid context updates via mutation of its values.\n const contextValue = React.useRef();\n if (!contextValue.current) {\n contextValue.current = {\n value: valueRef,\n version: versionRef,\n listeners: []\n };\n }\n useIsomorphicLayoutEffect(()=>{\n valueRef.current = props.value;\n versionRef.current += 1;\n runWithPriority(NormalPriority, ()=>{\n contextValue.current.listeners.forEach((listener)=>{\n listener([\n versionRef.current,\n props.value\n ]);\n });\n });\n }, [\n props.value\n ]);\n return React.createElement(Original, {\n value: contextValue.current\n }, props.children);\n };\n /* istanbul ignore else */ if (process.env.NODE_ENV !== 'production') {\n Provider.displayName = 'ContextSelector.Provider';\n }\n return Provider;\n};\n/**\n * @internal\n */ export const createContext = (defaultValue)=>{\n // eslint-disable-next-line @fluentui/no-context-default-value\n const context = React.createContext({\n value: {\n current: defaultValue\n },\n version: {\n current: -1\n },\n listeners: []\n });\n context.Provider = createProvider(context.Provider);\n // We don't support Consumer API\n delete context.Consumer;\n return context;\n};\n","import { createContext, useContext } from 'react';\nconst defaultContextValue = false;\nexport const DialogSurfaceContext = createContext(undefined);\nexport const DialogSurfaceProvider = DialogSurfaceContext.Provider;\nexport const useDialogSurfaceContext_unstable = ()=>{\n var _useContext;\n return (_useContext = useContext(DialogSurfaceContext)) !== null && _useContext !== void 0 ? _useContext : defaultContextValue;\n};\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerBodyClassNames = {\n root: 'fui-DrawerBody'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n B6of3ja: \"fkrn0sh\",\n t21cq0: [\"f11qmguv\", \"f1tyq0we\"],\n jrapky: \"fmxx68s\",\n Frg6f3: [\"f1tyq0we\", \"f11qmguv\"],\n z8tnut: \"f1sl3k7w\",\n z189sj: [\"fnbas0t\", \"f1mswpri\"],\n Byoj8tv: \"f1brlhvm\",\n uwmqm3: [\"f1mswpri\", \"fnbas0t\"],\n B68tc82: \"f1oy3dpc\",\n Bmxbyg5: \"f5zp4f\",\n Bh6795r: \"fqerorx\",\n Bnnss6s: \"f1neuvcm\",\n xawz: \"f1pztt34\",\n qb2dma: \"f1ub7u0d\",\n Bcmaq0h: \"f1igvcbx\",\n B676am1: \"f1fofb6i\",\n e5kdtc: \"fo6xqva\",\n De3pzq: \"fxugw4r\",\n Bkjc3bi: \"fcre6b6\",\n Bgh53k4: \"f1besv5s\",\n Bcx2cba: \"f1pqm9hp\",\n gonrqn: \"f2c46kh\"\n }\n}, {\n d: [\".fkrn0sh{margin-top:-1px;}\", \".f11qmguv{margin-right:0;}\", \".f1tyq0we{margin-left:0;}\", \".fmxx68s{margin-bottom:-1px;}\", \".f1sl3k7w{padding-top:1px;}\", \".fnbas0t{padding-right:var(--spacingHorizontalXXL);}\", \".f1mswpri{padding-left:var(--spacingHorizontalXXL);}\", \".f1brlhvm{padding-bottom:1px;}\", \".f1oy3dpc{overflow-x:auto;}\", \".f5zp4f{overflow-y:auto;}\", \".fqerorx{flex-grow:1;}\", \".f1neuvcm{flex-shrink:1;}\", \".f1pztt34{flex-basis:0;}\", \".f1ub7u0d{align-self:stretch;}\", \".f1igvcbx{background-image:linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralBackground1), var(--colorNeutralBackground1)),linear-gradient(to top, var(--colorNeutralStroke1), var(--colorNeutralBackground1)),linear-gradient(to bottom, var(--colorNeutralStroke1), var(--colorNeutralBackground1));}\", \".f1fofb6i{-webkit-background-position:bottom center,top center,bottom center,top center;background-position:bottom center,top center,bottom center,top center;}\", \".fo6xqva{background-repeat:no-repeat;}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".fcre6b6{background-size:100% 2px,100% 2px,100% 1px,100% 1px;}\", \".f1besv5s{background-attachment:local,local,scroll,scroll;}\", \".f1pqm9hp:last-child{padding-bottom:calc(var(--spacingHorizontalXXL) + 1px);}\", \".f2c46kh:first-child{padding-top:calc(var(--spacingHorizontalXXL) + 1px);}\"]\n});\n/**\n * Apply styling to the DrawerBody slots based on the state\n */\nexport const useDrawerBodyStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(drawerBodyClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerBodyStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerBody_unstable } from './useDrawerBody';\nimport { renderDrawerBody_unstable } from './renderDrawerBody';\nimport { useDrawerBodyStyles_unstable } from './useDrawerBodyStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * DrawerBody provides with a container for the main content of a Drawer.\n */ export const DrawerBody = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerBody_unstable(props, ref);\n useDrawerBodyStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerBodyStyles_unstable')(state);\n return renderDrawerBody_unstable(state);\n});\nDrawerBody.displayName = 'DrawerBody';\n","import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render DrawerBody.\n *\n * The returned state can be modified with hooks such as useDrawerBodyStyles_unstable,\n * before being passed to renderDrawerBody_unstable.\n *\n * @param props - props from this instance of DrawerBody\n * @param ref - reference to root HTMLElement of DrawerBody\n */ export const useDrawerBody_unstable = (props, ref)=>{\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n })\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerBody\n */ export const renderDrawerBody_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null);\n};\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerFooterClassNames = {\n root: 'fui-DrawerFooter'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n z8tnut: \"fikn0iw\",\n z189sj: [\"fnbas0t\", \"f1mswpri\"],\n Byoj8tv: \"fz66xbh\",\n uwmqm3: [\"f1mswpri\", \"fnbas0t\"],\n mc9l5x: \"f22iagw\",\n Brf1p80: \"fbhxue7\",\n Bt984gj: \"f122n59\",\n i8kkvl: \"fsnqrgy\"\n }\n}, {\n d: [\".fikn0iw{padding-top:var(--spacingVerticalL);}\", \".fnbas0t{padding-right:var(--spacingHorizontalXXL);}\", \".f1mswpri{padding-left:var(--spacingHorizontalXXL);}\", \".fz66xbh{padding-bottom:var(--spacingVerticalXXL);}\", \".f22iagw{display:flex;}\", \".fbhxue7{justify-content:flex-start;}\", \".f122n59{align-items:center;}\", \".fsnqrgy{column-gap:var(--spacingHorizontalS);}\"]\n});\n/**\n * Apply styling to the DrawerFooter slots based on the state\n */\nexport const useDrawerFooterStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(drawerFooterClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerFooterStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerFooter_unstable } from './useDrawerFooter';\nimport { renderDrawerFooter_unstable } from './renderDrawerFooter';\nimport { useDrawerFooterStyles_unstable } from './useDrawerFooterStyles.styles';\n/**\n * DrawerFooter component - TODO: add more docs\n */ export const DrawerFooter = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerFooter_unstable(props, ref);\n useDrawerFooterStyles_unstable(state);\n return renderDrawerFooter_unstable(state);\n});\nDrawerFooter.displayName = 'DrawerFooter';\n","import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render DrawerFooter.\n *\n * The returned state can be modified with hooks such as useDrawerFooterStyles_unstable,\n * before being passed to renderDrawerFooter_unstable.\n *\n * @param props - props from this instance of DrawerFooter\n * @param ref - reference to root HTMLElement of DrawerFooter\n */ export const useDrawerFooter_unstable = (props, ref)=>{\n return {\n components: {\n root: 'footer'\n },\n root: slot.always(getNativeElementProps('footer', {\n ref,\n ...props\n }), {\n elementType: 'footer'\n })\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerFooter\n */ export const renderDrawerFooter_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null);\n};\n","import * as React from 'react';\nimport { applyTriggerPropsToChildren, getTriggerChild, useEventCallback } from '@fluentui/react-utilities';\nimport { useDialogContext_unstable, useDialogSurfaceContext_unstable } from '../../contexts';\nimport { useARIAButtonProps } from '@fluentui/react-aria';\nimport { useModalAttributes } from '@fluentui/react-tabster';\n/**\n * Create the state required to render DialogTrigger.\n * Clones the only child component and adds necessary event handling behaviours to open a popup Dialog\n *\n * @param props - props from this instance of DialogTrigger\n */ export const useDialogTrigger_unstable = (props)=>{\n const isInsideSurfaceDialog = useDialogSurfaceContext_unstable();\n const { children, disableButtonEnhancement = false, action = isInsideSurfaceDialog ? 'close' : 'open' } = props;\n const child = getTriggerChild(children);\n const requestOpenChange = useDialogContext_unstable((ctx)=>ctx.requestOpenChange);\n const { triggerAttributes } = useModalAttributes();\n const handleClick = useEventCallback((event)=>{\n var _child_props_onClick, _child_props;\n child === null || child === void 0 ? void 0 : (_child_props_onClick = (_child_props = child.props).onClick) === null || _child_props_onClick === void 0 ? void 0 : _child_props_onClick.call(_child_props, event);\n if (!event.isDefaultPrevented()) {\n requestOpenChange({\n event,\n type: 'triggerClick',\n open: action === 'open'\n });\n }\n });\n const triggerChildProps = {\n ...child === null || child === void 0 ? void 0 : child.props,\n ref: child === null || child === void 0 ? void 0 : child.ref,\n onClick: handleClick,\n ...triggerAttributes\n };\n const ariaButtonTriggerChildProps = useARIAButtonProps((child === null || child === void 0 ? void 0 : child.type) === 'button' || (child === null || child === void 0 ? void 0 : child.type) === 'a' ? child.type : 'div', {\n ...triggerChildProps,\n type: 'button'\n });\n return {\n children: applyTriggerPropsToChildren(children, disableButtonEnhancement ? triggerChildProps : ariaButtonTriggerChildProps)\n };\n};\n","import * as React from 'react';\nimport { useDialogTrigger_unstable } from './useDialogTrigger';\nimport { renderDialogTrigger_unstable } from './renderDialogTrigger';\n/**\n * A non-visual component that wraps its child\n * and configures them to be the trigger that will open or close a `Dialog`.\n * This component should only accept one child.\n *\n * This component sole purpose is to avoid opting out of the internal controlled open state of a `Dialog`\n * Besides being a trigger that opens/close a dialog through context this component doesn't do much,\n * making it basically unnecessary in cases where the trigger is outside of the `Dialog` component.\n */ export const DialogTrigger = (props)=>{\n const state = useDialogTrigger_unstable(props);\n return renderDialogTrigger_unstable(state);\n};\nDialogTrigger.displayName = 'DialogTrigger';\n// type casting here is required to ensure internal type FluentTriggerComponent is not leaked\nDialogTrigger.isFluentTriggerComponent = true;\n","/**\n * Render the final JSX of MenuTrigger\n *\n * Only renders children\n */ export const renderDialogTrigger_unstable = (state)=>state.children;\n","import { __resetStyles, __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { typographyStyles } from '@fluentui/react-theme';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nexport const dialogTitleClassNames = {\n root: 'fui-DialogTitle',\n action: 'fui-DialogTitle__action'\n};\n/**\n * Styles for the root slot\n */\nconst useRootResetStyles = /*#__PURE__*/__resetStyles(\"rztv7rx\", \"rt0yqbx\", [\".rztv7rx{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase500);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase500);margin-top:0;margin-right:0;margin-bottom:0;margin-left:0;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:3;}\", \".rt0yqbx{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase500);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase500);margin-top:0;margin-left:0;margin-bottom:0;margin-right:0;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:3;}\"]);\nconst useStyles = /*#__PURE__*/__styles({\n rootWithoutAction: {\n Bw0ie65: \"fsyjsko\"\n }\n}, {\n d: [\".fsyjsko{grid-column-end:4;}\"]\n});\n/**\n * Styles for the action slot\n */\nconst useActionResetStyles = /*#__PURE__*/__resetStyles(\"r13kcrze\", null, [\".r13kcrze{grid-row-start:1;grid-row-end:1;grid-column-start:3;justify-self:end;align-self:start;}\"]);\n/**\n * Styles to be applied on internal elements used by default action on non-modal Dialog\n * @internal\n */\nexport const useDialogTitleInternalStyles = /*#__PURE__*/__resetStyles(\"r51tj\", \"rgre5d\", {\n r: [\".r51tj{overflow-x:visible;overflow-y:visible;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;position:relative;box-sizing:content-box;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;line-height:0;-webkit-appearance:button;text-align:unset;}\", \".r51tj:focus{outline-style:none;}\", \".r51tj:focus-visible{outline-style:none;}\", \".r51tj[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}\", \".r51tj[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}\", \".rgre5d{overflow-x:visible;overflow-y:visible;padding-top:0;padding-left:0;padding-bottom:0;padding-right:0;border-top-style:none;border-left-style:none;border-bottom-style:none;border-right-style:none;position:relative;box-sizing:content-box;background-color:inherit;color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;line-height:0;-webkit-appearance:button;text-align:unset;}\", \".rgre5d:focus{outline-style:none;}\", \".rgre5d:focus-visible{outline-style:none;}\", \".rgre5d[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}\", \".rgre5d[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}\"],\n s: [\"@media (forced-colors: active){.r51tj[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}\", \"@media (forced-colors: active){.rgre5d[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}\"]\n});\n/**\n * Apply styling to the DialogTitle slots based on the state\n */\nexport const useDialogTitleStyles_unstable = state => {\n const rootResetStyles = useRootResetStyles();\n const actionResetStyles = useActionResetStyles();\n const styles = useStyles();\n state.root.className = mergeClasses(dialogTitleClassNames.root, rootResetStyles, !state.action && styles.rootWithoutAction, state.root.className);\n if (state.action) {\n state.action.className = mergeClasses(dialogTitleClassNames.action, actionResetStyles, state.action.className);\n }\n return state;\n};\n//# sourceMappingURL=useDialogTitleStyles.styles.js.map","import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { useDialogTitle_unstable } from '@fluentui/react-dialog';\n/**\n * Create the state required to render DrawerHeaderTitle.\n *\n * The returned state can be modified with hooks such as useDrawerHeaderTitleStyles_unstable,\n * before being passed to renderDrawerHeaderTitle_unstable.\n *\n * @param props - props from this instance of DrawerHeaderTitle\n * @param ref - reference to root HTMLElement of DrawerHeaderTitle\n */ export const useDrawerHeaderTitle_unstable = (props, ref)=>{\n const { root: heading , action , components: titleComponents } = useDialogTitle_unstable(props, ref);\n return {\n components: {\n root: 'div',\n heading: titleComponents.root,\n action: titleComponents.action\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n heading: slot.optional(props.heading, {\n renderByDefault: true,\n defaultProps: {\n ...heading,\n className: undefined\n },\n elementType: titleComponents.root\n }),\n action: slot.optional(props.action, {\n defaultProps: action,\n elementType: titleComponents.action\n })\n };\n};\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useDialogContext_unstable } from '../../contexts/dialogContext';\nimport { Dismiss20Regular } from '@fluentui/react-icons';\nimport { DialogTrigger } from '../DialogTrigger/DialogTrigger';\nimport { useDialogTitleInternalStyles } from './useDialogTitleStyles.styles';\n/**\n * Create the state required to render DialogTitle.\n *\n * The returned state can be modified with hooks such as useDialogTitleStyles_unstable,\n * before being passed to renderDialogTitle_unstable.\n *\n * @param props - props from this instance of DialogTitle\n * @param ref - reference to root HTMLElement of DialogTitle\n */ export const useDialogTitle_unstable = (props, ref)=>{\n const { action } = props;\n const modalType = useDialogContext_unstable((ctx)=>ctx.modalType);\n const internalStyles = useDialogTitleInternalStyles();\n return {\n components: {\n root: 'h2',\n action: 'div'\n },\n root: slot.always(getIntrinsicElementProps('h2', {\n ref,\n id: useDialogContext_unstable((ctx)=>ctx.dialogTitleId),\n ...props\n }), {\n elementType: 'h2'\n }),\n action: slot.optional(action, {\n renderByDefault: modalType === 'non-modal',\n defaultProps: {\n children: /*#__PURE__*/ React.createElement(DialogTrigger, {\n disableButtonEnhancement: true,\n action: \"close\"\n }, /*#__PURE__*/ React.createElement(\"button\", {\n type: \"button\",\n className: internalStyles,\n // TODO: find a better way to add internal labels\n \"aria-label\": \"close\"\n }, /*#__PURE__*/ React.createElement(Dismiss20Regular, null)))\n },\n elementType: 'div'\n })\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerHeaderTitle\n */ export const renderDrawerHeaderTitle_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null, state.heading && /*#__PURE__*/ createElement(state.heading, null), state.action && /*#__PURE__*/ createElement(state.action, null));\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { useDialogTitleStyles_unstable } from '@fluentui/react-dialog';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerHeaderTitleClassNames = {\n root: 'fui-DrawerHeaderTitle',\n heading: 'fui-DrawerHeaderTitle__heading',\n action: 'fui-DrawerHeaderTitle__action'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Brf1p80: \"f1869bpl\",\n Bt984gj: \"f122n59\",\n i8kkvl: \"fsnqrgy\"\n },\n action: {\n t21cq0: [\"faqnl2i\", \"fd75udd\"]\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1869bpl{justify-content:space-between;}\", \".f122n59{align-items:center;}\", \".fsnqrgy{column-gap:var(--spacingHorizontalS);}\", \".faqnl2i{margin-right:calc(var(--spacingHorizontalS) * -1);}\", \".fd75udd{margin-left:calc(var(--spacingHorizontalS) * -1);}\"]\n});\n/**\n * Apply styling to the DrawerHeaderTitle slots based on the state\n */\nexport const useDrawerHeaderTitleStyles_unstable = state => {\n const styles = useStyles();\n const {\n heading: root = {},\n action,\n components\n } = state;\n useDialogTitleStyles_unstable({\n components: {\n root: components.heading,\n action: components.action\n },\n root,\n action\n });\n state.root.className = mergeClasses(drawerHeaderTitleClassNames.root, styles.root, state.root.className);\n if (state.heading) {\n state.heading.className = mergeClasses(drawerHeaderTitleClassNames.heading, state.heading.className);\n }\n if (state.action) {\n state.action.className = mergeClasses(drawerHeaderTitleClassNames.action, styles.action, state.action.className);\n }\n return state;\n};\n//# sourceMappingURL=useDrawerHeaderTitleStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerHeaderTitle_unstable } from './useDrawerHeaderTitle';\nimport { renderDrawerHeaderTitle_unstable } from './renderDrawerHeaderTitle';\nimport { useDrawerHeaderTitleStyles_unstable } from './useDrawerHeaderTitleStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * DrawerHeader provides a structured header for the drawer component.\n */ export const DrawerHeaderTitle = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerHeaderTitle_unstable(props, ref);\n useDrawerHeaderTitleStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerHeaderTitleStyles_unstable')(state);\n return renderDrawerHeaderTitle_unstable(state);\n});\nDrawerHeaderTitle.displayName = 'DrawerHeaderTitle';\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerHeaderClassNames = {\n root: 'fui-DrawerHeader'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n z8tnut: \"f1ggmyuv\",\n z189sj: [\"fnbas0t\", \"f1mswpri\"],\n Byoj8tv: \"f5b47ha\",\n uwmqm3: [\"f1mswpri\", \"fnbas0t\"],\n i8kkvl: \"fsnqrgy\",\n Belr9w4: \"fylz90v\",\n qb2dma: \"f1ub7u0d\",\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\"\n }\n}, {\n d: [\".f1ggmyuv{padding-top:var(--spacingVerticalXXL);}\", \".fnbas0t{padding-right:var(--spacingHorizontalXXL);}\", \".f1mswpri{padding-left:var(--spacingHorizontalXXL);}\", \".f5b47ha{padding-bottom:var(--spacingVerticalS);}\", \".fsnqrgy{column-gap:var(--spacingHorizontalS);}\", \".fylz90v{row-gap:var(--spacingHorizontalS);}\", \".f1ub7u0d{align-self:stretch;}\", \".f22iagw{display:flex;}\", \".f1vx9l62{flex-direction:column;}\"]\n});\n/**\n * Apply styling to the DrawerHeader slots based on the state\n */\nexport const useDrawerHeaderStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(drawerHeaderClassNames.root, styles.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerHeaderStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerHeader_unstable } from './useDrawerHeader';\nimport { renderDrawerHeader_unstable } from './renderDrawerHeader';\nimport { useDrawerHeaderStyles_unstable } from './useDrawerHeaderStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * DrawerHeader provides a structured header for the drawer component.\n */ export const DrawerHeader = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerHeader_unstable(props, ref);\n useDrawerHeaderStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerHeaderStyles_unstable')(state);\n return renderDrawerHeader_unstable(state);\n});\nDrawerHeader.displayName = 'DrawerHeader';\n","import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render DrawerHeader.\n *\n * The returned state can be modified with hooks such as useDrawerHeaderStyles_unstable,\n * before being passed to renderDrawerHeader_unstable.\n *\n * @param props - props from this instance of DrawerHeader\n * @param ref - reference to root HTMLElement of DrawerHeader\n */ export const useDrawerHeader_unstable = (props, ref)=>{\n return {\n components: {\n root: 'header'\n },\n root: slot.always(getNativeElementProps('header', {\n ref,\n ...props\n }), {\n elementType: 'header'\n })\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerHeader\n */ export const renderDrawerHeader_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null);\n};\n","import * as React from 'react';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { useDrawerBaseStyles } from '../../util/useDrawerBaseStyles.styles';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerInlineClassNames = {\n root: 'fui-DrawerInline'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n qhf8xq: \"f10pi13n\"\n },\n separatorStart: {\n Bekrc4i: [\"f1hqa2wf\", \"finvdd3\"],\n vrafjx: [\"fcdblym\", \"fjik90z\"],\n h3c5rm: [\"fa8zu9y\", \"f17e9lqh\"]\n },\n separatorEnd: {\n ibv6hh: [\"finvdd3\", \"f1hqa2wf\"],\n wvpqe5: [\"fjik90z\", \"fcdblym\"],\n zhjwy3: [\"f17e9lqh\", \"fa8zu9y\"]\n }\n}, {\n d: [\".f10pi13n{position:relative;}\", \".f1hqa2wf{border-right-width:1px;}\", \".finvdd3{border-left-width:1px;}\", \".fcdblym{border-right-style:solid;}\", \".fjik90z{border-left-style:solid;}\", \".fa8zu9y{border-right-color:var(--colorNeutralBackground3);}\", \".f17e9lqh{border-left-color:var(--colorNeutralBackground3);}\"]\n});\n/**\n * Apply styling to the DrawerInline slots based on the state\n */\nexport const useDrawerInlineStyles_unstable = state => {\n const baseStyles = useDrawerBaseStyles();\n const styles = useStyles();\n const separatorClass = React.useMemo(() => {\n if (!state.separator) {\n return undefined;\n }\n return state.position === 'start' ? styles.separatorStart : styles.separatorEnd;\n }, [state.position, state.separator, styles.separatorEnd, styles.separatorStart]);\n state.root.className = mergeClasses(drawerInlineClassNames.root, baseStyles.root, styles.root, state.size && baseStyles[state.size], state.position && baseStyles[state.position], separatorClass, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerInlineStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerInline_unstable } from './useDrawerInline';\nimport { renderDrawerInline_unstable } from './renderDrawerInline';\nimport { useDrawerInlineStyles_unstable } from './useDrawerInlineStyles.styles';\n/**\n * DrawerInline is often used for navigation that is not dissmissable. As it is on the same level as\n * the main surface, users can still interact with other UI elements.\n */ export const DrawerInline = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerInline_unstable(props, ref);\n useDrawerInlineStyles_unstable(state);\n return renderDrawerInline_unstable(state);\n});\nDrawerInline.displayName = 'DrawerInline';\n","import * as React from 'react';\nimport { getNativeElementProps, useControllableState, slot } from '@fluentui/react-utilities';\nimport { getDefaultDrawerProps } from '../../util/getDefaultDrawerProps';\n/**\n * Create the state required to render DrawerInline.\n *\n * The returned state can be modified with hooks such as useDrawerInlineStyles_unstable,\n * before being passed to renderDrawerInline_unstable.\n *\n * @param props - props from this instance of DrawerInline\n * @param ref - reference to root HTMLElement of DrawerInline\n */ export const useDrawerInline_unstable = (props, ref)=>{\n const { open: initialOpen , defaultOpen , size , position } = getDefaultDrawerProps(props);\n const { separator =false } = props;\n const [open] = useControllableState({\n state: initialOpen,\n defaultState: defaultOpen,\n initialState: false\n });\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n size,\n position,\n open,\n separator\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerInline\n */ export const renderDrawerInline_unstable = (state)=>{\n assertSlots(state);\n if (!state.open) {\n return null;\n }\n return /*#__PURE__*/ createElement(state.root, null);\n};\n","import * as React from 'react';\n/**\n * @internal\n */ const defaultContextValue = undefined;\n// Contexts should default to undefined\n/**\n * @internal\n */ export const DialogTransitionContext = React.createContext(undefined);\n/**\n * @internal\n */ export const DialogTransitionProvider = DialogTransitionContext.Provider;\n/**\n * @internal\n */ export const useDialogTransitionContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(DialogTransitionContext)) !== null && _React_useContext !== void 0 ? _React_useContext : defaultContextValue;\n};\n","import * as React from 'react';\nimport { useEventCallback, useMergedRefs, isResolvedShorthand, slot, getIntrinsicElementProps } from '@fluentui/react-utilities';\nimport { useDialogContext_unstable } from '../../contexts';\nimport { Escape } from '@fluentui/keyboard-keys';\nimport { useDialogTransitionContext_unstable } from '../../contexts/dialogTransitionContext';\n/**\n * Create the state required to render DialogSurface.\n *\n * The returned state can be modified with hooks such as useDialogSurfaceStyles_unstable,\n * before being passed to renderDialogSurface_unstable.\n *\n * @param props - props from this instance of DialogSurface\n * @param ref - reference to root HTMLElement of DialogSurface\n */ export const useDialogSurface_unstable = (props, ref)=>{\n const modalType = useDialogContext_unstable((ctx)=>ctx.modalType);\n const isNestedDialog = useDialogContext_unstable((ctx)=>ctx.isNestedDialog);\n const transitionStatus = useDialogTransitionContext_unstable();\n const modalAttributes = useDialogContext_unstable((ctx)=>ctx.modalAttributes);\n const dialogRef = useDialogContext_unstable((ctx)=>ctx.dialogRef);\n const requestOpenChange = useDialogContext_unstable((ctx)=>ctx.requestOpenChange);\n const dialogTitleID = useDialogContext_unstable((ctx)=>ctx.dialogTitleId);\n const handledBackdropClick = useEventCallback((event)=>{\n if (isResolvedShorthand(props.backdrop)) {\n var _props_backdrop_onClick, _props_backdrop;\n (_props_backdrop_onClick = (_props_backdrop = props.backdrop).onClick) === null || _props_backdrop_onClick === void 0 ? void 0 : _props_backdrop_onClick.call(_props_backdrop, event);\n }\n if (modalType === 'modal' && !event.isDefaultPrevented()) {\n requestOpenChange({\n event,\n open: false,\n type: 'backdropClick'\n });\n }\n });\n const handleKeyDown = useEventCallback((event)=>{\n var _props_onKeyDown;\n (_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, event);\n if (event.key === Escape && !event.isDefaultPrevented()) {\n requestOpenChange({\n event,\n open: false,\n type: 'escapeKeyDown'\n });\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: nested Dialog, Popover, Menu and Tooltip\n event.preventDefault();\n }\n });\n const backdrop = slot.optional(props.backdrop, {\n renderByDefault: modalType !== 'non-modal',\n defaultProps: {\n 'aria-hidden': 'true'\n },\n elementType: 'div'\n });\n if (backdrop) {\n backdrop.onClick = handledBackdropClick;\n }\n return {\n components: {\n backdrop: 'div',\n root: 'div'\n },\n backdrop,\n isNestedDialog,\n transitionStatus,\n mountNode: props.mountNode,\n root: slot.always(getIntrinsicElementProps('div', {\n tabIndex: -1,\n 'aria-modal': modalType !== 'non-modal',\n role: modalType === 'alert' ? 'alertdialog' : 'dialog',\n 'aria-labelledby': props['aria-label'] ? undefined : dialogTitleID,\n ...props,\n ...modalAttributes,\n onKeyDown: handleKeyDown,\n // FIXME:\n // `DialogSurfaceElement` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, dialogRef)\n }), {\n elementType: 'div'\n })\n };\n};\n","import { __styles } from '@griffel/react';\nexport const usePortalMountNodeStylesStyles = /*#__PURE__*/__styles({\n root: {\n qhf8xq: \"f1euv43f\",\n Bhzewxz: \"f15twtuk\",\n oyh7mz: [\"f1vgc2s3\", \"f1e31b4d\"],\n j35jbq: [\"f1e31b4d\", \"f1vgc2s3\"],\n Bj3rh1h: \"f494woh\"\n }\n}, {\n d: [\".f1euv43f{position:absolute;}\", \".f15twtuk{top:0;}\", \".f1vgc2s3{left:0;}\", \".f1e31b4d{right:0;}\", \".f494woh{z-index:1000000;}\"]\n});\n//# sourceMappingURL=usePortalMountNodeStyles.styles.js.map","import * as React from 'react';\nimport { useThemeClassName_unstable as useThemeClassName, useFluent_unstable as useFluent, usePortalMountNode as usePortalMountNodeContext } from '@fluentui/react-shared-contexts';\nimport { mergeClasses } from '@griffel/react';\nimport { useFocusVisible } from '@fluentui/react-tabster';\nimport { useDisposable } from 'use-disposable';\nimport { usePortalMountNodeStylesStyles } from './usePortalMountNodeStyles.styles';\nconst useInsertionEffect = React['useInsertion' + 'Effect'];\n/**\n * Creates a new element on a \"document.body\" to mount portals.\n */ export const usePortalMountNode = (options)=>{\n const { targetDocument, dir } = useFluent();\n const mountNode = usePortalMountNodeContext();\n const focusVisibleRef = useFocusVisible();\n const classes = usePortalMountNodeStylesStyles();\n const themeClassName = useThemeClassName();\n const className = mergeClasses(themeClassName, classes.root, options.className);\n const targetNode = mountNode !== null && mountNode !== void 0 ? mountNode : targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.body;\n const element = useDisposable(()=>{\n if (targetNode === undefined || options.disabled) {\n return [\n null,\n ()=>null\n ];\n }\n const newElement = targetNode.ownerDocument.createElement('div');\n targetNode.appendChild(newElement);\n return [\n newElement,\n ()=>newElement.remove()\n ];\n }, [\n targetNode\n ]);\n if (useInsertionEffect) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useInsertionEffect(()=>{\n if (!element) {\n return;\n }\n const classesToApply = className.split(' ').filter(Boolean);\n element.classList.add(...classesToApply);\n element.setAttribute('dir', dir);\n focusVisibleRef.current = element;\n return ()=>{\n element.classList.remove(...classesToApply);\n element.removeAttribute('dir');\n };\n }, [\n className,\n dir,\n element,\n focusVisibleRef\n ]);\n } else {\n // This useMemo call is intentional for React 17\n // We don't want to re-create the portal element when its attributes change.\n // This also should not be done in an effect because, changing the value of css variables\n // after initial mount can trigger interesting CSS side effects like transitions.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useMemo(()=>{\n if (!element) {\n return;\n }\n // Force replace all classes\n element.className = className;\n element.setAttribute('dir', dir);\n focusVisibleRef.current = element;\n }, [\n className,\n dir,\n element,\n focusVisibleRef\n ]);\n }\n return element;\n};\n","import { setVirtualParent } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport { toMountNodeProps } from '../../utils/toMountNodeProps';\nimport { usePortalMountNode } from './usePortalMountNode';\n/**\n * Create the state required to render Portal.\n *\n * The returned state can be modified with hooks such as usePortalStyles, before being passed to renderPortal_unstable.\n *\n * @param props - props from this instance of Portal\n */ export const usePortal_unstable = (props)=>{\n const { element, className } = toMountNodeProps(props.mountNode);\n const virtualParentRootRef = React.useRef(null);\n const fallbackElement = usePortalMountNode({\n disabled: !!element,\n className\n });\n const mountNode = element !== null && element !== void 0 ? element : fallbackElement;\n const state = {\n children: props.children,\n mountNode,\n virtualParentRootRef\n };\n React.useEffect(()=>{\n if (!mountNode) {\n return;\n }\n const virtualParent = virtualParentRootRef.current;\n // By default, we create a mount node for portal on `document.body` (see usePortalMountNode()) and have following structure:\n //\n // \n // \n //
\n // \n // \n //
\n //
\n // \n //
\n // \n //\n // To make sure that `.elementContains()` works correctly, we link a virtual parent to a portal node (a virtual parent node becomes a parent of mount node):\n // virtual.contains(mountNode) === false\n // (while we need ⬇️⬇️⬇️)\n // elementsContains(virtualParent, mountNode) === true\n // elementsContains(mountNode, virtualParent) === false\n //\n // For more details, check docs for virtual parent utils.\n //\n // However, if a user provides a custom mount node (via `props`) the structure could be different:\n //\n // \n // \n //
\n //
\n // \n //\n // \n //
\n //
\n // \n //\n // A mount node in this case contains portal's content and a virtual parent node. In this case nodes linking is redundant and the check below avoids it.\n //\n // Otherwise, there is a circular reference - both elements are parents of each other:\n // elementsContains(mountNode, virtualParent) === true\n // elementsContains(virtualParent, mountNode) === true\n const isVirtualParentInsideChild = mountNode.contains(virtualParent);\n if (virtualParent && !isVirtualParentInsideChild) {\n setVirtualParent(mountNode, virtualParent);\n return ()=>{\n setVirtualParent(mountNode, undefined);\n };\n }\n }, [\n virtualParentRootRef,\n mountNode\n ]);\n return state;\n};\n","import { isHTMLElement } from '@fluentui/react-utilities';\n/**\n * The function that normalizes the `mountNode` prop into an object with element and className props.\n *\n * @param mountNode - an HTML element or an object with props\n */ export function toMountNodeProps(mountNode) {\n if (isHTMLElement(mountNode)) {\n return {\n element: mountNode\n };\n }\n if (typeof mountNode === 'object') {\n if (mountNode === null) {\n return {\n element: null\n };\n }\n return mountNode;\n }\n return {};\n}\n","import * as ReactDOM from 'react-dom';\nimport * as React from 'react';\n/**\n * Render the final JSX of Portal\n */ export const renderPortal_unstable = (state)=>{\n return /*#__PURE__*/ React.createElement(\"span\", {\n hidden: true,\n ref: state.virtualParentRootRef\n }, state.mountNode && /*#__PURE__*/ ReactDOM.createPortal(state.children, state.mountNode));\n};\n","import * as React from 'react';\nimport { usePortal_unstable } from './usePortal';\nimport { renderPortal_unstable } from './renderPortal';\n/**\n * A portal provides a way to render children into a DOM node\n * that exists outside the DOM hierarchy of the parent component.\n */ export const Portal = (props)=>{\n const state = usePortal_unstable(props);\n return renderPortal_unstable(state);\n};\nPortal.displayName = 'Portal';\n","import { __resetStyles, __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport { MEDIA_QUERY_BREAKPOINT_SELECTOR, SURFACE_BORDER_WIDTH, SURFACE_PADDING } from '../../contexts';\nexport const dialogSurfaceClassNames = {\n root: 'fui-DialogSurface',\n backdrop: 'fui-DialogSurface__backdrop'\n};\n/**\n * Styles for the root slot\n */\nconst useRootBaseStyle = /*#__PURE__*/__resetStyles(\"rhhzfde\", \"r1n1tr5u\", {\n r: [\".rhhzfde{top:0;right:0;bottom:0;left:0;padding-top:24px;padding-right:24px;padding-bottom:24px;padding-left:24px;margin-top:auto;margin-right:auto;margin-bottom:auto;margin-left:auto;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-right-radius:var(--borderRadiusXLarge);border-bottom-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}\", \".rhhzfde:focus{outline-style:none;}\", \".rhhzfde:focus-visible{outline-style:none;}\", \".rhhzfde[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}\", \".rhhzfde[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-width:2px;border-right-width:2px;border-bottom-width:2px;border-left-width:2px;border-bottom-right-radius:var(--borderRadiusMedium);border-bottom-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}\", \".r1n1tr5u{top:0;left:0;bottom:0;right:0;padding-top:24px;padding-left:24px;padding-bottom:24px;padding-right:24px;margin-top:auto;margin-left:auto;margin-bottom:auto;margin-right:auto;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;overflow-x:unset;overflow-y:unset;border-top-width:1px;border-left-width:1px;border-bottom-width:1px;border-right-width:1px;border-top-color:var(--colorTransparentStroke);border-left-color:var(--colorTransparentStroke);border-bottom-color:var(--colorTransparentStroke);border-right-color:var(--colorTransparentStroke);border-bottom-left-radius:var(--borderRadiusXLarge);border-bottom-right-radius:var(--borderRadiusXLarge);border-top-left-radius:var(--borderRadiusXLarge);border-top-right-radius:var(--borderRadiusXLarge);display:block;-webkit-user-select:unset;-moz-user-select:unset;-ms-user-select:unset;user-select:unset;visibility:unset;position:fixed;height:fit-content;max-width:600px;max-height:100vh;box-sizing:border-box;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);}\", \".r1n1tr5u:focus{outline-style:none;}\", \".r1n1tr5u:focus-visible{outline-style:none;}\", \".r1n1tr5u[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}\", \".r1n1tr5u[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border-top-style:solid;border-left-style:solid;border-bottom-style:solid;border-right-style:solid;border-top-width:2px;border-left-width:2px;border-bottom-width:2px;border-right-width:2px;border-bottom-left-radius:var(--borderRadiusMedium);border-bottom-right-radius:var(--borderRadiusMedium);border-top-left-radius:var(--borderRadiusMedium);border-top-right-radius:var(--borderRadiusMedium);border-top-color:var(--colorStrokeFocus2);border-left-color:var(--colorStrokeFocus2);border-bottom-color:var(--colorStrokeFocus2);border-right-color:var(--colorStrokeFocus2);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}\"],\n s: [\"@media (forced-colors: active){.rhhzfde[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}\", \"@media screen and (max-width: 480px){.rhhzfde{max-width:100vw;}}\", \"@media (forced-colors: active){.r1n1tr5u[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}\", \"@media screen and (max-width: 480px){.r1n1tr5u{max-width:100vw;}}\"]\n});\nconst useRootStyles = /*#__PURE__*/__styles({\n animated: {\n abs64n: \"fk73vx1\",\n B3o57yi: \"fc397y7\",\n Bmy1vo4: \"f1b86uth\",\n Bkqvd7p: \"f18ad807\",\n E5pizo: \"f1yzz98r\",\n Bz10aip: \"f15ofi6c\"\n },\n unmounted: {},\n entering: {},\n entered: {\n E5pizo: \"f10nrhrw\",\n Bz10aip: \"f186d0ee\",\n abs64n: \"f5p0z4x\"\n },\n idle: {},\n exiting: {\n Bkqvd7p: \"f1mfizis\"\n },\n exited: {}\n}, {\n d: [\".fk73vx1{opacity:0;}\", \".fc397y7{transition-duration:var(--durationGentle);}\", \".f1b86uth{transition-property:opacity,transform,box-shadow;}\", \".f18ad807{transition-timing-function:var(--curveDecelerateMid);}\", \".f1yzz98r{box-shadow:0px 0px 0px 0px rgba(0, 0, 0, 0.1);}\", \".f15ofi6c{transform:scale(0.85) translateZ(0);}\", \".f10nrhrw{box-shadow:var(--shadow64);}\", \".f186d0ee{transform:scale(1) translateZ(0);}\", \".f5p0z4x{opacity:1;}\", \".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}\"]\n});\n/**\n * Styles for the backdrop slot\n */\nconst useBackdropBaseStyle = /*#__PURE__*/__resetStyles(\"raidwwn\", \"r17vltcu\", [\".raidwwn{top:0px;right:0px;bottom:0px;left:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}\", \".r17vltcu{top:0px;left:0px;bottom:0px;right:0px;background-color:rgba(0, 0, 0, 0.4);position:fixed;transition-duration:var(--durationGentle);transition-timing-function:var(--curveLinear);transition-property:opacity;will-change:opacity;opacity:0;}\"]);\nconst useBackdropStyles = /*#__PURE__*/__styles({\n nestedDialogBackdrop: {\n De3pzq: \"f1c21dwh\"\n },\n unmounted: {},\n entering: {},\n entered: {\n abs64n: \"f5p0z4x\"\n },\n idle: {},\n exiting: {\n Bkqvd7p: \"f1mfizis\"\n },\n exited: {}\n}, {\n d: [\".f1c21dwh{background-color:var(--colorTransparentBackground);}\", \".f5p0z4x{opacity:1;}\", \".f1mfizis{transition-timing-function:var(--curveAccelerateMin);}\"]\n});\n/**\n * Apply styling to the DialogSurface slots based on the state\n */\nexport const useDialogSurfaceStyles_unstable = state => {\n const {\n isNestedDialog,\n root,\n backdrop,\n transitionStatus\n } = state;\n const rootBaseStyle = useRootBaseStyle();\n const rootStyles = useRootStyles();\n const backdropBaseStyle = useBackdropBaseStyle();\n const backdropStyles = useBackdropStyles();\n root.className = mergeClasses(dialogSurfaceClassNames.root, rootBaseStyle, transitionStatus && rootStyles.animated, transitionStatus && rootStyles[transitionStatus], root.className);\n if (backdrop) {\n backdrop.className = mergeClasses(dialogSurfaceClassNames.backdrop, backdropBaseStyle, isNestedDialog && backdropStyles.nestedDialogBackdrop, transitionStatus && backdropStyles[transitionStatus], backdrop.className);\n }\n return state;\n};\n//# sourceMappingURL=useDialogSurfaceStyles.styles.js.map","import * as React from 'react';\nimport { useDialogSurface_unstable } from './useDialogSurface';\nimport { renderDialogSurface_unstable } from './renderDialogSurface';\nimport { useDialogSurfaceStyles_unstable } from './useDialogSurfaceStyles.styles';\nimport { useDialogSurfaceContextValues_unstable } from './useDialogSurfaceContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * DialogSurface component represents the visual part of a `Dialog` as a whole,\n * it contains everything that should be visible.\n */ export const DialogSurface = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDialogSurface_unstable(props, ref);\n const contextValues = useDialogSurfaceContextValues_unstable(state);\n useDialogSurfaceStyles_unstable(state);\n useCustomStyleHook_unstable('useDialogSurfaceStyles_unstable')(state);\n return renderDialogSurface_unstable(state, contextValues);\n});\nDialogSurface.displayName = 'DialogSurface';\n","export function useDialogSurfaceContextValues_unstable(state) {\n const dialogSurface = true;\n return {\n dialogSurface\n };\n}\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { DialogSurfaceProvider } from '../../contexts';\nimport { Portal } from '@fluentui/react-portal';\n/**\n * Render the final JSX of DialogSurface\n */ export const renderDialogSurface_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(Portal, {\n mountNode: state.mountNode,\n children: [\n state.backdrop && /*#__PURE__*/ _jsx(state.backdrop, {}),\n /*#__PURE__*/ _jsx(DialogSurfaceProvider, {\n value: contextValues.dialogSurface,\n children: /*#__PURE__*/ _jsx(state.root, {})\n })\n ]\n });\n};\n","import * as React from 'react';\n/**\n * @internal\n * Utility hook for contexts created by react-context-selector to determine if a parent context exists\n * WARNING: This hook will not work for native React contexts\n *\n * @param context - context created by react-context-selector\n * @returns whether the hook is wrapped by a parent context\n */ export function useHasParentContext(context) {\n const contextValue = React.useContext(context);\n if (contextValue.version) {\n return contextValue.version.current !== -1;\n }\n return false;\n}\n","import { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useCallback } from 'react';\nconst disableScrollElementProp = '__fluentDisableScrollElement';\n/**\n * hook that disables body scrolling through `overflow: hidden` CSS property\n */ export function useDisableBodyScroll() {\n const { targetDocument } = useFluent_unstable();\n return useCallback(()=>{\n if (targetDocument) {\n return disableScroll(targetDocument.body);\n }\n }, [\n targetDocument\n ]);\n}\n/**\n * disables scrolling from a given element through `overflow: hidden` CSS property\n * @param target - element to disable scrolling from\n * @returns a method for enabling scrolling again\n */ export function disableScroll(target) {\n var _target_ownerDocument_defaultView;\n const { clientWidth } = target.ownerDocument.documentElement;\n var _target_ownerDocument_defaultView_innerWidth;\n const innerWidth = (_target_ownerDocument_defaultView_innerWidth = (_target_ownerDocument_defaultView = target.ownerDocument.defaultView) === null || _target_ownerDocument_defaultView === void 0 ? void 0 : _target_ownerDocument_defaultView.innerWidth) !== null && _target_ownerDocument_defaultView_innerWidth !== void 0 ? _target_ownerDocument_defaultView_innerWidth : 0;\n assertIsDisableScrollElement(target);\n if (target[disableScrollElementProp].count === 0) {\n target.style.overflow = 'hidden';\n target.style.paddingRight = `${innerWidth - clientWidth}px`;\n }\n target[disableScrollElementProp].count++;\n return ()=>{\n target[disableScrollElementProp].count--;\n if (target[disableScrollElementProp].count === 0) {\n target.style.overflow = target[disableScrollElementProp].previousOverflowStyle;\n target.style.paddingRight = target[disableScrollElementProp].previousPaddingRightStyle;\n }\n };\n}\nfunction assertIsDisableScrollElement(element) {\n var _element, _disableScrollElementProp;\n var _;\n (_ = (_element = element)[_disableScrollElementProp = disableScrollElementProp]) !== null && _ !== void 0 ? _ : _element[_disableScrollElementProp] = {\n count: 0,\n previousOverflowStyle: element.style.overflow,\n previousPaddingRightStyle: element.style.paddingRight\n };\n}\n","import * as React from 'react';\nimport { useControllableState, useEventCallback, useId, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport { useHasParentContext } from '@fluentui/react-context-selector';\nimport { useDisableBodyScroll, useFocusFirstElement } from '../../utils';\nimport { DialogContext } from '../../contexts';\nimport { useModalAttributes } from '@fluentui/react-tabster';\n/**\n * Create the state required to render Dialog.\n *\n * The returned state can be modified with hooks such as useDialogStyles_unstable,\n * before being passed to renderDialog_unstable.\n *\n * @param props - props from this instance of Dialog\n */ export const useDialog_unstable = (props)=>{\n const { children, modalType = 'modal', onOpenChange, inertTrapFocus = false } = props;\n const [trigger, content] = childrenToTriggerAndContent(children);\n const [open, setOpen] = useControllableState({\n state: props.open,\n defaultState: props.defaultOpen,\n initialState: false\n });\n const requestOpenChange = useEventCallback((data)=>{\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(data.event, data);\n // if user prevents default then do not change state value\n // otherwise updates state value and trigger reference to the element that caused the opening\n if (!data.event.isDefaultPrevented()) {\n setOpen(data.open);\n }\n });\n const focusRef = useFocusFirstElement(open, modalType);\n const disableBodyScroll = useDisableBodyScroll();\n const isBodyScrollLocked = Boolean(open && modalType !== 'non-modal');\n useIsomorphicLayoutEffect(()=>{\n if (isBodyScrollLocked) {\n return disableBodyScroll();\n }\n }, [\n disableBodyScroll,\n isBodyScrollLocked\n ]);\n const { modalAttributes, triggerAttributes } = useModalAttributes({\n trapFocus: modalType !== 'non-modal',\n legacyTrapFocus: !inertTrapFocus\n });\n return {\n components: {\n backdrop: 'div'\n },\n inertTrapFocus,\n open,\n modalType,\n content,\n trigger,\n requestOpenChange,\n dialogTitleId: useId('dialog-title-'),\n isNestedDialog: useHasParentContext(DialogContext),\n dialogRef: focusRef,\n modalAttributes: modalType !== 'non-modal' ? modalAttributes : undefined,\n triggerAttributes\n };\n};\n/**\n * Extracts trigger and content from children\n */ function childrenToTriggerAndContent(children) {\n const childrenArray = React.Children.toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childrenArray.length !== 1 && childrenArray.length !== 2) {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-dialog [useDialog]:\nDialog must contain at least one child ,\nand at most two children (in this order).`);\n }\n }\n switch(childrenArray.length){\n // case where there's a trigger followed by content\n case 2:\n return childrenArray;\n // case where there's only content\n case 1:\n return [\n undefined,\n childrenArray[0]\n ];\n // unknown case\n default:\n return [\n undefined,\n undefined\n ];\n }\n}\n","import * as React from 'react';\nimport { useFocusFinders } from '@fluentui/react-tabster';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Focus first element on content when dialog is opened,\n */ export function useFocusFirstElement(open, modalType) {\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent_unstable();\n const dialogRef = React.useRef(null);\n React.useEffect(()=>{\n if (!open) {\n return;\n }\n const element = dialogRef.current && findFirstFocusable(dialogRef.current);\n if (element) {\n element.focus();\n } else {\n var _dialogRef_current;\n (_dialogRef_current = dialogRef.current) === null || _dialogRef_current === void 0 ? void 0 : _dialogRef_current.focus(); // https://github.com/microsoft/fluentui/issues/25150\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn(`@fluentui/react-dialog [useFocusFirstElement]:\nA Dialog should have at least one focusable element inside DialogSurface.\nPlease add at least a close button either on \\`DialogTitle\\` action slot or inside \\`DialogActions\\``);\n }\n }\n }, [\n findFirstFocusable,\n open,\n modalType,\n targetDocument\n ]);\n return dialogRef;\n}\n","import * as React from 'react';\nimport { useDialog_unstable } from './useDialog';\nimport { renderDialog_unstable } from './renderDialog';\nimport { useDialogContextValues_unstable } from './useDialogContextValues';\n/**\n * The `Dialog` root level component serves as an interface for interaction with all possible behaviors exposed.\n * It provides context down the hierarchy to `children` compound components to allow functionality.\n * This component expects to receive as children either a `DialogSurface` or a `DialogTrigger`\n * and a `DialogSurface` (or some component that will eventually render one of those compound components)\n * in this specific order\n */ export const Dialog = /*#__PURE__*/ React.memo((props)=>{\n const state = useDialog_unstable(props);\n const contextValues = useDialogContextValues_unstable(state);\n return renderDialog_unstable(state, contextValues);\n});\nDialog.displayName = 'Dialog';\n","export function useDialogContextValues_unstable(state) {\n const { modalType, open, dialogRef, dialogTitleId, isNestedDialog, inertTrapFocus, requestOpenChange, modalAttributes, triggerAttributes } = state;\n /**\n * This context is created with \"@fluentui/react-context-selector\",\n * there is no sense to memoize it\n */ const dialog = {\n open,\n modalType,\n dialogRef,\n dialogTitleId,\n isNestedDialog,\n inertTrapFocus,\n modalAttributes,\n triggerAttributes,\n requestOpenChange\n };\n const dialogSurface = false;\n return {\n dialog,\n dialogSurface\n };\n}\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { Transition } from 'react-transition-group';\nimport { DialogProvider, DialogSurfaceProvider } from '../../contexts';\nimport { DialogTransitionProvider } from '../../contexts/dialogTransitionContext';\n/**\n * Render the final JSX of Dialog\n */ export const renderDialog_unstable = (state, contextValues)=>{\n const { content, trigger } = state;\n return /*#__PURE__*/ _jsx(DialogProvider, {\n value: contextValues.dialog,\n children: /*#__PURE__*/ _jsxs(DialogSurfaceProvider, {\n value: contextValues.dialogSurface,\n children: [\n trigger,\n process.env.NODE_ENV === 'test' ? state.open && /*#__PURE__*/ _jsx(DialogTransitionProvider, {\n value: undefined,\n children: content\n }) : /*#__PURE__*/ _jsx(Transition, {\n mountOnEnter: true,\n unmountOnExit: true,\n in: state.open,\n nodeRef: state.dialogRef,\n appear: true,\n // FIXME: this should not be hardcoded tokens.durationGentle\n timeout: 250,\n children: (status)=>/*#__PURE__*/ _jsx(DialogTransitionProvider, {\n value: status,\n children: content\n })\n })\n ]\n })\n });\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { useDrawerBaseStyles } from '../../util/useDrawerBaseStyles.styles';\nimport * as React from 'react';\nexport const drawerOverlayClassNames = {\n root: 'fui-DrawerOverlay',\n backdrop: 'fui-DrawerOverlay__backdrop'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n qhf8xq: \"f19dog8a\",\n Bhzewxz: \"f15twtuk\",\n B5kzvoi: \"f1yab3r1\"\n }\n}, {\n d: [\".f19dog8a{position:fixed;}\", \".f15twtuk{top:0;}\", \".f1yab3r1{bottom:0;}\"]\n});\n/**\n * Apply styling to the DrawerOverlay slots based on the state\n */\nexport const useDrawerOverlayStyles_unstable = state => {\n const baseStyles = useDrawerBaseStyles();\n const styles = useStyles();\n const backdrop = state.root.backdrop;\n state.root.className = mergeClasses(drawerOverlayClassNames.root, baseStyles.root, styles.root, state.size && baseStyles[state.size], state.position && baseStyles[state.position], state.root.className);\n if (backdrop) {\n backdrop.className = mergeClasses(drawerOverlayClassNames.backdrop, backdrop.className);\n }\n return state;\n};\n//# sourceMappingURL=useDrawerOverlayStyles.styles.js.map","import * as React from 'react';\nimport { useDrawerOverlay_unstable } from './useDrawerOverlay';\nimport { renderDrawerOverlay_unstable } from './renderDrawerOverlay';\nimport { useDrawerOverlayStyles_unstable } from './useDrawerOverlayStyles.styles';\n/**\n * DrawerOverlay contains supplementary content and are used for complex creation, edit, or management experiences.\n */ export const DrawerOverlay = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerOverlay_unstable(props, ref);\n useDrawerOverlayStyles_unstable(state);\n return renderDrawerOverlay_unstable(state);\n});\nDrawerOverlay.displayName = 'DrawerOverlay';\n","import * as React from 'react';\nimport { getNativeElementProps, slot } from '@fluentui/react-utilities';\nimport { DialogSurface } from '@fluentui/react-dialog';\nimport { getDefaultDrawerProps } from '../../util/getDefaultDrawerProps';\n/**\n * Create the state required to render DrawerOverlay.\n *\n * The returned state can be modified with hooks such as useDrawerOverlayStyles_unstable,\n * before being passed to renderDrawerOverlay_unstable.\n *\n * @param props - props from this instance of DrawerOverlay\n * @param ref - reference to root HTMLElement of DrawerOverlay\n */ export const useDrawerOverlay_unstable = (props, ref)=>{\n const { open , defaultOpen , size , position } = getDefaultDrawerProps(props);\n const { modalType ='modal' , inertTrapFocus , onOpenChange } = props;\n return {\n components: {\n root: DialogSurface,\n backdrop: 'div'\n },\n root: slot.always(getNativeElementProps('div', {\n ref,\n ...props\n }), {\n elementType: DialogSurface\n }),\n dialog: {\n open,\n defaultOpen,\n onOpenChange,\n inertTrapFocus,\n modalType\n },\n size,\n position\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { Dialog } from '@fluentui/react-dialog';\n/**\n * Render the final JSX of DrawerOverlay\n */ export const renderDrawerOverlay_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(Dialog, state.dialog, /*#__PURE__*/ createElement(state.root, null));\n};\n","import { mergeClasses } from '@griffel/react';\nexport const drawerClassNames = {\n root: 'fui-Drawer'\n};\n/**\n * Apply styling to the Drawer slots based on the state\n */\nexport const useDrawerStyles_unstable = state => {\n state.root.className = mergeClasses(drawerClassNames.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerStyles.styles.js.map","import * as React from 'react';\nimport { useDrawer_unstable } from './useDrawer';\nimport { renderDrawer_unstable } from './renderDrawer';\nimport { useDrawerStyles_unstable } from './useDrawerStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * Drawer contains supplementary content and are used for complex creation, edit, or management experiences.\n */ export const Drawer = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawer_unstable(props, ref);\n useDrawerStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerStyles_unstable')(state);\n return renderDrawer_unstable(state);\n});\nDrawer.displayName = 'Drawer';\n","import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { DrawerOverlay } from '../DrawerOverlay/DrawerOverlay';\nimport { DrawerInline } from '../DrawerInline/DrawerInline';\n/**\n * Create the state required to render Drawer.\n *\n * The returned state can be modified with hooks such as useDrawerStyles_unstable,\n * before being passed to renderDrawer_unstable.\n *\n * @param props - props from this instance of Drawer\n * @param ref - reference to root HTMLElement of Drawer\n */ export const useDrawer_unstable = (props, ref)=>{\n const { type ='overlay' } = props;\n return {\n components: {\n root: type === 'overlay' ? DrawerOverlay : DrawerInline\n },\n root: slot.always(props, {\n defaultProps: {\n ref\n },\n elementType: type === 'overlay' ? DrawerOverlay : DrawerInline\n })\n };\n};\n","/** @jsxRuntime classic */ /** @jsx createElement */ import { createElement } from '@fluentui/react-jsx-runtime';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of Drawer\n */ export const renderDrawer_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ createElement(state.root, null);\n};\n","export function getDefaultDrawerProps(props) {\n const { open =false , defaultOpen =false , size ='small' , position ='start' } = props;\n return {\n size,\n position,\n open,\n defaultOpen\n };\n}\n","import { __styles, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\n/**\n * Styles for the root slot\n */\nexport const useDrawerBaseStyles = /*#__PURE__*/__styles({\n root: {\n z8tnut: \"f1g0x7ka\",\n z189sj: [\"fhxju0i\", \"f1cnd47f\"],\n Byoj8tv: \"f1qch9an\",\n uwmqm3: [\"f1cnd47f\", \"fhxju0i\"],\n B68tc82: \"f1p9o1ba\",\n Bmxbyg5: \"f1sil6mw\",\n Bbmb7ep: [\"f1krrbdw\", \"f1deotkl\"],\n Beyfa6y: [\"f1deotkl\", \"f1krrbdw\"],\n B7oj6ja: [\"f10ostut\", \"f1ozlkrg\"],\n Btl43ni: [\"f1ozlkrg\", \"f10ostut\"],\n B4j52fo: \"fre7gi1\",\n Bekrc4i: [\"f1358rze\", \"f1rvrf73\"],\n Bn0qgzm: \"fqdk4by\",\n ibv6hh: [\"f1rvrf73\", \"f1358rze\"],\n B2u0y6b: \"f1w39fev\",\n Bqenvij: \"f11ysow2\",\n B7ck84d: \"f1ewtqcl\",\n mc9l5x: \"f22iagw\",\n Beiy3e4: \"f1vx9l62\",\n Bt984gj: \"f6jr5hl\",\n Brf1p80: \"fbhxue7\",\n De3pzq: \"fxugw4r\"\n },\n start: {\n oyh7mz: [\"f1vgc2s3\", \"f1e31b4d\"],\n j35jbq: [\"fvfyk4\", \"frppm18\"]\n },\n end: {\n j35jbq: [\"f1e31b4d\", \"f1vgc2s3\"],\n oyh7mz: [\"frppm18\", \"fvfyk4\"]\n },\n small: {\n a9b677: \"f1nfxovz\"\n },\n medium: {\n a9b677: \"fb8d3vz\"\n },\n large: {\n a9b677: \"fi96w9z\"\n },\n full: {\n a9b677: \"fr97h3j\",\n B2u0y6b: \"f1w39fev\"\n }\n}, {\n d: [\".f1g0x7ka{padding-top:0;}\", \".fhxju0i{padding-right:0;}\", \".f1cnd47f{padding-left:0;}\", \".f1qch9an{padding-bottom:0;}\", \".f1p9o1ba{overflow-x:hidden;}\", \".f1sil6mw{overflow-y:hidden;}\", \".f1krrbdw{border-bottom-right-radius:0;}\", \".f1deotkl{border-bottom-left-radius:0;}\", \".f10ostut{border-top-right-radius:0;}\", \".f1ozlkrg{border-top-left-radius:0;}\", \".fre7gi1{border-top-width:0;}\", \".f1358rze{border-right-width:0;}\", \".f1rvrf73{border-left-width:0;}\", \".fqdk4by{border-bottom-width:0;}\", \".f1w39fev{max-width:100vw;}\", \".f11ysow2{height:auto;}\", \".f1ewtqcl{box-sizing:border-box;}\", \".f22iagw{display:flex;}\", \".f1vx9l62{flex-direction:column;}\", \".f6jr5hl{align-items:flex-start;}\", \".fbhxue7{justify-content:flex-start;}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", \".f1vgc2s3{left:0;}\", \".f1e31b4d{right:0;}\", \".fvfyk4{right:auto;}\", \".frppm18{left:auto;}\", \".f1nfxovz{width:320px;}\", \".fb8d3vz{width:592px;}\", \".fi96w9z{width:940px;}\", \".fr97h3j{width:100vw;}\"]\n});\n//# sourceMappingURL=useDrawerBaseStyles.styles.js.map","import * as React from 'react';\nconst defaultContextValue = {\n scrollState: 'none',\n setScrollState: ()=>({})\n};\nexport const drawerContext = React.createContext(undefined);\nexport const DrawerProvider = drawerContext.Provider;\nexport const useDrawerContext_unstable = ()=>{\n var _React_useContext;\n return (_React_useContext = React.useContext(drawerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : defaultContextValue;\n};\nexport const useDrawerContextValue = ()=>{\n const [scrollState, setScrollState] = React.useState('none');\n return {\n setScrollState,\n scrollState\n };\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\n/**\n * CSS variable names used internally for uniform styling in Drawer.\n */\nexport const drawerCSSVars = {\n drawerSizeVar: '--fui-Drawer--size'\n};\n/**\n * Default shared styles for the Drawer component\n */\nexport const drawerDefaultStyles = {\n overflow: 'hidden',\n width: `var(${drawerCSSVars.drawerSizeVar})`,\n maxWidth: '100vw',\n height: 'auto',\n maxHeight: '100vh',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n backgroundColor: tokens.colorNeutralBackground1,\n color: tokens.colorNeutralForeground1\n};\n/**\n * Shared dynamic styles for the Drawer component\n */\nconst useDrawerStyles = /*#__PURE__*/__styles({\n start: {\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n u1mtju: [\"f1xteiwb\", \"fsqykmd\"],\n oyh7mz: [\"f1vgc2s3\", \"f1e31b4d\"],\n j35jbq: [\"fvfyk4\", \"frppm18\"]\n },\n end: {\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n B4g9neb: [\"fsqykmd\", \"f1xteiwb\"],\n j35jbq: [\"f1e31b4d\", \"f1vgc2s3\"],\n oyh7mz: [\"frppm18\", \"fvfyk4\"]\n },\n bottom: {\n B5kzvoi: \"f1yab3r1\",\n Bhzewxz: \"f198g47y\"\n },\n small: {\n Bjr0ffy: \"f1exhnwo\"\n },\n medium: {\n Bjr0ffy: \"fqofjzu\"\n },\n large: {\n Bjr0ffy: \"fce6y3m\"\n },\n full: {\n Bjr0ffy: \"fsdmzs6\"\n }\n}, {\n d: [[\".f1xteiwb{border-right:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -1\n }], [\".fsqykmd{border-left:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -1\n }], \".f1vgc2s3{left:0;}\", \".f1e31b4d{right:0;}\", \".fvfyk4{right:auto;}\", \".frppm18{left:auto;}\", [\".fsqykmd{border-left:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -1\n }], [\".f1xteiwb{border-right:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -1\n }], \".f1yab3r1{bottom:0;}\", \".f198g47y{top:auto;}\", \".f1exhnwo{--fui-Drawer--size:320px;}\", \".fqofjzu{--fui-Drawer--size:592px;}\", \".fce6y3m{--fui-Drawer--size:940px;}\", \".fsdmzs6{--fui-Drawer--size:100vw;}\"]\n});\nexport const useDrawerBottomBaseStyles = /*#__PURE__*/__styles({\n small: {\n Bjr0ffy: \"f1exhnwo\"\n },\n medium: {\n Bjr0ffy: \"fqofjzu\"\n },\n large: {\n Bjr0ffy: \"fce6y3m\"\n },\n full: {\n Bjr0ffy: \"f1rat34m\"\n }\n}, {\n d: [\".f1exhnwo{--fui-Drawer--size:320px;}\", \".fqofjzu{--fui-Drawer--size:592px;}\", \".fce6y3m{--fui-Drawer--size:940px;}\", \".f1rat34m{--fui-Drawer--size:100%;}\"]\n});\nexport const useDrawerBaseClassNames = ({\n position,\n size\n}) => {\n const baseStyles = useDrawerStyles();\n const bottomBaseStyles = useDrawerBottomBaseStyles();\n return mergeClasses(baseStyles[position], position === 'bottom' && bottomBaseStyles[size], position !== 'bottom' && baseStyles[size]);\n};\n//# sourceMappingURL=useDrawerBaseStyles.styles.js.map","import { createPresenceComponent, motionTokens } from '@fluentui/react-motion';\nimport { tokens } from '@fluentui/react-theme';\nimport { drawerCSSVars } from './useDrawerBaseStyles.styles';\nconst durations = {\n small: motionTokens.durationGentle,\n medium: motionTokens.durationSlow,\n large: motionTokens.durationSlower,\n full: motionTokens.durationUltraSlow\n};\n/**\n * @internal\n */ export function getPositionTransform(position, sizeVar, dir) {\n const leftToRightTransform = `translate3d(var(${sizeVar}), 0, 0)`;\n const rightToLeftTransform = `translate3d(calc(var(${sizeVar}) * -1), 0, 0)`;\n const bottomToTopTransform = `translate3d(0, var(${sizeVar}), 0)`;\n if (position === 'start') {\n return dir === 'ltr' ? rightToLeftTransform : leftToRightTransform;\n }\n if (position === 'end') {\n return dir === 'ltr' ? leftToRightTransform : rightToLeftTransform;\n }\n if (position === 'bottom') {\n return bottomToTopTransform;\n }\n return 'translate3d(0, 0, 0)';\n}\n/**\n * @internal\n */ export const InlineDrawerMotion = createPresenceComponent(({ position, size, dir })=>{\n const keyframes = [\n {\n /**\n * TODO: Once the #31663 lands, we should update the RTL logic to use Motion APIs\n * The work will be done in the #32817\n */ transform: getPositionTransform(position, drawerCSSVars.drawerSizeVar, dir),\n opacity: 0\n },\n {\n transform: 'translate3d(0, 0, 0)',\n opacity: 1\n }\n ];\n const duration = durations[size];\n return {\n enter: {\n keyframes,\n duration,\n easing: motionTokens.curveDecelerateMid\n },\n exit: {\n keyframes: [\n ...keyframes\n ].reverse(),\n duration,\n easing: motionTokens.curveAccelerateMin\n }\n };\n});\n/**\n * @internal\n */ export const OverlayDrawerMotion = createPresenceComponent(({ position, size, dir })=>{\n const keyframes = [\n {\n /**\n * TODO: Once the #31663 lands, we should update the RTL logic to use Motion APIs\n * The work will be done in the #32817\n */ transform: getPositionTransform(position, drawerCSSVars.drawerSizeVar, dir),\n boxShadow: `0px ${tokens.colorTransparentBackground}`,\n opacity: 0\n },\n {\n transform: 'translate3d(0, 0, 0)',\n boxShadow: tokens.shadow64,\n opacity: 1\n }\n ];\n const duration = durations[size];\n return {\n enter: {\n keyframes,\n duration,\n easing: motionTokens.curveDecelerateMid\n },\n exit: {\n keyframes: [\n ...keyframes\n ].reverse(),\n duration,\n easing: motionTokens.curveAccelerateMin\n }\n };\n});\n/**\n * @internal\n */ export const OverlaySurfaceBackdropMotion = createPresenceComponent(({ size })=>{\n const keyframes = [\n {\n opacity: 0\n },\n {\n opacity: 1\n }\n ];\n const duration = durations[size];\n return {\n enter: {\n keyframes,\n easing: motionTokens.curveLinear,\n duration\n },\n exit: {\n keyframes: [\n ...keyframes\n ].reverse(),\n easing: motionTokens.curveLinear,\n duration\n }\n };\n});\n","export function useDrawerDefaultProps(props) {\n const { open = false, size = 'small', position = 'start' } = props;\n return {\n size,\n position,\n open\n };\n}\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\n/**\n * Styles for the backdrop slot\n */\nconst useBackdropResetStyles = /*#__PURE__*/__resetStyles(\"rmnljus\", null, [\".rmnljus{inset:0px;position:fixed;background-color:rgba(0, 0, 0, 0.4);}\"]);\nconst useBackdropStyles = /*#__PURE__*/__styles({\n nested: {\n De3pzq: \"f1c21dwh\"\n }\n}, {\n d: [\".f1c21dwh{background-color:var(--colorTransparentBackground);}\"]\n});\n/**\n * Apply styling to the OverlayDrawerSurface slots based on the state\n */\nexport const useOverlayDrawerSurfaceStyles_unstable = state => {\n 'use no memo';\n\n const backdropResetStyles = useBackdropResetStyles();\n const backdropStyles = useBackdropStyles();\n if (state.backdrop) {\n state.backdrop.className = mergeClasses(backdropResetStyles, state.isNestedDialog && backdropStyles.nested, state.backdrop.className);\n }\n return state;\n};\n//# sourceMappingURL=useOverlayDrawerSurfaceStyles.styles.js.map","import * as React from 'react';\nimport { useDialogSurface_unstable, useDialogSurfaceContextValues_unstable, renderDialogSurface_unstable } from '@fluentui/react-dialog';\nimport { useOverlayDrawerSurfaceStyles_unstable } from './useOverlayDrawerSurfaceStyles.styles';\n/**\n * @internal\n * OverlayDrawerSurface is a proxy for DialogSurface as is only meant to be used internally for Drawer.\n */ export const OverlayDrawerSurface = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const dialogSurfaceState = useDialogSurface_unstable({\n ...props,\n /**\n * Drawer accepts a `div` or `aside` element type, but Dialog only accepts a `div` element type.\n * We need to cast the ref to a `div` element type to not break Dialog's ref type.\n *\n * FIXME: Evaluate the possibility to remove this cast when Dialog is refactored to accept `aside` elements.\n */ as: props.as\n }, ref);\n const dialogSurfaceContextValues = useDialogSurfaceContextValues_unstable(dialogSurfaceState);\n useOverlayDrawerSurfaceStyles_unstable(dialogSurfaceState);\n return renderDialogSurface_unstable(dialogSurfaceState, dialogSurfaceContextValues);\n});\nOverlayDrawerSurface.displayName = 'OverlayDrawerSurface';\n","import * as React from 'react';\n/**\n * @internal\n * @todo Drawer is a first component to use this pattern, we should move this to a shared package if it will be used in more components\n */ export function mergePresenceSlots(inputSlot, Component, params) {\n if (inputSlot === null) {\n return null;\n }\n return {\n ...inputSlot,\n children: (_, props)=>{\n if (inputSlot === null || inputSlot === void 0 ? void 0 : inputSlot.children) {\n return inputSlot.children(Component, {\n ...props,\n ...params\n });\n }\n return /*#__PURE__*/ React.createElement(Component, {\n ...props,\n ...params\n }, props.children);\n }\n };\n}\n","import * as React from 'react';\nimport { Dialog } from '@fluentui/react-dialog';\nimport { slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { OverlayDrawerMotion, OverlaySurfaceBackdropMotion } from '../../shared/drawerMotions';\nimport { useDrawerDefaultProps } from '../../shared/useDrawerDefaultProps';\nimport { OverlayDrawerSurface } from './OverlayDrawerSurface';\nimport { mergePresenceSlots } from '../../shared/drawerMotionUtils';\nconst STATIC_MOTION = {\n active: true,\n canRender: true,\n ref: /*#__PURE__*/ React.createRef(),\n type: 'idle'\n};\n/**\n * Create the state required to render OverlayDrawer.\n *\n * The returned state can be modified with hooks such as useOverlayDrawerStyles_unstable,\n * before being passed to renderOverlayDrawer_unstable.\n *\n * @param props - props from this instance of OverlayDrawer\n * @param ref - reference to root HTMLElement of OverlayDrawer\n */ export const useOverlayDrawer_unstable = (props, ref)=>{\n const { open, size, position } = useDrawerDefaultProps(props);\n const { backdropMotion, modalType = 'modal', inertTrapFocus, onOpenChange, surfaceMotion, mountNode } = props;\n const { dir } = useFluent();\n const backdropProps = slot.resolveShorthand(props.backdrop);\n const hasCustomBackdrop = modalType !== 'non-modal' && backdropProps !== null;\n const root = slot.always({\n ...props,\n ref,\n backdrop: hasCustomBackdrop ? {\n ...backdropProps\n } : null,\n backdropMotion: mergePresenceSlots(backdropMotion, OverlaySurfaceBackdropMotion, {\n size\n })\n }, {\n /**\n * Drawer accepts a `div` or `aside` element type, but Dialog only accepts a `div` element type.\n * We need to cast the ref to a `div` element type to not break Dialog's ref type.\n */ elementType: OverlayDrawerSurface\n });\n const dialog = slot.always({\n open,\n onOpenChange,\n inertTrapFocus,\n modalType,\n surfaceMotion: mergePresenceSlots(surfaceMotion, OverlayDrawerMotion, {\n position,\n size,\n dir\n }),\n /**\n * children is not needed here because we construct the children in the render function,\n * but it's required by DialogProps\n */ children: null\n }, {\n elementType: Dialog\n });\n return {\n components: {\n root: OverlayDrawerSurface,\n dialog: Dialog\n },\n root,\n dialog,\n open,\n size,\n position,\n mountNode,\n motion: STATIC_MOTION\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { DrawerProvider } from '../../contexts/drawerContext';\n/**\n * Render the final JSX of OverlayDrawer\n */ export const renderOverlayDrawer_unstable = (state, contextValue)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(DrawerProvider, {\n value: contextValue,\n children: /*#__PURE__*/ _jsx(state.dialog, {\n children: /*#__PURE__*/ _jsx(state.root, {})\n })\n });\n};\n","import * as React from 'react';\nimport { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport { drawerCSSVars, drawerDefaultStyles, useDrawerBaseClassNames } from '../../shared/useDrawerBaseStyles.styles';\nexport const overlayDrawerClassNames = {\n root: 'fui-OverlayDrawer',\n backdrop: 'fui-OverlayDrawer__backdrop'\n};\n/**\n * Styles for the root slot\n */\nconst useDrawerResetStyles = /*#__PURE__*/__resetStyles(\"r7dfyj8\", \"rmx02j7\", {\n r: [\".r7dfyj8{overflow:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}\", \".r7dfyj8:focus{outline-style:none;}\", \".r7dfyj8:focus-visible{outline-style:none;}\", \".r7dfyj8[data-fui-focus-visible]{border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent;}\", \".r7dfyj8[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);right:calc(2px * -1);bottom:calc(2px * -1);left:calc(2px * -1);}\", \".rmx02j7{overflow:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:fixed;top:0;bottom:0;}\", \".rmx02j7:focus{outline-style:none;}\", \".rmx02j7:focus-visible{outline-style:none;}\", \".rmx02j7[data-fui-focus-visible]{border-top-color:transparent;border-left-color:transparent;border-bottom-color:transparent;border-right-color:transparent;}\", \".rmx02j7[data-fui-focus-visible]::after{content:\\\"\\\";position:absolute;pointer-events:none;z-index:1;border:2px solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);top:calc(2px * -1);left:calc(2px * -1);bottom:calc(2px * -1);right:calc(2px * -1);}\"],\n s: [\"@media (forced-colors: active){.r7dfyj8[data-fui-focus-visible]::after{border-top-color:Highlight;border-right-color:Highlight;border-bottom-color:Highlight;border-left-color:Highlight;}}\", \"@media (forced-colors: active){.rmx02j7[data-fui-focus-visible]::after{border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:Highlight;border-right-color:Highlight;}}\"]\n});\nconst useDrawerRootStyles = /*#__PURE__*/__styles({\n start: {},\n end: {},\n bottom: {\n Bhzewxz: \"f198g47y\",\n Bqenvij: \"fub80nq\",\n a9b677: \"fr97h3j\"\n },\n absolute: {\n qhf8xq: \"f1euv43f\"\n }\n}, {\n d: [\".f198g47y{top:auto;}\", \".fub80nq{height:var(--fui-Drawer--size);}\", \".fr97h3j{width:100vw;}\", \".f1euv43f{position:absolute;}\"]\n});\n/**\n * Apply styling to the OverlayDrawer slots based on the state\n */\nexport const useOverlayDrawerStyles_unstable = state => {\n 'use no memo';\n\n const baseClassNames = useDrawerBaseClassNames(state);\n const resetStyles = useDrawerResetStyles();\n const rootStyles = useDrawerRootStyles();\n const absoluteStyles = !!state.mountNode && rootStyles.absolute;\n const backdrop = state.root.backdrop;\n state.root.className = mergeClasses(overlayDrawerClassNames.root, baseClassNames, resetStyles, rootStyles[state.position], absoluteStyles, state.root.className);\n if (backdrop) {\n backdrop.className = mergeClasses(overlayDrawerClassNames.backdrop, absoluteStyles, backdrop.className);\n }\n return state;\n};\n//# sourceMappingURL=useOverlayDrawerStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerContextValue } from '../../contexts/drawerContext';\nimport { useOverlayDrawer_unstable } from './useOverlayDrawer';\nimport { renderOverlayDrawer_unstable } from './renderOverlayDrawer';\nimport { useOverlayDrawerStyles_unstable } from './useOverlayDrawerStyles.styles';\n/**\n * OverlayDrawer contains supplementary content and are used for complex creation, edit, or management experiences.\n */ export const OverlayDrawer = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useOverlayDrawer_unstable(props, ref);\n const contextValue = useDrawerContextValue();\n useOverlayDrawerStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerOverlayStyles_unstable')(state);\n useCustomStyleHook_unstable('useOverlayDrawerStyles_unstable')(state);\n return renderOverlayDrawer_unstable(state, contextValue);\n});\nOverlayDrawer.displayName = 'OverlayDrawer';\n","import * as React from 'react';\nimport { presenceMotionSlot } from '@fluentui/react-motion';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { InlineDrawerMotion } from '../../shared/drawerMotions';\nimport { useDrawerDefaultProps } from '../../shared/useDrawerDefaultProps';\nconst STATIC_MOTION = {\n active: true,\n canRender: true,\n ref: React.createRef(),\n type: 'idle'\n};\n/**\n * Create the state required to render InlineDrawer.\n *\n * The returned state can be modified with hooks such as useInlineDrawerStyles_unstable,\n * before being passed to renderInlineDrawer_unstable.\n *\n * @param props - props from this instance of InlineDrawer\n * @param ref - reference to root HTMLElement of InlineDrawer\n */ export const useInlineDrawer_unstable = (props, ref)=>{\n const { size, position, open } = useDrawerDefaultProps(props);\n const { separator = false, surfaceMotion } = props;\n const { dir } = useFluent();\n const state = {\n components: {\n root: 'div',\n // casting from internal type that has required properties\n // to external type that only has optional properties\n // converting to unknown first as both Function component signatures are not compatible\n surfaceMotion: InlineDrawerMotion\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ...props,\n ref\n }), {\n elementType: 'div'\n }),\n open,\n position,\n size,\n separator,\n surfaceMotion: presenceMotionSlot(surfaceMotion, {\n elementType: InlineDrawerMotion,\n defaultProps: {\n position,\n size,\n dir,\n visible: open,\n unmountOnExit: true\n }\n }),\n // Deprecated props\n motion: STATIC_MOTION\n };\n return state;\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { DrawerProvider } from '../../contexts/drawerContext';\n/**\n * Render the final JSX of InlineDrawer\n */ export const renderInlineDrawer_unstable = (state, contextValue)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(DrawerProvider, {\n value: contextValue,\n children: /*#__PURE__*/ _jsx(state.surfaceMotion, {\n children: /*#__PURE__*/ _jsx(state.root, {})\n })\n });\n};\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { drawerCSSVars, drawerDefaultStyles, useDrawerBaseClassNames } from '../../shared/useDrawerBaseStyles.styles';\nexport const inlineDrawerClassNames = {\n root: 'fui-InlineDrawer'\n};\nconst useDrawerResetStyles = /*#__PURE__*/__resetStyles(\"rkjj3x6\", null, [\".rkjj3x6{overflow:hidden;width:var(--fui-Drawer--size);max-width:100vw;height:auto;max-height:100vh;box-sizing:border-box;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;background-color:var(--colorNeutralBackground1);color:var(--colorNeutralForeground1);position:relative;}\"]);\n/**\n * Styles for the root slot\n */\nconst borderValue = `1px solid ${tokens.colorNeutralBackground3}`;\nconst useDrawerRootStyles = /*#__PURE__*/__styles({\n separatorStart: {\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n u1mtju: [\"f1cxmi7i\", \"f1j970fk\"]\n },\n separatorEnd: {\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n B4g9neb: [\"f1j970fk\", \"f1cxmi7i\"]\n },\n separatorBottom: {\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n i8vvqc: \"f1n3kblk\"\n },\n start: {},\n end: {},\n bottom: {\n a9b677: \"fly5x3f\",\n Bqenvij: \"fub80nq\"\n }\n}, {\n d: [[\".f1cxmi7i{border-right:1px solid var(--colorNeutralBackground3);}\", {\n p: -1\n }], [\".f1j970fk{border-left:1px solid var(--colorNeutralBackground3);}\", {\n p: -1\n }], [\".f1j970fk{border-left:1px solid var(--colorNeutralBackground3);}\", {\n p: -1\n }], [\".f1cxmi7i{border-right:1px solid var(--colorNeutralBackground3);}\", {\n p: -1\n }], [\".f1n3kblk{border-top:1px solid var(--colorNeutralBackground3);}\", {\n p: -1\n }], \".fly5x3f{width:100%;}\", \".fub80nq{height:var(--fui-Drawer--size);}\"]\n});\nfunction getSeparatorClass(state, classNames) {\n if (!state.separator) {\n return undefined;\n }\n switch (state.position) {\n case 'start':\n return classNames.separatorStart;\n case 'end':\n return classNames.separatorEnd;\n case 'bottom':\n return classNames.separatorBottom;\n default:\n return undefined;\n }\n}\n/**\n * Apply styling to the InlineDrawer slots based on the state\n */\nexport const useInlineDrawerStyles_unstable = state => {\n 'use no memo';\n\n const resetStyles = useDrawerResetStyles();\n const baseClassNames = useDrawerBaseClassNames(state);\n const rootStyles = useDrawerRootStyles();\n state.root.className = mergeClasses(inlineDrawerClassNames.root, resetStyles, baseClassNames, getSeparatorClass(state, rootStyles), rootStyles[state.position], state.root.className);\n return state;\n};\n//# sourceMappingURL=useInlineDrawerStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerContextValue } from '../../contexts/drawerContext';\nimport { useInlineDrawer_unstable } from './useInlineDrawer';\nimport { renderInlineDrawer_unstable } from './renderInlineDrawer';\nimport { useInlineDrawerStyles_unstable } from './useInlineDrawerStyles.styles';\n/**\n * InlineDrawer is often used for navigation that is not dismissible. As it is on the same level as\n * the main surface, users can still interact with other UI elements.\n */ export const InlineDrawer = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useInlineDrawer_unstable(props, ref);\n const contextValue = useDrawerContextValue();\n useInlineDrawerStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerInlineStyles_unstable')(state);\n useCustomStyleHook_unstable('useInlineDrawerStyles_unstable')(state);\n return renderInlineDrawer_unstable(state, contextValue);\n});\nInlineDrawer.displayName = 'InlineDrawer';\n","import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { OverlayDrawer } from '../OverlayDrawer';\nimport { InlineDrawer } from '../InlineDrawer';\n/**\n * Create the state required to render Drawer.\n *\n * The returned state can be modified with hooks such as useDrawerStyles_unstable,\n * before being passed to renderDrawer_unstable.\n *\n * @param props - props from this instance of Drawer\n * @param ref - reference to root HTMLElement of Drawer\n */ export const useDrawer_unstable = (props, ref)=>{\n // casting here to convert a union of functions to a single function with the union of parameters\n const elementType = props.type === 'inline' ? InlineDrawer : OverlayDrawer;\n const root = slot.always({\n ref,\n ...props\n }, {\n elementType\n });\n return {\n components: {\n root: elementType\n },\n root\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { DrawerProvider } from '../../contexts/drawerContext';\n/**\n * Render the final JSX of Drawer\n */ export const renderDrawer_unstable = (state, contextValue)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(DrawerProvider, {\n value: contextValue,\n children: /*#__PURE__*/ _jsx(state.root, {})\n });\n};\n","import { mergeClasses } from '@griffel/react';\nexport const drawerClassNames = {\n root: 'fui-Drawer'\n};\n/**\n * Apply styling to the Drawer slots based on the state\n */\nexport const useDrawerStyles_unstable = state => {\n 'use no memo';\n\n state.root.className = mergeClasses(drawerClassNames.root, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerContextValue } from '../../contexts/drawerContext';\nimport { useDrawer_unstable } from './useDrawer';\nimport { renderDrawer_unstable } from './renderDrawer';\nimport { useDrawerStyles_unstable } from './useDrawerStyles.styles';\n/**\n * Drawer contains supplementary content and are used for complex creation, edit, or management experiences.\n */ export const Drawer = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawer_unstable(props, ref);\n const contextValue = useDrawerContextValue();\n useDrawerStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerStyles_unstable')(state);\n return renderDrawer_unstable(state, contextValue);\n});\nDrawer.displayName = 'Drawer';\n","import * as React from 'react';\nimport { mergeCallbacks, slot, useAnimationFrame, useMergedRefs, useIsomorphicLayoutEffect, getIntrinsicElementProps } from '@fluentui/react-utilities';\nimport { useDrawerContext_unstable } from '../../contexts/drawerContext';\n/**\n * @internal\n *\n * Get the current scroll state of the DrawerBody.\n *\n * @param element - HTMLElement to check scroll state of\n */ const getScrollState = ({ scrollTop, scrollHeight, clientHeight })=>{\n if (scrollHeight <= clientHeight) {\n return 'none';\n }\n if (scrollTop === 0) {\n return 'top';\n }\n if (scrollTop + clientHeight === scrollHeight) {\n return 'bottom';\n }\n return 'middle';\n};\n/**\n * Create the state required to render DrawerBody.\n *\n * The returned state can be modified with hooks such as useDrawerBodyStyles_unstable,\n * before being passed to renderDrawerBody_unstable.\n *\n * @param props - props from this instance of DrawerBody\n * @param ref - reference to root HTMLElement of DrawerBody\n */ export const useDrawerBody_unstable = (props, ref)=>{\n const { setScrollState } = useDrawerContext_unstable();\n const scrollRef = React.useRef(null);\n const [setAnimationFrame, cancelAnimationFrame] = useAnimationFrame();\n const updateScrollState = React.useCallback(()=>{\n if (!scrollRef.current) {\n return;\n }\n setScrollState(getScrollState(scrollRef.current));\n }, [\n setScrollState\n ]);\n const onScroll = React.useCallback(()=>{\n cancelAnimationFrame();\n setAnimationFrame(()=>updateScrollState());\n }, [\n cancelAnimationFrame,\n setAnimationFrame,\n updateScrollState\n ]);\n useIsomorphicLayoutEffect(()=>{\n updateScrollState();\n /* update scroll state when children changes */ }, [\n props.children,\n updateScrollState\n ]);\n useIsomorphicLayoutEffect(()=>{\n updateScrollState();\n return ()=>cancelAnimationFrame();\n }, [\n cancelAnimationFrame,\n updateScrollState\n ]);\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n // FIXME:\n // `ref` is wrongly assigned to be `HTMLElement` instead of `HTMLDivElement`\n // but since it would be a breaking change to fix it, we are casting ref to it's proper type\n ref: useMergedRefs(ref, scrollRef),\n ...props,\n onScroll: mergeCallbacks(props.onScroll, onScroll)\n }), {\n elementType: 'div'\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerBody\n */ export const renderDrawerBody_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerBodyClassNames = {\n root: 'fui-DrawerBody'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__resetStyles(\"ri6rvx7\", null, [\".ri6rvx7{padding:0 var(--spacingHorizontalXXL);flex:1;align-self:stretch;position:relative;z-index:1;overflow:auto;}\", \".ri6rvx7:last-child{padding-bottom:calc(var(--spacingHorizontalXXL) + 1px);}\", \".ri6rvx7:first-child{padding-top:calc(var(--spacingHorizontalXXL) + 1px);}\"]);\n/**\n * Apply styling to the DrawerBody slots based on the state\n */\nexport const useDrawerBodyStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(drawerBodyClassNames.root, styles, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerBodyStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerBody_unstable } from './useDrawerBody';\nimport { renderDrawerBody_unstable } from './renderDrawerBody';\nimport { useDrawerBodyStyles_unstable } from './useDrawerBodyStyles.styles';\n/**\n * DrawerBody provides with a container for the main content of a Drawer.\n */ export const DrawerBody = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerBody_unstable(props, ref);\n useDrawerBodyStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerBodyStyles_unstable')(state);\n return renderDrawerBody_unstable(state);\n});\nDrawerBody.displayName = 'DrawerBody';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useDrawerContext_unstable } from '../../contexts/drawerContext';\n/**\n * Create the state required to render DrawerHeader.\n *\n * The returned state can be modified with hooks such as useDrawerHeaderStyles_unstable,\n * before being passed to renderDrawerHeader_unstable.\n *\n * @param props - props from this instance of DrawerHeader\n * @param ref - reference to root HTMLElement of DrawerHeader\n */ export const useDrawerHeader_unstable = (props, ref)=>{\n const { scrollState } = useDrawerContext_unstable();\n return {\n components: {\n root: 'header'\n },\n root: slot.always(getIntrinsicElementProps('header', {\n ref,\n role: 'none',\n ...props\n }), {\n elementType: 'header'\n }),\n scrollState\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerHeader\n */ export const renderDrawerHeader_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { drawerSeparatorStyles } from '../../shared/drawerSeparatorStyles';\nexport const drawerHeaderClassNames = {\n root: 'fui-DrawerHeader'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__resetStyles(\"r3ovn4i\", null, [\".r3ovn4i{width:100%;max-width:100%;padding:var(--spacingVerticalXXL) var(--spacingHorizontalXXL) var(--spacingVerticalS);gap:var(--spacingHorizontalS);align-self:stretch;display:flex;flex-direction:column;box-sizing:border-box;position:relative;z-index:2;}\"]);\nconst useDrawerHeaderStyles = /*#__PURE__*/__styles({\n separator: {\n Dlnsje: \"fxnjyrl\",\n E3zdtr: \"f1mdlcz9\",\n B1piin3: [\"f15yvnhg\", \"f1n6gb5g\"],\n Eqx8gd: [\"f1n6gb5g\", \"f15yvnhg\"],\n Bp15pi3: \"f1564nw5\",\n Bjyk6c5: \"fdlpgxj\",\n F2fol1: \"f15cmg8x\",\n Ba2ppi3: \"f3f8dgl\",\n B1dyfl9: \"fjvo4va\",\n Bsft5z2: \"f13zj6fq\",\n By385i5: \"fo72kxq\"\n },\n separatorVisible: {\n Bp15pi3: \"fjsqi2x\"\n }\n}, {\n d: [\".fxnjyrl::after{height:1px;}\", \".f1mdlcz9::after{position:absolute;}\", \".f15yvnhg::after{right:0;}\", \".f1n6gb5g::after{left:0;}\", \".f1564nw5::after{opacity:0;}\", \".fdlpgxj::after{background-color:var(--colorNeutralStroke1);}\", \".f15cmg8x::after{transition-duration:var(--durationNormal);}\", \".f3f8dgl::after{transition-property:opacity;}\", \".fjvo4va::after{transition-timing-function:var(--curveEasyEase);}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".fo72kxq::after{bottom:0;}\", \".fjsqi2x::after{opacity:1;}\"]\n});\n/**\n * Apply styling to the DrawerHeader slots based on the state\n */\nexport const useDrawerHeaderStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const rootStyles = useDrawerHeaderStyles();\n state.root.className = mergeClasses(drawerHeaderClassNames.root, styles, state.scrollState !== 'none' && rootStyles.separator, ['middle', 'bottom'].includes(state.scrollState) && rootStyles.separatorVisible, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerHeaderStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerHeader_unstable } from './useDrawerHeader';\nimport { renderDrawerHeader_unstable } from './renderDrawerHeader';\nimport { useDrawerHeaderStyles_unstable } from './useDrawerHeaderStyles.styles';\n/**\n * DrawerHeader provides a structured header for the drawer component.\n */ export const DrawerHeader = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerHeader_unstable(props, ref);\n useDrawerHeaderStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerHeaderStyles_unstable')(state);\n return renderDrawerHeader_unstable(state);\n});\nDrawerHeader.displayName = 'DrawerHeader';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useDialogContext_unstable } from '@fluentui/react-dialog';\n/**\n * Create the state required to render DrawerHeaderTitle.\n *\n * The returned state can be modified with hooks such as useDrawerHeaderTitleStyles_unstable,\n * before being passed to renderDrawerHeaderTitle_unstable.\n *\n * @param props - props from this instance of DrawerHeaderTitle\n * @param ref - reference to root HTMLElement of DrawerHeaderTitle\n */ export const useDrawerHeaderTitle_unstable = (props, ref)=>{\n const { children, heading } = props;\n const headingId = useDialogContext_unstable((ctx)=>ctx.dialogTitleId);\n return {\n components: {\n root: 'div',\n heading: 'h2',\n action: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n heading: slot.optional(heading, {\n defaultProps: {\n id: headingId,\n children\n },\n renderByDefault: true,\n elementType: 'h2'\n }),\n action: slot.optional(props.action, {\n elementType: 'div'\n })\n };\n};\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerHeaderTitle\n */ export const renderDrawerHeaderTitle_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(state.root, {\n children: [\n state.heading && /*#__PURE__*/ _jsx(state.heading, {}),\n state.action && /*#__PURE__*/ _jsx(state.action, {})\n ]\n });\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { useDialogTitleStyles_unstable } from '@fluentui/react-dialog';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerHeaderTitleClassNames = {\n root: 'fui-DrawerHeaderTitle',\n heading: 'fui-DrawerHeaderTitle__heading',\n action: 'fui-DrawerHeaderTitle__action'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f22iagw\",\n Brf1p80: \"f1869bpl\",\n Bt984gj: \"f122n59\",\n i8kkvl: \"fsnqrgy\"\n },\n action: {\n t21cq0: [\"faqnl2i\", \"fd75udd\"]\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1869bpl{justify-content:space-between;}\", \".f122n59{align-items:center;}\", \".fsnqrgy{column-gap:var(--spacingHorizontalS);}\", \".faqnl2i{margin-right:calc(var(--spacingHorizontalS) * -1);}\", \".fd75udd{margin-left:calc(var(--spacingHorizontalS) * -1);}\"]\n});\n/**\n * Apply styling to the DrawerHeaderTitle slots based on the state\n */\nexport const useDrawerHeaderTitleStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const {\n heading: root = {},\n action,\n components\n } = state;\n useDialogTitleStyles_unstable({\n components: {\n root: components.heading,\n action: components.action\n },\n root,\n action\n });\n state.root.className = mergeClasses(drawerHeaderTitleClassNames.root, styles.root, state.root.className);\n if (state.heading) {\n state.heading.className = mergeClasses(drawerHeaderTitleClassNames.heading, state.heading.className);\n }\n if (state.action) {\n state.action.className = mergeClasses(drawerHeaderTitleClassNames.action, styles.action, state.action.className);\n }\n return state;\n};\n//# sourceMappingURL=useDrawerHeaderTitleStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerHeaderTitle_unstable } from './useDrawerHeaderTitle';\nimport { renderDrawerHeaderTitle_unstable } from './renderDrawerHeaderTitle';\nimport { useDrawerHeaderTitleStyles_unstable } from './useDrawerHeaderTitleStyles.styles';\n/**\n * DrawerHeader provides a structured header for the drawer component.\n */ export const DrawerHeaderTitle = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerHeaderTitle_unstable(props, ref);\n useDrawerHeaderTitleStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerHeaderTitleStyles_unstable')(state);\n return renderDrawerHeaderTitle_unstable(state);\n});\nDrawerHeaderTitle.displayName = 'DrawerHeaderTitle';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render DrawerHeaderNavigation.\n *\n * The returned state can be modified with hooks such as useDrawerHeaderNavigationStyles_unstable,\n * before being passed to renderDrawerHeaderNavigation_unstable.\n *\n * @param props - props from this instance of DrawerHeaderNavigation\n * @param ref - reference to root HTMLElement of DrawerHeaderNavigation\n */ export const useDrawerHeaderNavigation_unstable = (props, ref)=>{\n return {\n components: {\n root: 'nav'\n },\n root: slot.always(getIntrinsicElementProps('nav', {\n ref,\n ...props\n }), {\n elementType: 'nav'\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerHeaderNavigation\n */ export const renderDrawerHeaderNavigation_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const drawerHeaderNavigationClassNames = {\n root: 'fui-DrawerHeaderNavigation'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__resetStyles(\"r1ig4pwh\", null, [\".r1ig4pwh{margin:calc(var(--spacingVerticalS) * -1) calc(var(--spacingHorizontalL) * -1);}\"]);\n/**\n * Apply styling to the DrawerHeaderNavigation slots based on the state\n */\nexport const useDrawerHeaderNavigationStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(drawerHeaderNavigationClassNames.root, styles, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerHeaderNavigationStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerHeaderNavigation_unstable } from './useDrawerHeaderNavigation';\nimport { renderDrawerHeaderNavigation_unstable } from './renderDrawerHeaderNavigation';\nimport { useDrawerHeaderNavigationStyles_unstable } from './useDrawerHeaderNavigationStyles.styles';\n/**\n * DrawerHeaderNavigation provides a header navigation area for the Drawer.\n */ export const DrawerHeaderNavigation = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerHeaderNavigation_unstable(props, ref);\n useDrawerHeaderNavigationStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerHeaderNavigationStyles_unstable')(state);\n return renderDrawerHeaderNavigation_unstable(state);\n});\nDrawerHeaderNavigation.displayName = 'DrawerHeaderNavigation';\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useDrawerContext_unstable } from '../../contexts/drawerContext';\n/**\n * Create the state required to render DrawerFooter.\n *\n * The returned state can be modified with hooks such as useDrawerFooterStyles_unstable,\n * before being passed to renderDrawerFooter_unstable.\n *\n * @param props - props from this instance of DrawerFooter\n * @param ref - reference to root HTMLElement of DrawerFooter\n */ export const useDrawerFooter_unstable = (props, ref)=>{\n const { scrollState } = useDrawerContext_unstable();\n return {\n components: {\n root: 'footer'\n },\n root: slot.always(getIntrinsicElementProps('footer', {\n ref,\n role: 'none',\n ...props\n }), {\n elementType: 'footer'\n }),\n scrollState\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of DrawerFooter\n */ export const renderDrawerFooter_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { drawerSeparatorStyles } from '../../shared/drawerSeparatorStyles';\nexport const drawerFooterClassNames = {\n root: 'fui-DrawerFooter'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__resetStyles(\"r1snvl2j\", null, [\".r1snvl2j{width:100%;max-width:100%;padding:var(--spacingVerticalL) var(--spacingHorizontalXXL) var(--spacingVerticalXXL);display:flex;justify-content:flex-start;align-items:center;column-gap:var(--spacingHorizontalS);box-sizing:border-box;position:relative;z-index:2;}\"]);\nconst useDrawerFooterStyles = /*#__PURE__*/__styles({\n separator: {\n Baz25je: \"f16b62f1\",\n Brfgrao: \"f1j7ml58\",\n mdwyqc: [\"f1f351id\", \"f1fzr1x6\"],\n Fbdkly: [\"f1fzr1x6\", \"f1f351id\"],\n vz82u: \"f1dhznln\",\n cmx5o7: \"f1p5zmk\",\n h7gv66: \"f1ljjo4k\",\n B8bqphf: \"ffd2d9j\",\n wjn42g: \"ffdt3s5\",\n Ftih45: \"f1wl9k8s\",\n Bciustq: \"ffi060y\"\n },\n separatorVisible: {\n vz82u: \"f1b3qyzu\"\n }\n}, {\n d: [\".f16b62f1::before{height:1px;}\", \".f1j7ml58::before{position:absolute;}\", \".f1f351id::before{right:0;}\", \".f1fzr1x6::before{left:0;}\", \".f1dhznln::before{opacity:0;}\", \".f1p5zmk::before{background-color:var(--colorNeutralStroke1);}\", \".f1ljjo4k::before{transition-duration:var(--durationNormal);}\", \".ffd2d9j::before{transition-property:opacity;}\", \".ffdt3s5::before{transition-timing-function:var(--curveEasyEase);}\", \".f1wl9k8s::before{content:\\\"\\\";}\", \".ffi060y::before{top:0;}\", \".f1b3qyzu::before{opacity:1;}\"]\n});\n/**\n * Apply styling to the DrawerFooter slots based on the state\n */\nexport const useDrawerFooterStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const rootStyles = useDrawerFooterStyles();\n state.root.className = mergeClasses(drawerFooterClassNames.root, styles, state.scrollState !== 'none' && rootStyles.separator, ['middle', 'top'].includes(state.scrollState) && rootStyles.separatorVisible, state.root.className);\n return state;\n};\n//# sourceMappingURL=useDrawerFooterStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useDrawerFooter_unstable } from './useDrawerFooter';\nimport { renderDrawerFooter_unstable } from './renderDrawerFooter';\nimport { useDrawerFooterStyles_unstable } from './useDrawerFooterStyles.styles';\n/**\n * DrawerFooter provides a structured footer for the drawer component.\n */ export const DrawerFooter = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useDrawerFooter_unstable(props, ref);\n useDrawerFooterStyles_unstable(state);\n useCustomStyleHook_unstable('useDrawerFooterStyles_unstable')(state);\n return renderDrawerFooter_unstable(state);\n});\nDrawerFooter.displayName = 'DrawerFooter';\n","import * as React from 'react';\nimport { getMetadataFromSlotComponent } from '../utils/getMetadataFromSlotComponent';\n/**\n * @internal\n * creates a ReactElement from a slot declaration\n */ export function createElementFromSlotComponent(type, overrideChildren) {\n const { elementType , renderFunction , props } = getMetadataFromSlotComponent(type);\n if (renderFunction) {\n if (overrideChildren.length > 0) {\n props.children = React.createElement(React.Fragment, {}, ...overrideChildren);\n }\n return React.createElement(React.Fragment, {}, renderFunction(elementType, props));\n }\n return React.createElement(elementType, props, ...overrideChildren);\n}\n","import { SLOT_ELEMENT_TYPE_SYMBOL, SLOT_RENDER_FUNCTION_SYMBOL } from '@fluentui/react-utilities';\n/**\n * @internal\n */ export function getMetadataFromSlotComponent(type) {\n const { as , [SLOT_ELEMENT_TYPE_SYMBOL]: baseElementType , [SLOT_RENDER_FUNCTION_SYMBOL]: renderFunction , ...propsWithoutMetadata } = type;\n const props = propsWithoutMetadata;\n const elementType = typeof baseElementType === 'string' ? as !== null && as !== void 0 ? as : baseElementType : baseElementType;\n if (typeof elementType !== 'string' && as) {\n props.as = as;\n }\n return {\n elementType,\n props,\n renderFunction\n };\n}\n","import * as React from 'react';\nimport { isSlot } from '@fluentui/react-utilities';\nimport { createElementFromSlotComponent } from './jsx/createElementFromSlotComponent';\nimport { createCompatSlotComponent } from './utils/createCompatSlotComponent';\nexport function createElement(type, props, ...children) {\n // TODO:\n // this is for backwards compatibility with getSlotsNext\n // it should be removed once getSlotsNext is obsolete\n if (isSlot(props)) {\n return createElementFromSlotComponent(createCompatSlotComponent(type, props), children);\n }\n if (isSlot(type)) {\n return createElementFromSlotComponent(type, children);\n }\n return React.createElement(type, props, ...children);\n}\n","import * as React from 'react';\nimport { SLOT_ELEMENT_TYPE_SYMBOL } from '@fluentui/react-utilities';\n// TODO:\n// this is for backwards compatibility with getSlotsNext\n// it should be removed once getSlotsNext is obsolete\nexport function createCompatSlotComponent(type, props) {\n return {\n ...props,\n [SLOT_ELEMENT_TYPE_SYMBOL]: type\n };\n}\n","import * as React from 'react';\nexport const ListItemActionEventName = 'ListItemAction';\nexport const createListItemActionEvent = (originalEvent)=>new CustomEvent(ListItemActionEventName, {\n cancelable: true,\n bubbles: true,\n detail: {\n originalEvent\n }\n });\n","import * as React from 'react';\nimport { GroupperMoveFocusEvent, MoverMoveFocusEvent, GroupperMoveFocusActions, MoverKeys, useArrowNavigationGroup, useFocusableGroup, useMergedTabsterAttributes_unstable } from '@fluentui/react-tabster';\nimport { elementContains, getIntrinsicElementProps, mergeCallbacks, slot, useEventCallback, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { useListContext_unstable } from '../List/listContext';\nimport { Enter, Space, ArrowUp, ArrowDown, ArrowRight, ArrowLeft } from '@fluentui/keyboard-keys';\nimport { Checkbox } from '@fluentui/react-checkbox';\nimport { createListItemActionEvent, ListItemActionEventName } from '../../events/ListItemActionEvent';\nconst DEFAULT_ROOT_EL_TYPE = 'li';\n/**\n * Create the state required to render ListItem.\n *\n * The returned state can be modified with hooks such as useListItemStyles_unstable,\n * before being passed to renderListItem_unstable.\n *\n * @param props - props from this instance of ListItem\n * @param ref - reference to root HTMLLIElement | HTMLDivElementof ListItem\n */ export const useListItem_unstable = (props, ref)=>{\n const id = useId('listItem');\n const { value = id, onKeyDown, onClick, tabIndex, role, onAction } = props;\n const toggleItem = useListContext_unstable((ctx)=>{\n var _ctx_selection;\n return (_ctx_selection = ctx.selection) === null || _ctx_selection === void 0 ? void 0 : _ctx_selection.toggleItem;\n });\n const navigationMode = useListContext_unstable((ctx)=>ctx.navigationMode);\n const isSelectionEnabled = useListContext_unstable((ctx)=>!!ctx.selection);\n const isSelected = useListContext_unstable((ctx)=>{\n var _ctx_selection;\n return (_ctx_selection = ctx.selection) === null || _ctx_selection === void 0 ? void 0 : _ctx_selection.isSelected(value);\n });\n const listItemRole = useListContext_unstable((ctx)=>ctx.listItemRole);\n const validateListItem = useListContext_unstable((ctx)=>ctx.validateListItem);\n const finalListItemRole = role || listItemRole;\n const focusableItems = Boolean(isSelectionEnabled || navigationMode || tabIndex === 0);\n const rootRef = React.useRef(null);\n const checkmarkRef = React.useRef(null);\n const handleAction = useEventCallback((event)=>{\n onAction === null || onAction === void 0 ? void 0 : onAction(event, {\n event,\n value,\n type: ListItemActionEventName\n });\n if (event.defaultPrevented) {\n return;\n }\n if (isSelectionEnabled) {\n toggleItem === null || toggleItem === void 0 ? void 0 : toggleItem(event.detail.originalEvent, value);\n }\n });\n React.useEffect(()=>{\n if (rootRef.current) {\n validateListItem(rootRef.current);\n }\n }, [\n validateListItem\n ]);\n const triggerAction = (e)=>{\n const actionEvent = createListItemActionEvent(e);\n handleAction(actionEvent);\n e.target.dispatchEvent(actionEvent);\n };\n const focusableGroupAttrs = useFocusableGroup({\n ignoreDefaultKeydown: {\n Enter: true\n },\n tabBehavior: 'limited-trap-focus'\n });\n const handleClick = useEventCallback((e)=>{\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n if (e.defaultPrevented) {\n return;\n }\n const isFromCheckbox = elementContains(checkmarkRef.current, e.target);\n if (isFromCheckbox) {\n return;\n }\n triggerAction(e);\n });\n const handleKeyDown = useEventCallback((e)=>{\n onKeyDown === null || onKeyDown === void 0 ? void 0 : onKeyDown(e);\n if (e.defaultPrevented) {\n return;\n }\n // If the event is fired from an element inside the list item\n if (e.target !== e.currentTarget) {\n if (focusableItems) {\n // If the items are focusable, we need to handle the arrow keys to move focus to them\n switch(e.key){\n // If it's one of the Arrows defined, jump out of the list item to focus on the ListItem itself\n // The ArrowLeft will only trigger if the target element is the leftmost, otherwise the\n // arrowNavigationAttributes handles it and prevents it from bubbling here.\n case ArrowLeft:\n e.target.dispatchEvent(new GroupperMoveFocusEvent({\n action: GroupperMoveFocusActions.Escape\n }));\n break;\n case ArrowDown:\n case ArrowUp:\n e.preventDefault();\n // Press ESC on the original target to get focus to the parent group (List)\n e.target.dispatchEvent(new GroupperMoveFocusEvent({\n action: GroupperMoveFocusActions.Escape\n }));\n // Now dispatch the original key to move up or down in the list\n e.currentTarget.dispatchEvent(new MoverMoveFocusEvent({\n key: MoverKeys[e.key]\n }));\n }\n return;\n }\n return;\n }\n switch(e.key){\n case Space:\n // we have to prevent default here otherwise the space key will scroll the page\n e.preventDefault();\n // Space always toggles selection (if enabled)\n if (isSelectionEnabled) {\n toggleItem === null || toggleItem === void 0 ? void 0 : toggleItem(e, value);\n } else {\n triggerAction(e);\n }\n break;\n case Enter:\n triggerAction(e);\n break;\n case ArrowRight:\n if (navigationMode === 'composite') {\n e.target.dispatchEvent(new GroupperMoveFocusEvent({\n action: GroupperMoveFocusActions.Enter\n }));\n }\n break;\n }\n });\n const onCheckboxChange = useEventCallback((e, data)=>{\n if (!isSelectionEnabled || e.defaultPrevented) {\n return;\n }\n toggleItem === null || toggleItem === void 0 ? void 0 : toggleItem(e, value);\n });\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'horizontal'\n });\n const tabsterAttributes = useMergedTabsterAttributes_unstable(focusableItems ? arrowNavigationAttributes : {}, focusableGroupAttrs);\n const root = slot.always(getIntrinsicElementProps(DEFAULT_ROOT_EL_TYPE, {\n ref: useMergedRefs(rootRef, ref),\n tabIndex: focusableItems ? 0 : undefined,\n role: finalListItemRole,\n id: String(value),\n ...isSelectionEnabled && {\n 'aria-selected': isSelected\n },\n ...tabsterAttributes,\n ...props,\n onKeyDown: handleKeyDown,\n onClick: isSelectionEnabled || onClick || onAction ? handleClick : undefined\n }), {\n elementType: DEFAULT_ROOT_EL_TYPE\n });\n const checkmark = slot.optional(props.checkmark, {\n defaultProps: {\n checked: isSelected,\n tabIndex: -1\n },\n renderByDefault: isSelectionEnabled,\n elementType: Checkbox\n });\n const mergedCheckmarkRef = useMergedRefs(checkmark === null || checkmark === void 0 ? void 0 : checkmark.ref, checkmarkRef);\n if (checkmark) {\n checkmark.onChange = mergeCallbacks(checkmark.onChange, onCheckboxChange);\n checkmark.ref = mergedCheckmarkRef;\n }\n const state = {\n components: {\n root: DEFAULT_ROOT_EL_TYPE,\n checkmark: Checkbox\n },\n root,\n checkmark,\n selectable: isSelectionEnabled,\n navigable: focusableItems\n };\n return state;\n};\n","import { __styles, __resetStyles, mergeClasses } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nexport const listItemClassNames = {\n root: 'fui-ListItem',\n checkmark: 'fui-ListItem__checkmark'\n};\nconst useRootBaseStyles = /*#__PURE__*/__resetStyles(\"rikgcmv\", null, [\".rikgcmv{padding:0;margin:0;text-indent:0;list-style-type:none;}\", \".rikgcmv[data-fui-focus-visible]{outline:var(--strokeWidthThick) solid var(--colorStrokeFocus2);border-radius:var(--borderRadiusMedium);}\"]);\nconst useCheckmarkBaseStyles = /*#__PURE__*/__styles({\n root: {\n qb2dma: \"f7nlbp4\",\n Bpb5tq4: 0,\n Biccaaf: 0,\n Gaeyjg: 0,\n ldoezw: 0,\n B6gmeee: \"f1bgo3o3\"\n }\n}, {\n d: [\".f7nlbp4{align-self:center;}\", [\".f1bgo3o3 .fui-Checkbox__indicator{margin:4px;}\", {\n p: -1\n }]]\n});\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n rootClickableOrSelectable: {\n mc9l5x: \"f22iagw\",\n Bceei9c: \"f1k6fduh\"\n }\n}, {\n d: [\".f22iagw{display:flex;}\", \".f1k6fduh{cursor:pointer;}\"]\n});\n/**\n * Apply styling to the ListItem slots based on the state\n */\nexport const useListItemStyles_unstable = state => {\n 'use no memo';\n\n const rootBaseStyles = useRootBaseStyles();\n const checkmarkBaseStyles = useCheckmarkBaseStyles();\n const styles = useStyles();\n state.root.className = mergeClasses(listItemClassNames.root, rootBaseStyles, (state.selectable || state.navigable) && styles.rootClickableOrSelectable, state.root.className);\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(listItemClassNames.checkmark, checkmarkBaseStyles.root, state.checkmark.className);\n }\n return state;\n};\n//# sourceMappingURL=useListItemStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useListItem_unstable } from './useListItem';\nimport { renderListItem_unstable } from './renderListItem';\nimport { useListItemStyles_unstable } from './useListItemStyles.styles';\nexport const ListItem = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useListItem_unstable(props, ref);\n useListItemStyles_unstable(state);\n useCustomStyleHook_unstable('useListItemStyles_unstable')(state);\n return renderListItem_unstable(state);\n});\nListItem.displayName = 'ListItem';\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of ListItem\n */ export const renderListItem_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(state.root, {\n children: [\n state.checkmark && /*#__PURE__*/ _jsx(state.checkmark, {}),\n state.root.children\n ]\n });\n};\n","/**\n * Validate that the proper roles are used for the given combination of roles and states.\n * If the roles are invalid and we're not running in production mode, an warning will be logged to the console.\n *\n * @param role - the role of the list\n * @param listItemRole - the role of the list item\n * @param hasSelection - whether the list has selection enabled\n * @param hasFocusableChildren - whether the list has focusable children\n * @returns\n */ export const validateProperRolesAreUsed = (role, listItemRole, hasSelection, hasFocusableChildren)=>{\n // Explode when the pair of roles is invalid\n if (role === 'list' && listItemRole !== 'listitem') {\n throw new Error('When the List role is \"list\", ListItem role must be \"listitem\".');\n }\n if (role === 'listbox' && listItemRole !== 'option') {\n throw new Error('When the List role is \"listbox\", ListItem role must be \"option\".');\n }\n if (role === 'grid' && listItemRole !== 'row') {\n throw new Error('When the List role is \"grid\", ListItem role must be \"row\".');\n }\n const expectedRole = (()=>{\n if (hasFocusableChildren) {\n return 'grid';\n } else {\n if (hasSelection) {\n return 'listbox';\n } else {\n return 'list';\n }\n }\n })();\n if (role !== expectedRole) {\n /* eslint-disable-next-line no-console */ console.warn(`@fluentui/react-list-preview [useList]:\\nThe role \"${role}\" does not match the expected role \"${expectedRole}\".\\nPlease use the \"navigationMode\" property for automatic role assignment and keyboard navigation.\\nIf you are using this role intentionally, make sure to verify screen reader support.\n `);\n }\n};\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport { useArrowNavigationGroup, useFocusFinders } from '@fluentui/react-tabster';\nimport { useListSelection } from '../../hooks/useListSelection';\nimport { calculateListItemRoleForListRole, calculateListRole, validateGridCellsArePresent, validateProperElementTypes, validateProperRolesAreUsed } from '../../utils';\nconst DEFAULT_ROOT_EL_TYPE = 'ul';\n/**\n * Create the state required to render List.\n *\n * The returned state can be modified with hooks such as useListStyles_unstable,\n * before being passed to renderList_unstable.\n *\n * @param props - props from this instance of List\n * @param ref - reference to root HTMLElement of List\n */ export const useList_unstable = (props, ref)=>{\n const { navigationMode, selectionMode, selectedItems, defaultSelectedItems, as = DEFAULT_ROOT_EL_TYPE, onSelectionChange } = props;\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'vertical',\n memorizeCurrent: true\n });\n const [selectionState, setSelectionState] = useControllableState({\n state: selectedItems,\n defaultState: defaultSelectedItems,\n initialState: []\n });\n const onChange = useEventCallback((e, data)=>{\n const selectedItemsAsArray = Array.from(data.selectedItems);\n setSelectionState(selectedItemsAsArray);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(e, {\n event: e,\n type: 'change',\n selectedItems: selectedItemsAsArray\n });\n });\n const selection = useListSelection({\n onSelectionChange: onChange,\n selectionMode: selectionMode || 'multiselect',\n selectedItems: selectionState\n });\n const listRole = props.role || calculateListRole(navigationMode, !!selectionMode);\n const listItemRole = calculateListItemRoleForListRole(listRole);\n const { findAllFocusable } = useFocusFinders();\n const validateListItem = useEventCallback((listItemEl)=>{\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const itemRole = listItemEl.getAttribute('role') || '';\n const focusable = findAllFocusable(listItemEl);\n validateProperElementTypes(as, listItemEl.tagName.toLocaleLowerCase());\n validateProperRolesAreUsed(listRole, itemRole, !!selectionMode, focusable.length > 0);\n validateGridCellsArePresent(listRole, listItemEl);\n });\n return {\n components: {\n root: DEFAULT_ROOT_EL_TYPE\n },\n root: slot.always(getIntrinsicElementProps(DEFAULT_ROOT_EL_TYPE, {\n ref,\n role: listRole,\n ...selectionMode && {\n 'aria-multiselectable': selectionMode === 'multiselect' ? true : undefined\n },\n ...arrowNavigationAttributes,\n ...props\n }), {\n elementType: DEFAULT_ROOT_EL_TYPE\n }),\n listItemRole,\n validateListItem,\n navigationMode,\n // only pass down selection state if its handled internally, otherwise just report the events\n selection: selectionMode ? selection : undefined\n };\n};\n","import { useControllableState, useEventCallback, useSelection } from '@fluentui/react-utilities';\nimport * as React from 'react';\nexport function useListSelection(options = {\n selectionMode: 'multiselect'\n}) {\n const { selectionMode, defaultSelectedItems, onSelectionChange } = options;\n const [selectedItems, setSelectedItems] = useControllableState({\n state: options.selectedItems,\n defaultState: defaultSelectedItems,\n initialState: []\n });\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange: (e, data)=>{\n setSelectedItems(data.selectedItems);\n onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(e, data);\n }\n });\n const toggleItem = useEventCallback((e, itemId)=>selectionMethods.toggleItem(e, itemId));\n const toggleAllItems = useEventCallback((e, itemIds)=>{\n selectionMethods.toggleAllItems(e, itemIds);\n });\n const deselectItem = useEventCallback((e, itemId)=>selectionMethods.deselectItem(e, itemId));\n const selectItem = useEventCallback((e, itemId)=>selectionMethods.selectItem(e, itemId));\n const clearSelection = useEventCallback((e)=>selectionMethods.clearItems(e));\n const selectedArray = React.useMemo(()=>Array.from(selected), [\n selected\n ]);\n return {\n selectedItems: selectedArray,\n toggleItem,\n toggleAllItems,\n deselectItem,\n selectItem,\n setSelectedItems,\n isSelected: (id)=>selectionMethods.isSelected(id),\n clearSelection\n };\n}\n","/**\n * Calculate the role for the list based on the navigation mode and selectable state\n * @param navigationMode - the navigation mode of the list\n * @param selectable - whether the list is selectable\n * @returns 'grid' if navigationMode is 'composite', otherwise 'listbox' if selectable or 'list' if not\n */ export const calculateListRole = (navigationMode, selectable)=>{\n if (navigationMode === 'composite') {\n return 'grid';\n } else if (selectable) {\n return 'listbox';\n } else {\n return 'list';\n }\n};\n","/**\n * Calculate the role for the list item based on the list role.\n * @param listRole - the role of the list\n * @returns proper role for the list item\n */ export const calculateListItemRoleForListRole = (listRole)=>{\n switch(listRole){\n case 'list':\n return 'listitem';\n case 'listbox':\n return 'option';\n case 'grid':\n return 'row';\n default:\n return 'listitem';\n }\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nexport const listClassNames = {\n root: 'fui-List'\n};\nconst useRootBaseStyles = /*#__PURE__*/__resetStyles(\"r1m6yby2\", null, [\".r1m6yby2{padding:0;margin:0;text-indent:0;list-style-type:none;}\"]);\n/**\n * Apply styling to the List slots based on the state\n */\nexport const useListStyles_unstable = state => {\n 'use no memo';\n\n const rootStyles = useRootBaseStyles();\n state.root.className = mergeClasses(listClassNames.root, rootStyles, state.root.className);\n return state;\n};\n//# sourceMappingURL=useListStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useList_unstable } from './useList';\nimport { renderList_unstable } from './renderList';\nimport { useListStyles_unstable } from './useListStyles.styles';\nimport { useListContextValues_unstable } from './useListContextValues';\nexport const List = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useList_unstable(props, ref);\n const contextValues = useListContextValues_unstable(state);\n useListStyles_unstable(state);\n useCustomStyleHook_unstable('useListStyles_unstable')(state);\n return renderList_unstable(state, contextValues);\n});\nList.displayName = 'List';\n","export function useListContextValues_unstable(state) {\n const { selection, navigationMode, listItemRole, validateListItem } = state;\n const listContext = {\n selection,\n listItemRole,\n navigationMode,\n validateListItem\n };\n return {\n listContext\n };\n}\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { ListContextProvider } from './listContext';\n/**\n * Render the final JSX of List\n */ export const renderList_unstable = (state, contextValues)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(ListContextProvider, {\n value: contextValues.listContext,\n children: /*#__PURE__*/ _jsx(state.root, {})\n });\n};\n","import { createContext, useContextSelector } from '@fluentui/react-context-selector';\nexport const listContextDefaultValue = {\n navigationMode: undefined,\n selection: undefined,\n listItemRole: 'listitem',\n validateListItem: ()=>{\n /* noop */ }\n};\nconst listContext = createContext(undefined);\nexport const ListContextProvider = listContext.Provider;\nexport const useListContext_unstable = (selector)=>useContextSelector(listContext, (ctx = listContextDefaultValue)=>selector(ctx));\n","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useMessageBarActions_unstable } from './useMessageBarActions';\nimport { renderMessageBarActions_unstable } from './renderMessageBarActions';\nimport { useMessageBarActionsStyles_unstable } from './useMessageBarActionsStyles.styles';\nimport { useMessageBarActionsContextValue_unstable } from './useMessageBarActionsContextValues';\n/**\n * MessageBarActions component\n */ export const MessageBarActions = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useMessageBarActions_unstable(props, ref);\n useMessageBarActionsStyles_unstable(state);\n useCustomStyleHook_unstable('useMessageBarActionsStyles_unstable')(state);\n return renderMessageBarActions_unstable(state, useMessageBarActionsContextValue_unstable());\n});\nMessageBarActions.displayName = 'MessageBarActions';\n","import * as React from 'react';\nexport function useMessageBarActionsContextValue_unstable() {\n const buttonContext = React.useMemo(()=>({\n size: 'small'\n }), []);\n return {\n button: buttonContext\n };\n}\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { ButtonContextProvider } from '@fluentui/react-button';\n/**\n * Render the final JSX of MessageBarActions\n */ export const renderMessageBarActions_unstable = (state, contexts)=>{\n assertSlots(state);\n if (state.layout === 'multiline') {\n return /*#__PURE__*/ _jsxs(ButtonContextProvider, {\n value: contexts.button,\n children: [\n state.containerAction && /*#__PURE__*/ _jsx(state.containerAction, {}),\n /*#__PURE__*/ _jsx(state.root, {})\n ]\n });\n }\n return /*#__PURE__*/ _jsxs(ButtonContextProvider, {\n value: contexts.button,\n children: [\n /*#__PURE__*/ _jsx(state.root, {}),\n state.containerAction && /*#__PURE__*/ _jsx(state.containerAction, {})\n ]\n });\n};\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot, useMergedRefs } from '@fluentui/react-utilities';\nimport { useMessageBarContext } from '../../contexts/messageBarContext';\n/**\n * Create the state required to render MessageBarActions.\n *\n * The returned state can be modified with hooks such as useMessageBarActionsStyles_unstable,\n * before being passed to renderMessageBarActions_unstable.\n *\n * @param props - props from this instance of MessageBarActions\n * @param ref - reference to root HTMLElement of MessageBarActions\n */ export const useMessageBarActions_unstable = (props, ref)=>{\n const { layout = 'singleline', actionsRef } = useMessageBarContext();\n return {\n components: {\n root: 'div',\n containerAction: 'div'\n },\n containerAction: slot.optional(props.containerAction, {\n renderByDefault: false,\n elementType: 'div'\n }),\n root: slot.always(getIntrinsicElementProps('div', {\n ref: useMergedRefs(ref, actionsRef),\n ...props\n }), {\n elementType: 'div'\n }),\n layout\n };\n};\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const messageBarActionsClassNames = {\n root: 'fui-MessageBarActions',\n containerAction: 'fui-MessageBarActions__containerAction'\n};\n/**\n * Styles for the root slot\n */\nconst useRootBaseStyles = /*#__PURE__*/__resetStyles(\"r1t4x98y\", \"r15utzv5\", [\".r1t4x98y{grid-area:secondaryActions;display:flex;column-gap:var(--spacingHorizontalM);padding-right:var(--spacingHorizontalM);}\", \".r15utzv5{grid-area:secondaryActions;display:flex;column-gap:var(--spacingHorizontalM);padding-left:var(--spacingHorizontalM);}\"]);\nconst useContainerActionBaseStyles = /*#__PURE__*/__resetStyles(\"rgzw8nq\", \"r13ur29z\", [\".rgzw8nq{grid-area:actions;padding-right:var(--spacingHorizontalM);}\", \".r13ur29z{grid-area:actions;padding-left:var(--spacingHorizontalM);}\"]);\nconst useMultilineStyles = /*#__PURE__*/__styles({\n root: {\n Brf1p80: \"f1e8xxv9\",\n B6of3ja: \"f1gaxbfw\",\n jrapky: \"fqcjy3b\",\n t21cq0: [\"fibjyge\", \"f9yszdx\"],\n z189sj: [\"f1p3vkop\", \"f8cewkv\"]\n }\n}, {\n d: [\".f1e8xxv9{justify-content:end;}\", \".f1gaxbfw{margin-top:var(--spacingVerticalMNudge);}\", \".fqcjy3b{margin-bottom:var(--spacingVerticalS);}\", \".fibjyge{margin-right:0px;}\", \".f9yszdx{margin-left:0px;}\", \".f1p3vkop{padding-right:var(--spacingVerticalM);}\", \".f8cewkv{padding-left:var(--spacingVerticalM);}\"]\n});\n/**\n * Apply styling to the MessageBarActions slots based on the state\n */\nexport const useMessageBarActionsStyles_unstable = state => {\n const rootBaseStyles = useRootBaseStyles();\n const containerActionBaseStyles = useContainerActionBaseStyles();\n const multilineStyles = useMultilineStyles();\n state.root.className = mergeClasses(messageBarActionsClassNames.root, rootBaseStyles, state.layout === 'multiline' && multilineStyles.root, state.root.className);\n if (state.containerAction) {\n state.containerAction.className = mergeClasses(messageBarActionsClassNames.containerAction, containerActionBaseStyles, state.containerAction.className);\n }\n return state;\n};\n//# sourceMappingURL=useMessageBarActionsStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useMessageBarTitle_unstable } from './useMessageBarTitle';\nimport { renderMessageBarTitle_unstable } from './renderMessageBarTitle';\nimport { useMessageBarTitleStyles_unstable } from './useMessageBarTitleStyles.styles';\n/**\n * MessageBarTitle component\n */ export const MessageBarTitle = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useMessageBarTitle_unstable(props, ref);\n useMessageBarTitleStyles_unstable(state);\n useCustomStyleHook_unstable('useMessageBarTitleStyles_unstable')(state);\n return renderMessageBarTitle_unstable(state);\n});\nMessageBarTitle.displayName = 'MessageBarTitle';\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of MessageBarTitle\n */ export const renderMessageBarTitle_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport { useMessageBarContext } from '../../contexts/messageBarContext';\n/**\n * Create the state required to render MessageBarTitle.\n *\n * The returned state can be modified with hooks such as useMessageBarTitleStyles_unstable,\n * before being passed to renderMessageBarTitle_unstable.\n *\n * @param props - props from this instance of MessageBarTitle\n * @param ref - reference to root HTMLElement of MessageBarTitle\n */ export const useMessageBarTitle_unstable = (props, ref)=>{\n const { titleId } = useMessageBarContext();\n return {\n components: {\n root: 'span'\n },\n root: slot.always(getIntrinsicElementProps('span', {\n ref,\n id: titleId,\n ...props\n }), {\n elementType: 'span'\n })\n };\n};\n","import { __resetStyles, mergeClasses } from '@griffel/react';\nimport { typographyStyles } from '@fluentui/react-theme';\nexport const messageBarTitleClassNames = {\n root: 'fui-MessageBarTitle'\n};\n/**\n * Styles for the root slot\n */\nconst useRootBaseStyles = /*#__PURE__*/__resetStyles(\"r168xkm9\", null, [\".r168xkm9{font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightSemibold);line-height:var(--lineHeightBase300);}\", \".r168xkm9::after{content:\\\" \\\";}\"]);\n/**\n * Apply styling to the MessageBarTitle slots based on the state\n */\nexport const useMessageBarTitleStyles_unstable = state => {\n const rootBaseStyles = useRootBaseStyles();\n state.root.className = mergeClasses(messageBarTitleClassNames.root, rootBaseStyles, state.root.className);\n return state;\n};\n//# sourceMappingURL=useMessageBarTitleStyles.styles.js.map","import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\n/**\n * Create the state required to render MessageBarGroup.\n *\n * The returned state can be modified with hooks such as useMessageBarGroupStyles_unstable,\n * before being passed to renderMessageBarGroup_unstable.\n *\n * @param props - props from this instance of MessageBarGroup\n * @param ref - reference to root HTMLElement of MessageBarGroup\n */ export const useMessageBarGroup_unstable = (props, ref)=>{\n if (process.env.NODE_ENV !== 'production') {\n React.Children.forEach(props.children, (c)=>{\n if (!React.isValidElement(c) || c.type === React.Fragment) {\n throw new Error(\"MessageBarGroup: children must be valid MessageBar components. Please ensure you're not using fragments. \");\n }\n });\n }\n var _props_children;\n const children = React.Children.map((_props_children = props.children) !== null && _props_children !== void 0 ? _props_children : [], (c)=>React.isValidElement(c) && c.type !== React.Fragment ? c : null).filter(Boolean);\n var _props_animate;\n return {\n components: {\n root: 'div'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref,\n ...props\n }), {\n elementType: 'div'\n }),\n children,\n animate: (_props_animate = props.animate) !== null && _props_animate !== void 0 ? _props_animate : 'exit-only',\n enterStyles: '',\n exitStyles: ''\n };\n};\n","import * as React from 'react';\nimport { Transition } from 'react-transition-group';\nimport { MessageBarTransitionContextProvider } from '../../contexts/messageBarTransitionContext';\nconst getClassName = (status, enterClassName, exitClassName, animate)=>{\n switch(status){\n case 'entering':\n case 'entered':\n return animate === 'both' ? enterClassName : '';\n case 'exiting':\n case 'exited':\n return exitClassName;\n default:\n return '';\n }\n};\n/**\n * Internal component that controls the animation transition for MessageBar components\n * @internal\n */ export const MessageBarTransition = ({ children, enterClassName, exitClassName, animate, ...rest })=>{\n const nodeRef = React.useRef(null);\n return /*#__PURE__*/ React.createElement(Transition, {\n timeout: 250,\n nodeRef: nodeRef,\n ...rest\n }, (state)=>/*#__PURE__*/ React.createElement(MessageBarTransitionInner, {\n animate: animate,\n enterClassName: enterClassName,\n exitClassName: exitClassName,\n nodeRef: nodeRef,\n state: state\n }, children));\n};\nconst MessageBarTransitionInner = ({ children, state, enterClassName, exitClassName, animate, nodeRef })=>{\n const className = getClassName(state, enterClassName, exitClassName, animate);\n const context = React.useMemo(()=>({\n className,\n nodeRef\n }), [\n className,\n nodeRef\n ]);\n return /*#__PURE__*/ React.createElement(MessageBarTransitionContextProvider, {\n value: context\n }, children);\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { TransitionGroup } from 'react-transition-group';\nimport { MessageBarTransition } from './MessageBarTransition';\n/**\n * Render the final JSX of MessageBarGroup\n */ export const renderMessageBarGroup_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {\n children: /*#__PURE__*/ _jsx(TransitionGroup, {\n component: null,\n children: state.children.map((child)=>/*#__PURE__*/ _jsx(MessageBarTransition, {\n animate: state.animate,\n enterClassName: state.enterStyles,\n exitClassName: state.exitStyles,\n children: child\n }, child.key))\n })\n });\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const messageBarGroupClassNames = {\n root: 'fui-MessageBarGroup'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n base: {\n Bf5fcs: \"f4cll0y\",\n vin17d: \"fy8si0b\"\n },\n enter: {\n Bv12yb3: \"f1dg9w1v\"\n },\n exit: {\n Bv12yb3: \"fu80iee\"\n }\n}, {\n d: [\".f4cll0y{animation-fill-mode:forwards;}\", \".fy8si0b{animation-duration:var(--durationNormal);}\", \".f1dg9w1v{animation-name:fngeioi;}\", \".fu80iee{animation-name:fk0lfw7;}\"],\n k: [\"@keyframes fngeioi{from{opacity:0;transform:translateY(-100%);}to{opacity:1;transform:translateY(0);}}\", \"@keyframes fk0lfw7{from{opacity:1;}to{opacity:0;}}\"]\n});\n/**\n * Apply styling to the MessageBarGroup slots based on the state\n */\nexport const useMessageBarGroupStyles_unstable = state => {\n const styles = useStyles();\n state.root.className = mergeClasses(messageBarGroupClassNames.root, state.root.className);\n state.enterStyles = mergeClasses(styles.base, styles.enter);\n state.exitStyles = mergeClasses(styles.base, styles.exit);\n return state;\n};\n//# sourceMappingURL=useMessageBarGroupStyles.styles.js.map","import * as React from 'react';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useMessageBarGroup_unstable } from './useMessageBarGroup';\nimport { renderMessageBarGroup_unstable } from './renderMessageBarGroup';\nimport { useMessageBarGroupStyles_unstable } from './useMessageBarGroupStyles.styles';\n/**\n * MessageBarGroup component\n */ export const MessageBarGroup = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useMessageBarGroup_unstable(props, ref);\n useMessageBarGroupStyles_unstable(state);\n useCustomStyleHook_unstable('useMessageBarGroupStyles_unstable')(state);\n return renderMessageBarGroup_unstable(state);\n});\nMessageBarGroup.displayName = 'MessageBarGroup';\n","import { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const tagPickerControlClassNames = {\n root: 'fui-TagPickerControl',\n expandIcon: 'fui-TagPickerControl__expandIcon',\n secondaryAction: 'fui-TagPickerControl__secondaryAction',\n aside: 'fui-TagPickerControl__aside'\n};\nexport const tagPickerControlAsideWidthToken = '--fui-TagPickerControl-aside-width';\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n z189sj: [\"f1d8q41i\", \"f8lqu5g\"],\n uwmqm3: [\"f1uw59to\", \"fw5db7e\"],\n Bt984gj: \"f122n59\",\n i8kkvl: \"f14mj54c\",\n B7ck84d: \"f1ewtqcl\",\n mc9l5x: \"f22iagw\",\n Bf4jedk: \"f1exfvgq\",\n qhf8xq: \"f10pi13n\",\n Eh141a: \"fni485r\",\n Bbr2w1p: \"f14a1fxs\",\n Bduesf4: \"f3e99gv\",\n Bpq79vn: \"fhljsf7\",\n li1rpt: \"f1gw3sf2\",\n Bsft5z2: \"f13zj6fq\",\n E3zdtr: \"f1mdlcz9\",\n Eqx8gd: [\"f1a7op3\", \"f1cjjd47\"],\n By385i5: \"f1gboi2j\",\n B1piin3: [\"f1cjjd47\", \"f1a7op3\"],\n Dlnsje: \"f145g4dw\",\n d9w3h3: [\"f1kp91vd\", \"f1ibwz09\"],\n B3778ie: [\"f1ibwz09\", \"f1kp91vd\"],\n B1q35kw: 0,\n Bw17bha: 0,\n Bcgy8vk: 0,\n Bjuhk93: \"f1mnjydx\",\n Gjdm7m: \"f13evtba\",\n b1kco5: \"f1yk9hq\",\n Ba2ppi3: \"fhwpy7i\",\n F2fol1: \"f14ee0xe\",\n lck23g: \"f1xhbsuh\",\n df92cz: \"fv8e3ye\",\n I188md: \"ftb5wc6\",\n umuwi5: \"fjw5xc1\",\n Blcqepd: \"f1xdyd5c\",\n nplu4u: \"fatpbeo\",\n Bioka5o: \"fb7uyps\",\n H713fs: \"f1cmft4k\",\n B9ooomg: \"f1x58t8o\",\n Bercvud: \"f1ibeo51\"\n },\n listbox: {\n E5pizo: \"f1hg901r\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n Bxyxcbc: \"fmmk62d\",\n B7ck84d: \"f1ewtqcl\"\n },\n listboxCollapsed: {\n mc9l5x: \"fjseox\"\n },\n medium: {\n sshi5w: \"f1nxs5xn\"\n },\n large: {\n sshi5w: \"f1w5jphr\"\n },\n \"extra-large\": {\n sshi5w: \"f5pgtk9\"\n },\n outline: {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: \"f1c1zstj\",\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"fhz96rm\"\n },\n outlineInteractive: {\n Bgoe8wy: \"fvcxoqz\",\n Bwzppfd: [\"f1ub3y4t\", \"f1m52nbi\"],\n oetu4i: \"flmw63s\",\n gg5e9n: [\"f1m52nbi\", \"f1ub3y4t\"],\n B6oc9vd: \"fvs00aa\",\n ak43y8: [\"f1assf6x\", \"f4ruux4\"],\n wmxk5l: \"fqhmt4z\",\n B50zh58: [\"f4ruux4\", \"f1assf6x\"]\n },\n underline: {\n De3pzq: \"f1c21dwh\",\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n Bgfg5da: \"f9ez7ne\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"fokr779\"\n },\n \"filled-lighter\": {\n De3pzq: \"fxugw4r\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n \"filled-darker\": {\n De3pzq: \"f16xq7d1\",\n Bgfg5da: 0,\n B9xav0g: 0,\n oivjwe: 0,\n Bn0qgzm: 0,\n B4g9neb: 0,\n zhjwy3: 0,\n wvpqe5: 0,\n ibv6hh: 0,\n u1mtju: 0,\n h3c5rm: 0,\n vrafjx: 0,\n Bekrc4i: 0,\n i8vvqc: 0,\n g2u3we: 0,\n icvyot: 0,\n B4j52fo: 0,\n irswps: \"f88035w\"\n },\n invalid: {\n tvckwq: \"fs4k3qj\",\n gk2u95: [\"fcee079\", \"fmyw78r\"],\n hhx65j: \"f1fgmyf4\",\n Bxowmz0: [\"fmyw78r\", \"fcee079\"]\n },\n invalidUnderline: {\n hhx65j: \"f1fgmyf4\"\n },\n disabled: {\n Bceei9c: \"fdrzuqr\",\n De3pzq: \"f1c21dwh\",\n g2u3we: \"f1jj8ep1\",\n h3c5rm: [\"f15xbau\", \"fy0fskl\"],\n B9xav0g: \"f4ikngz\",\n zhjwy3: [\"fy0fskl\", \"f15xbau\"],\n Bjwas2f: \"fg455y9\",\n Bn1d65q: [\"f1rvyvqg\", \"f14g86mu\"],\n Bxeuatn: \"f1cwzwz\",\n n51gp8: [\"f14g86mu\", \"f1rvyvqg\"]\n }\n}, {\n d: [[\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".f1d8q41i{padding-right:calc(var(--spacingHorizontalM) + var(--fui-TagPickerControl-aside-width, 0px));}\", \".f8lqu5g{padding-left:calc(var(--spacingHorizontalM) + var(--fui-TagPickerControl-aside-width, 0px));}\", \".f1uw59to{padding-left:var(--spacingHorizontalM);}\", \".fw5db7e{padding-right:var(--spacingHorizontalM);}\", \".f122n59{align-items:center;}\", \".f14mj54c{column-gap:var(--spacingHorizontalXXS);}\", \".f1ewtqcl{box-sizing:border-box;}\", \".f22iagw{display:flex;}\", \".f1exfvgq{min-width:250px;}\", \".f10pi13n{position:relative;}\", \".fni485r{flex-wrap:wrap;}\", \".f1gw3sf2::after{box-sizing:border-box;}\", \".f13zj6fq::after{content:\\\"\\\";}\", \".f1mdlcz9::after{position:absolute;}\", \".f1a7op3::after{left:-1px;}\", \".f1cjjd47::after{right:-1px;}\", \".f1gboi2j::after{bottom:-1px;}\", \".f145g4dw::after{height:max(2px, var(--borderRadiusMedium));}\", \".f1kp91vd::after{border-bottom-left-radius:var(--borderRadiusMedium);}\", \".f1ibwz09::after{border-bottom-right-radius:var(--borderRadiusMedium);}\", [\".f1mnjydx::after{border-bottom:var(--strokeWidthThick) solid var(--colorCompoundBrandStroke);}\", {\n p: -1\n }], \".f13evtba::after{clip-path:inset(calc(100% - 2px) 0 0 0);}\", \".f1yk9hq::after{transform:scaleX(0);}\", \".fhwpy7i::after{transition-property:transform;}\", \".f14ee0xe::after{transition-duration:var(--durationUltraFast);}\", \".f1xhbsuh::after{transition-delay:var(--curveAccelerateMid);}\", \".f1hg901r{box-shadow:var(--shadow16);}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".fmmk62d{max-height:80vh;}\", \".fjseox{display:none;}\", \".f1nxs5xn{min-height:32px;}\", \".f1w5jphr{min-height:40px;}\", \".f5pgtk9{min-height:44px;}\", \".fxugw4r{background-color:var(--colorNeutralBackground1);}\", [\".fhz96rm{border:var(--strokeWidthThin) solid var(--colorNeutralStroke1);}\", {\n p: -2\n }], \".f1c1zstj{border-bottom-color:var(--colorNeutralStrokeAccessible);}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", [\".f9ez7ne{border-bottom:var(--strokeWidthThin) solid var(--colorNeutralStrokeAccessible);}\", {\n p: -1\n }], [\".fokr779{border-radius:0;}\", {\n p: -1\n }], [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".f16xq7d1{background-color:var(--colorNeutralBackground3);}\", [\".f88035w{border:var(--strokeWidthThin) solid var(--colorTransparentStroke);}\", {\n p: -2\n }], \".fs4k3qj:not(:focus-within),.fs4k3qj:hover:not(:focus-within){border-top-color:var(--colorPaletteRedBorder2);}\", \".fcee079:not(:focus-within),.fcee079:hover:not(:focus-within){border-right-color:var(--colorPaletteRedBorder2);}\", \".fmyw78r:not(:focus-within),.fmyw78r:hover:not(:focus-within){border-left-color:var(--colorPaletteRedBorder2);}\", \".f1fgmyf4:not(:focus-within),.f1fgmyf4:hover:not(:focus-within){border-bottom-color:var(--colorPaletteRedBorder2);}\", \".fdrzuqr{cursor:not-allowed;}\", \".f1jj8ep1{border-top-color:var(--colorNeutralStrokeDisabled);}\", \".f15xbau{border-right-color:var(--colorNeutralStrokeDisabled);}\", \".fy0fskl{border-left-color:var(--colorNeutralStrokeDisabled);}\", \".f4ikngz{border-bottom-color:var(--colorNeutralStrokeDisabled);}\"],\n w: [\".f14a1fxs:focus-within{outline-width:2px;}\", \".f3e99gv:focus-within{outline-style:solid;}\", \".fhljsf7:focus-within{outline-color:transparent;}\", \".fjw5xc1:focus-within::after{transform:scaleX(1);}\", \".f1xdyd5c:focus-within::after{transition-property:transform;}\", \".fatpbeo:focus-within::after{transition-duration:var(--durationNormal);}\", \".fb7uyps:focus-within::after{transition-delay:var(--curveDecelerateMid);}\", \".f1ibeo51:focus-within:active::after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}\"],\n m: [[\"@media screen and (prefers-reduced-motion: reduce){.fv8e3ye::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.ftb5wc6::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1cmft4k:focus-within::after{transition-duration:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media screen and (prefers-reduced-motion: reduce){.f1x58t8o:focus-within::after{transition-delay:0.01ms;}}\", {\n m: \"screen and (prefers-reduced-motion: reduce)\"\n }], [\"@media (forced-colors: active){.fg455y9{border-top-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f14g86mu{border-left-color:GrayText;}.f1rvyvqg{border-right-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }], [\"@media (forced-colors: active){.f1cwzwz{border-bottom-color:GrayText;}}\", {\n m: \"(forced-colors: active)\"\n }]],\n h: [\".fvcxoqz:hover{border-top-color:var(--colorNeutralStroke1Hover);}\", \".f1ub3y4t:hover{border-right-color:var(--colorNeutralStroke1Hover);}\", \".f1m52nbi:hover{border-left-color:var(--colorNeutralStroke1Hover);}\", \".flmw63s:hover{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"],\n a: [\".fvs00aa:active{border-top-color:var(--colorNeutralStroke1Pressed);}\", \".f1assf6x:active{border-right-color:var(--colorNeutralStroke1Pressed);}\", \".f4ruux4:active{border-left-color:var(--colorNeutralStroke1Pressed);}\", \".fqhmt4z:active{border-bottom-color:var(--colorNeutralStrokeAccessible);}\"]\n});\nconst useAsideStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f13qh94s\",\n Bt984gj: \"f122n59\",\n qhf8xq: \"f1euv43f\",\n Bhzewxz: \"f15twtuk\",\n j35jbq: [\"f8b87gs\", \"fedtrts\"],\n Budl1dq: \"f13p5kfd\",\n wkccdc: \"fjg31ve\",\n Bqenvij: \"f1l02sjl\",\n Bceei9c: \"f113hnb5\"\n },\n medium: {\n sshi5w: \"f1nxs5xn\"\n },\n large: {\n sshi5w: \"f1w5jphr\"\n },\n \"extra-large\": {\n sshi5w: \"f5pgtk9\"\n }\n}, {\n d: [\".f13qh94s{display:grid;}\", \".f122n59{align-items:center;}\", \".f1euv43f{position:absolute;}\", \".f15twtuk{top:0;}\", \".f8b87gs{right:var(--spacingHorizontalM);}\", \".fedtrts{left:var(--spacingHorizontalM);}\", \".f13p5kfd{grid-template-columns:repeat(2, auto);}\", \".fjg31ve{grid-template-rows:minmax(32px, auto) 1fr;}\", \".f1l02sjl{height:100%;}\", \".f113hnb5{cursor:text;}\", \".f1nxs5xn{min-height:32px;}\", \".f1w5jphr{min-height:40px;}\", \".f5pgtk9{min-height:44px;}\"]\n});\nexport const iconSizes = {\n small: '16px',\n medium: '20px',\n large: '24px'\n};\nconst useIconStyles = /*#__PURE__*/__styles({\n icon: {\n B7ck84d: \"f1ewtqcl\",\n sj55zd: \"fxkbij4\",\n Bceei9c: \"f1k6fduh\",\n mc9l5x: \"ftgm304\",\n Be2twd7: \"f1pp30po\",\n Bo70h7d: \"fvc9v3g\"\n },\n medium: {\n Be2twd7: \"f4ybsrx\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n large: {\n Be2twd7: \"fe5j1ua\",\n Frg6f3: [\"f1h9en5y\", \"f1xk557c\"]\n },\n \"extra-large\": {\n Be2twd7: \"f1rt2boy\",\n Frg6f3: [\"f1t5qyk5\", \"f1ikr372\"]\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n Bceei9c: \"fdrzuqr\"\n }\n}, {\n d: [\".f1ewtqcl{box-sizing:border-box;}\", \".fxkbij4{color:var(--colorNeutralStrokeAccessible);}\", \".f1k6fduh{cursor:pointer;}\", \".ftgm304{display:block;}\", \".f1pp30po{font-size:var(--fontSizeBase500);}\", \".fvc9v3g svg{display:block;}\", \".f4ybsrx{font-size:16px;}\", \".f1h9en5y{margin-left:var(--spacingHorizontalXXS);}\", \".f1xk557c{margin-right:var(--spacingHorizontalXXS);}\", \".fe5j1ua{font-size:20px;}\", \".f1rt2boy{font-size:24px;}\", \".f1t5qyk5{margin-left:var(--spacingHorizontalSNudge);}\", \".f1ikr372{margin-right:var(--spacingHorizontalSNudge);}\", \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".fdrzuqr{cursor:not-allowed;}\"]\n});\n/**\n * Apply styling to the PickerControl slots based on the state\n */\nexport const useTagPickerControlStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const asideStyles = useAsideStyles();\n state.root.className = mergeClasses(tagPickerControlClassNames.root, styles.root, styles[state.size], styles[state.appearance], !state.disabled && state.appearance === 'outline' && styles.outlineInteractive, state.invalid && state.appearance !== 'underline' && styles.invalid, state.invalid && state.appearance === 'underline' && styles.invalidUnderline, state.disabled && styles.disabled, state.root.className);\n if (state.aside) {\n state.aside.className = mergeClasses(tagPickerControlClassNames.aside, asideStyles.root, asideStyles[state.size], state.aside.className);\n }\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(tagPickerControlClassNames.expandIcon, iconStyles.icon, iconStyles[state.size], state.disabled && iconStyles.disabled, state.expandIcon.className);\n }\n if (state.secondaryAction) {\n state.secondaryAction.className = mergeClasses(tagPickerControlClassNames.secondaryAction, state.secondaryAction.className);\n }\n return state;\n};\n//# sourceMappingURL=useTagPickerControlStyles.styles.js.map","import * as React from 'react';\nimport { elementContains, getIntrinsicElementProps, slot, useEventCallback, useMergedRefs } from '@fluentui/react-utilities';\nimport { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';\nimport { ChevronDownRegular } from '@fluentui/react-icons';\nimport { useResizeObserverRef } from '../../utils/useResizeObserverRef';\nimport { tagPickerControlAsideWidthToken } from './useTagPickerControlStyles.styles';\nimport { useFieldContext_unstable } from '@fluentui/react-field';\n/**\n * Create the state required to render PickerControl.\n *\n * The returned state can be modified with hooks such as usePickerControlStyles_unstable,\n * before being passed to renderPickerControl_unstable.\n *\n * @param props - props from this instance of PickerControl\n * @param ref - reference to root HTMLDivElement of PickerControl\n */ export const useTagPickerControl_unstable = (props, ref)=>{\n var _useFieldContext_unstable;\n const targetRef = useTagPickerContext_unstable((ctx)=>ctx.targetRef);\n const triggerRef = useTagPickerContext_unstable((ctx)=>ctx.triggerRef);\n const tagPickerGroupRef = useTagPickerContext_unstable((ctx)=>ctx.tagPickerGroupRef);\n const open = useTagPickerContext_unstable((ctx)=>ctx.open);\n const popoverId = useTagPickerContext_unstable((ctx)=>ctx.popoverId);\n const setOpen = useTagPickerContext_unstable((ctx)=>ctx.setOpen);\n const secondaryInnerActionRef = useTagPickerContext_unstable((ctx)=>ctx.secondaryActionRef);\n const size = useTagPickerContext_unstable((ctx)=>ctx.size);\n const appearance = useTagPickerContext_unstable((ctx)=>ctx.appearance);\n const disabled = useTagPickerContext_unstable((ctx)=>ctx.disabled);\n const invalid = ((_useFieldContext_unstable = useFieldContext_unstable()) === null || _useFieldContext_unstable === void 0 ? void 0 : _useFieldContext_unstable.validationState) === 'error';\n const innerRef = React.useRef(null);\n const expandIconRef = React.useRef(null);\n const asideRef = React.useRef(null);\n const secondaryAction = slot.optional(props.secondaryAction, {\n elementType: 'span'\n });\n const secondaryActionRef = useMergedRefs(secondaryInnerActionRef, secondaryAction === null || secondaryAction === void 0 ? void 0 : secondaryAction.ref);\n if (secondaryAction) {\n secondaryAction.ref = secondaryActionRef;\n }\n const expandIcon = slot.optional(props.expandIcon, {\n renderByDefault: true,\n defaultProps: {\n 'aria-expanded': open,\n children: /*#__PURE__*/ React.createElement(ChevronDownRegular, null),\n role: 'button'\n },\n elementType: 'span'\n });\n const expandIconMergeRef = useMergedRefs(expandIcon === null || expandIcon === void 0 ? void 0 : expandIcon.ref, expandIconRef);\n if (expandIcon) {\n expandIcon.ref = expandIconMergeRef;\n }\n const observerRef = useResizeObserverRef(([entry])=>{\n var _innerRef_current;\n (_innerRef_current = innerRef.current) === null || _innerRef_current === void 0 ? void 0 : _innerRef_current.style.setProperty(tagPickerControlAsideWidthToken, `${entry.contentRect.width}px`);\n });\n const aside = slot.optional(undefined, {\n elementType: 'span',\n renderByDefault: Boolean(secondaryAction || expandIcon),\n defaultProps: {\n ref: observerRef\n }\n });\n const mergedAsideRefs = useMergedRefs(asideRef, aside === null || aside === void 0 ? void 0 : aside.ref);\n if (aside) {\n aside.ref = mergedAsideRefs;\n }\n const handleMouseDown = useEventCallback((event)=>{\n if (event.isDefaultPrevented()) {\n return;\n }\n if (elementContains(expandIconRef.current, event.target) || event.target === innerRef.current || event.target === tagPickerGroupRef.current || event.target === asideRef.current) {\n var _triggerRef_current;\n event.preventDefault();\n setOpen(event, !open);\n (_triggerRef_current = triggerRef.current) === null || _triggerRef_current === void 0 ? void 0 : _triggerRef_current.focus();\n }\n });\n return {\n components: {\n root: 'div',\n expandIcon: 'span',\n secondaryAction: 'span',\n aside: 'span'\n },\n root: slot.always(getIntrinsicElementProps('div', {\n ref: useMergedRefs(ref, targetRef, innerRef),\n 'aria-owns': open ? popoverId : undefined,\n ...props,\n onMouseDown: handleMouseDown\n }), {\n elementType: 'div'\n }),\n aside,\n expandIcon,\n secondaryAction,\n size,\n appearance,\n disabled,\n invalid\n };\n};\n","import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nexport const useResizeObserverRef = (callback)=>{\n const { targetDocument } = useFluent();\n const [observer] = React.useState(()=>{\n var _targetDocument_defaultView;\n const ResizeObserverConstructor = targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.ResizeObserver;\n if (ResizeObserverConstructor) {\n return new ResizeObserverConstructor(callback);\n }\n });\n const ref = React.useCallback((element)=>{\n if (element) {\n observer === null || observer === void 0 ? void 0 : observer.observe(element);\n } else {\n observer === null || observer === void 0 ? void 0 : observer.disconnect();\n }\n }, [\n observer\n ]);\n return ref;\n};\n","import * as React from 'react';\nimport { useTagPickerControl_unstable } from './useTagPickerControl';\nimport { renderTagPickerControl_unstable } from './renderTagPickerControl';\nimport { useTagPickerControlStyles_unstable } from './useTagPickerControlStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * TagPickerControl component -\n * A TagPickerControl is a composite component that controls actions and state for a TagPicker.\n */ export const TagPickerControl = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTagPickerControl_unstable(props, ref);\n useTagPickerControlStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerControlStyles_unstable')(state);\n return renderTagPickerControl_unstable(state);\n});\nTagPickerControl.displayName = 'TagPickerControl';\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of PickerControl\n */ export const renderTagPickerControl_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(state.root, {\n children: [\n state.root.children,\n state.aside && /*#__PURE__*/ _jsxs(state.aside, {\n children: [\n state.secondaryAction && /*#__PURE__*/ _jsx(state.secondaryAction, {}),\n state.expandIcon && /*#__PURE__*/ _jsx(state.expandIcon, {})\n ]\n })\n ]\n });\n};\n","export const tagPickerInputCSSRules = {\n width: '--fluent-TagPickerInput__width'\n};\nexport const tagPickerInputTokens = {\n width: `var(${tagPickerInputCSSRules.width}, 0)`\n};\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useActiveDescendantContext } from '@fluentui/react-aria';\nimport { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';\nimport { useMergedRefs, getIntrinsicElementProps, useEventCallback, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport { ArrowLeft, Backspace, Enter, Space } from '@fluentui/keyboard-keys';\nimport { useInputTriggerSlot } from '@fluentui/react-combobox';\nimport { useFieldControlProps_unstable } from '@fluentui/react-field';\nimport { tagPickerInputCSSRules } from '../../utils/tokens';\nimport { useFocusFinders } from '@fluentui/react-tabster';\n/**\n * Create the state required to render TagPickerInput.\n *\n * The returned state can be modified with hooks such as useTagPickerInputStyles_unstable,\n * before being passed to renderTagPickerInput_unstable.\n *\n * @param props - props from this instance of TagPickerInput\n * @param ref - reference to root HTMLDivElement of TagPickerInput\n */ export const useTagPickerInput_unstable = (propsArg, ref)=>{\n const props = useFieldControlProps_unstable(propsArg, {\n supportsLabelFor: true,\n supportsRequired: true,\n supportsSize: true\n });\n const { controller: activeDescendantController } = useActiveDescendantContext();\n const size = useTagPickerContext_unstable((ctx)=>ctx.size);\n const contextDisabled = useTagPickerContext_unstable((ctx)=>ctx.disabled);\n const tagPickerGroupRef = useTagPickerContext_unstable((ctx)=>ctx.tagPickerGroupRef);\n const triggerRef = useTagPickerContext_unstable((ctx)=>ctx.triggerRef);\n const selectedOptions = useTagPickerContext_unstable((ctx)=>ctx.selectedOptions);\n const setValue = useTagPickerContext_unstable((ctx)=>ctx.setValue);\n const setOpen = useTagPickerContext_unstable((ctx)=>ctx.setOpen);\n const setHasFocus = useTagPickerContext_unstable((ctx)=>ctx.setHasFocus);\n const clearSelection = useTagPickerContext_unstable((ctx)=>ctx.clearSelection);\n const open = useTagPickerContext_unstable((ctx)=>ctx.open);\n const popoverId = useTagPickerContext_unstable((ctx)=>ctx.popoverId);\n const selectOption = useTagPickerContext_unstable((ctx)=>ctx.selectOption);\n const getOptionById = useTagPickerContext_unstable((ctx)=>ctx.getOptionById);\n const contextValue = useTagPickerContext_unstable((ctx)=>ctx.value);\n useIsomorphicLayoutEffect(()=>{\n if (!triggerRef.current) {\n return;\n }\n setTagPickerInputStretchStyle(triggerRef.current);\n }, [\n selectedOptions,\n triggerRef\n ]);\n useIsomorphicLayoutEffect(()=>{\n if (triggerRef.current) {\n const input = triggerRef.current;\n const cb = ()=>setTagPickerInputStretchStyle(input);\n input.addEventListener('input', cb);\n return ()=>{\n input.removeEventListener('input', cb);\n };\n }\n }, [\n triggerRef\n ]);\n const { value = contextValue, disabled = contextDisabled } = props;\n const { findLastFocusable } = useFocusFinders();\n const isTypingRef = React.useRef(false);\n const root = useInputTriggerSlot({\n type: 'text',\n value: value !== null && value !== void 0 ? value : '',\n 'aria-controls': open ? popoverId : undefined,\n disabled,\n ...getIntrinsicElementProps('input', props),\n onKeyDown: useEventCallback((event)=>{\n var _props_onKeyDown;\n (_props_onKeyDown = props.onKeyDown) === null || _props_onKeyDown === void 0 ? void 0 : _props_onKeyDown.call(props, event);\n if ((event.key === ArrowLeft || event.key === Backspace) && event.currentTarget.selectionStart === 0 && tagPickerGroupRef.current) {\n var _findLastFocusable;\n (_findLastFocusable = findLastFocusable(tagPickerGroupRef.current)) === null || _findLastFocusable === void 0 ? void 0 : _findLastFocusable.focus();\n } else if (event.key === Space) {\n if (open && !isTypingRef.current) {\n setOpen(event, false);\n }\n } else if (event.key === Enter) {\n if (open) {\n ReactDOM.unstable_batchedUpdates(()=>{\n setValue(undefined);\n setOpen(event, false);\n });\n } else {\n setOpen(event, true);\n }\n }\n isTypingRef.current = event.key.length === 1 && event.code !== Space && !event.altKey && !event.ctrlKey && !event.metaKey;\n })\n }, useMergedRefs(triggerRef, ref), {\n activeDescendantController,\n freeform: false,\n state: {\n clearSelection,\n getOptionById,\n open,\n selectedOptions,\n selectOption,\n setHasFocus,\n setOpen,\n setValue,\n multiselect: true,\n value: props.value\n }\n });\n const state = {\n components: {\n root: 'input'\n },\n root,\n disabled,\n size\n };\n return state;\n};\n/**\n * while typing the user might need a bit more of space to see the text,\n * which means the input should stretch to 100% width\n * occupying a whole new line.\n *\n * This function will set the CSS variable `--width` to `100%` if the scrollWidth is greater than the offsetWidth,\n * meaning the text is overflowing the input.\n *\n * @param input - input element to apply the style\n * @returns void\n */ const setTagPickerInputStretchStyle = (input)=>{\n // first we need to remove the CSS variable\n // to properly calculate the difference between scrollWidth and offsetWidth\n input.style.removeProperty(tagPickerInputCSSRules.width);\n if (input.scrollWidth > input.offsetWidth + 1) {\n input.style.setProperty(tagPickerInputCSSRules.width, '100%');\n } else {\n input.style.removeProperty(tagPickerInputCSSRules.width);\n }\n};\n","import { __resetStyles, __styles, mergeClasses } from '@griffel/react';\nimport { typographyStyles, tokens } from '@fluentui/react-theme';\nimport { tagPickerInputTokens } from '../../utils/tokens';\nexport const tagPickerInputClassNames = {\n root: 'fui-TagPickerInput'\n};\nconst useBaseStyle = /*#__PURE__*/__resetStyles(\"r1hdk6fw\", null, [\".r1hdk6fw{background-color:var(--colorTransparentBackground);color:var(--colorNeutralForeground1);font-family:var(--fontFamilyBase);box-sizing:border-box;border:none;min-width:24px;max-width:100%;width:var(--fluent-TagPickerInput__width, 0);flex-grow:1;}\", \".r1hdk6fw:focus{outline-style:none;}\", \".r1hdk6fw::-webkit-input-placeholder{color:var(--colorNeutralForeground4);opacity:1;}\", \".r1hdk6fw::-moz-placeholder{color:var(--colorNeutralForeground4);opacity:1;}\", \".r1hdk6fw::placeholder{color:var(--colorNeutralForeground4);opacity:1;}\", \".r1hdk6fw::after{visibility:hidden;white-space:pre-wrap;}\"]);\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n medium: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"fa2pw7h\"\n },\n large: {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"ft37c3\"\n },\n \"extra-large\": {\n Bahqtrf: \"fk6fouc\",\n Be2twd7: \"fkhj508\",\n Bhrd7zp: \"figsok6\",\n Bg96gwp: \"f1i3iumi\",\n Byoj8tv: 0,\n uwmqm3: 0,\n z189sj: 0,\n z8tnut: 0,\n B0ocmuz: \"f3abo53\"\n },\n disabled: {\n sj55zd: \"f1s2aq7o\",\n De3pzq: \"f1c21dwh\",\n Bceei9c: \"fdrzuqr\",\n yvdlaj: \"fahhnxm\"\n }\n}, {\n d: [\".fk6fouc{font-family:var(--fontFamilyBase);}\", \".fkhj508{font-size:var(--fontSizeBase300);}\", \".figsok6{font-weight:var(--fontWeightRegular);}\", \".f1i3iumi{line-height:var(--lineHeightBase300);}\", [\".fa2pw7h{padding:var(--spacingVerticalSNudge) 0 var(--spacingVerticalSNudge) 0;}\", {\n p: -1\n }], [\".ft37c3{padding:var(--spacingVerticalMNudge) 0 var(--spacingVerticalMNudge) 0;}\", {\n p: -1\n }], [\".f3abo53{padding:var(--spacingVerticalM) 0 var(--spacingVerticalM) 0;}\", {\n p: -1\n }], \".f1s2aq7o{color:var(--colorNeutralForegroundDisabled);}\", \".f1c21dwh{background-color:var(--colorTransparentBackground);}\", \".fdrzuqr{cursor:not-allowed;}\", \".fahhnxm::-webkit-input-placeholder{color:var(--colorNeutralForegroundDisabled);}\", \".fahhnxm::-moz-placeholder{color:var(--colorNeutralForegroundDisabled);}\"]\n});\n/**\n * Apply styling to the TagPickerInput slots based on the state\n */\nexport const useTagPickerInputStyles_unstable = state => {\n 'use no memo';\n\n const baseStyle = useBaseStyle();\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerInputClassNames.root, baseStyle, styles[state.size], state.disabled && styles.disabled, state.root.className);\n return state;\n};\n//# sourceMappingURL=useTagPickerInputStyles.styles.js.map","import * as React from 'react';\nimport { useTagPickerInput_unstable } from './useTagPickerInput';\nimport { renderTagPickerInput_unstable } from './renderTagPickerInput';\nimport { useTagPickerInputStyles_unstable } from './useTagPickerInputStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * TagPickerInput component -\n * A TagPickerInput is a composite component that allows users to query tags.\n */ export const TagPickerInput = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTagPickerInput_unstable(props, ref);\n useTagPickerInputStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerInputStyles_unstable')(state);\n return renderTagPickerInput_unstable(state);\n});\nTagPickerInput.displayName = 'TagPickerInput';\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of TagPickerInput\n */ export const renderTagPickerInput_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const tagPickerListClassNames = {\n root: 'fui-TagPickerList'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n E5pizo: \"f1hg901r\",\n Beyfa6y: 0,\n Bbmb7ep: 0,\n Btl43ni: 0,\n B7oj6ja: 0,\n Dimara: \"ft85np5\",\n Bxyxcbc: \"fmmk62d\",\n B7ck84d: \"f1ewtqcl\"\n },\n collapsed: {\n mc9l5x: \"fjseox\"\n }\n}, {\n d: [\".f1hg901r{box-shadow:var(--shadow16);}\", [\".ft85np5{border-radius:var(--borderRadiusMedium);}\", {\n p: -1\n }], \".fmmk62d{max-height:80vh;}\", \".f1ewtqcl{box-sizing:border-box;}\", \".fjseox{display:none;}\"]\n});\n/**\n * Apply styling to the TagPickerList slots based on the state\n */\nexport const useTagPickerListStyles_unstable = state => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerListClassNames.root, styles.root, !state.open && styles.collapsed, state.root.className);\n return state;\n};\n//# sourceMappingURL=useTagPickerListStyles.styles.js.map","import * as React from 'react';\nimport { useTagPickerList_unstable } from './useTagPickerList';\nimport { renderTagPickerList_unstable } from './renderTagPickerList';\nimport { useTagPickerListStyles_unstable } from './useTagPickerListStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * TagPickerList component -\n * A TagPickerList is a composite component that allows users to display a list of tag options to be selected.\n */ export const TagPickerList = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTagPickerList_unstable(props, ref);\n useTagPickerListStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerListStyles_unstable')(state);\n return renderTagPickerList_unstable(state);\n});\nTagPickerList.displayName = 'TagPickerList';\n","import * as React from 'react';\nimport { Listbox } from '@fluentui/react-combobox';\nimport { useTagPickerContext_unstable } from '../../contexts/TagPickerContext';\nimport { slot, useMergedRefs } from '@fluentui/react-utilities';\nimport { useListboxSlot } from '@fluentui/react-combobox';\n/**\n * Create the state required to render TagPickerList.\n *\n * The returned state can be modified with hooks such as useTagPickerListStyles_unstable,\n * before being passed to renderTagPickerList_unstable.\n *\n * @param props - props from this instance of TagPickerList\n * @param ref - reference to root HTMLDivElement of TagPickerList\n */ export const useTagPickerList_unstable = (props, ref)=>{\n const triggerRef = useTagPickerContext_unstable((ctx)=>ctx.triggerRef);\n const popoverRef = useTagPickerContext_unstable((ctx)=>ctx.popoverRef);\n const popoverId = useTagPickerContext_unstable((ctx)=>ctx.popoverId);\n const open = useTagPickerContext_unstable((ctx)=>ctx.open);\n return {\n open,\n components: {\n root: Listbox\n },\n root: slot.always({\n ...useListboxSlot(props, useMergedRefs(popoverRef, ref), {\n state: {\n multiselect: true\n },\n triggerRef,\n defaultProps: {\n id: popoverId\n }\n }),\n role: 'listbox'\n }, {\n elementType: Listbox\n })\n };\n};\n"," import { jsx as _jsx } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of TagPickerList\n */ export const renderTagPickerList_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsx(state.root, {});\n};\n","import { __styles, mergeClasses } from '@griffel/react';\nimport { useOptionStyles_unstable } from '@fluentui/react-combobox';\nexport const tagPickerOptionClassNames = {\n root: 'fui-TagPickerOption',\n media: 'fui-TagPickerOption__media',\n secondaryContent: 'fui-TagPickerOption__secondaryContent'\n};\n/**\n * Styles for the root slot\n */\nconst useStyles = /*#__PURE__*/__styles({\n root: {\n mc9l5x: \"f13qh94s\",\n Budl1dq: \"fjxzuw\",\n Bt984gj: \"f122n59\"\n },\n secondaryContent: {\n Br312pm: \"fd46tj4\",\n Ijaq50: \"faunodf\"\n },\n media: {\n Ijaq50: \"fldnz9j\"\n }\n}, {\n d: [\".f13qh94s{display:grid;}\", \".fjxzuw{grid-template-columns:auto 1fr;}\", \".f122n59{align-items:center;}\", \".fd46tj4{grid-column-start:2;}\", \".faunodf{grid-row-start:2;}\", \".fldnz9j{grid-row-start:span 2;}\"]\n});\n/**\n * Apply styling to the TagPickerOption slots based on the state\n */\nexport const useTagPickerOptionStyles_unstable = state => {\n 'use no memo';\n\n useOptionStyles_unstable({\n ...state,\n active: false,\n disabled: false,\n focusVisible: false,\n checkIcon: undefined,\n selected: false\n });\n const styles = useStyles();\n state.root.className = mergeClasses(tagPickerOptionClassNames.root, styles.root, state.root.className);\n if (state.media) {\n state.media.className = mergeClasses(tagPickerOptionClassNames.media, styles.media, state.media.className);\n }\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(tagPickerOptionClassNames.secondaryContent, styles.secondaryContent, state.secondaryContent.className);\n }\n return state;\n};\n//# sourceMappingURL=useTagPickerOptionStyles.styles.js.map","import * as React from 'react';\nimport { useTagPickerOption_unstable } from './useTagPickerOption';\nimport { renderTagPickerOption_unstable } from './renderTagPickerOption';\nimport { useTagPickerOptionStyles_unstable } from './useTagPickerOptionStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n/**\n * TagPickerOption component -\n * A TagPickerOption is a composite component that allows users to select tags.\n */ export const TagPickerOption = /*#__PURE__*/ React.forwardRef((props, ref)=>{\n const state = useTagPickerOption_unstable(props, ref);\n useTagPickerOptionStyles_unstable(state);\n useCustomStyleHook_unstable('useTagPickerOptionStyles_unstable')(state);\n return renderTagPickerOption_unstable(state);\n});\nTagPickerOption.displayName = 'TagPickerOption';\n","import * as React from 'react';\nimport { slot } from '@fluentui/react-utilities';\nimport { useOption_unstable } from '@fluentui/react-combobox';\n/**\n * Create the state required to render TagPickerOption.\n *\n * The returned state can be modified with hooks such as useTagPickerOptionStyles_unstable,\n * before being passed to renderTagPickerOption_unstable.\n *\n * @param props - props from this instance of TagPickerOption\n * @param ref - reference to root HTMLDivElement of TagPickerOption\n */ export const useTagPickerOption_unstable = (props, ref)=>{\n const optionState = useOption_unstable(props, ref);\n const state = {\n components: {\n ...optionState.components,\n media: 'div',\n secondaryContent: 'span'\n },\n media: slot.optional(props.media, {\n elementType: 'div'\n }),\n secondaryContent: slot.optional(props.secondaryContent, {\n elementType: 'span'\n }),\n root: slot.always({\n ...optionState.root,\n role: 'option',\n 'aria-checked': props['aria-checked']\n }, {\n elementType: 'div'\n })\n };\n return state;\n};\n"," import { jsx as _jsx, jsxs as _jsxs } from \"@fluentui/react-jsx-runtime/jsx-runtime\";\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of TagPickerOption\n */ export const renderTagPickerOption_unstable = (state)=>{\n assertSlots(state);\n return /*#__PURE__*/ _jsxs(state.root, {\n children: [\n state.media && /*#__PURE__*/ _jsx(state.media, {}),\n state.root.children,\n state.secondaryContent && /*#__PURE__*/ _jsx(state.secondaryContent, {})\n ]\n });\n};\n","import * as React from 'react';\nimport { useEventCallback, useId, useMergedRefs } from '@fluentui/react-utilities';\nimport { optionClassNames } from '@fluentui/react-combobox';\nimport { resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport { useActiveDescendant } from '@fluentui/react-aria';\nimport { useComboboxBaseState } from '@fluentui/react-combobox';\n// Set a default set of fallback positions to try if the dropdown does not fit on screen\nconst fallbackPositions = [\n 'above',\n 'after',\n 'after-top',\n 'before',\n 'before-top'\n];\n/**\n * Create the state required to render Picker.\n *\n * The returned state can be modified with hooks such as usePickerStyles_unstable,\n * before being passed to renderPicker_unstable.\n *\n * @param props - props from this instance of Picker\n */ export const useTagPicker_unstable = (props)=>{\n const popoverId = useId('picker-listbox');\n const triggerInnerRef = React.useRef(null);\n const secondaryActionRef = React.useRef(null);\n const tagPickerGroupRef = React.useRef(null);\n const { positioning, size = 'medium', inline = false } = props;\n const { targetRef, containerRef } = usePositioning({\n position: 'below',\n align: 'start',\n offset: {\n crossAxis: 0,\n mainAxis: 2\n },\n fallbackPositions,\n matchTargetSize: 'width',\n ...resolvePositioningShorthand(positioning)\n });\n const { controller: activeDescendantController, activeParentRef, listboxRef } = useActiveDescendant({\n matchOption: (el)=>el.classList.contains(optionClassNames.root)\n });\n const comboboxState = useComboboxBaseState({\n ...props,\n onOptionSelect: useEventCallback((event, data)=>{\n var _props_onOptionSelect;\n return (_props_onOptionSelect = props.onOptionSelect) === null || _props_onOptionSelect === void 0 ? void 0 : _props_onOptionSelect.call(props, event, {\n selectedOptions: data.selectedOptions,\n value: data.optionValue,\n type: event.type,\n event\n });\n }),\n onOpenChange: useEventCallback((event, data)=>{\n var _props_onOpenChange;\n return (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, event, {\n ...data,\n type: event.type,\n event\n });\n }),\n activeDescendantController,\n editable: true,\n multiselect: true,\n size: 'medium'\n });\n const { trigger, popover } = childrenToTriggerAndPopover(props.children);\n return {\n activeDescendantController,\n components: {},\n trigger,\n popover: comboboxState.open || comboboxState.hasFocus ? popover : undefined,\n popoverId,\n disabled: comboboxState.disabled,\n triggerRef: useMergedRefs(triggerInnerRef, activeParentRef),\n popoverRef: useMergedRefs(listboxRef, containerRef),\n secondaryActionRef,\n tagPickerGroupRef,\n targetRef,\n size,\n inline,\n open: comboboxState.open,\n mountNode: comboboxState.mountNode,\n onOptionClick: useEventCallback((event)=>{\n comboboxState.onOptionClick(event);\n comboboxState.setOpen(event, false);\n }),\n appearance: comboboxState.appearance,\n clearSelection: comboboxState.clearSelection,\n getOptionById: comboboxState.getOptionById,\n getOptionsMatchingValue: comboboxState.getOptionsMatchingValue,\n registerOption: comboboxState.registerOption,\n selectedOptions: comboboxState.selectedOptions,\n selectOption: comboboxState.selectOption,\n setHasFocus: comboboxState.setHasFocus,\n setOpen: comboboxState.setOpen,\n setValue: comboboxState.setValue,\n value: comboboxState.value\n };\n};\nconst childrenToTriggerAndPopover = (children)=>{\n const childrenArray = React.Children.toArray(children);\n if (process.env.NODE_ENV !== 'production') {\n if (childrenArray.length === 0) {\n // eslint-disable-next-line no-console\n console.warn('Picker must contain at least one child');\n }\n if (childrenArray.length > 2) {\n // eslint-disable-next-line no-console\n console.warn('Picker must contain at most two children');\n }\n }\n let trigger = undefined;\n let popover = undefined;\n if (childrenArray.length === 2) {\n trigger = childrenArray[0];\n popover = childrenArray[1];\n } else if (childrenArray.length === 1) {\n popover = childrenArray[0];\n }\n return {\n trigger,\n popover\n };\n};\n","import * as React from 'react';\nexport function useTagPickerContextValues(state) {\n const { onOptionClick, registerOption, selectedOptions, selectOption, value, triggerRef, secondaryActionRef, tagPickerGroupRef, targetRef, size, setValue, setOpen, setHasFocus, popoverRef, appearance, clearSelection, getOptionById, getOptionsMatchingValue, open, popoverId, disabled } = state;\n return {\n activeDescendant: React.useMemo(()=>({\n controller: state.activeDescendantController\n }), [\n state.activeDescendantController\n ]),\n listbox: {\n onOptionClick,\n registerOption,\n getOptionById,\n getOptionsMatchingValue,\n selectedOptions,\n selectOption,\n focusVisible: false,\n setActiveOption: noop\n },\n picker: {\n value,\n triggerRef,\n targetRef,\n secondaryActionRef,\n tagPickerGroupRef,\n size,\n setValue,\n setOpen,\n setHasFocus,\n selectOption,\n popoverRef,\n selectedOptions,\n appearance,\n clearSelection,\n getOptionById,\n open,\n popoverId,\n disabled\n }\n };\n}\nconst noop = ()=>{\n/** noop */ };\n","import * as React from 'react';\nimport { useTagPicker_unstable } from './useTagPicker';\nimport { renderTagPicker_unstable } from './renderTagPicker';\nimport { useTagPickerContextValues } from './useTagPickerContextValues';\n/**\n * TagPicker component -\n * A TagPicker is a composite component that allows users to pick tags from a list of options.\n */ export const TagPicker = /*#__PURE__*/ React.memo((props)=>{\n const state = useTagPicker_unstable(props);\n const contextValues = useTagPickerContextValues(state);\n return renderTagPicker_unstable(state, contextValues);\n});\nTagPicker.displayName = 'TagPicker';\n","import * as React from 'react';\nimport { ActiveDescendantContextProvider } from '@fluentui/react-aria';\nimport { ListboxProvider } from '@fluentui/react-combobox';\nimport { Portal } from '@fluentui/react-portal';\nimport { TagPickerContextProvider } from '../../contexts/TagPickerContext';\nimport { assertSlots } from '@fluentui/react-utilities';\n/**\n * Render the final JSX of Picker\n */ export const renderTagPicker_unstable = (state, contexts)=>{\n assertSlots(state);\n return /*#__PURE__*/ React.createElement(TagPickerContextProvider, {\n value: contexts.picker\n }, /*#__PURE__*/ React.createElement(ActiveDescendantContextProvider, {\n value: contexts.activeDescendant\n }, /*#__PURE__*/ React.createElement(ListboxProvider, {\n value: contexts.listbox\n }, state.trigger, state.inline ? state.popover : /*#__PURE__*/ React.createElement(Portal, {\n mountNode: state.mountNode\n }, state.popover))));\n};\n","import * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\n/**\n * @internal\n */ export const tagPickerContextDefaultValue = {\n triggerRef: React.createRef(),\n popoverRef: React.createRef(),\n targetRef: React.createRef(),\n tagPickerGroupRef: React.createRef(),\n secondaryActionRef: React.createRef(),\n open: false,\n clearSelection: ()=>null,\n getOptionById: ()=>undefined,\n selectedOptions: [],\n selectOption: ()=>null,\n setHasFocus: ()=>null,\n setOpen: ()=>null,\n setValue: ()=>null,\n value: undefined,\n popoverId: '',\n size: 'medium',\n appearance: 'outline',\n disabled: false\n};\nconst TagPickerContext = createContext(undefined);\nexport const TagPickerContextProvider = TagPickerContext.Provider;\nexport const useTagPickerContext_unstable = (selector)=>useContextSelector(TagPickerContext, (ctx = tagPickerContextDefaultValue)=>selector(ctx));\n","'use strict';\n\nvar monthCount = 12;\n\nvar normalDaySpec = [\n 31, // January\n 28, // February\n 31, // March\n 30, // April\n 31, // May\n 30, // June\n 31, // July\n 31, // August\n 30, // September\n 31, // October\n 30, // November\n 31 // December\n];\nvar leapDaySpec = [\n 31, // January\n 29, // February\n 31, // March\n 30, // April\n 31, // May\n 30, // June\n 31, // July\n 31, // August\n 30, // September\n 31, // October\n 30, // November\n 31 // December\n];\n\n// provide a year-specific day spec\nfunction daySpec(year){\n return ((year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) ? leapDaySpec : normalDaySpec);\n}\n\nDate.prototype.addYear = function() {\n this.setFullYear(this.getFullYear() + 1);\n};\n\nDate.prototype.addMonth = function() {\n var m = this.getMonth() + 1;\n if (m === monthCount) {\n m = 0;\n this.addYear();\n }\n\n this.setMonth(m);\n};\n\nDate.prototype.addDay = function() {\n var spec = daySpec(this.getFullYear());\n var d = this.getDate() + 1;\n\n if (d > spec[this.getMonth() + 1]) {\n d = 1;\n\n this.addMonth();\n }\n\n this.setDate(d);\n};\n\nDate.prototype.addHour = function() {\n var h = this.getHours() + 1;\n\n if (h === 24) {\n h = 0;\n this.addDay();\n }\n\n this.setHours(h);\n};\n\nDate.prototype.addMinute = function() {\n var m = this.getMinutes() + 1;\n\n if (m === 60) {\n m = 0;\n this.addHour();\n }\n\n this.setMinutes(m);\n};\n\nDate.prototype.addSecond = function() {\n var s = this.getSeconds() + 1;\n\n if (s === 60) {\n s = 0;\n this.addMinute();\n }\n\n this.setSeconds(s);\n};\n","'use strict';\n\nvar date = require('./date');\n\n/**\n * Construct a new expression parser\n *\n * Options:\n * currentDate: iterator start date\n * endDate: iterator end date\n *\n * @constructor\n * @private\n * @param {Object} fields Expression fields parsed values\n * @param {Object} options Parser options\n */\nfunction CronExpression(fields, options) {\n this._options = options;\n this._currentDate = new Date(options.currentDate.toUTCString());\n this._endDate = options.endDate ? new Date(options.endDate.toUTCString()) : null;\n this._fields = {};\n\n // Map fields\n for (var i = 0, c = CronExpression.map.length; i < c; i++) {\n var key = CronExpression.map[i];\n this._fields[key] = fields[i];\n }\n}\n\n/**\n * Field mappings\n * @type {Array}\n */\nCronExpression.map = [ 'second', 'minute', 'hour', 'dayOfMonth', 'month', 'dayOfWeek' ];\n\n/**\n * Prefined intervals\n * @type {Object}\n */\nCronExpression.predefined = {\n '@yearly': '0 0 1 1 *',\n '@monthly': '0 0 1 * *',\n '@weekly': '0 0 * * 0',\n '@daily': '0 0 * * *',\n '@hourly': '0 * * * *'\n};\n\n/**\n * Fields constraints\n * @type {Array}\n */\nCronExpression.constraints = [\n [ 0, 59 ], // Second\n [ 0, 59 ], // Minute\n [ 0, 23 ], // Hour\n [ 1, 31 ], // Day of month\n [ 1, 12 ], // Month\n [ 0, 6 ] // Day of week\n];\n\n/**\n * Field aliases\n * @type {Object}\n */\nCronExpression.aliases = {\n month: {\n jan: 1,\n feb: 2,\n mar: 3,\n apr: 4,\n may: 5,\n jun: 6,\n jul: 7,\n aug: 8,\n sep: 9,\n oct: 10,\n nov: 11,\n dec: 12\n },\n\n dayOfWeek: {\n sun: 0,\n mon: 1,\n tue: 2,\n wed: 3,\n thu: 4,\n fri: 5,\n sat: 6\n }\n};\n\n/**\n * Field defaults\n * @type {Array}\n */\nCronExpression.parseDefaults = [ '0', '*', '*', '*', '*', '*' ];\n\n/**\n * Parse input interval\n *\n * @param {String} field Field symbolic name\n * @param {String} value Field value\n * @param {Array} constraints Range upper and lower constraints\n * @return {Array} Sequence of sorted values\n * @private\n */\nCronExpression._parseField = function(field, value, constraints) {\n // Replace aliases\n switch (field) {\n case 'month':\n case 'dayOfWeek':\n var aliases = CronExpression.aliases[field];\n\n value = value.replace(/[a-z]{1,3}/gi, function(match) {\n match = match.toLowerCase();\n if (aliases[match]) {\n return aliases[match];\n } else {\n throw new Error('Cannot resolve alias \"' + match + '\"')\n }\n });\n break;\n }\n\n //Check for valid characters.\n if(!CronExpression._validateCharacters(value)){\n throw new Error('Invalid characters, got value: ' + value)\n }\n\n // Replace '*'\n if (value.indexOf('*') !== -1) {\n value = value.replace(/\\*/g, constraints[0] + '-' + constraints[1]);\n }\n\n //\n // Inline parsing functions\n //\n // Parser path:\n // - parseSequence\n // - parseRepeat\n // - parseRange\n\n /**\n * Parse sequence\n *\n * @param {String} val\n * @return {Array}\n * @private\n */\n function parseSequence(val) {\n var stack = [];\n\n function handleResult(result) {\n var max = stack.length > 0 ? Math.max.apply(Math, stack) : -1;\n\n if (result instanceof Array) { // Make sequence linear\n result.forEach(function(value, index) {\n // Check constraints\n if (!CronExpression._validateConstraint(value, constraints)) {\n throw new Error(\n 'Constraint error, got value ' + value + ' expected range ' +\n constraints[0] + '-' + constraints[1]\n );\n }\n\n if (value > max) {\n stack.push(value);\n }\n\n max = Math.max.apply(Math, stack);\n })\n } else { // Scalar value\n result = parseInt(result, 10);\n\n // Check constraints\n if (!CronExpression._validateConstraint(result, constraints)) {\n throw new Error(\n 'Constraint error, got value ' + result + ' expected range ' +\n constraints[0] + '-' + constraints[1]\n );\n }\n\n if (result > max) {\n stack.push(result);\n }\n }\n }\n\n if (val.indexOf(',') !== -1) {\n var atoms = val.split(',');\n\n atoms.forEach(function(value, index) {\n handleResult(parseRepeat(value.toString()));\n });\n\n } else {\n handleResult(parseRepeat(val));\n }\n\n return stack;\n }\n\n /**\n * Parse repetition interval\n *\n * @param {String} val\n * @return {Array}\n */\n function parseRepeat(val) {\n var repeatInterval = 1;\n\n if (val.indexOf('/') !== -1) {\n var atoms = val.split('/');\n repeatInterval = atoms[atoms.length - 1];\n\n return parseRange(atoms[0], repeatInterval);\n } else {\n return parseRange(val, repeatInterval);\n }\n }\n\n /**\n * Parse range\n *\n * @param {String} val\n * @param {Number} repeatInterval Repetition interval\n * @return {Array}\n * @private\n */\n function parseRange(val, repeatInterval) {\n var stack = [];\n\n if (val.indexOf('-') !== -1) {\n var atoms = val.split('-');\n\n // Validate format\n if (atoms.length != 2) {\n throw new Error('Invalid range format: ' + val);\n }\n\n // Validate range\n var min = parseInt(atoms[0], 10);\n var max = parseInt(atoms[1], 10);\n\n if (Number.isNaN(min) || Number.isNaN(max) ||\n min < constraints[0] || max > constraints[1]) {\n throw new Error(\n 'Constraint error, got range ' +\n min + '-' + max +\n ' expected range ' +\n constraints[0] + '-' + constraints[1]\n );\n } else if (min >= max) {\n throw new Error('Invalid range: ' + val);\n }\n\n // Create range\n var repeatIndex = repeatInterval;\n\n for (var index = min, count = max; index <= count; index++) {\n if (repeatIndex > 0 && (repeatIndex % repeatInterval) === 0) {\n repeatIndex = 1;\n stack.push(index);\n } else {\n repeatIndex++;\n }\n }\n\n return stack;\n } else {\n return val;\n }\n }\n\n return parseSequence(value);\n};\n\nCronExpression._validateCharacters = function(value) {\n var regex = new RegExp('^[\\\\d|/|*|\\\\-|,]+$');\n return regex.test(value);\n};\n\n/**\n * Constraint validation\n *\n * @private\n * @static\n * @param {Object} value Value to check\n * @return {Boolean} True if validation succeeds, false if not\n */\nCronExpression._validateConstraint = function(value, constraints) {\n if (value < constraints[0] || value > constraints[1]) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Timespan validation\n *\n * @private\n * @static\n * @param {Date} current Current date\n * @param {Date} end End date\n * @return {Boolean} Return true if timespan is still valid, otherwise return false\n */\nCronExpression._validateTimespan = function(current, end) {\n if (end && (end.getTime() - current.getTime()) < 0) {\n return false;\n }\n\n return true;\n};\n\n/**\n * Find next matching schedule date\n *\n * @return {Number}\n * @private\n */\nCronExpression.prototype._findSchedule = function() {\n // Validate timespan\n if (!CronExpression._validateTimespan(this._currentDate, this._endDate)) {\n throw new Error('Out of the timespan range');\n }\n\n var current = new Date(this._currentDate.toUTCString());\n\n function findNearest(value, sequence) {\n for (var i = 0, c = sequence.length; i < c; i++) {\n if (sequence[i] >= value) {\n return sequence[i];\n }\n }\n\n return sequence[0];\n }\n\n /**\n * Match field value\n *\n * @param {String} value\n * @param {Array} sequence\n * @return {Boolean}\n * @private\n */\n function matchSchedule(value, sequence) {\n return findNearest(value, sequence) === value;\n }\n\n // Reset\n if (this._fields.second.length === 1 && this._fields.second[0] === 0) {\n current.setSeconds(0);\n current.addMinute();\n } else {\n current.addSecond();\n }\n\n // Iterate and match schedule\n while (true) {\n // Validate timespan\n if (!CronExpression._validateTimespan(current, this._endDate)) {\n throw new Error('Out of the timespan range');\n }\n\n // Match month\n if (!matchSchedule(current.getMonth() + 1, this._fields.month)) {\n current.addMonth();\n current.setDate(1);\n current.setHours(0);\n current.setMinutes(0);\n current.setSeconds(0);\n continue;\n }\n\n // Match day of month\n if (!matchSchedule(current.getDate(), this._fields.dayOfMonth)) {\n current.addDay();\n current.setHours(0);\n current.setMinutes(0);\n current.setSeconds(0);\n continue;\n }\n\n // Match day of week\n if (!matchSchedule(current.getDay(), this._fields.dayOfWeek)) {\n current.addDay();\n current.setHours(0);\n current.setMinutes(0);\n current.setSeconds(0);\n continue;\n }\n\n // Match hour\n if (!matchSchedule(current.getHours(), this._fields.hour)) {\n current.addHour();\n current.setMinutes(0);\n current.setSeconds(0);\n continue;\n }\n\n // Match minute\n if (!matchSchedule(current.getMinutes(), this._fields.minute)) {\n current.addMinute();\n current.setSeconds(0);\n continue;\n }\n\n // Match second\n if (!matchSchedule(current.getSeconds(), this._fields.second)) {\n current.addSecond();\n continue;\n }\n\n break;\n }\n\n return (this._currentDate = current);\n};\n\n/**\n * Find next suitable date\n *\n * @public\n * @return {Date}\n */\nCronExpression.prototype.next = function() {\n return this._findSchedule();\n};\n\n/**\n * Iterate over expression iterator\n *\n * @public\n * @param {Number} n Numbers of steps to iterate\n * @param {Function} callback Optional callback\n * @return {Array} Array of the iterated results\n */\nCronExpression.prototype.iterate = function(n, callback) {\n var dates = [];\n\n for (var i = 0, c = n; i < c; i++) {\n try {\n var item = this.next();\n dates.push(item);\n\n // Fire the callback\n if (callback) {\n callback(item, i);\n }\n } catch (e) {\n break;\n }\n }\n\n return dates;\n};\n\n/**\n * Reset expression iterator state\n *\n * @public\n */\nCronExpression.prototype.reset = function() {\n this._currentDate = new Date(this._options.currentDate.toUTCString());\n};\n\n/**\n * Parse input expression (async)\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n * @param {Function} callback\n */\nCronExpression.parse = function(expression, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n try {\n var cronExpression = CronExpression.parseSync(expression, options);\n callback(null, cronExpression);\n } catch (e){\n callback(e);\n }\n}\n\n/**\n * Parse input expression (sync)\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n */\nCronExpression.parseSync = function(expression, options) {\n if (!options) {\n options = {};\n }\n\n if (!options.currentDate) {\n options.currentDate = new Date();\n }\n\n // Is input expression predefined?\n if (CronExpression.predefined[expression]) {\n expression = CronExpression.predefined[expression];\n }\n\n // Split fields\n var fields = [];\n var atoms = expression.split(' ');\n\n // Resolve fields\n var start = (CronExpression.map.length - atoms.length);\n for (var i = 0, c = CronExpression.map.length; i < c; ++i) {\n var field = CronExpression.map[i]; // Field name\n var value = atoms[atoms.length > c ? i : i - start]; // Field value\n\n if (i < start || !value) {\n fields.push(this._parseField(field, CronExpression.parseDefaults[i], CronExpression.constraints[i]));\n } else { // Use default value\n fields.push(this._parseField(field, value, CronExpression.constraints[i]));\n }\n }\n\n return new CronExpression(fields, options);\n};\n\nmodule.exports = CronExpression;\n","'use strict';\n\nvar CronExpression = require('./expression');\n\nfunction CronParser() {\n\n}\n\n/**\n * Parse crontab entry\n *\n * @private\n * @param {String} entry Crontab file entry/line\n * @param {Function} callback\n */\nCronParser._parseEntry = function(entry, callback) {\n var atoms = entry.split(' ');\n\n if (atoms.length === 6) {\n CronExpression.parse(entry, callback);\n } else if (atoms.length > 6) {\n CronExpression.parse(entry, function(err, interval) {\n if (err) {\n callback(err);\n return;\n }\n\n callback(null, {\n interval: interval,\n command: atoms.slice(6, atoms.length)\n });\n });\n } else {\n callback(new Error('Invalid entry: ' + entry));\n }\n};\n\n/**\n * Wrapper for CronExpression.parser method\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n * @param {Function} callback\n */\nCronParser.parseExpression = function(expression, options, callback) {\n return CronExpression.parse(expression, options, callback);\n};\n\n\n/**\n * Wrapper for CronExpression.parserSync method\n *\n * @public\n * @param {String} expression Input expression\n * @param {Object} [options] Parsing options\n */\nCronParser.parseExpressionSync = function(expression, options) {\n return CronExpression.parseSync(expression, options);\n};\n\n\n/**\n * Parse content string\n *\n * @public\n * @param {String} data Crontab content\n * @param {Function} callback\n */\nCronParser.parseString = function(data, callback) {\n var self = this;\n var blocks = data.split('\\n');\n var count = blocks.length;\n var called = false;\n\n var response = {\n variables: {},\n expressions: [],\n errors: {}\n };\n\n blocks.forEach(function(entry, index) {\n var matches = null;\n entry = entry.replace(/^\\s+|\\s+$/g, ''); // Remove surrounding spaces\n\n if (entry.length > 0) {\n if (entry.match(/^#/)) { // Comment\n count--;\n return;\n } else if ((matches = entry.match(/^(.*)=(.*)$/))) { // Variable\n count--;\n response.variables[matches[1]] = matches[2];\n return;\n } else { // Expression?\n self._parseEntry('0 ' + entry, function(err, result) {\n if (err) {\n response.errors[entry] = err;\n } else {\n response.expressions.push(result.interval);\n }\n\n if (!called && --count === 0) {\n called = true;\n callback(null, response);\n }\n });\n }\n } else {\n count--;\n }\n });\n\n if (!called && count === 0) {\n called = true;\n callback(null, response);\n }\n};\n\n/**\n * Parse crontab file\n *\n * @public\n * @param {String} filePath Path to file\n * @param {Function} callback\n */\nCronParser.parseFile = function(filePath, callback) {\n var fs = require('fs');\n fs.readFile(filePath, function(err, data) {\n if (err) {\n callback(err);\n return;\n }\n\n CronParser.parseString(data.toString(), callback);\n });\n};\n\nmodule.exports = CronParser;\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","var matcher = function(selector) {\n return function() {\n return this.matches(selector);\n };\n};\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!element.matches) {\n var vendorMatches = element.webkitMatchesSelector\n || element.msMatchesSelector\n || element.mozMatchesSelector\n || element.oMatchesSelector;\n matcher = function(selector) {\n return function() {\n return vendorMatches.call(this, selector);\n };\n };\n }\n}\n\nexport default matcher;\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);\n}\n\nfunction selection_cloneDeep() {\n return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","/*! file-extension v4.0.5 | (c) silverwind | BSD license */\n\"use strict\";\n\n(function(m) {\n if (typeof exports === \"object\") {\n module.exports = m();\n } else if (typeof define === \"function\" && define.amd) {\n define([], m);\n } else {\n this.fileExtension = m();\n }\n})(function() {\n return function fileExtension(filename, opts) {\n if (!opts) opts = {};\n if (!filename) return \"\";\n var ext = (/[^./\\\\]*$/.exec(filename) || [\"\"])[0];\n return opts.preserveCase ? ext : ext.toLowerCase();\n };\n});\n","console.log(\"I'm `fs` modules\");\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getContrastColor = exports.calculateContrastColorInnerLogic = exports.generateTargetLuminance = exports.LinearRGBfromLuminance = exports.calculateTotalLength = exports.calculateBounds = exports.RGBLinearTo8bit = exports.RGB8bitToLinear = exports.delinearizeElement = exports.denormalizeElement = exports.linearizeElement = exports.normalizeElement = exports.getLuminance = exports.getContrastRatio = exports.calculateContrastRatio = exports.validateLuminance = exports.validateColor = void 0;\nconst color_1 = require(\"../types/color\");\n/**\n * @private\n * Validate the RGB color array.\n * @param {RGB} color - The RGB color array.\n * @throws Will throw an error if the RGB array is invalid.\n */\nconst validateColor = (color) => {\n if (!Array.isArray(color) || color.length !== 3) {\n throw new Error('Invalid RGB array. RGB should be an array of three numbers.');\n }\n if (!color.every((value) => typeof value === 'number' && value >= 0 && value <= 255)) {\n throw new Error('Invalid RGB values. Each value should be a number between 0 and 255.');\n }\n};\nexports.validateColor = validateColor;\n/**\n * @private\n * Validate the target luminance value.\n * @param {number} luminance - The luminance value.\n * @throws Will throw an error if the luminance is invalid.\n */\nconst validateLuminance = (luminance) => {\n if (typeof luminance !== 'number' || luminance <= 0) {\n throw new Error('Invalid target luminance. Target luminance should be a number greater than 0.');\n }\n else if (luminance > 21) {\n throw new Error('Invalid target luminance. Target luminance should be a number less than or equal to 21.');\n }\n};\nexports.validateLuminance = validateLuminance;\n/**\n * @private\n * Calculate contrast ratio between two luminance values.\n * @param {number} lum1 - The first luminance value.\n * @param {number} lum2 - The second luminance value.\n * @returns {number} The contrast ratio.\n */\nconst calculateContrastRatio = (lum1, lum2) => {\n return (Math.max(lum1, lum2) + 0.05) / (Math.min(lum1, lum2) + 0.05);\n};\nexports.calculateContrastRatio = calculateContrastRatio;\n/**\n * Calculate contrast ratio between two RGB colors.\n * @param {RGB} color1 - The first RGB color.\n * @param {RGB} color2 - The second RGB color.\n * @returns {number} The contrast ratio.\n */\nconst getContrastRatio = (color1, color2) => {\n return (0, exports.calculateContrastRatio)((0, exports.getLuminance)(color1), (0, exports.getLuminance)(color2));\n};\nexports.getContrastRatio = getContrastRatio;\n/**\n * Calculate luminance from RGB values.\n * @param {RGB} RGBValue - The RGB color array.\n * @returns {number} The calculated luminance.\n */\nconst getLuminance = (RGBValue) => {\n const LinearRGB = RGBValue.map(exports.RGB8bitToLinear);\n return 0.2126 * LinearRGB[0] + 0.7152 * LinearRGB[1] + 0.0722 * LinearRGB[2];\n};\nexports.getLuminance = getLuminance;\n/**\n * @private\n * Normalize an 8-bit RGB element to a 0-1 range.\n * @param {number} element - The 8-bit RGB element.\n * @returns {number} The normalized value.\n */\nconst normalizeElement = (element) => {\n return element / 255;\n};\nexports.normalizeElement = normalizeElement;\n/**\n * @private\n * Linearize an RGB element (convert to linear RGB space).\n * @param {number} element - The normalized RGB element.\n * @returns {number} The linearized value.\n */\nconst linearizeElement = (element) => {\n return element <= 0.03928\n ? element / 12.92\n : Math.pow((element + 0.055) / 1.055, 2.4);\n};\nexports.linearizeElement = linearizeElement;\n/**\n * @private\n * Denormalize a linear RGB element back to 8-bit RGB.\n * @param {number} element - The linear RGB element.\n * @returns {number} The denormalized value.\n */\nconst denormalizeElement = (element) => {\n return element * 255;\n};\nexports.denormalizeElement = denormalizeElement;\n/**\n * @private\n * Delinearize an RGB element (convert from linear RGB space).\n * @param {number} element - The linear RGB element.\n * @returns {number} The delinearized value.\n */\nconst delinearizeElement = (element) => {\n return element <= 0.00303949\n ? element * 12.92\n : Math.pow(element, 1 / 2.4) * 1.055 - 0.055;\n};\nexports.delinearizeElement = delinearizeElement;\n/**\n * @private\n * Convert an 8-bit RGB channel value to a linear RGB value.\n * @param {number} channelValue - The 8-bit RGB channel value.\n * @returns {number} The linear RGB value.\n */\nconst RGB8bitToLinear = (channelValue) => {\n if (channelValue < 0 || channelValue > 255) {\n throw new Error('Invalid 8-bit RGB channel value.');\n }\n const normalizedValue = (0, exports.normalizeElement)(channelValue);\n const linearizedValue = (0, exports.linearizeElement)(normalizedValue);\n return linearizedValue;\n};\nexports.RGB8bitToLinear = RGB8bitToLinear;\n/**\n * @private\n * Convert a linear RGB value to an 8-bit RGB channel value.\n * @param {number} linearValue - The linear RGB value.\n * @returns {number} The 8-bit RGB channel value.\n */\nconst RGBLinearTo8bit = (linearValue) => {\n if (linearValue < 0 || linearValue > 1) {\n throw new Error(`Invalid linear RGB value`);\n }\n const delinearizedValue = (0, exports.delinearizeElement)(linearValue);\n const denormalizedValue = (0, exports.denormalizeElement)(delinearizedValue);\n return Math.round(denormalizedValue);\n};\nexports.RGBLinearTo8bit = RGBLinearTo8bit;\n/**\n * @private\n * Calculate the lower and upper bounds for contrast calculation.\n * @param {number} multiplier - The multiplier for the bounds.\n * @param {number} luminance - The luminance value.\n * @returns {[number, number]} The lower and upper bounds.\n */\nconst calculateBounds = (multiplier, luminance) => {\n const lowerBound = luminance / multiplier + 0.05 * (1 / multiplier - 1);\n const upperBound = multiplier * luminance + 0.05 * (multiplier - 1);\n return [Math.max(0, lowerBound), Math.min(1, upperBound)];\n};\nexports.calculateBounds = calculateBounds;\n/**\n * @private\n * Calculate the total length between the lower and upper bounds.\n * @param {number[]} bounds - The bounds as an array of two numbers.\n * @returns {number} The total length between the bounds.\n */\nconst calculateTotalLength = (bounds) => {\n const lowerBound = bounds[0];\n const upperBound = bounds[1];\n return lowerBound + 1 - upperBound;\n};\nexports.calculateTotalLength = calculateTotalLength;\n/**\n * @private\n * Get the linear RGB value from the luminance and target RGB element.\n * @param {number} luminance - The luminance value.\n * @param {RGBElement} target - The target RGB element (R, G, or B).\n * @returns {number} The linear RGB value.\n */\nconst LinearRGBfromLuminance = (luminance, target) => {\n return luminance / color_1.RGBChannelWeights[target];\n};\nexports.LinearRGBfromLuminance = LinearRGBfromLuminance;\n/**\n * @private\n * Generate target luminance within bounds using randomization.\n * @param {number} totalLength - The total length between bounds.\n * @param {number} lowerBound - The lower bound for luminance.\n * @param {number} upperBound - The upper bound for luminance.\n * @param {number} weight - The weight of the RGB channel.\n * @returns {number} The target luminance value.\n */\nconst generateTargetLuminance = (totalLength, lowerBound, upperBound, weight) => {\n const _tmp = Math.random() * totalLength * weight;\n return _tmp > lowerBound ? _tmp + (-lowerBound + upperBound) * weight : _tmp;\n};\nexports.generateTargetLuminance = generateTargetLuminance;\n/**\n * @private\n * Finds a color that has the contrast greater than the specified luminance with the given base color.\n * @param {RGB} color - The base RGB color.\n * @param {number} luminance - The target luminance value.\n * @returns {RGB | null} The contrast color, or null if no suitable color is found.\n */\nconst calculateContrastColorInnerLogic = (color, luminance) => {\n let backgroundLuminance = (0, exports.getLuminance)(color);\n let [lowerBound, upperBound] = (0, exports.calculateBounds)(luminance, backgroundLuminance);\n let totalLength = (0, exports.calculateTotalLength)([lowerBound, upperBound]);\n let _targetLuminance = (0, exports.generateTargetLuminance)(totalLength, lowerBound, upperBound, color_1.RGBChannelWeights.R);\n const LinearR = (0, exports.LinearRGBfromLuminance)(_targetLuminance, 'R');\n const _8bitR = (0, exports.RGBLinearTo8bit)(LinearR);\n backgroundLuminance -= _targetLuminance;\n [lowerBound, upperBound] = (0, exports.calculateBounds)(luminance, backgroundLuminance);\n totalLength = (0, exports.calculateTotalLength)([lowerBound, upperBound]);\n _targetLuminance = (0, exports.generateTargetLuminance)(totalLength, lowerBound, upperBound, color_1.RGBChannelWeights.G);\n const LinearG = (0, exports.LinearRGBfromLuminance)(_targetLuminance, 'G');\n const _8bitG = (0, exports.RGBLinearTo8bit)(LinearG);\n backgroundLuminance -= _targetLuminance;\n [lowerBound, upperBound] = (0, exports.calculateBounds)(luminance, backgroundLuminance);\n totalLength = (0, exports.calculateTotalLength)([lowerBound, upperBound]);\n _targetLuminance = (0, exports.generateTargetLuminance)(totalLength, lowerBound, upperBound, color_1.RGBChannelWeights.B);\n const LinearB = (0, exports.LinearRGBfromLuminance)(_targetLuminance, 'B');\n const _8bitB = (0, exports.RGBLinearTo8bit)(LinearB);\n return [_8bitR, _8bitG, _8bitB];\n};\nexports.calculateContrastColorInnerLogic = calculateContrastColorInnerLogic;\n/**\n * Finds a color that has a contrast ratio greater than the specified luminance with the given base color.\n * @param {RGB} color - The base RGB color.\n * @param {number} luminance - The target luminance value for the contrast ratio (e.g., 3.0, 4.5, 7.0).\n * @throws Will throw an error if the RGB array is invalid or the luminance is invalid.\n * @returns {RGB | null} The contrast color, or null if no suitable color is found.\n */\nconst getContrastColor = (color, luminance) => {\n // validate parameters\n (0, exports.validateColor)(color);\n (0, exports.validateLuminance)(luminance);\n const bgColor = color;\n let i = 0;\n while (i < 1000) {\n i++;\n try {\n const targetColor = (0, exports.calculateContrastColorInnerLogic)(bgColor, luminance);\n if ((0, exports.getContrastRatio)(targetColor, bgColor) > luminance) {\n return targetColor;\n }\n }\n catch (e) {\n if (e.message === 'Invalid linear RGB value') {\n continue;\n }\n else {\n throw e;\n }\n }\n }\n // return null if no suitable color is found\n return null;\n};\nexports.getContrastColor = getContrastColor;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getContrastColor = exports.getLuminance = exports.getContrastRatio = void 0;\nvar color_1 = require(\"../lib/color\");\nObject.defineProperty(exports, \"getContrastRatio\", { enumerable: true, get: function () { return color_1.getContrastRatio; } });\nObject.defineProperty(exports, \"getLuminance\", { enumerable: true, get: function () { return color_1.getLuminance; } });\nObject.defineProperty(exports, \"getContrastColor\", { enumerable: true, get: function () { return color_1.getContrastColor; } });\n__exportStar(require(\"../types/color\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RGBChannelWeights = void 0;\n/**\n * Object for RGB channel weights used to calculate luminance.\n */\nexports.RGBChannelWeights = {\n R: 0.2126,\n G: 0.7152,\n B: 0.0722,\n};\n","function _objectDestructuringEmpty(t) {\n if (null == t) throw new TypeError(\"Cannot destructure \" + t);\n}\nexport { _objectDestructuringEmpty as default };"],"names":["_Object$assign","_extends","module","exports","target","i","arguments","length","source","key","Object","prototype","hasOwnProperty","call","apply","this","_Object$create","subClass","superClass","constructor","__proto__","obj","__esModule","_Object$keys","excluded","sourceKeys","indexOf","breadcrumbButtonClassNames","useIconStyles","base","Be2twd7","Bqenvij","Bg96gwp","a9b677","t21cq0","small","u3h8gg","Biu6dll","medium","large","d","useStyles","tokens","colorTransparentBackground","colorNeutralForeground2","icon","root","Bf4jedk","j4b8c3","Bahqtrf","Bhrd7zp","Byoj8tv","uwmqm3","z189sj","z8tnut","B0ocmuz","current","Jwef8y","Bi91k9c","eoavqd","Bbdnnc7","Bk3fhr4","Bmfj8id","iro3zm","B2d53fq","c3iz72","x3br3k","em6i61","vm6p8p","Bszkowt","Dyrjrp","ezr58z","nhk3du","Bfrek18","G209fr","currentSmall","currentMedium","currentLarge","p","h","BreadcrumbButton","props","ref","state","size","as","rest","controlType","href","_props_ariacurrent","_props_ariadisabled","useButton","appearance","role","undefined","type","iconPosition","useBreadcrumbButton_unstable","styles","iconStyles","currentSizeMap","className","useBreadcrumbButtonStyles_unstable","renderButton","renderBreadcrumbButton_unstable","displayName","useBreadcrumbDivider_unstable","dir","getDividerIcon","components","slot","always","getIntrinsicElementProps","g","children","elementType","breadcrumbDividerClassNames","BreadcrumbDivider","useBreadcrumbDividerStyles_unstable","assertSlots","renderBreadcrumbDivider_unstable","breadcrumbItemClassNames","useBreadcrumbItemResetStyles","BreadcrumbItem","useBreadcrumbItem_unstable","resetStyles","useBreadcrumbItemStyles_unstable","renderBreadcrumbItem_unstable","breadcrumbClassNames","useListClassName","Breadcrumb","focusMode","list","focusAttributes","useArrowNavigationGroup","circular","axis","memorizeCurrent","_props_arialabel","optional","renderByDefault","defaultProps","useBreadcrumb_unstable","contextValues","useBreadcrumbContextValues_unstable","listBaseClassName","useBreadcrumbStyles_unstable","value","renderBreadcrumb_unstable","BreadcrumbContext","breadcrumbDefaultValue","BreadcrumbProvider","Provider","useBreadcrumbContext_unstable","_React_useContext","partitionBreadcrumbItems","options","startDisplayedItems","overflowItems","endDisplayedItems","items","itemsCount","maxDisplayedItems","getMaxDisplayedItems","_options_overflowIndex","overflowIndex","slice","numberItemsToHide","menuLastItemIdx","truncateBreadcrumb","content","maxLength","isTruncatableBreadcrumbContent","trim","concat","truncateBreadcrumbLongName","CarouselCard","autoSize","elementRef","isMouseEvent","selectPageByElement","ctx","containerRef","cardFocus","focusAttr","useFocusableGroup","tabBehavior","focusAttrProps","tabIndex","id","useId","element","listener","_e","hidden","detail","isVisible","ariaHidden","toString","inert","addEventListener","removeEventListener","handleFocus","e","_containerRef_current","defaultPrevented","isHTMLElement","currentTarget","scrollTo","onFocusCapture","mergeCallbacks","onPointerUp","onPointerDown","useMergedRefs","useCarouselCard_unstable","renderCarouselCard_unstable","carouselCardClassNames","xawz","Bh6795r","Bnnss6s","fkmc3a","B2u0y6b","useCarouselCardStyles_unstable","carouselContextDefaultValue","activeIndex","selectPageByDirection","selectPageByIndex","subscribeForValues","enableAutoplay","resetAutoplay","viewportRef","CarouselContext","CarouselProvider","useCarouselContext_unstable","selector","carouselNavButtonClassNames","Bceei9c","Bkecrkj","B7ck84d","De3pzq","B4j52fo","Bekrc4i","Bn0qgzm","ibv6hh","Bsft5z2","ap17g6","li1rpt","d9w3h3","B3778ie","B4j8arr","Bl18szs","Blrzh8d","Bjuhk93","B1q35kw","Bw17bha","Bcgy8vk","Du69r6","Gp14am","vfts7","Bhxzhr1","G63luc","s924m2","Barhvk9","Ihftqj","wywymt","B0n5ga8","Bm2nyyq","xrcqlc","e1d83w","Dlnsje","a2br6o","Bjyk6c5","go7t6h","qx5q1e","f7digc","Bfz3el7","rootUnselected","Bw0xxkn","oeaueh","Bpd4iqm","Befb4lg","Byu6kyc","n8qw10","Bbjhlyh","i2cumq","Bunx835","Bdrgwmp","mqozju","lbo84a","Bksnhdo","Bci5o5g","u5e7qz","Bn40d3w","B7b6zxw","B8q5s1w","B5gfjzb","Bbcte9g","Bqz3imu","Bj9ihqo","Bl51kww","B3bvztg","Btyt4dx","Brhw1f9","Bw81rd7","kdpuga","dm238s","B6xbmo0","B3whbx2","Bp15pi3","Bay5ve9","Bni0232","rootSelected","brand","Glksuk","Blzl0y7","unselectedBrand","m","a","CarouselNavButton","onClick","index","selected","handleClick","useEventCallback","event","defaultTabProps","useTabsterAttributes","focusable","isDefault","buttonRef","_carouselButton","useARIAButtonProps","useIsomorphicLayoutEffect","data","_controlledSlideIds","groupIndexList","map","slideIndex","slideNodes","join","setAttribute","useCarouselNavButton_unstable","useCarouselNavButtonStyles_unstable","renderCarouselNavButton_unstable","carouselAutoplayButtonClassNames","B6of3ja","jrapky","g2u3we","h3c5rm","B9xav0g","zhjwy3","sj55zd","CarouselAutoplayButton","onCheckedChange","checked","defaultChecked","autoplay","setAutoplay","useControllableState","defaultState","initialState","useToggleButton","isDefaultPrevented","newValue","useCarouselAutoplayButton_unstable","useCarouselAutoplayButtonStyles_unstable","renderCarouselAutoplayButton_unstable","carouselButtonClassNames","CarouselButton","navType","totalSlides","setTotalSlides","isTrailing","navItemsCount","nextArrowIcon","prevArrowIcon","disabled","nextIndex","_trailing","querySelectorAll","forEach","_buttonRef","focus","useCarouselButton_unstable","useCarouselButtonStyles_unstable","renderCarouselButton_unstable","carouselNavContainerClassNames","mc9l5x","Beiy3e4","Brf1p80","next","prev","inline","overlay","qhf8xq","B5kzvoi","overlayWide","nextWide","Frg6f3","prevWide","nextOverlayWide","prevOverlayWide","autoplayOverlayWide","expanded","Bt984gj","c7y7m3","yx0ijg","v4amzz","nextOverlayExpanded","j35jbq","Bhzewxz","Bz10aip","prevOverlayExpanded","oyh7mz","autoplayExpanded","CarouselNavContainer","layout","useCarouselNavContainer_unstable","isOverlay","isWide","useCarouselNavContainerStyles_unstable","renderCarouselNavContainer_unstable","carouselNavClassNames","Bfpq7zp","g9k6zt","Bn4voq9","giviqs","Beyfa6y","Bbmb7ep","Btl43ni","B7oj6ja","Dimara","B74szlk","CarouselNav","focusableGroupAttr","unstable_hasDefault","renderNavButton","useCarouselNav_unstable","useCarouselNavStyles_unstable","CarouselNavContext","carouselNav","Array","fill","_","CarouselNavIndexContext","renderCarouselNav_unstable","carouselNavContext","carouselNavContextDefaultValue","useCarouselNavContext","CarouselNavContextProvider","useCarouselNavContextValues_unstable","carouselNavIndexContext","useCarouselNavIndexContext","CarouselNavIndexContextProvider","CarouselSlider","focusProps","useCarouselSlider_unstable","CarouselSliderContext","carouselSlider","renderCarouselSlider_unstable","carouselSliderContext","carouselSliderContextDefaultValue","useCarouselSliderContext","CarouselSliderContextProvider","useCarouselSliderContextValues_unstable","carouselSliderClassNames","Eiaeu8","useCarouselSliderStyles_unstable","carouselViewportClassNames","CarouselViewport","hasFocus","hasMouse","handleFocusCapture","handleBlurCapture","contains","relatedTarget","handleMouseEnter","handleMouseLeave","onBlurCapture","onMouseEnter","onMouseLeave","draggable","useCarouselViewport_unstable","useCarouselViewportStyles_unstable","renderCarouselViewport_unstable","Carousel","align","onActiveIndexChange","groupSize","whitespace","announcement","motion","carouselApi","useEmblaCarousel","direction","loop","slidesToScroll","defaultActiveIndex","watchDrag","containScroll","onDragIndexChange","onAutoplayIndexChange","jump","foundIndex","scrollToElement","scrollToIndex","nextPageIndex","scrollInDirection","mergedContainerRef","announcementTextRef","totalNavLength","navGroupRef","announce","updateAnnouncement","announcementText","polite","useCarousel_unstable","carousel","useCarouselContextValues_unstable","renderCarousel_unstable","carouselClassNames","B68tc82","useCarouselStyles_unstable","isNumber","subject","isString","isBoolean","isObject","mathAbs","n","Math","abs","mathSign","sign","deltaAbs","valueB","valueA","arrayKeys","array","objectKeys","Number","arrayLast","arrayLastIndex","max","arrayIsLastIndex","arrayFromNumber","startAt","from","object","keys","objectsMergeDeep","objectA","objectB","reduce","mergedObjects","currentObject","areObjects","evt","ownerWindow","MouseEvent","EventStore","listeners","self","add","node","handler","passive","removeListener","legacyMediaQueryList","addListener","push","clear","filter","remove","Animations","ownerDocument","update","render","documentVisibleHandler","fixedTimeStep","lastTimeStamp","accumulatedTime","animationId","animate","timeStamp","timeElapsed","requestAnimationFrame","stop","cancelAnimationFrame","init","destroy","start","Limit","min","reachedMin","reachedMax","reachedAny","constrain","removeOffset","ceil","Counter","loopEnd","counter","withinLimit","get","clone","set","DragHandler","rootNode","dragTracker","location","animation","scrollBody","scrollTarget","eventHandler","percentOfView","dragFree","dragThreshold","skipSnaps","baseFriction","cross","crossAxis","focusNodes","nonPassiveEvent","initEvents","dragEvents","goToNextThreshold","measure","snapForceBoost","mouse","touch","freeForceBoost","baseSpeed","isMoving","startScroll","startCross","pointerIsDown","preventScroll","preventClick","isMouse","move","touches","up","lastScroll","readPoint","lastCross","diffScroll","diffCross","cancelable","diff","pointerMove","useFriction","useDuration","preventDefault","targetChanged","byDistance","rawForce","pointerUp","force","baseForce","distance","byIndex","allowedForce","forceFactor","factorAbs","speed","friction","emit","click","stopPropagation","emblaApi","downIfAllowed","isMouseEvt","buttons","button","nodeName","includes","isFocusNode","pointerDown","addDragEvents","down","DragTracker","startEvent","lastEvent","readTime","evtAxis","coord","scroll","expired","diffDrag","diffTime","ResizeHandler","container","slides","watchResize","nodeRects","observeNodes","resizeObserver","containerSize","slideSizes","destroyed","readSize","measureSize","ResizeObserver","entries","entry","isContainer","lastSize","reInit","defaultCallback","observe","disconnect","ScrollBounds","limit","pullBackThreshold","edgeOffsetTolerance","frictionLimit","shouldConstrain","edge","diffToEdge","diffToTarget","subtract","useBaseFriction","toggleActive","active","ScrollLooper","contentSize","vectors","shouldLoop","loopDistance","v","ScrollTarget","scrollSnaps","targetVector","minDistance","distances","sort","b","shortcut","targets","matchingTargets","t","snap","targetSnapDistance","ascDiffsToSnaps","d1","d2","findTargetSnap","reachedBound","SlideFocus","slideRegistry","eventStore","watchFocus","focusListenerOptions","capture","lastTabPressTime","registerTabPress","code","Date","getTime","document","slide","scrollLeft","group","findIndex","Vector1D","initialValue","normalizeInput","Translate","translate","containerStyle","style","previousTarget","transform","getAttribute","removeAttribute","to","newTarget","num","round","SlideLooper","viewSize","slideSizesWithGaps","snaps","ascItems","descItems","reverse","loopPoints","gap","findLoopPoints","slidesInGap","startPoints","endPoints","removeSlideSizes","indexes","offset","isEndEdge","slideBounds","end","findSlideBounds","initial","altered","boundEdge","loopPoint","slideLocation","canLoop","every","shiftLocation","SlidesHandler","watchSlides","mutationObserver","MutationObserver","mutations","mutation","childList","SlidesInView","threshold","intersectionEntryMap","intersectionObserver","inViewCache","notInViewCache","IntersectionObserver","parentElement","inView","slideIndexes","parseInt","isIntersecting","createInViewList","SlidesToScroll","containerRect","slideRects","startGap","endGap","pixelTolerance","startEdge","endEdge","groupByNumber","groupSlides","byNumber","groups","rectB","rectA","isFirst","isLast","edgeA","edgeB","gapA","chunkSize","currentSize","previousSize","bySize","Engine","scrollAxis","startIndex","duration","inViewThreshold","offsetTop","offsetLeft","offsetWidth","offsetHeight","top","right","bottom","left","width","height","contentDirection","isRightToLeft","isVertical","nodeRect","Axis","PercentOfView","alignment","predefined","center","Alignment","containSnaps","readEdgeGap","withEdgeGap","slideRect","measureStartGap","getComputedStyle","parseFloat","getPropertyValue","measureEndGap","rect","rects","SlideSizes","snapsAligned","alignments","ScrollSnaps","snapsContained","scrollContainLimit","scrollBounds","snapsBounded","snapAligned","usePixelTolerance","scrollBound","toFixed","startSnap","endSnap","lastIndexOf","findScrollContainLimit","bound","measureContained","ScrollContain","ScrollLimit","indexPrevious","dragHandler","seek","engine","alpha","offsetLocation","previousLocation","scrollLooper","slideLooper","shouldSettle","settled","withinBounds","hasSettled","interpolatedLocation","startLocation","baseDuration","scrollVelocity","scrollDirection","scrollDuration","scrollFriction","rawLocation","rawLocationPrevious","velocity","displacement","scrollDistance","useBaseDuration","ScrollBody","indexCurrent","distanceDiff","indexDiff","targetIndex","ScrollTo","scrollProgress","ScrollProgress","slidesInView","groupedSlideIndexes","doNotContain","createSlideRegistry","SlideRegistry","slideFocus","resizeHandler","scrollSnapList","slidesHandler","defaultOptions","breakpoints","OptionsHandler","mergeOptions","optionsA","optionsB","optionsAtMedia","matchedMediaOptions","media","matchMedia","matches","mediaOption","optionsMediaQueries","optionsList","acc","mediaQueries","EmblaCarousel","userOptions","userPlugins","defaultView","optionsHandler","pluginsHandler","activePlugins","plugins","plugin","assign","name","PluginsHandler","mediaHandlers","api","getListeners","off","cb","on","EventHandler","reActivate","pluginApis","optionsBase","globalOptions","pluginList","createEngine","activate","withOptions","withPlugins","userContainer","userSlides","customContainer","querySelector","customSlides","storeElements","query","offsetParent","selectedScrollSnap","deActivate","canScrollNext","canScrollPrev","containerNode","internalEngine","previousScrollSnap","scrollNext","scrollPrev","slidesNotInView","setTimeout","delay","playOnInit","stopOnFocusIn","stopOnInteraction","stopOnMouseEnter","stopOnLastSnap","Autoplay","timerStartTime","timerId","autoplayActive","mouseIsOver","playOnDocumentVisible","startAutoplay","documentIsHidden","clearTimeout","setTimer","stopAutoplay","clearTimer","visibilityChange","visibilityState","mouseEnter","mouseLeave","lastIndex","kill","emblaApiInstance","allOptions","normalizeDelay","isDraggable","emblaRootNode","getAutoplayRootNode","play","jumpOverride","reset","isPlaying","timeUntilNext","clampNumber","number","isNaN","Fade","fadeToNextDistance","defaultSettledBehaviour","defaultProgressBehaviour","opacities","distanceFromPointerDown","fadeVelocity","progress","shouldFadePair","fadeToSelectedSnapInstantly","setOpacities","select","lockExcessiveScroll","fadeIndex","indexA","absVelocity","currentOpacity","isFadeIndex","clampedOpacity","fadePair","indexB","opacity","snapFraction","reverseSign","currentPosition","diffPosition","setProgress","slidesInSnap","slideStyle","roundedOpacity","hasOpacity","position","toUpperCase","getSlideTransform","pointerEvents","setOpacity","getFadeIndex","selectedSnap","directionSign","distanceSign","nextSnap","notReachedTarget","noFadeIndex","fade","disableScroll","slideNode","DEFAULT_EMBLA_OPTIONS","EMBLA_VISIBILITY_EVENT","setActiveIndex","onDragEvent","emblaOptions","autoplayRef","_emblaApi_current_plugins_autoplay","_emblaApi_current","getPlugins","pointerEvent","documentDownListener","targetDocument","targetNode","classList","pointerUpListener","clearPointerEvent","selectListener","_emblaApi_selectedScrollSnap","newIndex","onSelectViaDrag","pointerEventPlugin","temporary","_emblaApi_current_plugins_autoplay1","_emblaApi_current1","Set","delete","updateIndex","_emblaApi_current2","_emblaApi_current_selectedScrollSnap","_emblaApi_current_internalEngine_slideRegistry_newIndex_","actualIndex","tabsterAttr","tabsterAttributes","JSON","parse","stringify","setTabsterDefault","handleReinit","_emblaApi_current3","_emblaApi_current_slideNodes","nodes","_emblaApi_current_internalEngine_slideRegistry","handleIndexChange","eventType","noopEvent","Event","currentElement","handleVisibilityChange","cardElements","_emblaApi_current_slidesInView","visibleIndexes","cardElement","dispatchEvent","CustomEvent","bubbles","newElement","_emblaApi_current4","_viewportRef_current","_emblaApi_current5","_emblaApi_current6","_emblaApi_current7","_emblaApi_current8","_cardElements_indexOf","cardIndex","groupIndex","indexFocus","currentActiveIndex","_emblaApi_current_slideNodes_length","slideLength","getClassNames","classNamesFunction","HorizontalBarChartBase","_super","_this","_handleChartMouseLeave","_calloutAnchorPoint","isCalloutVisible","setState","hoverValue","refSelected","lineColor","legend","_adjustProps","_barHeight","barHeight","_classNames","theme","color","_getChartDataText","barChartCustomData","_getDefaultTextData","_closeCallout","_getAccessibleDataObject","accessibleData","ariaLabel","ariaLabelledBy","ariaDescribedBy","xCalloutValue","yCalloutValue","_refArray","_uniqLineText","random","substring","_hoverOff","bind","_calloutId","getId","_a","palette","datapoint","points","chartData","horizontalBarChartdata","x","y","neutralTertiaryAlt","chartDataText","bars","_createBars","keyVal","FocusZone","horizontal","chartTitle","chartTitleAccessibilityData","_createBenchmark","chart","_refCallback","barWrapper","Callout","coverTarget","isBeakVisible","gapSpace","hideTooltip","directionalHint","DirectionalHint","topAutoEdge","onDismiss","preventDismissOnLostFocus","calloutProps","callOutAccessibilityData","onRenderCalloutPerHorizontalBar","barCalloutProps","ChartHoverCard","Legend","YValue","culture","legendTitle","refElement","_hoverOn","point","currentHoveredElement","xAxisCalloutData","yAxisCalloutData","chartDataMode","accessibilityData","chartDataAccessibilityData","chartDataTextDenominator","dataRatioPercentage","totalData","benchmarkData","benchmarkRatio","benchmarkStyles","marginLeft","marginRight","triangle","defaultPalette","blueLight","blue","blueMid","red","black","startingPoint","total","prevPosition","floor","pointData","xValue","onMouseOver","onFocus","onBlur","HorizontalBarChart","styled","display","flexDirection","marginTop","marginBottom","stroke","white","strokeWidth","fonts","justifyContent","fontWeight","FontWeights","bold","semibold","borderLeft","borderRight","borderTop","borderTopColor","LegendsBase","_onRenderData","overflowProps","_b","allowFocusOnLegends","rootStyles","centerLegends","flexWrap","OverflowSet","primary","overflow","onRenderItem","_renderButton","onRenderOverflowButton","_renderOverflowItems","_onReduceData","currentdata","_onGrowData","_canSelectMultipleLegends","selectedLegends","title","legends","selectedState","selecetedLegendInHoverCard","isHoverCardVisible","selectedLegend","hoverState","_canSelectOnlySingleLegend","_onClick","action","canSelectMultipleLegends","_onRenderCompactCard","expandingCard","overflowHoverCardLegends","classNames","renderData","hoverCardElement","vertical","focusZonePropsInHoverCard","hoverCardRoot","renderOverflowData","overflowText","plainCardProps","onRenderPlainCard","overflowString","HoverCard","plain","instantOpenOnClick","onCardHide","selectedOverflowItem","onLegendHoverCardLeave","onMouseOutAction","setInitialFocus","trapFocus","onCardVisible","_hoverCardVisible","subComponentStyles","hoverCardStyles","cardDismissDelay","_hoverCardRef","overflowIndicationTextStyle","rootElem","_onHoverOverLegend","hoverAction","_onLeave","shape","stripePattern","isLineLegendInBarChart","_getColor","colorOnSelectedState","borderColor","onHoverHandler","onMouseOut","_getShape","nativeButtonProps","text","componentDidUpdate","prevProps","dataToRender","_generateData","enabledWrapLines","ResizeGroup","onReduceData","onRenderData","onGrowData","svgParentProps","svgChildProps","svgProps","pathProps","classNameForNonSvg","Legends","_c","_d","inset","highContrastStyle","outlineColor","semanticColors","focusBorder","whiteSpace","alignItems","margin","getFocusStyle","cursor","border","padding","background","textTransform","selectors","HighContrastSelector","backgroundColor","buttonBorder","clipPath","backgroundImage","lineHeight","bodyText","hoverChange","host","pointPath","circle","square","pyramid","diamond","hexagon","pentagon","octagon","dottedLine","Shape","viewBox","CartesianChartBase","_f","_g","_h","_j","_k","_l","_m","minLegendContainerHeight","_isRtl","_multiValueCallout","yValueHoverSubCountsExists","_yValueHoverSubCountsExists","YValueHover","calloutContentRoot","calloutDateTimeContainer","calloutContentX","xAxisCalloutAccessibilityData","hoverXValue","calloutInfoContainer","yValue","yValues","shouldDrawBorderBottom","borderBottom","menuDivider","paddingBottom","_getCalloutContent","descriptionMessage","_getData","xScale","yScale","getGraphData","containerHeight","_removalValueForTextTuncate","containerWidth","xAxisElement","_width","_height","isRemoveValCalculated","idForGraph","margins","componentDidMount","_fitParentContainer","componentWillUnmount","_reqID","wrapXAxisLables","rotateXAxisLables","xAxisType","StringAxis","rotateLabelProps","xAxis","_xScale","rotatedHeight","chartType","chartHoverProps","svgFocusZoneProps","parentRef","getmargins","XAxisParams","domainNRangeValues","barwidth","tickValues","showRoundOffXTickValues","xAxisCount","xAxisTickCount","xAxistickSize","tickPadding","showXAxisLablesTooltip","xAxisPadding","YAxisParams","yAxisElement","yAxisTickFormat","yAxisTickCount","yMinValue","yMaxValue","maxOfYVal","yMinMaxValues","yAxisPadding","NumericAxis","DateAxis","tickParams","datasetForXAxisDomain","wrapLabelProps","noOfCharsToTruncate","temp","axisData","yAxisDomainValues","yAxisType","stringDatasetForYAxisDomain","getAxisData","isRtl","focusDirection","svgDimensions","focusZoneDirection","chartContainer","onChartMouseLeave","yAxis","hideLegend","legendContainer","legendBars","customizedCallout","isCalloutForStack","XValue","yValueHover","some","marginStyle","toDrawShape","subcounts_1","fontSize","subcountName","calloutBlockContainer","calloutlegendText","calloutContentY","shapeStyles","legendContainerHeight","legendContainerComputedStyles","getBoundingClientRect","currentContainerWidth","currentContainerHeight","isIE11Var","CartesianChart","shouldHighlight","tiny","HighContrastSelectorBlack","line","path","textAnchor","opacityChangeOnHover","bodyBackground","backgroundBlendMode","bodySubtext","mediumPlus","forcedColorAdjust","paddingLeft","paddingTop","Textbox","textElementRef","words","split","tspan","append","numLines","word","getComputedTextLength","pop","attr","selectAll","LabelLink","gRef","showCard","setShowCard","callout","cards","labelDef","aggregatedIdx","lineDefs","onRenderCard","c","isCircularNavigation","List","onRenderCell","window","textColor","mergedLabel","textY","textWidth","textLineHeight","anchor","textFontSize","EventsAnnotation","labelWidth","chartYTop","lineTopY","axisRange","scale","range","events","date","e1","e2","strokeColor","lines","arr","iteratee","seen","result","_i","arr_1","comp","uniqBy","x1","x2","y1","y2","chartYBottom","strokeDasharray","labelLinks","maxX","minX","calculateLabel","lastX","currentIdx","leftXBoundary","backtrack","bd","idx","ds","unshift","calculateLabels","labelColor","PointSize","LineChartBase","_this_1","_xAxisScale","_yAxisScale","eventLabelHeight","_injectIndexPropertyInLineChartData","lineChartData","allowMultipleShapesForPoints","item","_getCustomizedCallout","onRenderCalloutPerStack","stackCalloutProps","onRenderCalloutPerDataPoint","dataPointCalloutProps","_getMargins","_initializeLineChartData","xElement","_renderedColorFillBars","colorFillBars","_createColorFillBars","_createLines","_handleSingleLegendSelectionAction","lineChartItem","activeLegend","_handleLegendClick","_onHoverCardHide","selectedLegendPoints","selectedColorBarLegend","isSelectedLegend","_getBoxWidthOfShape","pointId","pointIndex","isLastPoint","activePoint","hoverSize","invisibleSize","_getPath","xPos","yPos","pointOftheLine","w","widthRatio","_getPointPath","_getPointFill","_colorFillBars","_points","LineChart","colorFillBar","colorFillBarId","replace","applyPattern","_getStripePattern","j","startX","endX","_colorFillBarsOpacity","_colorFillBarPatternId","fillOpacity","endValue","patternUnits","_checkInGap","gaps","currentGapIndex","gapIndex","isInGap","endIndex","_handleFocus","lineId","circleId","_uniqueCallOutID","formattedData","toLocaleDateString","xVal","found","_calloutPoints","_this_2","_verticalLine","values","_handleHover","mouseEvent","persist","_onLineClick","func","_onDataPointClick","_handleMouseOut","onLegendClick","_handleMultipleLineLegendSelectionAction","selectedLine","selectedLines","selectedLineIndex","_clearMultipleLegendSelections","selectedLegendTitlesToPass","_handleMultipleColorFillBarLegendSelectionAction","selectedColorFillBar","selectedColorFillBars","selectedColorFillBarIndex","_circleId","_lineId","_borderId","_tooltipId","eventAnnotationProps","labelHeight","tickFormat","legendProps","isXAxisDateType","_createLegends","preventDismissOnEvent","getCalloutDescriptionMessage","visibility","isLegendMultiSelectEnabled","legendDataItems","legendShape","colorFillBarsLegendDataItems","enabledLegendsWrapLines","legendsOverflowProps","focusZonePropsForLegendsInHoverCard","legendsOverflowText","_o","_p","_q","linesForLine","bordersForLine","pointsForLine","legendVal","verticaLineHeight","_r","r","cx","cy","onMouseMove","_loop_1","gapResult","this_1","borderId","_s","_t","lineOptions","isLegendSelected","currentPointHidden","hideNonActiveDots","onDataPointClick","lastCircleId_1","lastPointHidden","_u","lastCirlceXCallout_1","lastCirlceXCalloutAccessibilityData_1","lineBorderWidth","strokeLinecap","lineBorderColor","strokeDashoffset","onLineClick","getElementById","tooltipProps","tooltipCls","tooltip","textAlign","borderRadius","MultiStackedBarChartBase","legendColor","_getLegendData","hideRatio","actions","singleChartData","validChartData","placeHolder","leg","_onHover","isDataFocusable","refArray","selectedLegendTitle","dataForHoverCard","isLegendHovered","_onBarLeave","legendName","calloutYVal","singleChartBars","_createBarsAndLegends","hideDenominator","placeHolderOnHover","_onBarFocus","_onBarHover","_redirectToUrl","noData","hideNumber","showRatio","showNumber","getChartData","singleChartRoot","legendText","customMessage","isLegendFocused","MultiStackedBarChart","StackedBarChartBase","targetData","hideNumberDisplay","ignoreFixStyle","neutralTertiary","neutralSecondary","targetRatio","showLegend","benchmarkColor","targetColor","ratioNumerator","ratioDenominator","benchmarkContainer","benchmark","_addLegend","_generateEmptyBar","barBackgroundColor","StackedBarChart","FontSizes","ChartHoverCardBase","ratio","isRatioPresent","numerator","denominator","xxLarge","epsilon","translateX","translateY","bandwidth","entering","__axis","orient","tickArguments","tickSizeInner","tickSizeOuter","k","context","ticks","domain","format","spacing","range0","range1","copy","selection","tick","order","tickExit","exit","tickEnter","enter","merge","insert","transition","isFinite","parentNode","each","tickSize","axisRight","axisBottom","axisLeft","NaN","compare","f","lo","hi","mid","ascendingBisect","bisector","bisectRight","e10","sqrt","e5","tickIncrement","count","step","power","log","LN10","error","pow","step0","step1","valueof","prefix","Map","isArray","o","has","property","empty","proto","implicit","ordinal","unknown","band","ordinalRange","paddingInner","paddingOuter","rescale","rangeRound","factory","extend","parent","definition","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","l","toLowerCase","exec","rgbn","Rgb","rgba","hsla","rgb_formatHex","hex","rgb_formatRgb","s","Hsl","hslConvert","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","linear","gamma","nogamma","exponential","channels","displayable","formatHsl","rgbGamma","rgbSpline","spline","colors","genericArray","nb","na","setTime","reA","reB","am","bm","bs","bi","q","one","zero","string","ArrayBuffer","isView","DataView","valueOf","unit","deinterpolateLinear","bimap","deinterpolate","reinterpolate","d0","r0","r1","polymap","interpolate","clamp","piecewise","output","input","deinterpolateClamp","invert","reinterpolateClamp","prefixExponent","re","formatSpecifier","specifier","match","Error","FormatSpecifier","symbol","comma","precision","formatDecimalParts","toExponential","coefficient","exponent","toLocaleString","toPrecision","formatRounded","formatPrefix","prefixes","locale","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","i0","formatTrim","charCodeAt","Infinity","precisionPrefix","precisionRound","precisionFixed","nice","t0","newInterval","floori","offseti","field","interval","previous","year","setMonth","setHours","setFullYear","getFullYear","month","setDate","getMonth","durationSecond","durationMinute","durationHour","durationDay","durationWeek","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","day","hour","getMilliseconds","getSeconds","getMinutes","getHours","minute","second","getUTCSeconds","millisecond","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","u","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","week","X","utcFormat","utcParse","formatLocale","durationMonth","durationYear","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickIntervals","tickInterval","x0","ChartTypes","XAxisTypes","YAxisType","createNumericXAxis","xAxisParams","xAxisScale","dStartValue","dEndValue","rStartValue","rEndValue","domainValue","xAxisValue","convertToLocaleString","createDateXAxis","createStringXAxis","dataset","createYAxis","yAxisParams","startValue","tempVal","finalYmax","finalYmin","domainValues","maxVal","minVal","splitInto","val","dataPointsArray","prepareDatapoints","yAxisScale","createStringYAxis","dataPoints","calloutData","combinedResult","elements","ele","hideCallout","filteredValues","final","silceOrAppendToArray","pos","createWrapOfXLabels","axisNode","removeVal","totalWord","truncatedWord","totalWordLength","lineNumber","dy","maxDigit","maxHeight_1","outerHTMLElement","BoxCordinates","boxHeight","removeDigit","tooltipOfXAxislabels","xAxistooltipProps","div","aa","_groups","baseSpanLength","originalDataArray","originalData","tickObject","tickObjectLength","html","pageX","pageY","getXAxisType","getDomainNRangeValues","isRTL","barWidth","domainNRangeValue","AreaChart","xMin","xMax","domainRangeOfNumericForAreaChart","VerticalStackedBarChart","rMax","rMin","domainRangeOfVSBCNumeric","VerticalBarChart","domainRageOfVerticalNumeric","sDate","lDate","smallestDate","largestDate","domainRangeOfDateForAreaChart","GroupedVerticalBarChart","HeatMapChart","domainRangeOfXStringAxis","getMinMaxOfYAxis","minMaxValues","yMax","yMin","findNumericMinMaxOfY","findVSBCNumericMinMaxOfY","findVerticalNumericMinMaxOfY","Points","CustomPoints","pointTypes","getAccessibleDataObject","rotateXAxisLabels","maxHeight","xAxisTranslations","translateValue","translatePair","defaultFilter","optionText","defaultToString","option","useComboboxFilter","config","noOptionsMessage","optionToReactKey","optionToText","renderOption","Option","filteredOptions","searchValue","objectIs","is","defaultContextValue","open","inertTrapFocus","modalType","isNestedDialog","dialogRef","requestOpenChange","DialogContext","defaultValue","version","Original","valueRef","versionRef","contextValue","Consumer","createContext","DialogProvider","useDialogContext_unstable","dispatch","prevState","payload","nextSelected","splice","useContextSelector","DialogSurfaceContext","DialogSurfaceProvider","useDialogSurfaceContext_unstable","_useContext","useContext","drawerBodyClassNames","Bmxbyg5","qb2dma","Bcmaq0h","B676am1","e5kdtc","Bkjc3bi","Bgh53k4","Bcx2cba","gonrqn","DrawerBody","getNativeElementProps","useDrawerBody_unstable","useDrawerBodyStyles_unstable","createElement","renderDrawerBody_unstable","drawerFooterClassNames","i8kkvl","DrawerFooter","useDrawerFooter_unstable","useDrawerFooterStyles_unstable","renderDrawerFooter_unstable","DialogTrigger","isInsideSurfaceDialog","disableButtonEnhancement","child","getTriggerChild","triggerAttributes","useModalAttributes","_child_props_onClick","_child_props","triggerChildProps","ariaButtonTriggerChildProps","applyTriggerPropsToChildren","useDialogTrigger_unstable","renderDialogTrigger_unstable","isFluentTriggerComponent","dialogTitleClassNames","useRootResetStyles","rootWithoutAction","Bw0ie65","useActionResetStyles","useDialogTitleInternalStyles","useDrawerHeaderTitle_unstable","heading","titleComponents","internalStyles","dialogTitleId","useDialogTitle_unstable","drawerHeaderTitleClassNames","useDrawerHeaderTitleStyles_unstable","rootResetStyles","actionResetStyles","useDialogTitleStyles_unstable","DrawerHeaderTitle","renderDrawerHeaderTitle_unstable","drawerHeaderClassNames","Belr9w4","DrawerHeader","useDrawerHeader_unstable","useDrawerHeaderStyles_unstable","renderDrawerHeader_unstable","drawerInlineClassNames","separatorStart","vrafjx","separatorEnd","wvpqe5","DrawerInline","initialOpen","defaultOpen","getDefaultDrawerProps","separator","useDrawerInline_unstable","baseStyles","separatorClass","useDrawerInlineStyles_unstable","renderDrawerInline_unstable","DialogTransitionContext","DialogTransitionProvider","useDialogSurface_unstable","transitionStatus","useDialogTransitionContext_unstable","modalAttributes","dialogTitleID","handledBackdropClick","_props_backdrop_onClick","_props_backdrop","isResolvedShorthand","backdrop","handleKeyDown","_props_onKeyDown","onKeyDown","mountNode","usePortalMountNodeStylesStyles","Bj3rh1h","useInsertionEffect","usePortal_unstable","toMountNodeProps","virtualParentRootRef","fallbackElement","focusVisibleRef","useFocusVisible","classes","themeClassName","body","appendChild","classesToApply","Boolean","usePortalMountNode","virtualParent","isVirtualParentInsideChild","setVirtualParent","Portal","renderPortal_unstable","dialogSurfaceClassNames","useRootBaseStyle","useRootStyles","animated","abs64n","B3o57yi","Bmy1vo4","Bkqvd7p","E5pizo","unmounted","entered","idle","exiting","exited","useBackdropBaseStyle","useBackdropStyles","nestedDialogBackdrop","DialogSurface","dialogSurface","rootBaseStyle","backdropBaseStyle","backdropStyles","useDialogSurfaceStyles_unstable","renderDialogSurface_unstable","useHasParentContext","disableScrollElementProp","useDisableBodyScroll","useCallback","_target_ownerDocument_defaultView","clientWidth","documentElement","_target_ownerDocument_defaultView_innerWidth","innerWidth","_element","_disableScrollElementProp","previousOverflowStyle","previousPaddingRightStyle","paddingRight","assertIsDisableScrollElement","useDialog_unstable","onOpenChange","trigger","childrenArray","toArray","childrenToTriggerAndContent","setOpen","focusRef","findFirstFocusable","useFocusFinders","_dialogRef_current","useFocusFirstElement","disableBodyScroll","isBodyScrollLocked","legacyTrapFocus","Dialog","dialog","useDialogContextValues_unstable","Transition","mountOnEnter","unmountOnExit","in","nodeRef","appear","timeout","status","renderDialog_unstable","drawerOverlayClassNames","DrawerOverlay","useDrawerOverlay_unstable","useDrawerOverlayStyles_unstable","renderDrawerOverlay_unstable","drawerClassNames","Drawer","useDrawer_unstable","useDrawerStyles_unstable","renderDrawer_unstable","useDrawerBaseStyles","full","scrollState","setScrollState","drawerContext","DrawerProvider","useDrawerContext_unstable","useDrawerContextValue","drawerCSSVars","useDrawerStyles","colorNeutralBackground1","colorNeutralForeground1","u1mtju","B4g9neb","Bjr0ffy","useDrawerBottomBaseStyles","useDrawerBaseClassNames","bottomBaseStyles","durations","motionTokens","durationGentle","durationSlow","durationSlower","durationUltraSlow","getPositionTransform","sizeVar","leftToRightTransform","rightToLeftTransform","InlineDrawerMotion","createPresenceComponent","keyframes","easing","curveDecelerateMid","curveAccelerateMin","OverlayDrawerMotion","boxShadow","shadow64","OverlaySurfaceBackdropMotion","curveLinear","useDrawerDefaultProps","useBackdropResetStyles","nested","OverlayDrawerSurface","dialogSurfaceState","useDialogSurface","dialogSurfaceContextValues","useDialogSurfaceContextValues","backdropResetStyles","useOverlayDrawerSurfaceStyles_unstable","renderDialogSurface","mergePresenceSlots","inputSlot","Component","params","STATIC_MOTION","canRender","useOverlayDrawer_unstable","backdropMotion","surfaceMotion","backdropProps","resolveShorthand","hasCustomBackdrop","renderOverlayDrawer_unstable","overlayDrawerClassNames","useDrawerResetStyles","useDrawerRootStyles","absolute","useOverlayDrawerStyles_unstable","baseClassNames","absoluteStyles","OverlayDrawer","useInlineDrawer_unstable","presenceMotionSlot","visible","renderInlineDrawer_unstable","inlineDrawerClassNames","separatorBottom","icvyot","i8vvqc","useInlineDrawerStyles_unstable","getSeparatorClass","InlineDrawer","scrollRef","setAnimationFrame","useAnimationFrame","updateScrollState","scrollTop","scrollHeight","clientHeight","getScrollState","onScroll","useDrawerHeaderStyles","E3zdtr","B1piin3","Eqx8gd","F2fol1","Ba2ppi3","B1dyfl9","By385i5","separatorVisible","headingId","useDrawerHeaderNavigation_unstable","renderDrawerHeaderNavigation_unstable","drawerHeaderNavigationClassNames","useDrawerHeaderNavigationStyles_unstable","DrawerHeaderNavigation","useDrawerFooterStyles","Baz25je","Brfgrao","mdwyqc","Fbdkly","vz82u","cmx5o7","h7gv66","B8bqphf","wjn42g","Ftih45","Bciustq","createElementFromSlotComponent","overrideChildren","renderFunction","baseElementType","propsWithoutMetadata","getMetadataFromSlotComponent","isSlot","createCompatSlotComponent","ListItemActionEventName","DEFAULT_ROOT_EL_TYPE","useListItem_unstable","onAction","toggleItem","_ctx_selection","navigationMode","isSelectionEnabled","isSelected","listItemRole","validateListItem","finalListItemRole","focusableItems","rootRef","checkmarkRef","handleAction","originalEvent","triggerAction","actionEvent","focusableGroupAttrs","ignoreDefaultKeydown","Enter","elementContains","Escape","onCheckboxChange","arrowNavigationAttributes","checkmark","Checkbox","mergedCheckmarkRef","onChange","selectable","navigable","listItemClassNames","useRootBaseStyles","useCheckmarkBaseStyles","Bpb5tq4","Biccaaf","Gaeyjg","ldoezw","B6gmeee","rootClickableOrSelectable","ListItem","rootBaseStyles","checkmarkBaseStyles","useListItemStyles_unstable","renderListItem_unstable","useList_unstable","selectionMode","selectedItems","defaultSelectedItems","onSelectionChange","selectionState","setSelectionState","setSelectedItems","selectionMethods","useSelection","itemId","toggleAllItems","itemIds","deselectItem","selectItem","clearSelection","clearItems","useListSelection","selectedItemsAsArray","listRole","calculateListRole","calculateListItemRoleForListRole","findAllFocusable","listItemEl","listClassNames","listContext","useListContextValues_unstable","useListStyles_unstable","renderList_unstable","listContextDefaultValue","ListContextProvider","useListContext_unstable","MessageBarActions","useMessageBarActions","renderMessageBarActions","renderMessageBarActions_unstable","contexts","containerAction","useMessageBarActions_unstable","actionsRef","messageBarActionsClassNames","useContainerActionBaseStyles","useMultilineStyles","useMessageBarActionsStyles_unstable","containerActionBaseStyles","multilineStyles","MessageBarTitle","renderMessageBarTitle_unstable","useMessageBarTitle_unstable","titleId","messageBarTitleClassNames","useMessageBarTitleStyles_unstable","useMessageBarGroup_unstable","_props_children","_props_animate","enterStyles","exitStyles","MessageBarTransition","enterClassName","exitClassName","MessageBarTransitionInner","getClassName","renderMessageBarGroup_unstable","TransitionGroup","component","messageBarGroupClassNames","Bf5fcs","vin17d","Bv12yb3","useMessageBarGroupStyles_unstable","MessageBarGroup","tagPickerControlClassNames","Eh141a","Bbr2w1p","Bduesf4","Bpq79vn","Gjdm7m","b1kco5","lck23g","df92cz","I188md","umuwi5","Blcqepd","nplu4u","Bioka5o","H713fs","B9ooomg","Bercvud","listbox","Bxyxcbc","listboxCollapsed","sshi5w","outline","Bgfg5da","oivjwe","irswps","outlineInteractive","Bgoe8wy","Bwzppfd","oetu4i","gg5e9n","B6oc9vd","ak43y8","wmxk5l","B50zh58","underline","invalid","tvckwq","gk2u95","hhx65j","Bxowmz0","invalidUnderline","Bjwas2f","Bn1d65q","Bxeuatn","n51gp8","useAsideStyles","Budl1dq","wkccdc","Bo70h7d","useTagPickerControl_unstable","_useFieldContext_unstable","targetRef","triggerRef","tagPickerGroupRef","popoverId","secondaryInnerActionRef","secondaryActionRef","validationState","innerRef","expandIconRef","asideRef","secondaryAction","expandIcon","expandIconMergeRef","observerRef","callback","observer","_targetDocument_defaultView","ResizeObserverConstructor","useResizeObserverRef","_innerRef_current","setProperty","contentRect","aside","mergedAsideRefs","handleMouseDown","_triggerRef_current","onMouseDown","TagPickerControl","asideStyles","useTagPickerControlStyles_unstable","renderTagPickerControl_unstable","tagPickerInputCSSRules","setTagPickerInputStretchStyle","removeProperty","scrollWidth","tagPickerInputClassNames","useBaseStyle","yvdlaj","TagPickerInput","propsArg","useFieldControlProps","supportsLabelFor","supportsRequired","supportsSize","controller","activeDescendantController","contextDisabled","selectedOptions","setValue","setHasFocus","selectOption","getOptionById","findLastFocusable","isTypingRef","useInputTriggerSlot","_findLastFocusable","selectionStart","altKey","ctrlKey","metaKey","freeform","multiselect","useTagPickerInput_unstable","baseStyle","useTagPickerInputStyles_unstable","renderTagPickerInput_unstable","tagPickerListClassNames","collapsed","TagPickerList","popoverRef","Listbox","useListboxSlot","useTagPickerList_unstable","useTagPickerListStyles_unstable","renderTagPickerList_unstable","tagPickerOptionClassNames","secondaryContent","Br312pm","Ijaq50","TagPickerOption","optionState","useOption","useTagPickerOption_unstable","focusVisible","checkIcon","useTagPickerOptionStyles_unstable","renderTagPickerOption_unstable","fallbackPositions","childrenToTriggerAndPopover","popover","noop","TagPicker","triggerInnerRef","positioning","usePositioning","mainAxis","matchTargetSize","resolvePositioningShorthand","activeParentRef","listboxRef","useActiveDescendant","matchOption","el","comboboxState","useComboboxBaseState","onOptionSelect","_props_onOptionSelect","optionValue","_props_onOpenChange","editable","onOptionClick","getOptionsMatchingValue","registerOption","useTagPicker_unstable","activeDescendant","setActiveOption","picker","useTagPickerContextValues","TagPickerContext","ActiveDescendantContext","renderTagPicker_unstable","tagPickerContextDefaultValue","TagPickerContextProvider","useTagPickerContext_unstable","normalDaySpec","leapDaySpec","addYear","addMonth","addDay","spec","addHour","addMinute","setMinutes","addSecond","setSeconds","CronExpression","fields","_options","_currentDate","currentDate","toUTCString","_endDate","endDate","_fields","constraints","aliases","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","dayOfWeek","sun","mon","tue","wed","thu","fri","sat","parseDefaults","_parseField","_validateCharacters","parseRepeat","repeatInterval","atoms","parseRange","stack","repeatIndex","handleResult","_validateConstraint","parseSequence","_validateTimespan","_findSchedule","matchSchedule","sequence","findNearest","dayOfMonth","iterate","dates","expression","parseSync","CronParser","_parseEntry","err","command","parseExpression","parseExpressionSync","parseString","blocks","called","response","variables","expressions","errors","parseFile","filePath","readFile","CryptoJS","C","BlockCipher","lib","C_algo","algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x4","x8","RCON","AES","_doReset","_nRounds","_keyPriorReset","_key","keyWords","keySize","sigBytes","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","_doCryptBlock","decryptBlock","nRounds","s0","s1","s2","s3","_createHelper","N","ORIG_P","ORIG_S","BLOWFISH_CTX","pbox","sbox","F","BlowFish_Encrypt","Xl","Xr","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","keyIndex","Data1","Data2","res","Blowfish","blockSize","ivSize","Cipher","C_lib","Base","WordArray","BufferedBlockAlgorithm","C_enc","enc","Base64","Utf8","EvpKDF","cfg","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","process","dataUpdate","_append","_process","finalize","_doFinalize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","message","decrypt","ciphertext","C_mode","StreamCipher","mode","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","block","_prevBlock","processBlock","thisBlock","Pkcs7","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","unpad","CipherParams","modeCreator","_minBufferSize","_mode","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","OpenSSLFormatter","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","password","hasher","compute","derivedParams","crypto","globalThis","msCrypto","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","subtype","overrides","$super","instance","properties","propertyName","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","nBytes","hexChars","bite","hexStr","hexStrLength","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","decodeURIComponent","escape","utf8Str","unescape","encodeURIComponent","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","messageUpdate","_createHmacHelper","HMAC","parseLoop","base64Str","base64StrLength","reverseMap","bitsCombined","_map","base64Chars","triplet","paddingChar","_reverseMap","paddingIndex","Base64url","urlSafe","_safe_map","swapEndian","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","T","sin","_hash","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","hash","H_i","HmacMD5","CFB","generateKeystreamAndEncrypt","keystream","CTRGladman","incWord","b1","b2","b3","incCounter","_counter","CTR","ECB","OFB","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SHA256","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","C_","G","RabbitLegacy","K","_X","_C","nextState","IV","IV_0","IV_1","i2","i3","gx","ga","gb","gh","gl","Rabbit","RC4","keySigBytes","_S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","drop","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","al","bl","cl","dl","ar","br","cr","dr","er","hl","hr","zl","zr","sl","sr","f1","f2","f3","f4","f5","rotl","HmacRIPEMD160","SHA1","HmacSHA1","SHA224","HmacSHA224","isPrime","sqrtN","factor","getFractionalBits","nPrime","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","x64","Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","high","low","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","C_x64","X64WordArray","SHA512","SHA384","HmacSHA384","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","bh","ch","dh","eh","fh","fl","hh","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","toX32","HmacSHA512","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","_des1","_des2","_des3","X32WordArray","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","xhtml","svg","xlink","xml","xmlns","namespaces","space","local","creatorInherit","uri","namespaceURI","createElementNS","creatorFixed","fullname","namespace","none","matcher","vendorMatches","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","EnterNode","datum","_next","_parent","__data__","insertBefore","bindIndex","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","ascending","attrRemove","attrRemoveNS","removeAttributeNS","attrConstant","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","styleRemove","styleConstant","priority","styleFunction","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","constantNull","removeChild","selection_cloneShallow","cloneNode","selection_cloneDeep","filterEvents","mouseenter","mouseleave","filterContextListener","contextListener","related","compareDocumentPosition","event1","event0","onRemove","typename","__on","onAdd","wrap","createEvent","initEvent","dispatchConstant","dispatchFunction","parents","_parents","subgroups","subnode","subgroup","selectorAll","enterGroup","updateGroup","_enter","_exit","sparse","groups0","groups1","m0","merges","group0","group1","compareNode","sortgroups","sortgroup","getAttributeNS","styleValue","classed","before","deep","typenames","parseTypenames","nextId","Local","filename","opts","ext","preserveCase","console","objectWithoutPropertiesLoose","getOwnPropertySymbols","propertyIsEnumerable","defineProperty","getContrastColor","calculateContrastColorInnerLogic","generateTargetLuminance","LinearRGBfromLuminance","calculateTotalLength","calculateBounds","RGBLinearTo8bit","RGB8bitToLinear","delinearizeElement","denormalizeElement","linearizeElement","normalizeElement","getLuminance","getContrastRatio","calculateContrastRatio","validateLuminance","validateColor","color_1","luminance","lum1","lum2","color1","color2","RGBValue","LinearRGB","channelValue","normalizedValue","linearValue","delinearizedValue","denormalizedValue","multiplier","lowerBound","upperBound","bounds","RGBChannelWeights","totalLength","weight","_tmp","backgroundLuminance","_targetLuminance","R","LinearR","_8bitR","LinearG","_8bitG","B","LinearB","bgColor","__createBinding","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","__exportStar","_objectDestructuringEmpty","TypeError"],"sourceRoot":""}