{"version":3,"file":"7008.401a4370dc137af6.js","sources":["webpack://storefronts/./src/shared/components/bannerLinks.tsx","webpack://storefronts/./src/shared/components/banner.tsx","webpack://storefronts/./src/shared/components/curatedGallery.tsx","webpack://storefronts/./src/shared/containers/curatedGallery.tsx","webpack://storefronts/./src/shared/utils/filterItemUtils.ts","webpack://storefronts/./src/shared/components/filterItem.tsx","webpack://storefronts/./src/shared/components/filterPane.tsx","webpack://storefronts/./src/appsource/components/filterLink.tsx","webpack://storefronts/./src/appsource/components/filterPane.tsx","webpack://storefronts/./src/shared/utils/filterUtils.tsx","webpack://storefronts/./src/shared/components/paginationControl.tsx","webpack://storefronts/./src/shared/components/noSearchResultsButtons.tsx","webpack://storefronts/./src/shared/components/noSearchResults.tsx","webpack://storefronts/./src/appsource/components/filteredGallery.tsx","webpack://storefronts/./src/shared/components/galleryHeader.tsx","webpack://storefronts/./src/shared/components/appPromotionPane.tsx","webpack://storefronts/./src/shared/components/popularApps.tsx","webpack://storefronts/./src/shared/components/GalleryContent.tsx","webpack://storefronts/./src/shared/utils/promotionBannerUtils.tsx","webpack://storefronts/./src/shared/components/galleryPage.tsx","webpack://storefronts/./src/shared/containers/galleryPage.tsx","webpack://storefronts/./src/shared/utils/localization.tsx"],"sourcesContent":["function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { ExternalLink } from '@shared/components/externalLink';\nimport SpzaComponent from '@shared/components/spzaComponent';\nexport class BannerLinks extends SpzaComponent {\n renderImpl() {\n var _this_props_links;\n if (!((_this_props_links = this.props.links) === null || _this_props_links === void 0 ? void 0 : _this_props_links.length)) {\n return;\n }\n return this.props.links.map(({ text, url, params })=>{\n const bannerTitle = params ? this.context.locParams(text, params) : this.context.loc(text);\n const telemetryDetails = JSON.stringify({\n bannerTitle,\n bannerTargetUrl: url\n });\n return /*#__PURE__*/ _jsx(\"div\", {\n children: /*#__PURE__*/ _jsx(ExternalLink, {\n onClickHandle: this.onLinkClick,\n rel: \"noreferrer\",\n target: \"_blank\",\n className: \"c-hyperlink\",\n href: url,\n accessibilityEnabled: true,\n telemetryDetails: telemetryDetails,\n children: bannerTitle\n })\n }, `banner-link-${bannerTitle}-${url}`);\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0), _define_property(this, \"onLinkClick\", (event)=>{\n var _this_props_onLinkClick, _this_props;\n (_this_props_onLinkClick = (_this_props = this.props).onLinkClick) === null || _this_props_onLinkClick === void 0 ? void 0 : _this_props_onLinkClick.call(_this_props, {\n event\n });\n });\n }\n}\nBannerLinks.contextTypes = {\n loc: PropTypes.func,\n locDateString: PropTypes.func,\n locParams: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { BannerLinks } from '@shared/components/bannerLinks';\nimport SpzaComponent from '@shared/components/spzaComponent';\nimport { getWindow } from '@shared/services/window';\nimport { Constants } from '@shared/utils/constants';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport { logger } from '@src/logger';\nimport { Link, Text } from '@fluentui/react';\nimport { useHydration } from '@shared/hooks/useHydration';\nconst bannerLinkClicked = ({ event, linkClickHandle })=>{\n event.stopPropagation();\n linkClickHandle();\n};\nconst BannerContent = ({ data, linkClickHandle })=>{\n const { imgURL, title, description, links } = data;\n return /*#__PURE__*/ _jsx(\"div\", {\n className: 'bannerImgWrapper',\n // eslint-disable-next-line react/forbid-dom-props\n style: {\n backgroundImage: `url(${imgURL})`\n },\n children: /*#__PURE__*/ _jsx(\"div\", {\n className: \"bannerText\",\n children: /*#__PURE__*/ _jsxs(\"div\", {\n className: \"textContinar\",\n children: [\n /*#__PURE__*/ _jsx(Text, {\n variant: \"xxLarge\",\n as: 'h1',\n className: \"bannerTitle\",\n children: title\n }),\n /*#__PURE__*/ _jsx(Text, {\n variant: \"medium\",\n className: \"bannerDescription\",\n children: description\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"bannerLinks\",\n children: /*#__PURE__*/ _jsx(BannerLinks, {\n links: links,\n onLinkClick: ({ event })=>bannerLinkClicked({\n event,\n linkClickHandle\n })\n })\n })\n ]\n })\n })\n });\n};\nconst WrappedBanner = ({ data, bannerClickHandle, children })=>{\n var _links_;\n const { links } = data;\n const url = links === null || links === void 0 ? void 0 : (_links_ = links[links.length - 1]) === null || _links_ === void 0 ? void 0 : _links_.url;\n const isHydrated = useHydration();\n const shouldWrapWithLink = React.useMemo(()=>{\n var _data_links;\n return ((_data_links = data.links) === null || _data_links === void 0 ? void 0 : _data_links.length) > 0;\n }, [\n data.links\n ]);\n return isHydrated && shouldWrapWithLink ? /*#__PURE__*/ _jsx(Link, {\n href: url,\n target: \"_blank\",\n onClick: bannerClickHandle,\n children: children\n }) : /*#__PURE__*/ _jsx(_Fragment, {\n children: children\n });\n};\nexport class Banner extends SpzaComponent {\n renderImpl() {\n return /*#__PURE__*/ _jsx(WrappedBanner, {\n data: this.props.data,\n bannerClickHandle: this.handleBannerClicked,\n children: /*#__PURE__*/ _jsx(BannerContent, {\n data: this.props.data,\n linkClickHandle: this.handleBannerHyperLinkClicked\n })\n });\n }\n constructor(props, context){\n super(props, context), _define_property(this, \"context\", void 0), _define_property(this, \"provider\", void 0), _define_property(this, \"handleBannerHyperLinkClicked\", ()=>{\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.Click,\n actionModifier: Constants.Telemetry.ActionModifier.BannerHyperLink,\n details: this.props.data.title\n };\n this.provider.probe(Constants.Telemetry.ProbeName.LogInfo, payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n }), _define_property(this, \"handleBannerClicked\", ()=>{\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.Click,\n actionModifier: Constants.Telemetry.ActionModifier.BannerClick,\n details: this.props.data.title\n };\n this.provider.probe(Constants.Telemetry.ProbeName.LogInfo, payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n });\n this.provider = SpzaInstrumentService.getProvider();\n }\n}\nBanner.contextTypes = {\n loc: PropTypes.func,\n locDateString: PropTypes.func,\n locParams: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SpzaComponent from './spzaComponent';\nimport Ribbon from '@shared/components/ribbon';\nimport { DataMap } from '@shared/utils/dataMapping';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport { getWindow } from '@shared/services/window';\nimport { Constants } from '@shared/utils/constants';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { logger } from '@src/logger';\nimport { isOneTimePaymentOffer } from '@shared/utils/onetimepaymentoffers';\nimport { RecommendationsRibbon } from '@appsource/components/RecommendationsRibbonWrapper';\nimport { getProductByUrlKey } from '@shared/utils/appUtils';\nimport { urlKeys } from '@shared/utils/datamappingHelpers';\nexport class CuratedGallery extends SpzaComponent {\n componentDidMount() {\n const sectionsTelemetry = (this.props.sections || []).map((section)=>{\n return {\n titleId: section.titleId,\n sectionItemsLength: section.items ? section.items.length : 0\n };\n });\n const detailsObject = {\n message: 'main page swim lanes: ',\n sections: sectionsTelemetry\n };\n const perfPayload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.PageLoad,\n actionModifier: Constants.Telemetry.ActionModifier.End,\n details: JSON.stringify(detailsObject)\n };\n SpzaInstrumentService.getProvider().probe('logTelemetryInfo', perfPayload);\n logger.info(perfPayload.details, {\n action: perfPayload.action,\n actionModifier: perfPayload.actionModifier\n });\n }\n getDetailsPageUrl(titleId) {\n let url = '';\n let isUrlKeyExists = false;\n let filterName = '';\n const urlFilters = {\n category: null,\n industry: null,\n product: null,\n search: null,\n sortBy: null\n };\n Object.keys(urlKeys).forEach((urlKey)=>{\n if (urlKeys[`${urlKey}`][`${titleId}`]) {\n isUrlKeyExists = true;\n filterName = urlKey;\n }\n });\n if (isUrlKeyExists) {\n if (filterName === Constants.DataMapCollectionKeys.products) {\n const productInfo = getProductByUrlKey({\n urlKey: titleId\n });\n const shortcutFilters = productInfo === null || productInfo === void 0 ? void 0 : productInfo.ShortcutFilters;\n if (shortcutFilters) {\n urlFilters.product = shortcutFilters.join(';');\n } else {\n urlFilters.product = titleId;\n }\n } else {\n if (filterName === Constants.DataMapCollectionKeys.categories) {\n urlFilters.category = titleId;\n } else if (filterName === Constants.DataMapCollectionKeys.industries) {\n urlFilters.industry = titleId;\n }\n }\n url = this.context.buildHref(getEntityRegistration(this.props.entityType).route, null, urlFilters);\n }\n return url;\n }\n getTitle(section) {\n var _DataMap__;\n let titleId = section.titleId;\n if (titleId === Constants.FeaturedAppsId) {\n return this.context.loc('CuratedType_FeaturedApps');\n }\n let isUrlKeyExists = false;\n let filterName = '';\n Object.keys(urlKeys).forEach((urlKey)=>{\n if (urlKeys[`${urlKey}`][`${titleId}`]) {\n isUrlKeyExists = true;\n filterName = urlKey;\n }\n });\n if (isUrlKeyExists && filterName !== Constants.DataMapCollectionKeys.categories && ((_DataMap__ = DataMap[`${filterName}`][`${titleId}`]) === null || _DataMap__ === void 0 ? void 0 : _DataMap__.LocKey)) {\n titleId = this.context.loc(DataMap[`${filterName}`][`${titleId}`].LocKey, DataMap[`${filterName}`][`${titleId}`].Title);\n } else if (isUrlKeyExists && filterName === Constants.DataMapCollectionKeys.categories) {\n const isCategoryExist = Object.keys(DataMap.categories).filter((catagorySection)=>{\n var _DataMap_categories__;\n return (_DataMap_categories__ = DataMap.categories[`${catagorySection}`][`${titleId}`]) === null || _DataMap_categories__ === void 0 ? void 0 : _DataMap_categories__.LocKey;\n });\n if (isCategoryExist && isCategoryExist.length) {\n titleId = this.context.loc(DataMap.categories[`${isCategoryExist[0]}`][`${titleId}`].LocKey, DataMap.categories[`${isCategoryExist[0]}`][`${titleId}`].Title);\n }\n }\n if (section.titleLocId) {\n titleId = this.context.loc(section.titleLocId, titleId);\n }\n return titleId;\n }\n renderImpl() {\n const TileType = getEntityRegistration(this.props.entityType).tileType;\n const { sections, recoWhatsNewItems = [], recoTrendingItems = [], selectedCountry, selectedLocale } = this.props;\n sections === null || sections === void 0 ? void 0 : sections.map((section)=>{\n var _section_items;\n return section.items = (section === null || section === void 0 ? void 0 : (_section_items = section.items) === null || _section_items === void 0 ? void 0 : _section_items.filter((item)=>!isOneTimePaymentOffer(item.entityId))) || [];\n });\n return /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"spza_controls\"\n }),\n /*#__PURE__*/ _jsx(RecommendationsRibbon, {\n recommendedItems: recoTrendingItems,\n title: this.context.loc('CuratedType_Trending_Now', 'Trending Now'),\n ribbonKey: Constants.Recommendations.Trending,\n selectedCountry: selectedCountry,\n selectedLocale: selectedLocale,\n tileType: TileType\n }),\n /*#__PURE__*/ _jsx(RecommendationsRibbon, {\n recommendedItems: recoWhatsNewItems,\n title: this.context.loc('CuratedType_Whats_New', 'Whats New'),\n ribbonKey: Constants.Recommendations.WhatsNew,\n selectedCountry: selectedCountry,\n selectedLocale: selectedLocale,\n tileType: TileType\n }),\n sections ? sections.map((section, key)=>{\n const ribbonItems = section.items.length > this.maxTileDisplay ? section.items.slice(0, this.maxTileDisplay) : section.items;\n return /*#__PURE__*/ _jsx(Ribbon, {\n title: this.props.getSectionTitle ? this.props.getSectionTitle(section.titleId) : this.getTitle(section),\n seeMoreUrl: this.props.getSeeMoreLink ? this.props.getSeeMoreLink(section.titleId, this.context) : this.getDetailsPageUrl(section.titleId),\n seeMoreText: this.props.isMobile ? this.context.loc('PartnerDetail_More') : this.context.loc('Link_SeeAll'),\n children: ribbonItems.map((item, index)=>{\n return /*#__PURE__*/ _createElement(TileType, _object_spread_props(_object_spread({}, item), {\n item: item,\n key: item.entityId || item.solutionId,\n customCSSClass: 'tile' + index,\n tileIndex: index,\n totalTiles: ribbonItems.length,\n selectedLocale: selectedLocale,\n embedHost: this.props.embedHost,\n countryContext: selectedCountry,\n ribbonKey: section.titleId\n }));\n })\n }, key);\n }) : null\n ]\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0), _define_property(this, \"maxTileDisplay\", this.props.embedHost ? 4 : 5);\n }\n}\nCuratedGallery.contextTypes = {\n loc: PropTypes.func,\n locParams: PropTypes.func,\n buildHref: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","import { connect } from 'react-redux';\nimport { Constants } from '@shared/utils/constants';\nimport { CuratedGallery as CuratedGalleryComponent } from '@shared/components/curatedGallery';\nimport { parseCuratedSections } from '@shared/utils/hashMapUtils';\nimport { DataMap } from '@shared/utils/dataMapping';\nimport { getEntityDataState } from '@shared/utils/entityRegistration';\n// controls the curation header size in case of L3 level curation like in case of industries\nlet renderL3LevelCuration = false;\nfunction getFilterFromQueryParam(query) {\n if (!query) {\n return null;\n }\n renderL3LevelCuration = false;\n // For products, if there is an L3 filter we want to show the curated view if available\n if (query[Constants.filterTileTypes.product]) {\n let bottomLevelProductFilter;\n (typeof query[Constants.filterTileTypes.product] === 'string' ? query[Constants.filterTileTypes.product] : '').split(';').forEach((filter)=>{\n const activeFilter = DataMap.products[`${filter}`];\n if (activeFilter && !!bottomLevelProductFilter && activeFilter.Level > bottomLevelProductFilter.Level) {\n bottomLevelProductFilter = activeFilter;\n }\n if (activeFilter && !bottomLevelProductFilter) {\n bottomLevelProductFilter = activeFilter;\n }\n });\n if (bottomLevelProductFilter) {\n renderL3LevelCuration = !bottomLevelProductFilter.ShortcutFilters;\n return bottomLevelProductFilter.BackendKey;\n }\n }\n if (query[Constants.filterTileTypes.category] && DataMap.categories[query[Constants.filterTileTypes.category]]) {\n return DataMap.categories[query[Constants.filterTileTypes.category]][0].BackendKey;\n }\n if (query[Constants.filterTileTypes.industry] && DataMap.industries[query[Constants.filterTileTypes.industry]]) {\n renderL3LevelCuration = true;\n return DataMap.industries[query[Constants.filterTileTypes.industry]].BackendKey;\n }\n return Constants.Curated.everything;\n}\nconst mapStateToProps = (state, ownProps)=>{\n const category = getFilterFromQueryParam(ownProps.category);\n const entityDataState = getEntityDataState({\n state,\n entityType: ownProps.entityType\n });\n const { curatedData } = entityDataState;\n const section = curatedData[`${category}`] || curatedData[category.toLowerCase()] ? curatedData[`${category}`] || curatedData[category.toLowerCase()] : curatedData[Constants.Curated.everything];\n const { whatsNewApps, trendingApps } = state.apps.recommendedApps;\n const { whatsNewService, trendingService } = state.services.recommendedServices;\n const showRecommendations = state.config.featureFlags.recommendations;\n return {\n entityType: ownProps.entityType,\n sections: parseCuratedSections(section, entityDataState.dataList, entityDataState.idMap),\n isMobile: state.config.isMobile,\n selectedLocale: state.config.locale,\n renderL3CurationStyle: renderL3LevelCuration,\n selectedCountry: state.services ? state.services.selectedCountry : null,\n recoWhatsNewItems: showRecommendations && (ownProps.entityType === Constants.EntityType.App ? whatsNewApps : ownProps.entityType === Constants.EntityType.Service ? whatsNewService : []),\n recoTrendingItems: showRecommendations && (ownProps.entityType === Constants.EntityType.App ? trendingApps : ownProps.entityType === Constants.EntityType.Service ? trendingService : [])\n };\n};\nconst CuratedGallery = connect(mapStateToProps, null)(CuratedGalleryComponent);\nexport default CuratedGallery;\n","import { logger } from '@src/logger';\nimport { SpzaInstrumentService } from '../services/telemetry/spza/spzaInstrument';\nimport { urlPush } from '../routerHistory';\nimport { onClickTrackHitCountsForTreatmentNewFilter } from './filterHelpers';\nimport { Constants } from './constants';\nimport { BusinessTelemetry } from './businessConstants';\nexport function handleFilterToggleAction(filterType, filterValue, isActive, href, actionModifier, clickCallback) {\n if (!href) {\n return;\n }\n const data = {\n filterType,\n filterValue,\n isActive,\n filterState: !isActive ? BusinessTelemetry.Filters.Activating : BusinessTelemetry.Filters.Deactivating\n };\n const payload = {\n page: href,\n action: Constants.Telemetry.Action.FilterClick,\n actionModifier: actionModifier,\n details: JSON.stringify(data)\n };\n SpzaInstrumentService.getProvider().probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier,\n page: payload.page\n });\n onClickTrackHitCountsForTreatmentNewFilter(filterValue);\n urlPush(href);\n if (clickCallback) {\n clickCallback();\n }\n}\nexport function handleFilterToggle(filterType, filterValue, isActive, href, actionModifier, clickCallback) {\n return ()=>{\n handleFilterToggleAction(filterType, filterValue, isActive, href, actionModifier, clickCallback);\n };\n}\nexport function getFilterText(context, filter, showExpandedIcon, href) {\n let text = context.loc(filter.locKey ? filter.locKey : filter.LocKey, filter.title ? filter.title : filter.Title);\n // !!! Temporary HACK: If filterText is 'Power BI apps' and we are in consulting services tab,\n // then we make the text 'Power BI'.\n if (text === 'Power BI apps' && href && href.indexOf('consulting-services') > -1) {\n text = 'Power BI';\n }\n if (showExpandedIcon) {\n text += ' >';\n }\n return text;\n}\nexport function keyDownHandler(event, clickHandler) {\n if (event.keyCode === Constants.SystemKey.Space) {\n return clickHandler;\n }\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { getFilterText, handleFilterToggle, keyDownHandler } from '../utils/filterItemUtils';\n// eslint-disable-next-line import/named\nimport { Icon, TooltipHost } from '@fluentui/react';\nimport { Constants } from '../utils/constants';\nimport { InternalLink } from './internalLink';\nimport SpzaComponent from './spzaComponent';\nclass FilterItem extends SpzaComponent {\n getClassName() {\n let className = this.props.className || 'spza_filterItem';\n className += ' filterItemName' + (this.props.isActive ? ' spza_activeFilter' : '');\n className += this.props.shouldShowFilterBoldStyle ? '' : ' spza_parent-filter-bold-disable';\n return className;\n }\n getFilterItemInner() {\n const filter = this.props.filter;\n const filterText = getFilterText(this.context, filter, this.props.showExpandedIcon, this.props.href);\n const className = this.getClassName();\n const filterId = filter.FilterID || null;\n const filterClassname = `filterText ${this.props.isEmbed ? 'embedFilterButton' : ''} ${this.props.filterTextClass}`;\n const hostStyles = {\n root: {\n marginLeft: 5\n }\n };\n const role = this.props.role || 'checkbox';\n const isActive = !!this.props.isActive;\n const clickHandler = this.props.onClickHandle || handleFilterToggle(this.props.category, this.props.queryValue, isActive, this.props.href, Constants.Telemetry.ActionModifier.FilterPane, this.props.onClick);\n const otherProps = _object_spread({}, this.props.otherProps);\n if (role === 'checkbox') {\n otherProps['aria-checked'] = isActive;\n }\n return /*#__PURE__*/ _jsxs(\"label\", {\n className: `${className} filterItemName`,\n children: [\n !this.props.hideCheckbox && /*#__PURE__*/ _jsx(\"input\", {\n type: \"checkbox\",\n \"aria-label\": filterText,\n checked: isActive,\n onChange: clickHandler,\n onKeyDown: (event)=>{\n keyDownHandler(event, clickHandler);\n }\n }),\n /*#__PURE__*/ _jsxs(\"span\", {\n children: [\n /*#__PURE__*/ _jsxs(InternalLink, _object_spread_props(_object_spread({\n role: \"checkbox\",\n className: filterClassname,\n \"aria-checked\": isActive,\n accEnabled: this.props.accEnabled,\n href: this.props.href,\n onClick: clickHandler\n }, otherProps), {\n children: [\n this.props.iconClassName ? /*#__PURE__*/ _jsx(\"div\", {\n className: \"productIcon\",\n children: /*#__PURE__*/ _jsx(\"div\", {\n className: this.props.iconClassName\n })\n }) : null,\n filterText\n ]\n }), filterId),\n this.props.tooltip && /*#__PURE__*/ _jsx(TooltipHost, {\n styles: hostStyles,\n content: this.context.loc(this.props.tooltip),\n children: /*#__PURE__*/ _jsx(Icon, {\n className: \"ms-Icon ms-Icon--Info\"\n })\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"span\", {\n className: \"resultCount\",\n children: this.props.resultCount ? this.props.resultCount : null\n })\n ]\n });\n }\n renderImpl() {\n return this.props.role === 'button' ? /*#__PURE__*/ _jsx(\"div\", {\n className: \"c-checkbox filterItem\",\n children: this.getFilterItemInner()\n }) : /*#__PURE__*/ _jsx(\"li\", {\n className: \"c-checkbox filterItem\",\n children: this.getFilterItemInner()\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0);\n }\n}\nexport { FilterItem as default };\nFilterItem.contextTypes = {\n loc: PropTypes.func,\n buildHref: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { getCategoryListByProductId, productKeyByUrlKey } from '../utils/datamappingHelpers';\nimport FilterItem from './filterItem';\nimport SpzaComponent from './spzaComponent';\nimport { Constants } from '../utils/constants';\nimport { shouldFlatProducts, shouldHideIndustriesAndProducts, shouldShowFilter } from '../../embed/embedHostUtils';\nimport { RichTextDropDown } from '../../shared/components/richTextDropDown';\nimport { shouldShowSubFilter, sortFiltersKeys, serviceOffersSupportedCountries, getCountryRegionfilterLink } from '../utils/filterHelpers';\nimport { serviceOffersSupportedCAStates, serviceOffersSupportedUSStates } from '@shared/utils/serviceOffersSupportedStatesCodes';\nimport { isEmbedded, getProductByUrlKey } from '../utils/appUtils';\nimport { SpzaInstrumentService } from '../services/telemetry/spza/spzaInstrument';\nimport { getWindow } from '../services/window';\nimport { getEntityRegistration } from '../utils/entityRegistration';\nimport { FontIcon, TooltipHost } from '@fluentui/react';\nimport { logger } from '@src/logger';\nimport { listOfUrlKeysToExcludeInAppsource } from '@shared/oneTaxonomy';\nimport { filterHideList } from '@shared/oneTaxonomy/utils';\nimport { v4 as uuidv4 } from 'uuid';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst classNames = require('classnames-minimal');\nconst FilterQuery = Constants.FilterQuery;\n// Add a new object if need subtitles for existing products.\nconst subTitle = {\n 2: {\n editions: [\n {\n name: 'Loc_BusinessEdition',\n products: [\n Constants.dynamics365.financeAndOperationsBD\n ]\n },\n {\n name: 'Loc_EnterpriseEdition',\n products: [\n Constants.dynamics365.customerInsightsED,\n Constants.dynamics365.customerServiceED,\n Constants.dynamics365.fieldServicesED,\n Constants.dynamics365.financeED,\n Constants.dynamics365.serviceAutomationED,\n Constants.dynamics365.salesED,\n Constants.dynamics365.marketingED,\n Constants.dynamics365.commerceED,\n Constants.dynamics365.supplyChainManagementED\n ]\n }\n ]\n }\n};\nexport class FilterPane extends SpzaComponent {\n getInitialState() {\n const defaultState = {\n selectedCountry: {\n text: Constants.usFilterText,\n value: Constants.usCountryCode.toUpperCase()\n },\n selectedRegion: {\n text: Constants.allRegionsFilterText,\n value: Constants.allStatesCode.toUpperCase()\n },\n countryFilterItems: this.getCountriesFilterItems(),\n stateFilterItems: this.getStatesFilterItems(Constants.usCountryCode),\n productData: this.getCategoryID(this.props)\n };\n return defaultState;\n }\n UNSAFE_componentWillMount() {\n if (this.props.entityType && this.props.entityType === Constants.EntityType.Service) {\n this.setSelectRegionFilters(this.props);\n }\n }\n UNSAFE_componentWillReceiveProps(nextProps) {\n if (nextProps.entityType && nextProps.entityType === Constants.EntityType.Service && (this.props.countryCode !== nextProps.countryCode || this.props.regionCode !== nextProps.regionCode)) {\n this.setSelectRegionFilters(nextProps);\n }\n if (nextProps.currentView === 'appGallery') {\n const currentProductData = this.getCategoryID(nextProps);\n this.setState({\n productData: currentProductData\n });\n }\n this.setState({\n countryFilterItems: this.getCountriesFilterItems()\n });\n }\n getCategoryID(props) {\n var _props_query;\n const productData = {};\n if (typeof ((_props_query = props.query) === null || _props_query === void 0 ? void 0 : _props_query.product) === 'string') {\n const products = props.query.product.split(';');\n if (products && products.length > 0) {\n const productFilter = products[0].trim();\n const product = getProductByUrlKey({\n urlKey: productFilter\n });\n if (product) {\n productData[product.FilterGroup] = product.FilterID;\n }\n }\n }\n return productData;\n }\n setSelectRegionFilters(props) {\n let selectedCountry;\n let selectedRegion;\n if (props.countryCode) {\n selectedCountry = serviceOffersSupportedCountries.filter((item)=>{\n return item.countryCode === props.countryCode;\n });\n }\n if (props.regionCode) {\n if (props.countryCode && props.countryCode.toLowerCase() === Constants.caCountryCode) {\n selectedRegion = serviceOffersSupportedCAStates.filter((item)=>{\n return item.code === props.regionCode;\n });\n } else {\n selectedRegion = serviceOffersSupportedUSStates.filter((item)=>{\n return item.code === props.regionCode;\n });\n }\n }\n const firstSupportedCountryIndex = this.getFirstSupportedCountryIndex();\n this.setState({\n selectedCountry: selectedCountry && selectedCountry.length > 0 ? {\n text: selectedCountry[0].name,\n value: selectedCountry[0].countryCode\n } : {\n text: serviceOffersSupportedCountries[`${firstSupportedCountryIndex}`].name,\n value: serviceOffersSupportedCountries[`${firstSupportedCountryIndex}`].countryCode\n },\n selectedRegion: selectedRegion && selectedRegion.length > 0 ? {\n text: selectedRegion[0].name,\n value: selectedRegion[0].code\n } : {\n text: serviceOffersSupportedUSStates[0].name,\n value: serviceOffersSupportedUSStates[0].code\n },\n countryFilterItems: this.getCountriesFilterItems(),\n stateFilterItems: this.getStatesFilterItems(props.countryCode)\n });\n getCountryRegionfilterLink(this.context, props.countryCode, props.regionCode);\n this.props.stateCountryFilterHandler(props.countryCode, props.regionCode);\n }\n setProductOrComplianceCategory(filter, isProductFilter) {\n if (isProductFilter) {\n if (!filter.isActive) {\n // check product filter\n const productData = {};\n productData[filter.FilterGroup] = filter.FilterID;\n this.setState({\n productData\n });\n } else {\n // uncheck product filter\n this.setState({\n productData: null\n });\n }\n }\n }\n getRoute() {\n return getEntityRegistration(this.props.entityType).route;\n }\n buildFilterElement(filters, filter, category, key, flat = false) {\n var _this_props_dataMap_products_;\n const isCategoryFilter = category === FilterQuery.category;\n const isIndustryFilter = category === FilterQuery.industry;\n if ((isCategoryFilter || isIndustryFilter) && !filter) {\n return;\n }\n let currentFilter = category === FilterQuery.product ? this.props.dataMap.products[productKeyByUrlKey[`${filter}`]] : filters[`${filter}`];\n if (currentFilter.IsReference) {\n currentFilter = this.props.dataMap.categories.default[`${filter}`];\n }\n const queryValue = currentFilter.UrlKey;\n const isProductFilter = category === FilterQuery.product && !flat;\n const isAppComplianceFilter = category === FilterQuery.product && !flat;\n let activeParentFilter = (currentFilter.isActive || this.props.isEmbedded) && currentFilter.ShortcutFilters != null;\n // for Office on services page, for now, we have no children\n // so we should hide the expanded icon\n if (this.props.entityType === Constants.EntityType.Service && currentFilter.BackendKey === 'Office365') {\n activeParentFilter = false;\n }\n if (currentFilter.isActive && currentFilter.SubCategoryDataMapping) {\n const visibleSubFilters = Object.keys(currentFilter.SubCategoryDataMapping).filter((filterKey)=>!listOfUrlKeysToExcludeInAppsource.includes(currentFilter.SubCategoryDataMapping[`${filterKey}`].UrlKey));\n activeParentFilter = visibleSubFilters.length > 0;\n }\n const otherProps = {};\n const children = (_this_props_dataMap_products_ = this.props.dataMap.products[`${filter}`]) === null || _this_props_dataMap_products_ === void 0 ? void 0 : _this_props_dataMap_products_.ShortcutFilters;\n if (children) {\n otherProps['aria-expanded'] = currentFilter.isActive;\n }\n if (isProductFilter) {\n otherProps['aria-pressed'] = currentFilter.isActive;\n }\n if (currentFilter.FilterID) {\n otherProps.id = category + '-' + currentFilter.FilterID;\n }\n if (isEmbedded) {\n const generatedId = uuidv4();\n otherProps.id = `${category} - ${generatedId}`;\n }\n const classNameFilterPaneRoot = 'filterPaneItemRoot' + (currentFilter.isActive ? ' taxonomy' : '');\n const hideCheckbox = isProductFilter || isAppComplianceFilter || isCategoryFilter || isIndustryFilter;\n return /*#__PURE__*/ _jsxs(\"li\", {\n className: classNameFilterPaneRoot,\n children: [\n /*#__PURE__*/ _jsx(FilterItem, {\n filter: currentFilter,\n isActive: currentFilter.isActive,\n category: category,\n queryValue: queryValue,\n hideCheckbox: hideCheckbox,\n showExpandedIcon: activeParentFilter,\n href: this.props.getFilterLink(currentFilter, this.props.query),\n onClick: ()=>this.setProductOrComplianceCategory(currentFilter, isProductFilter),\n role: hideCheckbox ? 'button' : 'checkbox',\n otherProps: otherProps,\n accEnabled: true,\n isEmbed: this.props.isEmbedded,\n tooltip: currentFilter.Tooltip\n }, currentFilter.FilterID),\n activeParentFilter && !flat ? /*#__PURE__*/ _jsx(\"ul\", {\n children: currentFilter.SubCategoryDataMapping ? this.renderSubCategories(currentFilter.SubCategoryDataMapping, FilterQuery.category) : this.renderSubFilters(currentFilter, category, filters)\n }) : null\n ]\n }, key);\n }\n renderSubCategories(filters, category) {\n const filterKeys = Object.keys(filters);\n return filterKeys.filter((filterKey)=>shouldShowSubFilter(filters[`${filterKey}`]) && !filterHideList.includes(filters[`${filterKey}`].BackendKey)).sort(function(filterKeyA, filterKeyB) {\n return sortFiltersKeys(filterKeyA, filterKeyB, filters);\n }).map((key)=>{\n const childFilter = filters[`${key}`];\n const childProps = {\n 'aria-selected': childFilter.isActive\n };\n return /*#__PURE__*/ _jsx(FilterItem, {\n filter: childFilter,\n isActive: childFilter.isActive,\n category: category,\n queryValue: childFilter.UrlKey,\n hideCheckbox: false,\n href: this.props.getFilterLink(childFilter),\n otherProps: childProps\n }, childFilter.Title);\n });\n }\n renderSubFilters(currentFilter, category, filterCollection) {\n if (subTitle[`${currentFilter.FilterID}`]) {\n const subTitles = subTitle[currentFilter.FilterID].editions;\n return subTitles.map((subTitle)=>{\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"subtitle\",\n children: this.renderChildrenFilters(subTitle.products, category, filterCollection)\n }, subTitle.name);\n });\n }\n const indentFilters = [\n this.props.dataMap.products.Dynamics365.FilterID,\n this.props.dataMap.products.PowerPlatform.FilterID\n ];\n const office = this.props.dataMap.products.Office365;\n if (office) {\n indentFilters.push(office.FilterID);\n }\n const shouldIndent = indentFilters.indexOf(currentFilter.FilterID) >= 0;\n return this.renderChildrenFilters(currentFilter.ShortcutFilters, category, filterCollection, shouldIndent);\n }\n renderChildrenFilters(ShortcutFilters, category, filters, indent) {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: indent ? 'indentCheckbox' : '',\n children: Object.keys(ShortcutFilters).map((key, index)=>{\n const childFilter = filters[ShortcutFilters[`${key}`]];\n // a child filter might be null when no apps/services with that filter are present\n if (childFilter) {\n const childProps = {};\n if (childFilter.isActive) {\n childProps['aria-checked'] = childFilter.isActive;\n }\n return /*#__PURE__*/ _jsx(FilterItem, {\n filter: childFilter,\n isActive: childFilter.isActive,\n category: category,\n queryValue: childFilter.UrlKey,\n href: this.props.getFilterLink(childFilter),\n otherProps: childProps,\n accEnabled: true\n }, index);\n } else {\n return null;\n }\n })\n });\n }\n renderCategoryBlock(title, filters) {\n const groupClass = 'spza_filterGroup category';\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: groupClass,\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n className: \"c-heading5 spza_filterTitle\",\n children: this.context.loc(title)\n }),\n /*#__PURE__*/ _jsx(\"ul\", {\n className: \"spza_filterItems\",\n role: \"list\",\n \"aria-label\": `${this.context.loc(title)} filter`,\n children: Object.entries(filters).sort(([filterKeyA], [filterKeyB])=>{\n return sortFiltersKeys(filterKeyA, filterKeyB, filters);\n }).map(([categoryKey, categoryValue])=>{\n const filter = categoryValue.IsReference ? this.props.dataMap.categories.default[`${categoryKey}`] : categoryValue;\n return this.buildFilterElement(filters, categoryKey, FilterQuery.category, categoryKey, filter.HideReferenceSubCategories || false);\n })\n })\n ]\n });\n }\n renderSearchBlock(title, filters, category) {\n const groupClass = 'spza_filterGroup ' + category;\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: groupClass,\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n className: \"c-heading5 spza_filterTitle\",\n children: this.context.loc(title)\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"spza_filterItems\",\n role: \"listbox\",\n \"aria-label\": this.context.loc(title) + ' filter',\n children: Object.keys(filters).sort(function(filterKeyA, filterKeyB) {\n return sortFiltersKeys(filterKeyA, filterKeyB, filters);\n }).filter((filterKey)=>!filterHideList.includes(filters[`${filterKey}`].BackendKey)).map((filter, key)=>this.buildFilterElement(filters, filter, category, key))\n })\n ]\n });\n }\n renderProductBlock(title) {\n const flat = this.props.isEmbedded && shouldFlatProducts(this.props.embedHost); // embeded admin portal\n const embedHost = this.props.isEmbedded && this.props.embedHost;\n const products = this.props.dataMap.products;\n const productGroupings = Object.keys(products).reduce(function(acc, productKey) {\n const product = products[`${productKey}`];\n if (product.IsChildFilter && !flat) {\n return acc;\n }\n if (product.BackendKey === Constants.officeBackendKey) {\n return acc;\n }\n if (product.BackendKey === Constants.adminPortalBackendKey) {\n return acc;\n }\n if (product.BackendKey === Constants.officeFlatBackendKey && flat) {\n return acc;\n }\n if (embedHost && !shouldShowFilter(embedHost, product)) {\n return acc;\n }\n acc.apps.push(product);\n return acc;\n }, {\n apps: [],\n plugins: []\n });\n const key = this.state.productData && Object.keys(this.state.productData)[0];\n const value = this.state.productData && this.state.productData[`${key}`];\n const activeDescendant = key + '_' + value;\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"spza_filterGroup embeded-product\",\n role: \"listbox\",\n \"aria-activedescendant\": !this.state.productData ? '' : activeDescendant,\n \"aria-label\": \"Products filter\",\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n className: \"c-heading5 spza_filterTitle\",\n children: this.context.loc(title)\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: 'spza_filterItemsNoIndent',\n children: productGroupings.apps.filter((app)=>app).map((app, key)=>this.buildFilterElement(products, app.UrlKey, FilterQuery.product, key, flat))\n })\n ]\n });\n }\n renderDropDownFilterBlock(filterType) {\n let defaultItem = {\n text: '',\n value: ''\n };\n defaultItem = filterType === 'States' ? this.state.selectedRegion : this.state.selectedCountry;\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"spza_dropDownFilterSection\",\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"spza_filterSubTitle\",\n children: this.context.loc('FilterType_' + filterType)\n }),\n /*#__PURE__*/ _jsx(RichTextDropDown, {\n className: \"regionList\",\n options: filterType === 'States' ? this.state.stateFilterItems : this.state.countryFilterItems,\n value: defaultItem,\n searchEnabled: filterType !== 'States',\n onChangeHandle: (option)=>{\n if (filterType === 'States') {\n this.handleStateFilterSelectionChange(option);\n } else {\n this.handleCountryFilterSelectionChange(option);\n }\n },\n dropdownLabel: filterType === 'States' ? 'state/province' : 'country/region'\n })\n ]\n });\n }\n renderAppComplianceBlock(title) {\n const flat = this.props.isEmbedded && shouldFlatProducts(this.props.embedHost); // embeded admin portal\n const complianceTypes = this.props.dataMap.appCompliance;\n const hostStyles = {\n root: {\n marginLeft: 5\n }\n };\n const complianceTypeGroupings = Object.keys(complianceTypes).reduce((acc, complianceType)=>{\n const compliance = complianceTypes[`${complianceType}`];\n acc.complianceType.push(compliance);\n return acc;\n }, {\n complianceType: [],\n plugins: []\n });\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"spza_filterGroup embeded-product\",\n role: \"listbox\",\n \"aria-label\": \"AppCompliance filter\",\n children: [\n /*#__PURE__*/ _jsxs(\"h2\", {\n className: \"c-heading5 spza_filterTitle\",\n children: [\n this.context.loc(title),\n ' ',\n /*#__PURE__*/ _jsx(TooltipHost, {\n styles: hostStyles,\n content: this.context.loc('Global_Loc_compliance_tooltip'),\n children: /*#__PURE__*/ _jsx(FontIcon, {\n iconName: \"Info\"\n })\n })\n ]\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: 'spza_filterItemsNoIndent',\n children: complianceTypeGroupings.complianceType.map((type, key)=>this.buildFilterElement(complianceTypes, type.UrlKey, FilterQuery.appCompliance, key, flat))\n })\n ]\n });\n }\n handleStateFilterSelectionChange(regionCode) {\n this.logfilterChangeTelemetry(this.state.selectedRegion.value, regionCode, 'state');\n this.setState({\n countryFilterItems: this.state.countryFilterItems,\n stateFilterItems: this.state.stateFilterItems,\n selectedCountry: this.state.selectedCountry,\n selectedRegion: regionCode\n });\n getCountryRegionfilterLink(this.context, this.state.selectedCountry.value, regionCode.value);\n this.props.stateCountryFilterHandler(this.state.selectedCountry.value, regionCode.value);\n }\n handleCountryFilterSelectionChange(countryCode) {\n const states = this.getStatesFilterItems(countryCode.value);\n const allStateCode = Constants.allStatesCode;\n const region = states.filter((item)=>item.value.toLowerCase() === allStateCode)[0];\n this.logfilterChangeTelemetry(this.state.selectedCountry.value, countryCode, 'country');\n this.setState({\n countryFilterItems: this.state.countryFilterItems,\n stateFilterItems: states,\n selectedCountry: countryCode,\n selectedRegion: region\n });\n getCountryRegionfilterLink(this.context, countryCode.value, region.value);\n this.props.stateCountryFilterHandler(countryCode.value, region.value);\n }\n logfilterChangeTelemetry(oldValue, newValue, type) {\n const detailsObj = {\n oldValue,\n newValue,\n filter: type\n };\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.FilterClick,\n actionModifier: Constants.Telemetry.ActionModifier.FilterPane,\n details: JSON.stringify(detailsObj)\n };\n this.instrument.probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n }\n renderLocationFilters() {\n const groupClass = 'spza_filterGroup locations';\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: groupClass,\n children: [\n /*#__PURE__*/ _jsx(\"h2\", {\n className: \"c-heading5 spza_filterTitle\",\n children: this.context.loc('FilterType_Location')\n }),\n this.renderDropDownFilterBlock('Countries'),\n this.state.selectedCountry.value.toLowerCase() === Constants.usCountryCode || this.state.selectedCountry.value.toLowerCase() === Constants.caCountryCode ? this.renderDropDownFilterBlock('States') : null\n ]\n });\n }\n setCategoryList() {\n const defaultCategories = this.props.dataMap.categories.default;\n if (this.state.productData && Object.keys(this.state.productData).length > 0) {\n const dynamicCategories = getCategoryListByProductId(this.state.productData, this.props.dataMap);\n if (dynamicCategories) {\n return dynamicCategories;\n }\n }\n return defaultCategories;\n }\n renderImpl() {\n const hideIndustriesAndProducts = this.props.isEmbedded && shouldHideIndustriesAndProducts(this.props.embedHost);\n const showServiceTypeFilters = this.props.entityType === Constants.EntityType.Service;\n const categoryList = this.setCategoryList();\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: classNames({\n spza_filterContainer: !isEmbedded(),\n spza_filterContainerEmbedded: isEmbedded()\n }),\n role: \"navigation\",\n \"aria-label\": \"Product Category Filter\",\n children: [\n showServiceTypeFilters ? this.renderLocationFilters() : null,\n !hideIndustriesAndProducts && showServiceTypeFilters ? this.renderProductBlock('FilterType_Products') : null,\n !showServiceTypeFilters && Object.getOwnPropertyNames(categoryList).length > 0 ? this.renderCategoryBlock('FilterType_Categories', categoryList) : null,\n hideIndustriesAndProducts ? null : this.renderSearchBlock('FilterType_Industries', this.props.dataMap.industries, FilterQuery.industry),\n !hideIndustriesAndProducts && !showServiceTypeFilters ? this.renderProductBlock('FilterType_Products') : null,\n !hideIndustriesAndProducts && !showServiceTypeFilters ? this.renderAppComplianceBlock('FilterType_AppCompliance') : null,\n showServiceTypeFilters ? this.renderSearchBlock('FilterType_ServiceType', this.props.dataMap.serviceTypes, FilterQuery.serviceType) : null\n ]\n });\n }\n getStatesFilterItems(countryCode) {\n const items = countryCode && countryCode.toLowerCase() === Constants.caCountryCode ? serviceOffersSupportedCAStates : serviceOffersSupportedUSStates;\n const filterList = [];\n items.forEach((item)=>filterList.push({\n text: item.name,\n value: item.code\n }));\n return filterList;\n }\n getFirstSupportedCountryIndex() {\n return 1;\n }\n getCountriesFilterItems() {\n const filterCountries = Object.keys(this.props.countriesList).length > 0;\n const filterList = [];\n const firstSupportedCountryIndex = this.getFirstSupportedCountryIndex();\n for(let i = firstSupportedCountryIndex; i < serviceOffersSupportedCountries.length; i++){\n if (!filterCountries || filterCountries && this.props.countriesList[serviceOffersSupportedCountries[`${i}`].countryCode] || serviceOffersSupportedCountries[`${i}`].countryCode === 'ALL') {\n filterList.push({\n text: serviceOffersSupportedCountries[`${i}`].name,\n value: serviceOffersSupportedCountries[`${i}`].countryCode\n });\n }\n }\n return filterList;\n }\n getDefaultState() {\n let selectedRegion;\n if (this.props.countryCode && this.props.countryCode.toLowerCase() === Constants.caCountryCode || this.state.selectedCountry && this.state.selectedCountry.value.toLowerCase() === Constants.caCountryCode) {\n // there is some region code present in the query param.\n if (this.props.regionCode) {\n selectedRegion = serviceOffersSupportedCAStates.filter((item)=>{\n return item.code === this.props.regionCode;\n });\n // the one found in the query param is valid return that\n if (selectedRegion && selectedRegion.length > 0) {\n return selectedRegion;\n }\n }\n }\n }\n constructor(props, context){\n super(props, context), _define_property(this, \"context\", void 0), _define_property(this, \"instrument\", void 0);\n this.instrument = SpzaInstrumentService.getProvider();\n this.state = this.getInitialState();\n }\n}\nFilterPane.contextTypes = {\n loc: PropTypes.func,\n renderErrorModal: PropTypes.func,\n buildHref: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { ActionButton, Checkbox, TooltipHost, FontIcon, Stack, Text, ScreenWidthMinXLarge, mergeStyles } from '@fluentui/react';\nimport SpzaComponent from '@shared/components/spzaComponent';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst classNames = require('classnames-minimal');\nconst checkboxFilterPadding = mergeStyles({\n padding: '15px 5px',\n [`@media (max-width: ${ScreenWidthMinXLarge}px)`]: {\n padding: '15px 5px 20px 20px'\n }\n});\nexport class FilterLink extends SpzaComponent {\n getFilterName() {\n return `${this.context.loc(this.props.locKey, this.props.localizedName)}${this.props.activeChildren > 0 ? ` (${this.props.activeChildren})` : ''}`;\n }\n getFilterLabel() {\n const name = this.getFilterName();\n const start = name.toLowerCase().indexOf(this.props.searchValue);\n if (!this.props.searchValue || start === -1) {\n return /*#__PURE__*/ _jsx(\"span\", {\n title: name,\n children: name\n });\n }\n const end = start + this.props.searchValue.length - 1;\n return /*#__PURE__*/ _jsxs(\"span\", {\n children: [\n name.substr(0, start),\n /*#__PURE__*/ _jsx(\"b\", {\n children: name.substr(start, end - start + 1)\n }),\n name.substr(end + 1),\n ' '\n ]\n });\n }\n renderImpl() {\n var _this_props_link_links, _this_props_link;\n const hostStyles = {\n root: {\n marginLeft: 5\n }\n };\n const checkboxStyles = {\n checkbox: {\n marginRight: 0\n }\n };\n const buttonFocused = !this.props.isGroup && !this.props.isChild;\n return this.props.checkboxTooltip ? this.renderCheckBoxFilter() : /*#__PURE__*/ _jsxs(Stack, {\n horizontal: true,\n verticalAlign: \"center\",\n className: `${this.props.className} filterLinkButton ${classNames({\n isGroup: this.props.isGroup,\n isChild: this.props.isChild,\n isActive: this.props.isActive\n })}`,\n children: [\n this.props.isChild ? /*#__PURE__*/ _jsx(Stack.Item, {\n className: \"filterCheckbox\",\n onClick: this.props.onClick,\n children: /*#__PURE__*/ _jsx(Checkbox, {\n styles: checkboxStyles,\n checked: this.props.isActive,\n ariaLabel: this.getFilterName()\n })\n }) : null,\n /*#__PURE__*/ _jsx(Stack.Item, {\n children: /*#__PURE__*/ _jsxs(ActionButton, {\n onClick: this.props.onClick,\n styles: this.styles,\n \"data-is-focusable\": buttonFocused,\n \"aria-expanded\": ((_this_props_link = this.props.link) === null || _this_props_link === void 0 ? void 0 : (_this_props_link_links = _this_props_link.links) === null || _this_props_link_links === void 0 ? void 0 : _this_props_link_links.length) ? this.props.isActive : undefined,\n \"aria-current\": this.props.isActive ? 'page' : undefined,\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"filterLabel\",\n children: this.getFilterLabel()\n }),\n this.props.tooltip && /*#__PURE__*/ _jsx(\"div\", {\n tabIndex: 0,\n children: /*#__PURE__*/ _jsx(TooltipHost, {\n styles: hostStyles,\n content: this.context.loc(this.props.tooltip, this.props.tooltip),\n id: \"tooltipContent\",\n children: /*#__PURE__*/ _jsx(FontIcon, {\n iconName: \"Info\"\n })\n })\n }),\n this.props.children && /*#__PURE__*/ _jsx(_Fragment, {\n children: this.props.children\n })\n ]\n })\n })\n ]\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0), _define_property(this, \"styles\", {\n flexContainer: {\n alignItems: this.props.isRoot ? 'baseline' : 'center'\n }\n }), _define_property(this, \"renderCheckBoxFilter\", ()=>{\n const { isActive, checkboxTooltip, onClick } = this.props;\n return /*#__PURE__*/ _jsxs(Stack, {\n className: checkboxFilterPadding,\n horizontal: true,\n tokens: {\n childrenGap: 5\n },\n onClick: onClick,\n children: [\n /*#__PURE__*/ _jsx(Checkbox, {\n checked: isActive,\n ariaLabel: this.getFilterName()\n }),\n /*#__PURE__*/ _jsx(Text, {\n children: this.getFilterLabel()\n }),\n /*#__PURE__*/ _jsx(TooltipHost, {\n content: checkboxTooltip,\n id: \"tooltipContent\",\n children: /*#__PURE__*/ _jsx(FontIcon, {\n iconName: \"Info\"\n })\n })\n ]\n });\n });\n }\n}\nFilterLink.contextTypes = {\n loc: PropTypes.func,\n renderErrorModal: PropTypes.func,\n buildHref: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Nav, Text, SearchBox, ScreenWidthMinXLarge, Stack } from '@fluentui/react';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport { urlPush } from '@shared/routerHistory';\nimport SpzaComponent from '@shared/components/spzaComponent';\nimport { FilterPane as SharedFilterPane } from '@shared/components/filterPane';\nimport { InternalLink } from '@shared/components/internalLink';\nimport { getCategoryListByProductId } from '@shared/utils/datamappingHelpers';\nimport { Constants } from '@shared/utils/constants';\nimport { getWindow } from '@shared/services/window';\nimport { shouldShowSubFilter, sortFilters, serviceOffersSupportedCountriesMap, sort, getResetFiltersHref } from '@shared/utils/filterHelpers';\nimport { serviceOffersSupportedCAStates, serviceOffersSupportedUSStates } from '@shared/utils/serviceOffersSupportedStatesCodes';\nimport { FilterLink } from '@appsource/components/filterLink';\nimport { dataMapToArray } from '@shared/utils/dataMappingUtils';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { getFilterLink } from '@shared/utils/filterUtils';\nimport { useTelemetry } from '@shared/hooks/useTelemetry';\nimport { getNpsModule } from '@appsource/utils/nps';\nimport { logger } from '@src/logger';\nimport { BusinessTelemetry } from '@shared/utils/businessConstants';\nimport { listOfUrlKeysToExcludeInAppsource } from '@shared/oneTaxonomy';\nimport { ExternalLink } from '@shared/components/externalLink';\nimport { getProductByUrlKey } from '@shared/utils/appUtils';\nimport { filterHideList, isOneTaxonomyEnabled } from '@shared/oneTaxonomy/utils';\nimport { isEmptyObject } from '@shared/utils/objectUtils';\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst [{ pageAction }] = useTelemetry();\nconst rootGroupName = 'FilterType_Root';\nconst countryGroupName = 'FilterType_Countries';\nconst regionGroupName = 'FilterType_States';\nexport class FilterPane extends SpzaComponent {\n onMount() {\n this.telemetryComponentDidMount();\n this.updateWindowDimensions();\n window.addEventListener('resize', this.updateWindowDimensions);\n this.setState({\n hasInit: true\n });\n }\n componentDidUpdate(prevProps) {\n if (!this.state.hasInit) {\n this.onMount();\n }\n if (this.props.dataMap !== prevProps.dataMap) {\n this.setState({\n filtersMap: this.getFiltersMap()\n });\n }\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.updateWindowDimensions);\n }\n telemetryComponentDidMount() {\n var _getWindow_performance, _getWindow;\n const window1 = getWindow();\n const { navigationStart = 0, requestStart = 0 } = ((_getWindow = getWindow()) === null || _getWindow === void 0 ? void 0 : (_getWindow_performance = _getWindow.performance) === null || _getWindow_performance === void 0 ? void 0 : _getWindow_performance.timing) || {};\n if (window1) {\n window1.loadTimeGalleryFilters = performance.now() - (requestStart - navigationStart);\n }\n }\n getCountryKey(countryCode) {\n return `COUNTRY_${countryCode}`;\n }\n getRegionKey(regionCode) {\n return `REGION_${regionCode}`;\n }\n getFiltersMap() {\n const dataMapArray = dataMapToArray(this.props.dataMap);\n const dataMapFilters = dataMapArray.reduce((dataMapFilters, dataValues)=>_object_spread_props(_object_spread({}, dataMapFilters), {\n [dataValues.UrlKey]: {\n isChild: dataValues.IsChildFilter,\n isActive: dataValues.isActive,\n localizedName: dataValues.Title,\n tooltip: dataValues.Tooltip\n }\n }), {});\n const countriesFilters = Object.keys(this.props.countriesList).reduce((dataMapFilters, countryCode)=>_object_spread_props(_object_spread({}, dataMapFilters), {\n [this.getCountryKey(countryCode)]: {\n isChild: true,\n isActive: countryCode === this.props.countryCode\n }\n }), {});\n const regionsFilters = (this.getSelectedCountryRegions() || []).reduce((dataMapFilters, region)=>_object_spread_props(_object_spread({}, dataMapFilters), {\n [this.getRegionKey(region.code)]: {\n isChild: true,\n isActive: region.code === this.props.regionCode\n }\n }), {});\n return _object_spread({}, dataMapFilters, countriesFilters, regionsFilters);\n }\n getCurrentProduct(query) {\n if (query && typeof query.product === 'string') {\n const products = query.product.split(';');\n if (products && products.length > 0) {\n const product = products[0].trim();\n const productFilter = getProductByUrlKey({\n urlKey: product\n });\n if (productFilter) {\n const productBitMask = {\n [productFilter.FilterGroup]: productFilter.FilterID\n };\n return productBitMask;\n }\n }\n }\n }\n parseFiltersMapToFilters(filtersMap, keys) {\n return this.parseFilters((keys || Object.keys(filtersMap)).map((filterKey)=>filtersMap[`${filterKey}`]));\n }\n parseFilters(filters) {\n return filters.filter((filter)=>filter && !listOfUrlKeysToExcludeInAppsource.includes(filter.UrlKey)).sort((filterA, filterB)=>sortFilters(filterA, filterB));\n }\n getCategoryList() {\n const currentProduct = this.getCurrentProduct(this.props.query);\n if (currentProduct) {\n const dynamicCategories = getCategoryListByProductId(currentProduct, this.props.dataMap);\n if (dynamicCategories) {\n return dynamicCategories;\n }\n }\n return this.props.dataMap.categories.default;\n }\n filterToLink(filter, links, parent) {\n const key = filter.UrlKey;\n return {\n name: filter.LocKey || filter.Title,\n key,\n url: getFilterLink(this.context, this.props.entityType, filter, parent),\n isExpanded: !!this.state.filtersExpandedState[`${key}`],\n links\n };\n }\n groupToLink(name, key, links, tooltip = '') {\n return {\n name,\n key,\n url: '',\n isExpanded: !!this.state.filtersExpandedState[`${key}`],\n links,\n tooltip\n };\n }\n getFilterChildrenItems(filter) {\n if (!(filter && filter.SubCategoryDataMapping)) {\n return [];\n }\n const filterChildren = this.parseFiltersMapToFilters(filter.SubCategoryDataMapping).filter((categoryChild)=>shouldShowSubFilter(categoryChild) && !filterHideList.includes(categoryChild.BackendKey));\n return filterChildren.map((filterChild)=>this.filterToLink(filterChild, this.getFilterChildrenItems(filterChild), filter));\n }\n getProductChildrenItems(product) {\n if (!(product && product.ShortcutFilters)) {\n return [];\n }\n const productsMap = this.props.dataMap.products;\n const productChildrenKeys = Object.keys(product.ShortcutFilters).map((key)=>product.ShortcutFilters[`${key}`]);\n const productChildren = this.parseFiltersMapToFilters(productsMap, productChildrenKeys).filter((productChild)=>productChild.Level === product.Level + 1);\n return productChildren.map((productChild)=>this.filterToLink(productChild, this.getProductChildrenItems(productChild), product));\n }\n getProductsFiltersItems() {\n const productsMap = this.props.dataMap.products;\n const products = this.parseFiltersMapToFilters(productsMap).filter((product)=>product.Level === 1);\n const links = products.map((product)=>this.filterToLink(product, this.getProductChildrenItems(product)));\n return this.groupToLink('FilterType_Products', 'Products', links);\n }\n createCategoriesLinks(dataValues) {\n return dataValues.filter(({ BackendKey })=>!filterHideList.includes(BackendKey)).map((datavalue)=>this.filterToLink(datavalue, this.getFilterChildrenItems(datavalue)));\n }\n getIndustriesFiltersItems() {\n const industriesMap = this.props.dataMap.industries;\n const industries = this.parseFiltersMapToFilters(industriesMap);\n const links = this.createCategoriesLinks(industries);\n return this.groupToLink('FilterType_Industries', 'Industries', links);\n }\n getCloudIndustriesFiltersItems() {\n const { cloudIndustries } = this.props.dataMap;\n const filteredCloudIndustries = this.parseFiltersMapToFilters(cloudIndustries);\n const links = this.createCategoriesLinks(filteredCloudIndustries);\n return this.groupToLink('FilterType_Industries', 'Industries', links);\n }\n getCategoriesFiltersItems() {\n const categoryMap = this.getCategoryList();\n const categories = this.parseFilters(Object.entries(categoryMap).map(([categoryKey, categoryValue])=>categoryValue.IsReference ? this.props.dataMap.categories.default[`${categoryKey}`] : categoryValue));\n const links = this.createCategoriesLinks(categories);\n return this.groupToLink('FilterType_Categories', 'Categories', links);\n }\n getTrialsFiltersItems() {\n const trialsMap = this.props.dataMap.trials;\n const trials = this.parseFiltersMapToFilters(trialsMap);\n const links = trials.map((trial)=>this.filterToLink(trial));\n return this.groupToLink('Global_Loc_trials', 'Trials', links);\n }\n getPricingModelsFiltersItems() {\n const pricingModelMap = this.props.dataMap.pricingModel;\n const pricingModels = this.parseFiltersMapToFilters(pricingModelMap);\n const links = pricingModels.map((pricingModel)=>this.filterToLink(pricingModel));\n return this.groupToLink('Global_Loc_pricing_model', 'PricingModels', links);\n }\n getRatingsFiltersItems() {\n const ratingsMap = this.props.dataMap.ratings;\n const ratings = this.parseFiltersMapToFilters(ratingsMap);\n const links = ratings.map((rating)=>this.filterToLink(rating));\n return this.groupToLink('Global_Loc_ratings', 'Ratings', links);\n }\n getAppComplianceFiltersItems() {\n const compianceMap = this.props.dataMap.appCompliance;\n const comlianceTypes = this.parseFiltersMapToFilters(compianceMap);\n const links = comlianceTypes.map((comlianceType)=>this.filterToLink(comlianceType));\n return this.groupToLink('Global_Loc_app_compliance', 'Compliance', links, 'Global_Loc_compliance_tooltip');\n }\n getAzureBenefitEligibleItem() {\n const azureBenefitEligibleMap = this.props.dataMap.AzureBenefitEligible;\n const azureBenefitEligibleTypes = this.parseFiltersMapToFilters(azureBenefitEligibleMap);\n const links = (azureBenefitEligibleTypes || []).map((azureBenefitEligibleType)=>this.filterToLink(azureBenefitEligibleType));\n return _object_spread_props(_object_spread({}, links[0]), {\n checkboxTooltip: this.getTooltipContent()\n });\n }\n getServiceTypesFiltersItems() {\n const serviceTypesMap = this.props.dataMap.serviceTypes;\n const serviceTypes = this.parseFiltersMapToFilters(serviceTypesMap);\n const links = serviceTypes.map((serviceType)=>this.filterToLink(serviceType));\n return this.groupToLink('FilterType_ServiceType', 'ServiceTypes', links);\n }\n getCountryFiltersItems() {\n const route = getEntityRegistration(this.props.entityType).route;\n return Object.keys(this.props.countriesList).filter((countryCode)=>!!serviceOffersSupportedCountriesMap[`${countryCode}`]).map((countryCode)=>({\n key: this.getCountryKey(countryCode),\n name: serviceOffersSupportedCountriesMap[`${countryCode}`].name,\n url: this.context.buildHref(route, null, {\n [Constants.FilterQuery.country]: countryCode,\n [Constants.FilterQuery.region]: null\n })\n })).sort((a, b)=>sort(a.name, b.name));\n }\n getRegionFiltersItems(regions) {\n const route = getEntityRegistration(this.props.entityType).route;\n return regions.map((region)=>({\n key: this.getRegionKey(region.code),\n name: region.name,\n url: this.context.buildHref(route, null, {\n [Constants.FilterQuery.country]: this.props.countryCode,\n [Constants.FilterQuery.region]: region.code\n })\n }));\n }\n getLocationFiltersItems() {\n const links = [\n this.groupToLink(countryGroupName, 'country', this.getCountryFiltersItems())\n ];\n const regions = this.getSelectedCountryRegions();\n if (regions) {\n links.push(this.groupToLink(regionGroupName, 'region', this.getRegionFiltersItems(regions)));\n }\n return this.groupToLink('FilterType_Location', 'location', links);\n }\n getSelectedCountryRegions() {\n let regions;\n const countryCode = this.props.countryCode && this.props.countryCode.toLowerCase();\n if (countryCode === Constants.caCountryCode) {\n return serviceOffersSupportedCAStates;\n } else if (countryCode === Constants.usCountryCode) {\n return serviceOffersSupportedUSStates;\n }\n return regions;\n }\n getFiltersGroups() {\n const filters = {\n [Constants.EntityType.Service]: this.getServicesFiltersGroups(),\n [Constants.EntityType.CloudsIndustry]: this.getCloudsIndustryFiltersGroups()\n };\n let links = filters[this.props.entityType] || this.getAppsFiltersGroups();\n if (this.state.filterSearchValue.length > 0) {\n links = this.searchInFilterLinks(links);\n }\n links = links.filter(({ links = [], checkboxTooltip })=>{\n return (links === null || links === void 0 ? void 0 : links.length) || checkboxTooltip;\n });\n if (this.isSmallScreen()) {\n links = [\n this.groupToLink(rootGroupName, rootGroupName, links)\n ];\n }\n return [\n {\n links\n }\n ];\n }\n getCopilotExtensionsTooltip() {\n return /*#__PURE__*/ _jsx(Stack, {\n role: 'contentinfo',\n children: /*#__PURE__*/ _jsx(Text, {\n variant: \"small\",\n children: this.context.loc('Global_Loc_Copilot_extension_tooltip', 'Discover apps that work with Microsoft Copilot.Currently only showing Teams apps that work with Copilot, but more to come soon.')\n })\n });\n }\n getCopilotExtensionsItem() {\n const copilotExtensionMap = this.props.dataMap.CopilotExtension;\n const copilotExtensionTypes = this.parseFiltersMapToFilters(copilotExtensionMap);\n const links = (copilotExtensionTypes || []).map((copilotExtensionType)=>this.filterToLink(copilotExtensionType));\n return _object_spread_props(_object_spread({}, links[0]), {\n checkboxTooltip: this.getCopilotExtensionsTooltip()\n });\n }\n getAppsFiltersGroups() {\n const appsFiltersGroup = [\n this.getProductsFiltersItems(),\n this.getCategoriesFiltersItems(),\n this.getIndustriesFiltersItems(),\n this.getTrialsFiltersItems(),\n this.getPricingModelsFiltersItems(),\n this.getRatingsFiltersItems(),\n this.getAppComplianceFiltersItems(),\n !isEmptyObject(this.props.dataMap.CopilotExtension) && this.getCopilotExtensionsItem(),\n this.getAzureBenefitEligibleItem()\n ];\n return appsFiltersGroup;\n }\n getServicesFiltersGroups() {\n return [\n this.getLocationFiltersItems(),\n this.getProductsFiltersItems(),\n this.getIndustriesFiltersItems(),\n this.getServiceTypesFiltersItems()\n ];\n }\n getCloudsIndustryFiltersGroups() {\n return [\n this.getLocationFiltersItems(),\n this.getProductsFiltersItems(),\n isOneTaxonomyEnabled() ? this.getCloudIndustriesFiltersItems() : this.getIndustriesFiltersItems(),\n this.getCategoriesFiltersItems(),\n this.getTrialsFiltersItems(),\n this.getRatingsFiltersItems()\n ];\n }\n searchInFilterLinks(links) {\n const searchWord = this.state.filterSearchValue;\n const canonicalSearch = (link)=>{\n const isWordFound = link.name && link.name.toLowerCase().indexOf(searchWord.toLowerCase()) >= 0;\n if (!link.links || link.links.length === 0) {\n return isWordFound;\n } else {\n link.links = link.links.filter((subLink)=>canonicalSearch(subLink));\n if (link.links.length > 0) {\n link.isExpanded = true;\n }\n if (isWordFound || link.links.length > 0) {\n return true;\n }\n }\n };\n links.forEach((link)=>{\n if (!Array.isArray(link.links)) {\n return;\n }\n link.links = link.links.filter(canonicalSearch);\n });\n return links;\n }\n toggleLinkExpanded(item) {\n this.setState({\n filtersExpandedState: _object_spread_props(_object_spread({}, this.state.filtersExpandedState), {\n [item.key]: !this.state.filtersExpandedState[item.key]\n })\n });\n }\n toggleLinkIfNeeded(item) {\n const filter = this.state.filtersMap[item.key];\n if (!filter) {\n return this.toggleLinkExpanded(item);\n }\n this.setState({\n filtersExpandedState: _object_spread_props(_object_spread({}, this.state.filtersExpandedState), {\n [item.key]: !filter.isActive\n })\n });\n }\n onNavLinkClick(event, item) {\n var _item_url_includes, _item_url, _getNpsModule;\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.FilterClick,\n actionModifier: Constants.Telemetry.ActionModifier.FilterPane,\n details: JSON.stringify({\n key: item.key,\n name: item.name,\n url: item.url,\n filterState: !((_item_url = item.url) === null || _item_url === void 0 ? void 0 : (_item_url_includes = _item_url.includes) === null || _item_url_includes === void 0 ? void 0 : _item_url_includes.call(_item_url, item.key)) ? BusinessTelemetry.Filters.Deactivating : BusinessTelemetry.Filters.Activating\n })\n };\n this.instrument.probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n pageAction(null, {\n content: {\n contentType: Constants.Telemetry.ContentType.LinkClicked,\n areaName: Constants.Telemetry.AreaName.FilterPane,\n contentName: item.key\n }\n });\n if (event) {\n event.nativeEvent.preventDefault();\n }\n this.toggleLinkIfNeeded(item);\n if (item && item.url) {\n urlPush(item.url);\n }\n (_getNpsModule = getNpsModule()) === null || _getNpsModule === void 0 ? void 0 : _getNpsModule.increaseActionsCounter('filterActionsCount');\n }\n onLinkExpandClick(event, item) {\n var _item_url_includes, _item_url;\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.FilterExpand,\n actionModifier: Constants.Telemetry.ActionModifier.FilterPane,\n details: JSON.stringify({\n key: item.key,\n name: item.name,\n url: item.url,\n filterState: !((_item_url = item.url) === null || _item_url === void 0 ? void 0 : (_item_url_includes = _item_url.includes) === null || _item_url_includes === void 0 ? void 0 : _item_url_includes.call(_item_url, item.key)) ? BusinessTelemetry.Filters.Deactivating : BusinessTelemetry.Filters.Activating\n })\n };\n this.instrument.probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n pageAction(null, {\n content: {\n contentType: Constants.Telemetry.ContentType.LinkExpanded,\n areaName: Constants.Telemetry.AreaName.FilterPane,\n contentName: item.key\n }\n });\n this.toggleLinkExpanded(item);\n }\n getResetFilter() {\n const { activeFilters, entityType } = this.props;\n if (!(activeFilters && activeFilters.length)) {\n return null;\n }\n const redirectHref = getResetFiltersHref(this.context, entityType);\n return /*#__PURE__*/ _jsx(InternalLink, {\n href: redirectHref,\n className: \"c-hyperlink resetButton\",\n role: \"button\",\n telemetryDetails: BusinessTelemetry.Filters.FiltersCleared,\n accEnabled: true,\n children: this.context.loc('Gallery_FilterPane_ClearButton', 'Clear all')\n });\n }\n filterSearchChange(filterSearchValue) {\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.FilterSearchChange,\n actionModifier: Constants.Telemetry.ActionModifier.FilterPane,\n details: JSON.stringify({\n filterSearchValue\n })\n };\n this.instrument.probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n this.setState({\n filterSearchValue: filterSearchValue && filterSearchValue.toLowerCase()\n });\n }\n getActiveChildrenCount(link) {\n if (!link.links) {\n return 0;\n }\n return link.links.reduce((activesCount, currentSubLink)=>{\n const subFilter = this.state.filtersMap[currentSubLink.key];\n const isSubActive = subFilter && subFilter.isActive;\n return activesCount + (isSubActive ? 1 : 0);\n }, 0);\n }\n isSmallScreen() {\n var _this_state_windowSize;\n return ((_this_state_windowSize = this.state.windowSize) === null || _this_state_windowSize === void 0 ? void 0 : _this_state_windowSize.width) <= ScreenWidthMinXLarge;\n }\n renderLink(props) {\n const { link } = props;\n const isGroup = !link.url;\n const activeChildren = this.getActiveChildrenCount(link);\n let isChild = false;\n let isActive = false;\n let isRoot = false;\n let localizedName = '';\n let tooltip = '';\n if (isGroup) {\n isActive = activeChildren > 0;\n if (link.tooltip) {\n tooltip = link.tooltip;\n }\n } else {\n const filter = this.state.filtersMap[link.key];\n if (filter) {\n isChild = filter.isChild;\n isActive = filter.isActive;\n localizedName = filter.localizedName;\n tooltip = filter.tooltip;\n }\n }\n let clearAll = null;\n if (link.key === rootGroupName) {\n isRoot = true;\n clearAll = this.getResetFilter();\n }\n return /*#__PURE__*/ _jsx(FilterLink, _object_spread_props(_object_spread({\n locKey: link.name,\n localizedName: localizedName,\n isRoot: isRoot,\n isGroup: isGroup,\n isChild: isChild,\n isActive: isActive,\n activeChildren: activeChildren,\n searchValue: this.state.filterSearchValue,\n tooltip: tooltip,\n checkboxTooltip: link.checkboxTooltip\n }, props), {\n children: clearAll\n }));\n }\n getTooltipContent() {\n return /*#__PURE__*/ _jsxs(Stack, {\n role: 'contentinfo',\n children: [\n /*#__PURE__*/ _jsx(Text, {\n variant: \"small\",\n children: this.context.loc('Global_Loc_Azure_benefit_tooltip', 'Purchasing these offers through the marketplace benefits your organization by reducing your existing Azure commitment.')\n }),\n /*#__PURE__*/ _jsx(ExternalLink, {\n className: \"c-hyperlink\",\n target: \"_blank\",\n href: Constants.AzureBenefitURL,\n accessibilityEnabled: true,\n children: this.context.loc('Global_Loc_Azure_benefit_tooltip_link', 'Learn more about your benefits')\n })\n ]\n });\n }\n renderImpl() {\n const { filterSearchValue } = this.state;\n const filterGroups = this.getFiltersGroups();\n const filterGroupLinksLength = filterGroups[0].links.length;\n const { dataMap, isEmbedded, countryCode, countriesList, currentView, query, params, regionCode, entityType, getFilterLink, embedHost, stateCountryFilterHandler } = this.props;\n if (isEmbedded) {\n return /*#__PURE__*/ _jsx(SharedFilterPane, {\n dataMap: dataMap,\n getFilterLink: getFilterLink,\n embedHost: embedHost,\n isEmbedded: isEmbedded,\n entityType: entityType,\n stateCountryFilterHandler: stateCountryFilterHandler,\n countryCode: countryCode,\n regionCode: regionCode,\n params: params,\n query: query,\n currentView: currentView,\n countriesList: countriesList\n });\n }\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"filterPaneContainer\",\n children: /*#__PURE__*/ _jsxs(\"div\", {\n className: \"filterPane\",\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n className: \"filterPaneHeader\",\n children: [\n /*#__PURE__*/ _jsxs(\"div\", {\n className: \"filterPaneTitle\",\n children: [\n /*#__PURE__*/ _jsx(Text, {\n variant: \"large\",\n className: \"galleryTitle\",\n children: this.context.loc('Gallery_FilterPane_MainTitle', 'Filters')\n }),\n this.getResetFilter()\n ]\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"filterPaneSearch\",\n children: /*#__PURE__*/ _jsx(SearchBox, {\n \"data-bi-id\": Constants.Telemetry.Action.FilterSearchChange,\n \"data-bi-value\": filterSearchValue,\n styles: this.searchStyles,\n placeholder: this.context.loc('FilterType_Placeholder', 'Search filters'),\n underlined: true,\n onChange: (event, newValue)=>this.filterSearchChange(newValue),\n ariaLabel: filterSearchValue\n })\n })\n ]\n }),\n /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n role: \"status\",\n \"aria-label\": this.context.locParams('Filter_Pane_Search_Results_Aria_Label', [\n `${filterGroupLinksLength}`\n ], `${filterGroupLinksLength} Results found`)\n }),\n /*#__PURE__*/ _jsx(Nav, {\n groups: filterGroups,\n styles: this.navStyles,\n linkAs: (props)=>this.renderLink(props),\n onLinkClick: (event, item)=>this.onNavLinkClick(event, item),\n onLinkExpandClick: (event, item)=>this.onLinkExpandClick(event, item),\n selectedKey: \"\"\n })\n ]\n })\n ]\n })\n });\n }\n constructor(props, context){\n super(props, context), _define_property(this, \"context\", void 0), _define_property(this, \"navStyles\", void 0), _define_property(this, \"instrument\", SpzaInstrumentService.getProvider()), _define_property(this, \"searchStyles\", void 0), _define_property(this, \"updateWindowDimensions\", ()=>{\n var _getWindow;\n this.setState({\n windowSize: {\n width: (_getWindow = getWindow()) === null || _getWindow === void 0 ? void 0 : _getWindow.innerWidth\n }\n });\n });\n this.state = {\n filterSearchValue: '',\n filtersMap: this.getFiltersMap(),\n filtersExpandedState: {},\n windowSize: {},\n hasInit: false\n };\n this.navStyles = {\n groupContent: {\n '&': {\n marginBottom: 0,\n opacity: '1 !important',\n visibility: 'visible !important',\n transform: 'unset !important'\n }\n },\n navItems: {\n [`[name='${countryGroupName}'] + &, [name='${regionGroupName}'] + &`]: {\n maxHeight: 150,\n overflowY: 'auto',\n overflowX: 'hidden'\n }\n },\n link: {\n '&': {\n backgroundColor: 'transparent'\n },\n [`[name='${rootGroupName}'] &`]: {\n fontSize: 18,\n padding: '0 0 0 16px'\n }\n },\n chevronButton: {\n '&': {\n backgroundColor: 'transparent'\n },\n [`[name='${rootGroupName}'] &`]: {\n left: 'auto',\n right: 16\n }\n },\n chevronIcon: {\n color: 'rgb(50, 49, 48)'\n },\n root: {\n width: 'auto'\n }\n };\n this.searchStyles = {\n root: {\n backgroundColor: 'transparent'\n }\n };\n }\n}\nFilterPane.contextTypes = {\n loc: PropTypes.func,\n locParams: PropTypes.func,\n renderErrorModal: PropTypes.func,\n buildHref: PropTypes.func\n};\n","import { Constants } from '@shared/utils/constants';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { removeUnmatchedCategories } from '@shared/utils/datamappingHelpers';\nexport function getFilterLink(context, entityType, filter, parent) {\n const queryParams = {\n page: '1'\n };\n const isProduct = filter.UrlGroup === Constants.FilterQuery.product;\n const isCategory = filter.UrlGroup === Constants.FilterQuery.category;\n const isIndustry = filter.UrlGroup === Constants.FilterQuery.industry;\n const query = filter.UrlGroup || filter.FilterGroup;\n let filterValue = filter.UrlKey;\n if (filter.IsChildFilter) {\n let prefix;\n if (parent && !parent.isActive) {\n prefix = '';\n } else if (filter.isActive) {\n prefix = '!';\n } else {\n prefix = ';';\n }\n filterValue = prefix + filterValue;\n } else {\n if (filter.isActive) {\n filterValue = null;\n }\n }\n queryParams[`${query}`] = filterValue;\n if (filter.IsChildFilter && (parent === null || parent === void 0 ? void 0 : parent.SubCategoryDataMapping)) {\n if (parent.UrlGroup && parent.UrlKey) {\n queryParams[parent.UrlGroup] = parent.UrlKey;\n }\n } else {\n if (isCategory) {\n queryParams[Constants.FilterQuery.subcategories] = null;\n }\n if (isIndustry) {\n queryParams[Constants.FilterQuery.subindustries] = null;\n }\n }\n const route = getEntityRegistration(entityType).route;\n if (isProduct && !filter.IsChildFilter) {\n const urlKey = filter.isActive ? null : filter.UrlKey;\n const productMask = filter.isActive ? null : {\n [filter.FilterGroup]: filter.FilterID\n };\n return context.buildHref(route, null, removeUnmatchedCategories(queryParams, urlKey, productMask));\n }\n return context.buildHref(route, null, queryParams);\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SpzaComponent from './spzaComponent';\nimport { InternalLink } from './internalLink';\nimport { Constants } from '../utils/constants';\nimport { focusElement } from '../utils/appUtils';\nimport { getEntityRegistration } from '../utils/entityRegistration';\nimport { getNpsModule } from '@appsource/utils/nps';\nconst classNames = require('classnames-minimal');\nclass PaginationControl extends SpzaComponent {\n getPageNavigationArray() {\n const pageArray = [];\n const pageSpan = 4;\n if (this.props.maxPages > 1) {\n let min = this.props.galleryPage - 2;\n if (min < 1) {\n min = 1;\n }\n let max = min + pageSpan; // there should only be a total of pageSpan + 1 'pages' visible\n if (max > this.props.maxPages) {\n max = this.props.maxPages;\n }\n if (max - min < pageSpan) {\n min = max - pageSpan;\n if (min < 1) {\n min = 1;\n }\n }\n for(let i = min; i <= max; i++){\n pageArray.push(i);\n }\n }\n return pageArray;\n }\n handlePageChange() {\n var _getNpsModule;\n focusElement(Constants.SearchBy.Id, 'pagechange_id');\n (_getNpsModule = getNpsModule()) === null || _getNpsModule === void 0 ? void 0 : _getNpsModule.increaseActionsCounter('paginationActionsCount');\n }\n getPageAriaLabel(page) {\n if (this.props.query && this.props.query.page === page.toString()) {\n return 'Page ' + page + ' current page';\n }\n return 'Page ' + page;\n }\n renderImpl() {\n const { galleryPage, maxPages, entityType } = this.props;\n const pageArray = this.getPageNavigationArray();\n const route = getEntityRegistration(entityType).route;\n const getPageLink = (n)=>this.context.buildHref(route, null, {\n page: n.toString()\n }, true);\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"paginationContainer\",\n children: pageArray.length > 1 ? /*#__PURE__*/ _jsxs(\"ul\", {\n className: \"m-pagination\",\n tabIndex: 0,\n \"aria-label\": this.context.loc('PAGINATION_Navigation', 'Pagination navigation'),\n children: [\n galleryPage === 1 ? null : /*#__PURE__*/ _jsx(\"li\", {\n children: /*#__PURE__*/ _jsx(InternalLink, {\n className: \"c-glyph paginationPrevious\",\n \"aria-label\": \"Previous Page\",\n href: getPageLink(galleryPage - 1),\n scrollToTop: true,\n accEnabled: true,\n additionalCommand: this.handlePageChange.bind(this),\n children: this.context.loc('PAGINATION_Previous', 'Previous')\n })\n }),\n pageArray.map((e, i)=>/*#__PURE__*/ _jsx(\"li\", {\n className: classNames({\n 'f-active': e === galleryPage\n }),\n children: /*#__PURE__*/ _jsx(InternalLink, {\n href: getPageLink(e),\n \"aria-label\": this.getPageAriaLabel(e),\n scrollToTop: true,\n accEnabled: true,\n additionalCommand: this.handlePageChange.bind(this),\n children: e\n })\n }, i)),\n galleryPage === maxPages ? null : /*#__PURE__*/ _jsx(\"li\", {\n children: /*#__PURE__*/ _jsx(InternalLink, {\n className: \"c-glyph paginationNext\",\n \"aria-label\": \"Next Page\",\n href: getPageLink(galleryPage + 1),\n accEnabled: true,\n scrollToTop: true,\n additionalCommand: this.handlePageChange.bind(this),\n children: this.context.loc('PAGINATION_Next', 'Next')\n })\n })\n ]\n }) : null\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0);\n }\n}\nexport { PaginationControl as default };\nPaginationControl.contextTypes = {\n buildHref: PropTypes.func,\n loc: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport { DefaultButton, PrimaryButton, Stack } from '@fluentui/react';\nimport { Constants } from '@shared/utils/constants';\nimport { getResetFiltersAndSearchHref, getResetFiltersHref } from '@shared/utils/filterHelpers';\nimport { urlPush } from '@shared/routerHistory';\nimport { logTelemetry } from './noSearchResults';\nexport const getViewAllButtonText = (entityType, context)=>{\n const viewTextMapping = {\n [Constants.EntityType.CloudsIndustry]: context.loc('NoSearchResults_ViewAllIndustryClouds', 'View all industry clouds'),\n [Constants.EntityType.Service]: context.loc('NoSearchResults_ViewAllServices', 'View all consulting services')\n };\n return viewTextMapping[`${entityType}`] || context.loc('NoSearchResults_ViewAllApps', 'View all apps');\n};\nexport const clearSearchAndFilters = (changeSearchText, viewAllAppsUrl)=>{\n changeSearchText('');\n urlPush(viewAllAppsUrl);\n};\nexport const renderViewAllAppsButton = (context, entityType, isPrimaryButton, currentPage, changeSearchText)=>{\n const viewAllAppsClassName = 'ViewAllAppsCTA';\n const viewAllAppsText = getViewAllButtonText(entityType, context);\n const viewAllAppsUrl = getResetFiltersAndSearchHref(context, entityType);\n const telemetryDetails = {\n message: 'View all apps button is pressed after the user got an empty search results page.',\n entityType\n };\n if (isPrimaryButton) {\n return /*#__PURE__*/ _jsx(PrimaryButton, {\n className: viewAllAppsClassName,\n text: viewAllAppsText,\n onClick: ()=>{\n logTelemetry(currentPage, Constants.Telemetry.ActionModifier.ViewAllButton, telemetryDetails);\n clearSearchAndFilters(changeSearchText, viewAllAppsUrl);\n },\n \"data-bi-id\": Constants.JsllCTAId.ViewAllButton,\n \"data-bi-area\": \"Search\"\n });\n }\n return /*#__PURE__*/ _jsx(DefaultButton, {\n className: viewAllAppsClassName,\n text: viewAllAppsText,\n onClick: ()=>{\n logTelemetry(currentPage, Constants.Telemetry.ActionModifier.ViewAllButton, telemetryDetails);\n clearSearchAndFilters(changeSearchText, viewAllAppsUrl);\n },\n \"data-bi-id\": Constants.JsllCTAId.ViewAllButton,\n \"data-bi-area\": \"Search\"\n });\n};\nexport const renderClearFiltersButton = (context, entityType, currentPage)=>{\n const clearFiltersClassName = 'ClearFiltersCTA';\n const clearFiltersText = context.loc('NoSearchResults_ClearFilters', 'Clear filters');\n const resetFiltersUrl = getResetFiltersHref(context, entityType);\n const telemetryDetails = {\n message: 'Clear filters button is pressed after the user got an empty search results page.',\n entityType\n };\n return /*#__PURE__*/ _jsx(PrimaryButton, {\n className: clearFiltersClassName,\n text: clearFiltersText,\n onClick: ()=>{\n logTelemetry(currentPage, Constants.Telemetry.ActionModifier.ClearFilters, telemetryDetails);\n urlPush(resetFiltersUrl);\n },\n \"data-bi-id\": Constants.JsllCTAId.ClearFilters,\n \"data-bi-area\": \"Search\"\n });\n};\nexport const NoSearchResultsButtons = ({ context, isSearch = false, isFilter = false, entityType = Constants.EntityType.App, currentPage = '', changeSearchText })=>{\n if (isSearch && isFilter) {\n return /*#__PURE__*/ _jsxs(Stack, {\n horizontal: true,\n className: \"NoSearchResultsCTAStack\",\n tokens: {\n childrenGap: 's1'\n },\n children: [\n /*#__PURE__*/ _jsx(Stack.Item, {\n align: \"center\",\n children: renderClearFiltersButton(context, entityType, currentPage)\n }),\n /*#__PURE__*/ _jsx(Stack.Item, {\n align: \"center\",\n children: renderViewAllAppsButton(context, entityType, false, currentPage, changeSearchText)\n })\n ]\n });\n } else if (isSearch) {\n return renderViewAllAppsButton(context, entityType, true, currentPage, changeSearchText);\n }\n return renderClearFiltersButton(context, entityType, currentPage);\n};\n","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Stack, Text } from '@fluentui/react';\nimport noSearchResultsImg from '@shared/images/noSearchResultsImg.png';\nimport { Constants } from '@shared/utils/constants';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport { TelemetryImage } from './telemetryImage';\nimport { NoSearchResultsButtons } from './noSearchResultsButtons';\nimport { logger } from '@src/logger';\nexport const logTelemetry = (currentPage, actionModifier, telemetryDetails)=>{\n const payload = {\n page: currentPage,\n action: Constants.Telemetry.Action.Search,\n actionModifier: actionModifier,\n details: JSON.stringify(telemetryDetails)\n };\n SpzaInstrumentService.getProvider().probe(Constants.Telemetry.ProbeName.LogInfo, payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier,\n page: payload.page\n });\n};\nexport const NoSearchResults = ({ context, isSearch = false, isFilter = false, entityType = Constants.EntityType.App, currentPage = '', changeSearchText })=>{\n const { previousSearchText } = useSelector(({ search: { previousSearchText } })=>({\n previousSearchText\n }));\n useEffect(()=>{\n const telemetryDetails = {\n message: 'NoSearchResults component is shown to the user',\n entityType,\n isSearch,\n isFilter\n };\n logTelemetry(currentPage, Constants.Telemetry.ActionModifier.NoSearchResultsPage, telemetryDetails);\n }, [\n entityType,\n isFilter,\n isSearch,\n currentPage\n ]);\n return /*#__PURE__*/ _jsxs(Stack, {\n className: \"NoSearchResultsContainer\",\n tokens: {\n childrenGap: 'l1'\n },\n children: [\n /*#__PURE__*/ _jsx(Stack.Item, {\n align: \"center\",\n children: /*#__PURE__*/ _jsx(TelemetryImage, {\n className: \"NoSearchResultsImg\",\n src: noSearchResultsImg\n })\n }),\n /*#__PURE__*/ _jsx(Stack.Item, {\n className: \"NoSearchResultsTitle\",\n align: \"center\",\n children: /*#__PURE__*/ _jsx(Text, {\n className: \"NoSearchResultsTitleText\",\n variant: \"large\",\n styles: {\n root: {\n color: '#323130',\n fontWeight: '600',\n lineHeight: '24px'\n }\n },\n children: context.loc('NoSearchResults_NoResultsFound', 'No results found')\n })\n }),\n /*#__PURE__*/ _jsx(Stack.Item, {\n className: \"NoSearchResultsDescription\",\n align: \"center\",\n children: /*#__PURE__*/ _jsx(Text, {\n className: \"NoSearchResultsDescriptionText\",\n variant: \"medium\",\n styles: {\n root: {\n color: '#605e5c',\n lineHeight: '20px',\n whiteSpace: 'pre-wrap',\n textAlign: 'center',\n display: 'flex'\n }\n },\n children: previousSearchText ? context.locParams('NoSearchResults_NoResultsFoundDescription', [\n previousSearchText\n ], `We couldn't find any results for ${previousSearchText}.\\nChange selected filters or try a different search term.`) : context.loc('NoSearchResults_NoResultsFoundDescription_Without_SearchTerm', `We couldn't find any results.\\nChange selected filters or try a different search term.`)\n })\n }),\n /*#__PURE__*/ _jsx(Stack.Item, {\n align: \"center\",\n children: /*#__PURE__*/ _jsx(NoSearchResultsButtons, {\n context: context,\n isSearch: isSearch,\n isFilter: isFilter,\n entityType: entityType,\n currentPage: currentPage,\n changeSearchText: changeSearchText\n })\n })\n ]\n });\n};\n","/* eslint-disable react/forbid-dom-props */ function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport SpzaComponent from '@shared/components/spzaComponent';\nimport { Constants } from '@shared/utils/constants';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport PaginationControl from '@shared/components/paginationControl';\nimport { getWindow } from '@shared/services/window';\nimport { shouldShowPowerAppsNoContent, getPowerAppsTitle } from '../../embed/embedHostUtils';\nimport { getFilteredAppPageTitle } from '@shared/utils/localization';\nimport { DataMap } from '@shared/utils/dataMapping';\nimport { urlPush, routes } from '@shared/routerHistory';\nimport Animation from '@shared/components/animation';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { NoSearchResults } from '@shared/components/noSearchResults';\nimport { logger } from '@src/logger';\nimport powerApps from '@shared/images/powerApps.png';\nimport { getProductByUrlKey } from '@shared/utils/appUtils';\nclass AppSourceFilteredGallery extends SpzaComponent {\n componentDidMount() {\n var _getWindow_location, _getWindow;\n const perfPayload = {\n page: (_getWindow = getWindow()) === null || _getWindow === void 0 ? void 0 : (_getWindow_location = _getWindow.location) === null || _getWindow_location === void 0 ? void 0 : _getWindow_location.href,\n action: Constants.Telemetry.Action.PageLoad,\n actionModifier: Constants.Telemetry.ActionModifier.End\n };\n SpzaInstrumentService.getProvider().probe('logTelemetryInfo', perfPayload);\n logger.info('', {\n action: perfPayload.action,\n actionModifier: perfPayload.actionModifier\n });\n document.getElementsByTagName('title')[0].innerHTML = getFilteredAppPageTitle(this.context);\n }\n setPageSize() {\n this.filteredData = [];\n this.galleryPage = this.props.galleryPage ? this.props.galleryPage : 1;\n // todo: validate rendering second page of tiles and validate props being passed into pagination control\n const pageSize = this.props.pageSize ? this.props.pageSize : this.defaultPageSize;\n this.maxPages = Math.ceil(this.props.count / pageSize);\n this.filteredData = this.props.filteredData.slice();\n }\n setMaxPages(itemCount, pageSize) {\n this.maxPages = Math.ceil(itemCount / pageSize);\n if (this.galleryPage > this.maxPages) {\n this.galleryPage = this.maxPages;\n }\n }\n getTiles() {\n const entityRegistration = getEntityRegistration(this.props.entityType);\n const TileType = entityRegistration.tileType;\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"spza_filteredTileContainer\",\n children: this.filteredData.map((entity, index)=>{\n return /*#__PURE__*/ _createElement(TileType, _object_spread_props(_object_spread({}, entity), {\n item: entity,\n key: entity.entityId,\n tileIndex: index,\n totalTiles: this.filteredData.length,\n selectedLocale: this.props.selectedLocale,\n embedHost: this.props.embedHost,\n countryContext: this.props.selectedCountry,\n ribbonKey: 'FilteredGallery_AllResults'\n }));\n })\n });\n }\n logNoContentTelemetry(link, linkType) {\n var _getProductByUrlKey;\n const details = {\n linkType,\n link,\n tab: 'Default'\n };\n const payload = {\n page: 'In App Gallery(' + ((_getProductByUrlKey = getProductByUrlKey({\n urlKey: this.props.embedHost\n })) === null || _getProductByUrlKey === void 0 ? void 0 : _getProductByUrlKey.UrlKey) + ')',\n action: Constants.Telemetry.Action.Click,\n actionModifier: Constants.Telemetry.ActionModifier.Link,\n details: JSON.stringify(details)\n };\n SpzaInstrumentService.getProvider().probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n }\n logAndNavigate(link, linkType) {\n this.logNoContentTelemetry(link, linkType);\n urlPush(link);\n }\n getNoContentUI() {\n // We have 3 cases for 'No Content' UIs\n // 1) Apps tab for all products\n // 2) My Org tab for only power-bi\n // 3) My Org tab for dynamics-365\n const publicGalleryUri = this.context.buildHref(routes.marketplace, null, {\n showPrivateApps: 'false',\n page: '1'\n });\n const privateGalleryUri = this.context.buildHref(routes.marketplace, null, {\n showPrivateApps: 'true',\n page: '1'\n });\n // This is No Content UI for Apps tab\n if (!this.props.showPrivateApps) {\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"noOrgContent\",\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.searchText ? this.context.loc('Search_NoApps') : this.context.loc('FilteredGallery_NoApps')\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.searchText ? this.props.privateAppsCount ? /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage\",\n onClick: ()=>{\n this.logAndNavigate(privateGalleryUri, 'SwitchTo_MyOrg');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SwitchTab', [\n '' + this.context.loc('Embedded_MyOrganization') + '',\n this.props.privateAppsCount.toString()\n ])\n }\n }) : /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage\",\n onClick: ()=>{\n this.logNoContentTelemetry('\"https://appsource.microsoft.com/en-us/marketplace/apps?search=' + encodeURIComponent(this.props.searchText) + '&page=1\"', 'AppsTab_SwitchTo_Appsource');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SimilarApps', [\n 'Appsource.com'\n ])\n }\n }) : null\n })\n ]\n });\n }\n // This is No Content UI for Power BI My Org tab\n if (this.props.embedHost === DataMap.products.PowerBI.UrlKey) {\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"noOrgContent\",\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.searchText ? this.props.publicAppsCount ? /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"span\", {\n children: this.context.loc('Search_NoApps')\n }),\n /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage shiftLeft\",\n onClick: ()=>{\n this.logAndNavigate(publicGalleryUri, 'SwitchTo_Apps');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SwitchTab', [\n '' + this.context.loc('Embedded_Apps') + '',\n this.props.publicAppsCount.toString()\n ])\n }\n })\n ]\n }) : /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n /*#__PURE__*/ _jsx(\"span\", {\n children: this.context.loc('Search_NoApps')\n }),\n /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage shiftLeft\",\n onClick: ()=>{\n this.logNoContentTelemetry('\"https://appsource.microsoft.com/en-us/marketplace/apps?search=' + encodeURIComponent(this.props.searchText) + '&page=1\"', 'MyOrgTab_SwitchTo_Appsource');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SimilarApps', [\n 'Appsource.com'\n ])\n }\n })\n ]\n }) : /*#__PURE__*/ _jsx(\"div\", {\n children: this.context.loc('Embedded_No_MyOrg_Content_PowerBI')\n })\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"powerAppsCreate\",\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Embedded_PowerBI_Create_Link', [\n '' + this.context.loc('Embedded_PowerBI_Create_Link_Learn_Link_Text') + ''\n ])\n },\n onClick: ()=>{\n this.logNoContentTelemetry('https://powerbi.microsoft.com/en-us/documentation/powerbi-service-organizational-content-pack-tutorial-create-and-publish/', 'pbi_CreateContentPacks');\n }\n })\n ]\n });\n } else {\n // This is No Content UI for Dynamics-365 My Org tab\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"noOrgContent\",\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.searchText ? this.context.loc('Search_NoApps') : null\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.searchText ? this.props.publicAppsCount ? /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage\",\n onClick: ()=>{\n this.logAndNavigate(publicGalleryUri, 'SwitchTo_Apps');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SwitchTab', [\n '' + this.context.loc('Embedded_Apps') + '',\n this.props.publicAppsCount.toString()\n ])\n }\n }) : /*#__PURE__*/ _jsx(\"span\", {\n className: \"switchPage\",\n onClick: ()=>{\n this.logNoContentTelemetry('\"https://appsource.microsoft.com/en-us/marketplace/apps?search=' + encodeURIComponent(this.props.searchText) + '&page=1\"', 'MyOrgTab_SwitchTo_Appsource');\n },\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML: {\n __html: this.context.locParams('Search_SimilarApps', [\n 'Appsource.com'\n ])\n }\n }) : /*#__PURE__*/ _jsx(\"div\", {\n children: this.props.partnerAppDataLoadedError ? this.context.loc('Embedded_No_MyOrg_Content_Error') : this.context.loc('Embedded_No_MyOrg_Content_PowerBI')\n })\n }),\n this.props.partnerAppDataLoadedError ? null : /*#__PURE__*/ _jsx(\"div\", {\n className: \"actions\",\n children: /*#__PURE__*/ _jsxs(\"a\", {\n className: \"action powerApps\",\n href: \"https://web.powerapps.com/\",\n rel: \"noreferrer\",\n target: \"_blank\",\n onClick: ()=>{\n this.logNoContentTelemetry('https://web.powerapps.com/', 'powerApps_Create');\n },\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"title\",\n children: this.context.loc('Embedded_No_MyOrg_Content_Action2_Title')\n }),\n /*#__PURE__*/ _jsx(\"img\", {\n src: powerApps\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"bottom c-glyph\",\n children: getPowerAppsTitle()\n })\n ]\n })\n })\n ]\n });\n }\n }\n renderImpl() {\n var _this_filteredData;\n const { query, entityType, partnerAppDataLoaded, showPrivateApps, isEmbedded, embedHost } = this.props;\n this.setPageSize();\n if (isEmbedded && shouldShowPowerAppsNoContent(embedHost) && showPrivateApps && !this.filteredData.length) {\n const context = this.context;\n if (partnerAppDataLoaded) {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"filteredGalleryContainer\",\n children: this.getNoContentUI()\n });\n } else {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"filteredGalleryContainer\",\n children: /*#__PURE__*/ _jsxs(\"div\", {\n className: \"loader\",\n children: [\n /*#__PURE__*/ _jsx(Animation, {}),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"text\",\n children: context.loc('Loading')\n })\n ]\n })\n });\n }\n }\n if (isEmbedded && this.filteredData.length === 0) {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"filteredGalleryContainer\",\n children: this.getNoContentUI()\n });\n }\n if (((_this_filteredData = this.filteredData) === null || _this_filteredData === void 0 ? void 0 : _this_filteredData.length) === 0) {\n var _getWindow_location, _getWindow;\n const { searchText, isSelectedFilters, entityType, changeSearchText } = this.props;\n return /*#__PURE__*/ _jsx(NoSearchResults, {\n context: this.context,\n isSearch: !!searchText,\n isFilter: isSelectedFilters,\n entityType: entityType,\n currentPage: (_getWindow = getWindow()) === null || _getWindow === void 0 ? void 0 : (_getWindow_location = _getWindow.location) === null || _getWindow_location === void 0 ? void 0 : _getWindow_location.href,\n changeSearchText: changeSearchText\n });\n }\n // DOES SPZA_CONTROLS DIV NEED TO BE HERE?\n return /*#__PURE__*/ _jsxs(\"div\", {\n className: \"filteredGalleryContainer\",\n children: [\n /*#__PURE__*/ _jsx(\"div\", {\n id: \"pagechange_id\"\n }),\n this.getTiles(),\n /*#__PURE__*/ _jsx(PaginationControl, {\n query: query,\n galleryPage: this.galleryPage,\n maxPages: this.maxPages,\n entityType: entityType\n })\n ]\n });\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0), _define_property(this, \"filteredData\", []), _define_property(this, \"galleryPage\", 0), _define_property(this, \"maxPages\", 0), _define_property(this, \"defaultPageSize\", !this.props.isMobile ? Constants.FilteredGallery.pageSize : 10);\n }\n}\nexport { AppSourceFilteredGallery as default };\nAppSourceFilteredGallery.contextTypes = {\n loc: PropTypes.func,\n locParams: PropTypes.func,\n buildHref: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { TagItem } from '@fluentui/react';\nimport { getFilterType } from 'utils/filterHelpers';\nimport SpzaComponent from './spzaComponent';\nimport { Constants } from '@shared/utils/constants';\nimport { urlPush } from '@shared/routerHistory';\nimport { handleFilterToggle } from '@shared/utils/filterItemUtils';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { getNpsModule } from '@appsource/utils/nps';\nimport { listOfUrlKeysToExcludeInAppsource } from '@shared/oneTaxonomy';\nconst tagItemStyles = {\n close: {\n '&:focus': {\n border: '2px solid'\n }\n }\n};\nclass GalleryHeader extends SpzaComponent {\n componentDidMount() {\n this.setState({\n isMounted: true\n });\n }\n getRoute() {\n return getEntityRegistration(this.props.entityType).route;\n }\n removeSearchFilter() {\n if (!this.props.isEmbedded) {\n const newPath = this.context.buildHref(this.getRoute(), null, {\n search: null,\n page: null,\n sortBy: null\n });\n urlPush(newPath);\n }\n }\n renderImpl() {\n if (!this.state.isMounted) {\n return null;\n }\n const headerFilters = [];\n let isConsultingSevices = false;\n const route = this.getRoute();\n if (route) {\n isConsultingSevices = route.getPath(null) && route.getPath(null).indexOf('consulting-services') > -1 || false;\n }\n this.props.activeFilters.forEach((filter)=>{\n let filterTitleName = this.context.loc(filter.LocKey || filter.locKey, filter.Title || filter.title);\n // !!! Temporary HACK: If filterTitleName is 'Power BI apps' and we are in consulting services tab,\n // then we make the text 'Power BI'.\n if (isConsultingSevices && filterTitleName === 'Power BI apps') {\n filterTitleName = 'Power BI';\n }\n if (filter.UrlKey && filter.UrlKey !== 'azure' && !listOfUrlKeysToExcludeInAppsource.includes(filter.UrlKey)) {\n const filterType = getFilterType(filter);\n headerFilters.push({\n filterType: filterType,\n filterValue: filter.UrlKey || filter.urlKey,\n filterTileName: filterTitleName,\n firstLevelProductFilter: filterType === 'product' && !filter.IsChildFilter,\n onClick: handleFilterToggle(filterType, filter.UrlKey || filter.urlKey, true, this.props.getFilterLink(filter, filterType === 'product' && !filter.IsChildFilter ? this.props.urlQuery : null), Constants.Telemetry.ActionModifier.FilterTag, ()=>{\n window.scrollTo(0, 0);\n })\n });\n }\n });\n // sort function to put the subcategories after the category\n function sortFunction(a) {\n if (a.filterType === 'subcategories') {\n return 1;\n } else {\n return -1;\n }\n }\n headerFilters.sort(sortFunction);\n if (this.props.isEmbedded) {\n return null;\n }\n // TODO: the close icon should be using a sprite instead of an img\n if (headerFilters && headerFilters.length > 0) {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"galleryHeader\",\n children: /*#__PURE__*/ _jsx(\"div\", {\n className: \"galleryHeader_tileFilters\",\n role: \"list\",\n children: headerFilters.map((filter, key)=>{\n return /*#__PURE__*/ _jsx(TagItem, {\n className: \"tileFilter\",\n index: key,\n item: {\n name: `remove ${filter.filterValue}`,\n key\n },\n styles: tagItemStyles,\n tabIndex: 0,\n onRemoveItem: ()=>{\n var _getNpsModule;\n filter.onClick();\n (_getNpsModule = getNpsModule()) === null || _getNpsModule === void 0 ? void 0 : _getNpsModule.increaseActionsCounter('filterActionsCount');\n },\n removeButtonAriaLabel: `Remove ${filter.filterTileName}`,\n children: filter.filterTileName\n }, key);\n })\n })\n });\n } else {\n // In case of no headers the tile header should align with the filters hence the div with just margin.\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"emptyGalleryHeader\"\n });\n }\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0), _define_property(this, \"state\", {\n isMounted: false\n });\n }\n}\nexport { GalleryHeader as default };\nGalleryHeader.contextTypes = {\n loc: PropTypes.func,\n buildHref: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport * as PropTypes from 'prop-types';\nimport React from 'react';\nimport SpzaComponent from './spzaComponent';\nimport { SpzaInstrumentService } from '@shared/services/telemetry/spza/spzaInstrument';\nimport { getWindow } from '@shared/services/window';\nimport { Constants } from '@shared/utils/constants';\nimport { Banner } from './banner';\nimport { logger } from '@src/logger';\nclass AppPromotionPane extends SpzaComponent {\n handleClick(telemetryLink, event) {\n const payload = {\n page: getWindow().location.href,\n action: Constants.Telemetry.Action.Click,\n actionModifier: Constants.Telemetry.ActionModifier.FirstPartyAppPromotion,\n details: JSON.stringify({\n linkType: Constants.Telemetry.ActionModifier.FirstPartyAppPromotion,\n link: telemetryLink || event && event.target && event.target.href\n })\n };\n SpzaInstrumentService.getProvider().probe('logTelemetryInfo', payload);\n logger.info(payload.details, {\n action: payload.action,\n actionModifier: payload.actionModifier\n });\n }\n renderStoreLink(storeLink) {\n return /*#__PURE__*/ _jsx(\"a\", {\n href: storeLink,\n className: \"c-hyperlink\",\n target: \"_blank\",\n onClick: this.handleClick.bind(this, storeLink),\n rel: \"noreferrer\",\n children: this.context.loc('AppPromotionPane_SeeYourOptions')\n });\n }\n renderImpl() {\n const { bannerInfo, isEmbedded } = this.props;\n if (isEmbedded) {\n return null;\n }\n if (bannerInfo) {\n const { title, imageUrl: imgURL, links, description, descriptionFallback, name, storeLink } = bannerInfo;\n return /*#__PURE__*/ _jsx(_Fragment, {\n children: title ? /*#__PURE__*/ _jsx(Banner, {\n data: {\n description: this.context.loc(description, descriptionFallback),\n imgURL,\n title,\n links\n }\n }) : /*#__PURE__*/ _jsx(\"div\", {\n className: \"appPromotionPane_shorter\",\n children: /*#__PURE__*/ _jsxs(\"p\", {\n className: \"c-subheading-5\",\n children: [\n this.context.locParams('AppPromotionPane_Content', [\n name,\n ' '\n ]),\n this.renderStoreLink(storeLink)\n ]\n })\n })\n });\n }\n return null;\n }\n constructor(...args){\n super(...args), _define_property(this, \"context\", void 0);\n }\n}\nexport { AppPromotionPane as default };\nAppPromotionPane.contextTypes = {\n loc: PropTypes.func,\n locParams: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport * as React from 'react';\nimport SpzaComponent from '@shared/components/spzaComponent';\nimport Ribbon from '@shared/components/ribbon';\nimport CommonTile from './commonTile';\nexport class PopularApps extends SpzaComponent {\n renderImpl() {\n const { popularAppsTitle, ribbonPopularApps, ribbonKey } = this.props;\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"indFeaturedContainer\",\n children: /*#__PURE__*/ _jsx(Ribbon, {\n title: popularAppsTitle,\n children: ribbonPopularApps.map((offer, index)=>/*#__PURE__*/ _createElement(CommonTile, _object_spread_props(_object_spread({}, offer), {\n item: offer,\n tileIndex: index,\n totalTiles: popularAppsTitle.length,\n key: index,\n ribbonKey: ribbonKey\n })))\n })\n });\n }\n}\n","/* eslint-disable react/prop-types */ import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useHydration } from '@shared/hooks/useHydration';\nimport React from 'react';\nconst GalleryContent = ({ children, requestFilteredLoading, loadingComponent })=>{\n const isHydrated = useHydration();\n return isHydrated && requestFilteredLoading ? loadingComponent : /*#__PURE__*/ _jsx(_Fragment, {\n children: children\n });\n};\nexport default GalleryContent;\n","import { DataMap } from './dataMapping';\nimport { Constants } from '@shared/utils/constants';\nimport { isOneTaxonomyEnabled } from '@shared/oneTaxonomy/utils';\nimport Automotive from '@shared/images/banners/automotive.jpg';\nimport Distribution from '@shared/images/banners/distribution.jpg';\nimport Education from '@shared/images/banners/education.jpg';\nimport FinancialServices from '@shared/images/banners/financial-services.jpg';\nimport Government from '@shared/images/banners/government.jpg';\nimport HospitalityAndTravel from '@shared/images/banners/hospitality-and-travel.jpg';\nimport Healthcare from '@shared/images/banners/healthcare.jpg';\nimport ManufacturingResources from '@shared/images/banners/manufacturing-resources.jpg';\nimport RetailAndConsumerGoods from '@shared/images/banners/retail-and-consumer-goods.jpg';\nimport MediaCommunications from '@shared/images/banners/media-communications.jpg';\nimport Nonprofit from '@shared/images/banners/nonprofit.jpg';\nimport ProfessionalServices from '@shared/images/banners/professional-services.jpg';\nimport DefenseIntelligence from '@shared/images/banners/defenseIntelligence.jpg';\nimport Energy from '@shared/images/banners/energy.jpg';\nimport CloudsIndustryNonprofit from '@shared/images/banners/cloudsIndustry/nonprofit.png';\nimport CloudsIndustryHealthcare from '@shared/images/banners/cloudsIndustry/healthcare.png';\nimport CloudsIndustryFinancialServices from '@shared/images/banners/cloudsIndustry/financial-services.png';\nimport CloudsIndustryRetail from '@shared/images/banners/cloudsIndustry/retail.png';\nimport D365 from '@shared/images/banners/D365.jpg';\nimport M365 from '@shared/images/banners/Office365_1600x200.jpg';\nimport WebApps from '@shared/images/banners/Web_Apps.jpg';\nimport PowerPlatform from '@shared/images/banners/Power_Platform.jpg';\nimport PowerBI from '@shared/images/banners/Power_BI_apps.jpg';\nimport Word from '@shared/images/banners/Word.jpg';\nimport Excel from '@shared/images/banners/Excel.jpg';\nimport PowerPoint from '@shared/images/banners/PowerPoint.jpg';\nimport Office from '@shared/images/banners/Office.jpg';\nimport OneNote from '@shared/images/banners/OneNote.jpg';\nimport Visio from '@shared/images/banners/Visio_1600x200.jpg';\nimport Access from '@shared/images/banners/Access_1600x200.jpg';\nimport Publisher from '@shared/images/banners/Publisher.jpg';\nimport Skype from '@shared/images/banners/Skype.jpg';\nimport Project from '@shared/images/banners/Project.jpg';\nimport Outlook from '@shared/images/banners/Outlook.jpg';\nimport Sharepoint from '@shared/images/banners/SharePoint.jpg';\nimport OneDrive from '@shared/images/banners/OneDrive_1600x200.jpg';\nimport Dynamics365ForSales from '@shared/images/banners/Dynamics_365_for_Sales_1600x200.jpg';\nimport Dynamics365ForFieldHub from '@shared/images/banners/Dynamics_365_for_Field_Service_1600x200.jpg';\nimport Dynamics365ForServiceAutomation from '@shared/images/banners/Dynamics_365_for_Project_Service_Automation_1600x200.jpg';\nimport Dynamics365ForCustomerService from '@shared/images/banners/Dynamics_365_For_Customer_Service_1600x200.jpg';\nimport Dynamics365ForFinanceAndOperations from '@shared/images/banners/Dynamics_365_for_Finance_and_Operations_1600x200.jpg';\nimport Dynamics365ForBusinessCentral from '@shared/images/banners/Dynamics_365_Business_Central_1600x200.jpg';\nimport NAVImage from '@shared/images/banners/Dynamics_NAV_1600x200.jpg';\nimport Teams from '@shared/images/banners/Teams.jpg';\nimport Azure from '@shared/images/banners/Azure.jpg';\nimport Minecraft from '@shared/images/banners/Minecraft.jpg';\nimport PowerApps from '@shared/images/banners/Power_Apps.jpg';\nimport PowerAutomate from '@shared/images/banners/Power_Automate.jpg';\nimport PowerBiVisuals from '@shared/images/banners/Power_BI_visuals.jpg';\nimport PowerVirtualAgents from '@shared/images/banners/Power_Virtual_Agents.jpg';\nimport Viva from '@shared/images/banners/Viva.jpg';\nimport Windows from '@shared/images/banners/Windows.jpg';\nimport Sustainability from '@shared/images/banners/Sustainability.jpg';\nconst defaultPromotionsBanners = [\n {\n name: 'Microsoft Word 2016',\n dataValue: DataMap.products.Word,\n keywords: [\n 'word',\n 'microsoft word',\n 'ms word'\n ],\n title: 'Microsoft Word',\n description: 'Banner_MicrosoftWord',\n descriptionFallback: 'Microsoft Word is better than ever. Better ways to read, write, collaborate and present ideas. From anywhere.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Word'\n ],\n url: 'https://aka.ms/officestoreword'\n }\n ],\n imageUrl: Word,\n titleColor: '#2a579a'\n },\n {\n name: 'Power Virtual Agents',\n dataValue: DataMap.products.PowerVirtualAgents,\n keywords: [\n 'pvirtual agents',\n 'power virtual agents'\n ],\n title: 'Power Virtual Agents',\n description: 'Banner_PowerVirtualAgents',\n descriptionFallback: \"Easily create intelligent, secure, and scalable virtual agents with a single low-code bot building platform that's designed for everyone.\",\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://powervirtualagents.microsoft.com'\n }\n ],\n imageUrl: PowerVirtualAgents,\n titleColor: '#2a579a'\n },\n {\n name: 'Power BI visuals',\n dataValue: DataMap.products.PowerBICustomVisual,\n keywords: [\n 'pbi visuals',\n 'power bi visuals'\n ],\n title: 'Power BI Visuals',\n description: 'Banner_PowerBiVisuals',\n descriptionFallback: 'Bring your data to life with stunning, interactive data visualizations tailored to your organization and industry.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcepbivisual'\n }\n ],\n imageUrl: PowerBiVisuals,\n titleColor: '#2a579a'\n },\n {\n name: 'Power Automate',\n dataValue: DataMap.products.PowerAutomate,\n keywords: [\n 'power automate'\n ],\n title: 'Power Automate',\n description: 'Banner_PowerAutomate',\n descriptionFallback: 'Empower everyone to automate workflows with a single low-code, user-friendly platform.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcepowerautomate'\n }\n ],\n imageUrl: PowerAutomate,\n titleColor: '#2a579a'\n },\n {\n name: 'Microsoft Excel 2016',\n dataValue: DataMap.products.Excel,\n keywords: [\n 'Excel',\n 'microsoft excel'\n ],\n title: 'Microsoft Excel',\n description: 'Banner_MicrosoftExcel2016',\n descriptionFallback: 'Create order. Unlock insights and tell the story in your data.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Excel'\n ],\n url: 'https://aka.ms/officestoreexcel'\n }\n ],\n imageUrl: Excel,\n titleColor: '#227446'\n },\n {\n name: 'Microsoft PowerPoint 2016',\n dataValue: DataMap.products.PowerPoint,\n keywords: [\n 'powerpoint',\n 'microsoft powerpoint',\n 'power point'\n ],\n title: 'Microsoft PowerPoint',\n description: 'Banner_MicrosoftPowerPoint2016',\n descriptionFallback: 'Build the story, present with clarity and conviction, and move forward faster',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft PowerPoint'\n ],\n url: 'https://aka.ms/officestorepowerpoint'\n }\n ],\n imageUrl: PowerPoint,\n titleColor: '#b84729'\n },\n {\n name: 'Microsoft Office',\n dataValue: DataMap.products.Office365,\n keywords: [\n 'officemetaos',\n 'OfficeMetaOS',\n 'MetaOS'\n ],\n title: 'Office app',\n description: 'Banner_MicrosoftOfficeApp',\n descriptionFallback: 'A hub for all your content - get to files and documents, understand what needs attention, and easily start creating.',\n links: [\n {\n text: 'AppSource_banner_getOfficeApp',\n params: [\n 'Microsoft Office'\n ],\n url: 'https://aka.ms/office.com/'\n }\n ],\n imageUrl: Office,\n titleColor: '#b84729'\n },\n {\n name: 'Microsoft Office 365 (Home/Personal)',\n dataValue: DataMap.products.OneNote,\n keywords: [\n 'onenote',\n 'microsoft onenote',\n 'one note'\n ],\n title: 'Microsoft OneNote',\n description: 'Banner_MicrosoftOffice365_HomeOrPersonal',\n descriptionFallback: 'OneNote is the digital note-taking app for all your devices. Get OneNote with office 365',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft OneNote'\n ],\n url: 'https://aka.ms/appsourceoffice'\n }\n ],\n imageUrl: OneNote,\n titleColor: '#7719AA'\n },\n {\n name: 'Microsoft Visio 2013',\n keywords: [\n 'visio',\n 'microsoft visio'\n ],\n title: 'Microsoft Visio',\n description: 'Banner_MicrosoftVisio2013',\n descriptionFallback: 'Easily design versatile diagrams with a rich set of new and updated shapes and stencils',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Visio'\n ],\n url: 'https://aka.ms/appsourcevisio'\n }\n ],\n imageUrl: Visio,\n titleColor: '#3a55a4'\n },\n {\n name: 'Minecraft',\n keywords: [\n 'minecraft'\n ],\n title: 'Minecraft',\n description: 'Banner_Minecraft',\n descriptionFallback: 'Immerse yourself in a Minecraft world of building amazing things from the simplest of homes to the grandest of castles to develop and improve your coding skills with assessments hosted on Microsoft Azure',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourceminecraft'\n }\n ],\n imageUrl: Minecraft,\n titleColor: '#3a55a4'\n },\n {\n name: 'Windows',\n keywords: [\n 'windows',\n 'microsoft windows',\n 'ms windows'\n ],\n title: 'Microsoft Windows',\n description: 'Banner_Windows',\n descriptionFallback: 'Help people and teams do their best work with the apps and experiences they rely on every day to connect, collaborate, and get work done from anywhere',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcewindows'\n }\n ],\n imageUrl: Windows,\n titleColor: '#3a55a4'\n },\n {\n name: 'Viva',\n keywords: [\n 'viva'\n ],\n title: 'Microsoft Viva',\n description: 'Banner_Viva',\n descriptionFallback: 'Grow your customer reach and engagement with an integrated employee experience platform that empowers people and teams to be their best, from anywhere',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourceviva'\n }\n ],\n imageUrl: Viva,\n titleColor: '#3a55a4'\n },\n {\n name: 'Azure',\n keywords: [\n 'azure',\n 'microsoft azure',\n 'microsoft cloud',\n 'ms cloud'\n ],\n title: 'Microsoft Azure',\n description: 'Banner_Azure',\n descriptionFallback: 'On-premises, hybrid, multicloud, or at the edge—create secure, future-ready cloud solutions on Azure',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourceazure'\n }\n ],\n imageUrl: Azure,\n titleColor: '#3a55a4'\n },\n {\n name: 'Publisher',\n keywords: [\n 'publisher',\n 'microsoft publisher'\n ],\n title: 'Microsoft Publisher',\n description: 'Banner_Publisher',\n descriptionFallback: 'Precisely layout and style text, pictures, borders, calendars, and more. In Publisher everything you add stays exactly the way you’ve designed it, in print, online, or in an email',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcepublisher'\n }\n ],\n imageUrl: Publisher,\n titleColor: '#3a55a4'\n },\n {\n name: 'Microsoft Publisher 2016',\n keywords: [\n 'Publisher'\n ],\n title: 'Microsoft Publisher',\n description: 'Banner_MicrosoftPublisher2016',\n descriptionFallback: 'Simple tools make it easy to grab attention. Personalize your publications and publish in the way that suits your audience best',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Publisher'\n ],\n url: 'https://aka.ms/appsource-publisher'\n }\n ],\n imageUrl: Publisher,\n titleColor: '#077568'\n },\n {\n name: 'Microsoft Skype for Business',\n keywords: [\n 'skype',\n 'microsoft skype',\n 'skype for business'\n ],\n title: 'Skype',\n description: 'Banner_MicrosoftSkypeForBusiness',\n descriptionFallback: 'Discover Skype calls, video, messaging, screen sharing and more. Skype keeps the world talking, for free',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Skype'\n ],\n url: 'https://aka.ms/appsourceskypeinstall'\n },\n {\n text: 'AppSource_banner_get',\n params: [\n 'Skype for business'\n ],\n url: 'https://aka.ms/appsourceskypeforbusinessinstall'\n }\n ],\n imageUrl: Skype,\n titleColor: '#2bace3'\n },\n {\n name: 'Microsoft Office 365 (Business)',\n keywords: [\n 'Office 365, office365',\n 'office',\n 'microsoft office',\n 'ms office'\n ],\n title: 'Office 365',\n description: 'Banner_MicrosoftOffice365_Business',\n descriptionFallback: 'From home to business, from desktop to web and the devices in between, Office delivers the tools you need to get the work done',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Office 365'\n ],\n url: 'https://aka.ms/appsourceoffice'\n }\n ],\n imageUrl: PowerPoint,\n titleColor: '#DA3B01'\n },\n {\n name: 'Microsoft Access 2013',\n keywords: [\n 'Access',\n 'microsoft access'\n ],\n title: 'Microsoft Access',\n description: 'Banner_MicrosoftAccess2013',\n descriptionFallback: 'Elevate data. Create your own database apps easily in formats that serve your business best',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Access'\n ],\n url: 'https://aka.ms/appsource-access'\n }\n ],\n imageUrl: Access,\n titleColor: '#a4373a'\n },\n {\n name: 'Microsoft Project',\n dataValue: DataMap.products.Project,\n keywords: [\n 'project',\n 'microsoft project'\n ],\n title: 'Microsoft Project',\n description: 'Banner_MicrosoftProject',\n descriptionFallback: 'Deliver winning projects. Integrated planning tools help you keep track of projects and stay organized.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Project'\n ],\n url: 'https://aka.ms/officestoreproject'\n }\n ],\n imageUrl: Project,\n titleColor: '#32752e'\n },\n {\n name: 'Microsoft Outlook 2016',\n dataValue: DataMap.products.Outlook,\n keywords: [\n 'outlook',\n 'microsoft outlook',\n 'outl',\n 'email',\n 'mail'\n ],\n title: 'Microsoft Outlook',\n description: 'Banner_MicrosoftOutlook2016',\n descriptionFallback: 'Work smarter with tools that help you communicate, manage your schedule, and find what you need—simply and fast.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Outlook'\n ],\n url: 'https://aka.ms/officestoreoutlook'\n }\n ],\n imageUrl: Outlook,\n titleColor: '#0174c7'\n },\n {\n name: 'Microsoft SharePoint',\n dataValue: DataMap.products.SharePoint,\n keywords: [\n 'sharepoint',\n 'microsoft sharepoint',\n 'sharepo'\n ],\n title: 'Microsoft SharePoint',\n description: 'Banner_MicrosoftSharePoint',\n descriptionFallback: 'Your mobile, intelligent intranet. Share and manage content, knowledge, and applications to empower teamwork.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft SharePoint'\n ],\n url: 'https://aka.ms/officestoresharepoint'\n }\n ],\n imageUrl: Sharepoint,\n titleColor: '#0c3e97'\n },\n {\n name: 'Microsoft Viva',\n dataValue: DataMap.products.Viva,\n keywords: [\n 'viva',\n 'microsoft viva',\n 'viva topics',\n 'viva connections',\n 'viva insights'\n ],\n title: 'Microsoft Viva',\n description: 'Banner_MicrosoftViva',\n descriptionFallback: 'Grow your customer reach and engagement with an integrated employee experience platform that empowers people and teams to be their best, from anywhere',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Viva'\n ],\n url: 'https://aka.ms/appsourceviva'\n }\n ],\n imageUrl: Viva,\n titleColor: '#0c3e97'\n },\n {\n name: 'Microsoft OneDrive',\n keywords: [\n 'OneDrive',\n 'onedr',\n 'one dri',\n 'one driv',\n 'onedri',\n 'skydrive'\n ],\n title: 'Microsoft OneDrive',\n description: 'Banner_MicrosoftOneDrive',\n descriptionFallback: 'OneDrive on any device, anytime. With OneDrive you can access your favorite things on your favorite devices, including PCs, Macs, tablets, and mobile phones.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft OneDrive'\n ],\n url: 'https://aka.ms/appsource-onedrive'\n }\n ],\n imageUrl: OneDrive,\n titleColor: '#0b4ab3'\n },\n {\n name: 'Microsoft Dynamics NAV',\n description: 'Banner_DynamicsNav',\n descriptionFallback: 'Connect your financials, sales, service, and operations with an all-in-one business management solution. Easily tailor and extend the application to meet your business or industry-specific needs.',\n keywords: [\n 'Dynamics NAV',\n 'NAV'\n ],\n title: 'Microsoft Dynamics NAV',\n imageUrl: NAVImage,\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Dynamics NAV'\n ],\n url: 'https://aka.ms/appsourcenav'\n }\n ]\n },\n {\n name: 'Dynamics 365 for Sales',\n dataValue: DataMap.products.Dynamics365forSales,\n keywords: [\n 'Dynamics 365 for Sales'\n ],\n title: 'Dynamics 365 Sales',\n description: 'Banner_Dynamics365Sales',\n descriptionFallback: 'Go beyond sales force automation with Dynamics 365 for Sales, enabling you to better understand customer needs, engage more effectively, and win more deals.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Dynamics 365 Sales'\n ],\n url: 'https://aka.ms/appsourced365sales'\n }\n ],\n imageUrl: Dynamics365ForSales,\n titleColor: '#002050'\n },\n {\n name: 'Dynamics 365 for Field Service',\n dataValue: DataMap.products.Dynamics365forFieldServices,\n keywords: [\n 'Dynamics 365 for Field Service'\n ],\n title: 'Dynamics 365 Field Service',\n description: 'Banner_Dynamics365FieldService',\n descriptionFallback: 'Deliver a seamless, end-to-end service experience. Built-in intelligence helps you resolve service issues before they occur, reduce operational costs, and deliver positive onsite experiences.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Dynamics 365 Field Service'\n ],\n url: 'https://aka.ms/appsrcd365fieldservice'\n }\n ],\n imageUrl: Dynamics365ForFieldHub,\n titleColor: '#002050'\n },\n {\n name: 'Dynamics 365 for Project Service Automation',\n dataValue: DataMap.products.Dynamics365forProjectServicesAutomation,\n keywords: [\n 'Project Service Automation',\n 'Dynamics 365 for Project Service Automation'\n ],\n title: 'Dynamics 365 Project Service Automation',\n description: 'Banner_Dynamics365ProjectServiceAutomation',\n descriptionFallback: 'Build trusted customer relationships by delivering outstanding project experiences. Increase profitability through predictable project outcomes while increasing employee productivity.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Project'\n ],\n url: 'https://aka.ms/appsrcd365psa'\n }\n ],\n imageUrl: Dynamics365ForServiceAutomation,\n titleColor: '#002050'\n },\n {\n name: 'Dynamics 365 for Customer Service',\n dataValue: DataMap.products.Dynamics365forCustomerServices,\n keywords: [\n 'Dynamics 365 for Customer Service'\n ],\n title: 'Dynamics 365 Customer Service',\n description: 'Banner_Dynamics365CustomerService',\n descriptionFallback: 'Effortless customer service: Empower your customers and your agents with the tools they need to ensure quick and accurate resolution, every time.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Dynamics 365 Customer Service'\n ],\n url: 'https://aka.ms/appsrcd365cs'\n }\n ],\n imageUrl: Dynamics365ForCustomerService,\n titleColor: '#002050'\n },\n {\n name: 'Dynamics 365 for Finance and Operations',\n dataValue: DataMap.products.Dynamics365forFinancials,\n keywords: [\n 'Dynamics 365 for Financials',\n 'Dynamics 365 for Finance and Operations'\n ],\n title: 'Dynamics 365 Finance and Operations',\n description: 'Banner_Dynamics365FinanceAndOperations',\n descriptionFallback: 'Unify global financials and operations to empower people to make fast, informed decisions. Help businesses adapt quickly to changing market demands and drive business growth.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Dynamics 365 Finance and Operations'\n ],\n url: 'https://aka.ms/appsrcd365operations'\n }\n ],\n imageUrl: Dynamics365ForFinanceAndOperations,\n titleColor: '#002050'\n },\n {\n name: 'Dynamics 365 Business Central',\n dataValue: DataMap.products.Dynamics365forBusinessCentral,\n keywords: [\n 'Dynamics 365 for Business Central',\n 'Dynamics 365 Business Central'\n ],\n title: 'Dynamics 365 Business Central',\n description: 'Banner_Dynamics365BusinessCentral',\n descriptionFallback: 'Connect your financials, sales, service, and operations with an all-in-one business management solution. Easily tailor and extend the application to meet your business or industry-specific needs.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Dynamics 365 Business Central'\n ],\n url: 'https://aka.ms/appsrcd365financials'\n }\n ],\n imageUrl: Dynamics365ForBusinessCentral,\n titleColor: '#002050'\n },\n {\n name: 'Cortana Intelligence Suite',\n storeLink: 'https://aka.ms/appsrccortana',\n keywords: [\n 'Cortana Intelligence',\n 'Cortana',\n 'azure ai'\n ]\n },\n {\n name: 'Microsoft Teams',\n dataValue: DataMap.products.Teams,\n keywords: [\n 'teams',\n 'microsoft teams',\n 'teas',\n 'teans',\n 'tems'\n ],\n title: 'Microsoft Teams',\n description: 'Banner_MicrosoftTeams',\n descriptionFallback: 'One place for all your team needs. Bring everything together including chats, meetings, calls, files, and tools to enable more productive teamwork.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Microsoft Teams'\n ],\n url: 'https://go.microsoft.com/fwlink/?linkid=874513'\n }\n ],\n imageUrl: Teams,\n titleColor: '#5558af'\n },\n {\n name: 'Automotive',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.automotive : DataMap.industries.Automotive_AS,\n keywords: [\n 'Automotive'\n ],\n title: 'Automotive',\n description: 'Banner_Automotive_Description',\n descriptionFallback: 'Accelerate innovation, monetize data, and provide new services. Explore automotive offerings that help you redefine mobility as an industry while staying focused on trust, innovation, security, and compliance.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/automotive'\n }\n ],\n imageUrl: Automotive,\n titleColor: '#0067B8'\n },\n {\n name: 'Education',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.education : DataMap.industries.Education,\n keywords: [\n 'Education'\n ],\n title: 'Education',\n description: 'Banner_Education_Description',\n descriptionFallback: 'Help your students achieve their potential with a student-centered educational approach. Explore education solutions to help you develop safe and secure in-person and online environments, optimize student outcomes, and maximize classroom time.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/education/school-leaders/k-12-microsoft-education-transformation-framework'\n }\n ],\n imageUrl: Education,\n titleColor: '#0067B8'\n },\n {\n name: 'Defense & Intelligence',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['defense-and-intelligence'] : DataMap.industries.DefenseIntelligence_AS_L1,\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/government/defense-and-intelligence'\n }\n ],\n keywords: [\n 'Defense & Intelligence'\n ],\n title: 'Defense & Intelligence',\n description: 'Banner_DefenseIntelligence_Description',\n descriptionFallback: 'Advance your missions to promote stability and security. Discover defense and intelligence solutions that help you modernize your workforce, deliver trusted and secure services, protect the information domain, and optimize operations.',\n imageUrl: DefenseIntelligence,\n titleColor: '#0067B8'\n },\n {\n name: 'Distribution',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.distribution : DataMap.industries.Distribution,\n keywords: [\n 'Distribution'\n ],\n title: 'Distribution',\n description: 'Banner_Distribution_Description',\n descriptionFallback: 'Reimagine logistics, delivery, and distribution networks. Discover solutions that help you transform your processes, optimize product availability, and better manage operations.',\n imageUrl: Distribution,\n titleColor: '#0067B8'\n },\n {\n name: 'Energy',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.energy : DataMap.industries.Energy_AS_L1,\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/energy'\n }\n ],\n keywords: [\n 'Energy'\n ],\n title: 'Energy',\n description: 'Banner_Energy_Description',\n descriptionFallback: 'Accelerate innovation, transion to clean energy, and achieve growth objectives. Find digital technology solutions that help you enhance exploration, production, and distribution operations.',\n imageUrl: Energy,\n titleColor: '#0067B8'\n },\n {\n name: 'Financial Services',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['financial-services'] : DataMap.industries.FinancialServices,\n keywords: [\n 'FinancialServices'\n ],\n title: 'Financial Services',\n description: 'Banner_FinancialServices_Description',\n descriptionFallback: 'Become a trusted partner to your customers and differentiate your financial institution from competitors. Explore financial services offerings that help you create new value with innovative technology.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/financial-services/microsoft-cloud-for-financial-services'\n }\n ],\n imageUrl: FinancialServices,\n titleColor: '#0067B8'\n },\n {\n name: 'Government',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.government : DataMap.industries.Government,\n keywords: [\n 'Government'\n ],\n title: 'Government',\n description: 'Banner_Government_Description',\n descriptionFallback: 'Enhance government services and influence positive societal change. Explore government solutions that help you promote the well-being of people and communities on a platform that focuses on trust, innovation, security, and compliance.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/government'\n }\n ],\n imageUrl: Government,\n titleColor: '#0067B8'\n },\n {\n name: 'Healthcare',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.healthcare : DataMap.industries.HealthCareandLifeSciences,\n keywords: [\n 'Health'\n ],\n title: 'Health',\n description: 'Banner_Healthcare_Description',\n descriptionFallback: 'Personalize care, empower care teams, and improve operational outcomes. Explore healthcare solutions that help you reimage the ways you bring together people, data, and processes to meet your organizational mission.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/health/microsoft-cloud-for-healthcare'\n }\n ],\n imageUrl: Healthcare,\n titleColor: '#0067B8'\n },\n {\n name: 'Manufacturing & Resources',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['manufacturing-and-resources'] : DataMap.industries['manufacturing-resources'],\n keywords: [\n 'Manufacturing'\n ],\n title: 'Microsoft Cloud for Manufacturing',\n description: 'Banner_ManufacturingResources_Description',\n descriptionFallback: 'Microsoft Cloud for Manufacturing addresses your most challenging digital transformation initiatives through a powerful combination of trusted Microsoft products and industry solutions from our partner ecosystem.',\n links: [\n {\n text: 'AppSource_banner_explore_more',\n url: 'https://aka.ms/cloudformanufacturing'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'https://aka.ms/MCFMdocs'\n }\n ],\n imageUrl: ManufacturingResources,\n titleColor: '#0067B8'\n },\n {\n name: 'ProfessionalServices',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['professional-services'] : DataMap.industries.ProfessionalServices,\n keywords: [\n 'ProfessionalServices'\n ],\n title: 'Professional Services',\n description: 'Banner_ProfessionalServices_Description',\n descriptionFallback: 'Create a more agile and transparent business model.Find professional services solutions that help you manage projects and resources, create business value, and deliver results for clients.',\n imageUrl: ProfessionalServices,\n titleColor: '#0067B8'\n },\n {\n name: 'Retail',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['retail-and-consumer-goods'] : DataMap.industries.RetailandConsumerGoods,\n keywords: [\n 'RetailandConsumerGoods'\n ],\n title: 'Retail',\n description: 'Banner_RetailAndConsumerGoods_Description',\n descriptionFallback: 'Reinvent your business to meet evolving customer expectations. Discover intelligent retail solutions that help you turn data into actionable insights, create more resilient supply chains, enable employee collaboration, and deliver better business outcomes',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/retail/microsoft-cloud-for-retail'\n }\n ],\n imageUrl: RetailAndConsumerGoods,\n titleColor: '#0067B8'\n },\n {\n name: 'Hospitality & Travel',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['hospitality-and-travel'] : DataMap.industries.HospitalityTravel_AS,\n keywords: [\n 'Hospitality & Travel'\n ],\n title: 'Hospitality & Travel',\n description: 'Banner_HospitalityAndTravel_Description',\n descriptionFallback: 'Manage assets and maintenance, automatically configure prices, and increase customer acquisition. Discover hospitality and travel solutions that help you map your inventory, reduce churn, and increase customer loyalty.',\n imageUrl: HospitalityAndTravel\n },\n {\n name: 'Nonprofit & IGO',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['other-public-sector-industries'] : DataMap.industries.NonprofitIGO_AS_L1,\n keywords: [\n 'Nonprofit & IGO'\n ],\n title: 'Nonprofit & IGO',\n description: 'Banner_OtherPublicSectorIndustries_Description',\n descriptionFallback: 'Accelerate your mission and drive greater impact. Turn data into insights, run fundraising campaigns, manage volunteers, and design and deliver programs.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/nonprofits/?activetab=pivot1%3aprimaryr3'\n }\n ],\n imageUrl: Nonprofit\n },\n {\n name: 'Media & Communications',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['media-and-communications'] : DataMap.industries.MediaCommunications_AS,\n keywords: [\n 'Media & Communications'\n ],\n title: 'Media & Communications',\n description: 'Banner_MediaCommunications_Description',\n descriptionFallback: 'Deepen audience engagement, maximize creativity, and streamline production workflows. Explore industry-leading solutions that help you produce and deliver content, encourage collaboration, harness audience insights, and personalize experiences.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://www.microsoft.com/en-us/industry/media-entertainment'\n }\n ],\n imageUrl: MediaCommunications\n },\n {\n name: 'PowerApps',\n dataValue: DataMap.products.PowerApps,\n keywords: [\n 'power apps',\n 'microsoft power apps'\n ],\n title: 'Power Apps',\n description: 'Banner_PowerApps',\n descriptionFallback: 'Easily build the business apps you need and extend or customize the apps you already use.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Power Apps'\n ],\n url: 'https://powerapps.microsoft.com/en-us/'\n }\n ],\n imageUrl: PowerApps,\n titleColor: '#5558af'\n },\n {\n name: 'Office365',\n dataValue: DataMap.products.Office365,\n keywords: [\n 'Office365',\n 'microsoft365',\n 'microsoft 365'\n ],\n title: 'Trust Microsoft 365 Certified apps',\n description: 'Banner_Office365',\n descriptionFallback: 'Ensure that an app has undergone rigorous security vetting before you download it. Microsoft 365 Certification validates apps and publishers against industry-best security standards. Use the “App Compliance” filter to find all apps that have earned the certification badge.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcem365'\n }\n ],\n imageUrl: M365,\n titleColor: '#5558af'\n },\n {\n name: 'Azure for Web Apps',\n dataValue: DataMap.products.AzureforWebApps,\n keywords: [\n 'Azure for Web Apps',\n 'saas'\n ],\n title: 'Discover industry-leading cloud-based apps',\n description: 'Banner_AzureForWebApps',\n descriptionFallback: 'Discover applications that run securely from any internet-connected computer or mobile device without installing and maintaining hardware or software infrastructure—and pay by subscription or your level of use.',\n links: [],\n imageUrl: WebApps,\n titleColor: '#5558af'\n },\n {\n name: 'Power BI',\n dataValue: DataMap.products.PowerBI,\n keywords: [\n 'pbi',\n 'pbi apps',\n 'power bi apps',\n 'powerbi',\n 'powerbi apps'\n ],\n title: 'Microsoft Power BI',\n description: 'Banner_PowerBi',\n descriptionFallback: 'Create a data culture by connecting your big data investments with Power BI and empowering everyone in your organization to make data-driven, insights-based decisions.',\n links: [\n {\n text: 'AppSource_banner_get',\n params: [\n 'Power BI'\n ],\n url: 'https://aka.ms/appsourcepbi'\n }\n ],\n imageUrl: PowerBI,\n titleColor: '#5558af'\n },\n {\n name: 'Dynamics 365',\n dataValue: DataMap.products.Dynamics365,\n keywords: [\n 'dynamics',\n 'dynamics365',\n 'dynamics 365'\n ],\n title: 'Microsoft Dynamics 365',\n description: 'Banner_Dynamics365',\n descriptionFallback: 'Be more agile with the only portfolio of business applications that empowers everyone in your organization to deliver operational excellence and delight every customer.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcedynamics'\n }\n ],\n imageUrl: D365,\n titleColor: '#5558af'\n },\n {\n name: 'PowerPlatform',\n dataValue: DataMap.products.PowerPlatform,\n keywords: [\n 'power platform'\n ],\n title: 'Microsoft Power Platform',\n description: 'Banner_PowerPlatform',\n descriptionFallback: 'Analyze and visualize data, automate workflows, create chatbots, and build transformational end-to-end business applications with an extensible, scalable, and collaborative low-code platform.',\n links: [\n {\n text: 'AppSource_Banner_LearnMore',\n url: 'https://aka.ms/appsourcepowerplat'\n }\n ],\n imageUrl: PowerPlatform,\n titleColor: '#5558af'\n }\n];\nconst promotionsBanners = {\n [Constants.EntityType.App]: [],\n [Constants.EntityType.Service]: [],\n [Constants.EntityType.CloudsIndustry]: [\n {\n name: 'Financial Services',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['financial-services'] : DataMap.industries.FinancialServices,\n keywords: [\n 'FinancialServices'\n ],\n title: 'Microsoft Cloud for Financial Services',\n description: 'Banner_CloudsIndustry_FinancialServices_Description',\n descriptionFallback: 'Microsoft Cloud for Financial Services provides capabilities to manage data to deliver differentiated experiences, empower employees, and combat financial crime while facilitating security, compliance, and interoperability.',\n links: [\n {\n text: 'AppSource_banner_explore',\n params: [\n 'Microsoft Cloud for Financial Services'\n ],\n url: 'https://www.microsoft.com/industry/financial-services/microsoft-cloud-for-financial-services'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'https://aka.ms/solutioncenter-financialservices'\n }\n ],\n imageUrl: CloudsIndustryFinancialServices,\n titleColor: '#0067B8'\n },\n {\n name: 'Nonprofit & IGO',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['other-public-sector-industries'] : DataMap.industries.NonprofitIGO_AS_L1,\n keywords: [\n 'Nonprofit & IGO'\n ],\n title: 'Microsoft Cloud for Nonprofit',\n description: 'Banner_CloudsIndustry_OtherPublicSectorIndustries_Description',\n descriptionFallback: 'Microsoft Cloud for Nonprofit uniquely brings together trusted and intelligent cloud capabilities to provide nonprofits with a holistic, connected platform to help accelerate mission outcomes.',\n links: [\n {\n text: 'AppSource_banner_explore',\n params: [\n 'Microsoft Cloud for Nonprofit'\n ],\n url: 'https://www.microsoft.com/nonprofit'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'https://aka.ms/solutioncenter-nonprofit'\n }\n ],\n imageUrl: CloudsIndustryNonprofit\n },\n {\n name: 'Healthcare',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.healthcare : DataMap.industries.HealthCareandLifeSciences,\n keywords: [\n 'Health'\n ],\n title: 'Microsoft Cloud for Healthcare',\n description: 'Banner_CloudsIndustry_Healthcare_Description',\n descriptionFallback: 'Microsoft Cloud for Healthcare provides trusted and integrated cloud capabilities to deliver better experiences, better insights, and better care.',\n links: [\n {\n text: 'AppSource_banner_explore',\n params: [\n 'Microsoft Cloud for Healthcare'\n ],\n url: 'https://www.microsoft.com/industry/health/microsoft-cloud-for-healthcare'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'http://aka.ms/solutioncenter-healthcare'\n }\n ],\n imageUrl: CloudsIndustryHealthcare,\n titleColor: '#0067B8'\n },\n {\n name: 'Retail',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries['retail-and-consumer-goods'] : DataMap.industries.RetailandConsumerGoods,\n keywords: [\n 'RetailandConsumerGoods'\n ],\n title: 'Microsoft Cloud for Retail',\n description: 'Banner_CloudsIndustry_RetailAndConsumerGoods_Description',\n descriptionFallback: \"Microsoft Cloud for Retail accelerates business growth by providing trusted retail industry solutions that integrate with retailer's existing systems to seamlessly connect your customers, your people, and your data.\",\n links: [\n {\n text: 'AppSource_banner_explore',\n params: [\n 'Microsoft Cloud for Retail'\n ],\n url: 'https://aka.ms/cloudforretail'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'https://aka.ms/solutioncenter-retail'\n }\n ],\n imageUrl: CloudsIndustryRetail,\n titleColor: '#0067B8'\n },\n {\n name: 'Sustainability',\n dataValue: isOneTaxonomyEnabled() ? DataMap.industries.SustainabilityIndustry : DataMap.industries.Sustainability_AS,\n keywords: [\n 'Sustainability'\n ],\n title: 'Microsoft Cloud for Sustainability',\n description: 'Banner_CloudsIndustry_Sustainability_Description',\n descriptionFallback: 'Microsoft Cloud for Sustainability helps organizations accelerate sustainability progress and business growth with a growing set of ESG capabilities from Microsoft and our global ecosystem of partners.',\n links: [\n {\n text: 'AppSource_banner_explore',\n params: [\n 'Microsoft Cloud for Sustainability'\n ],\n url: 'https://aka.ms/cloudforsustainability'\n },\n {\n text: 'AppSource_banner_get_started',\n url: 'https://aka.ms/solutioncenter-sustainability'\n }\n ],\n imageUrl: Sustainability,\n titleColor: '#0067B8'\n }\n ]\n};\nconst getCurrentPromotionsBanner = ({ entityType })=>{\n return [\n ...promotionsBanners[`${entityType}`],\n ...defaultPromotionsBanners\n ];\n};\nconst getPromotionBannerForSearchText = ({ searchText, entityType })=>{\n if (typeof searchText === 'string' && searchText.length) {\n const searchTextLowerCase = searchText.toLowerCase();\n const bannerForSearchText = getCurrentPromotionsBanner({\n entityType\n }).filter((banner)=>{\n return banner.keywords.filter((keyword)=>{\n return searchTextLowerCase.indexOf(keyword.toLowerCase()) >= 0;\n }).length > 0;\n });\n if (bannerForSearchText.length > 0) {\n return bannerForSearchText[0];\n }\n }\n return null;\n};\nconst getPromotionBannerForFilter = ({ activeFilters, entityType })=>{\n const promotedBannerForActiveFilters = getCurrentPromotionsBanner({\n entityType\n }).filter((banner)=>{\n var _banner_dataValue;\n return activeFilters.UrlKey === ((_banner_dataValue = banner.dataValue) === null || _banner_dataValue === void 0 ? void 0 : _banner_dataValue.UrlKey) && banner.dataValue.FilterGroup === activeFilters.FilterGroup;\n });\n if (promotedBannerForActiveFilters.length > 0) {\n return promotedBannerForActiveFilters[0];\n }\n return null;\n};\nexport const getPromotionBanner = ({ searchText, activeFilters, entityType })=>{\n // show a banner only in\n // a) app source\n // b) search mode and the search term as a matching banner\n // c) when only filter from a group (product, category, industry) is selected\n // and it has a matching banner\n if (searchText && activeFilters && activeFilters.length > 0) {\n return undefined;\n }\n const searchPromotionBanner = getPromotionBannerForSearchText({\n searchText,\n entityType\n });\n if (searchPromotionBanner) {\n return searchPromotionBanner;\n }\n if (activeFilters) {\n if (activeFilters.filter((filter)=>filter.UrlGroup === Constants.FilterQuery.product).length === activeFilters.length) {\n const lastLevelFilters = activeFilters.filter((filter)=>!filter.ShortcutFilters && !!filter.ProductCode);\n // get product corresponding to current active filters\n if (lastLevelFilters && lastLevelFilters.length === 1) {\n return getPromotionBannerForFilter({\n activeFilters: lastLevelFilters[0],\n entityType\n });\n }\n }\n if (activeFilters.length === 1) {\n if (activeFilters.filter((filter)=>filter.FilterGroup === Constants.FilterQuery.category).length === activeFilters.length) {\n // check banner for selected category\n return getPromotionBannerForFilter({\n activeFilters: activeFilters[0],\n entityType\n });\n }\n if (activeFilters.filter((filter)=>filter.FilterGroup === Constants.FilterQuery.industry).length === activeFilters.length) {\n // check banner for selected industry\n return getPromotionBannerForFilter({\n activeFilters: activeFilters[0],\n entityType\n });\n }\n if (activeFilters.filter((activeFilter)=>activeFilter.UrlGroup === Constants.FilterQuery.product).length === activeFilters.length) {\n // check banner for selected product\n return getPromotionBannerForFilter({\n activeFilters: activeFilters[0],\n entityType\n });\n }\n }\n }\n return null;\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _object_spread_props(target, source) {\n source = source != null ? source : {};\n if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\nfunction _object_without_properties(source, excluded) {\n if (source == null) return {};\n var target = _object_without_properties_loose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _object_without_properties_loose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nfunction _to_primitive(input, hint) {\n if (_type_of(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_type_of(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nfunction _to_property_key(arg) {\n var key = _to_primitive(arg, \"string\");\n return _type_of(key) === \"symbol\" ? key : String(key);\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport * as React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Spinner } from '@fluentui/react';\n// #region \"Integrated imports, don't add @shared\"\nimport { getGalleryPageTitle } from '@appsource/utils/consultingServicesUtils';\nimport { getAppGalleryPageTitle, getFeaturedAppsTitle } from '@shared/utils/localization';\nimport CuratedGallery from '@shared/containers/curatedGallery';\nimport { FilterPane } from '@appsource/components/filterPane';\nimport { getFilterLink, shouldShowCuratedDataForActiveFilters, getPopularItems, getFeaturedItemsByFilter, isFilterChosen } from '@shared/utils/filterHelpers';\nimport { Constants } from '@shared/utils/constants';\nimport { DataMap } from '@shared/utils/dataMapping';\nimport { urlPush, routes } from '@shared/routerHistory';\nimport { removeDuplicateAddIns } from '@shared/utils/search';\nimport { NpsModule } from '@shared/utils/npsUtils';\nimport { addClassToElement, removeClassFromElements } from '@shared/utils/appUtils';\nimport CommonTile from '@shared/components/commonTile';\nimport AppsbannerImg from '@shared/images/banners/Appsbanner.png';\nimport CloudsIndustrybannerImg from '@shared/images/banners/CloudsIndustrybanner.png';\nimport ConsultingServicesImage from '@shared/images/banners/ConsultingServices.png';\nimport * as embedHostUtils from '@src/embed/embedHostUtils';\nimport PureSpzaComponent from './pureSpzaComponent';\nimport AppSourceFilteredGallery from '@appsource/components/filteredGallery';\nimport GalleryHeader from './galleryHeader';\nimport Ribbon from './ribbon';\nimport AppPromotionPane from './appPromotionPane';\nimport { InternalLink } from './internalLink';\nimport { Banner } from './banner';\nimport { PopularApps } from './popularApps';\nimport GalleryContent from './GalleryContent';\nimport { FilteredGalleryHeader } from '@shared/components/FilteredGalleryHeader';\nimport { getEntityRegistration } from '@shared/utils/entityRegistration';\nimport { RecommendationsRibbon } from '@appsource/components/RecommendationsRibbonWrapper';\nimport { getPromotionBanner } from '@shared/utils/promotionBannerUtils';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst classNames = require('classnames-minimal');\nvar ShowPopular = /*#__PURE__*/ function(ShowPopular) {\n ShowPopular[\"Always\"] = \"Always\";\n ShowPopular[\"Never\"] = \"Never\";\n ShowPopular[\"MainOnly\"] = \"MainOnly\";\n ShowPopular[\"FilteredOnly\"] = \"FilteredOnly\";\n return ShowPopular;\n}(ShowPopular || {});\nexport class Gallery extends PureSpzaComponent {\n filterLinkCallback(filter, query) {\n return getFilterLink(this.context, filter, this.props.entityType, this.props.embedHost, false, !this.props.isAppSource, query);\n }\n getCurrentEntityData() {\n return this.getEntityData()[this.props.entityType];\n }\n getOthersEntitiesData() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _this_getEntityData = this.getEntityData(), _this_props_entityType = this.props.entityType, { [_this_props_entityType]: currentEntity } = _this_getEntityData, othersEntities = _object_without_properties(_this_getEntityData, [\n _this_props_entityType\n ].map(_to_property_key));\n return othersEntities;\n }\n getEntityData() {\n const entitiyes = {\n [Constants.EntityType.App]: _object_spread_props(_object_spread({}, this.props.entityData[Constants.EntityType.App]), {\n showPopoular: \"Always\",\n showRibbon: true,\n bannerData: {\n title: this.context.loc('Banner_Apps_Title', 'Find the right app, right now'),\n imgURL: AppsbannerImg,\n description: this.context.loc('Banner_Apps_Description', 'Solve challenges with apps tailored for a wide range of industries and business needs—and begin propelling innovation and productivity today.')\n },\n galleryTitle: {\n title: this.context.loc('GalleryTitle_Apps', 'Apps'),\n mainTitle: this.context.loc('GalleryTitle_MainTitle_Default_Apps', 'Browse apps'),\n subTitle: this.context.loc('GalleryTitle_SubTitle_Default_Apps', 'Filter and sort offers to refine the results.'),\n linkHref: this.isFullscreenEmbedded() ? '' : this.context.buildHref(routes.marketplace, null, {\n page: '1'\n })\n }\n }),\n [Constants.EntityType.Service]: _object_spread_props(_object_spread({}, this.props.entityData[Constants.EntityType.Service]), {\n showPopoular: \"Always\",\n showRibbon: false,\n bannerData: {\n title: this.context.loc('Banner_Services_Title', 'Find consulting services'),\n imgURL: ConsultingServicesImage,\n description: this.context.loc('Banner_Services_Description', 'Connect with experts who can help you digitally transform your organization.')\n },\n galleryTitle: {\n title: this.context.loc('GalleryTitle_CS', 'Consulting services'),\n mainTitle: this.context.loc('GalleryTitle_MainTitle_Default_CS', 'Browse consulting services'),\n subTitle: this.context.loc('GalleryTitle_SubTitle_Default_CS', 'Refine offers by selecting filters and sorting options.'),\n linkHref: this.context.buildHref(routes.marketplaceServices, null, {\n page: '1'\n })\n }\n }),\n [Constants.EntityType.CloudsIndustry]: _object_spread_props(_object_spread({}, this.props.entityData[Constants.EntityType.CloudsIndustry]), {\n showPopoular: \"MainOnly\",\n showRibbon: true,\n bannerData: {\n title: this.context.loc('Banner_CloudsIndustry_Title', 'Microsoft Industry Clouds'),\n imgURL: CloudsIndustrybannerImg,\n description: this.context.loc('Banner_CloudsIndustry_Description', 'Microsoft Industry Clouds connect robust industry-specific capabilities across Azure, Power Platform, Microsoft 365 & Teams, Dynamics 365, and Security, underpinned by our common data model. Helping businesses be more agile, make intelligent decisions, and provide rich customer, patient, and employee experiences.'),\n links: [\n {\n text: this.context.loc('AppSource_banner_explore', 'Explore Microsoft Industry Clouds'),\n params: [\n 'Microsoft Industry Clouds'\n ],\n url: 'https://www.microsoft.com/industry'\n }\n ]\n },\n galleryTitle: {\n title: this.context.loc('GalleryTitle_CloudsIndustry', 'Industry Clouds'),\n mainTitle: this.context.loc('GalleryTitle_MainTitle_Default_CloudsIndustry', 'Browse Industry Clouds'),\n subTitle: this.context.loc('GalleryTitle_SubTitle_Default_CloudsIndustry', 'Filter and sort apps to refine the results.'),\n linkHref: this.context.buildHref(routes.marketplaceCloudsIndustry, null, {\n page: '1'\n })\n }\n })\n };\n return entitiyes;\n }\n isSearchMode(entityType, entityData) {\n if (!entityType) {\n return undefined;\n }\n const searchQuery = entityData[`${entityType}`].subsetSearchQuery;\n return !!searchQuery && searchQuery.length > 0;\n }\n shouldShowCuratedView(entityType, entityData, query) {\n return entityType && !this.isSearchMode(entityType, entityData) && !query[Constants.QueryStrings.showAllApps] && shouldShowCuratedDataForActiveFilters(entityData[`${entityType}`].activeFilters) && !this.props.showPrivateApps && (!this.props.isEmbedded || embedHostUtils.shouldShowCuratedData(this.props.embedHost)) && (entityType !== Constants.EntityType.Service || this.shouldShowCuratededViewServices());\n }\n shouldShowCuratededViewServices() {\n var _this_getCurrentEntityData, _this_props_countryCode, _this_props_regionCode;\n if ((_this_getCurrentEntityData = this.getCurrentEntityData()) === null || _this_getCurrentEntityData === void 0 ? void 0 : _this_getCurrentEntityData.activeFilters.filter((activeFilter)=>activeFilter.BackendKey === DataMap.products.Office365.BackendKey).length) {\n return false;\n }\n if (((_this_props_countryCode = this.props.countryCode) === null || _this_props_countryCode === void 0 ? void 0 : _this_props_countryCode.toLowerCase()) !== Constants.usCountryCode) {\n return false;\n }\n if (((_this_props_regionCode = this.props.regionCode) === null || _this_props_regionCode === void 0 ? void 0 : _this_props_regionCode.toLowerCase()) !== Constants.allStatesCode) {\n return false;\n }\n return true;\n }\n startUp() {\n // accessibility\n switch(this.props.entityType){\n case Constants.EntityType.Service:\n document.getElementsByTagName('title')[0].innerHTML = this.context.loc(getGalleryPageTitle());\n removeClassFromElements('spza-accessibility-selected');\n // the bold on the UHF wont work till the new UHF header for services is added, thus highlighting the services\n addClassToElement(Constants.SearchBy.Id, 'uhf_servicesGalleryLink', 'spza-accessibility-selected');\n break;\n default:\n document.getElementsByTagName('title')[0].innerHTML = getAppGalleryPageTitle(this.context);\n removeClassFromElements('spza-accessibility-selected');\n addClassToElement(Constants.SearchBy.Id, 'uhf_galleryLink', 'spza-accessibility-selected');\n break;\n }\n }\n isAppliedFiltersEmpty() {\n var _this_getCurrentEntityData, _this_getCurrentEntityData1;\n return !((_this_getCurrentEntityData = this.getCurrentEntityData()) === null || _this_getCurrentEntityData === void 0 ? void 0 : _this_getCurrentEntityData.activeFilters.length) && !((_this_getCurrentEntityData1 = this.getCurrentEntityData()) === null || _this_getCurrentEntityData1 === void 0 ? void 0 : _this_getCurrentEntityData1.subsetSearchQuery);\n }\n manageShouldDisplayNumricValues() {\n if (this.isAppliedFiltersEmpty()) {\n this.setState({\n shouldDisplayNumricValues: false\n });\n } else if (!this.props.requestFilteredLoading) {\n this.setState({\n shouldDisplayNumricValues: true\n });\n }\n }\n componentDidMount() {\n // step 4: determine whether gallery view should show curated view, on the very first render\n const shouldShowCuratedView = this.shouldShowCuratedView(this.props.entityType, this.props.entityData, this.props.query);\n this.props.updateCurrentGalleryViewIsCurated(shouldShowCuratedView);\n NpsModule.checkForNPS();\n this.startUp();\n }\n componentDidUpdate() {\n this.startUp();\n this.manageShouldDisplayNumricValues();\n }\n UNSAFE_componentWillReceiveProps(nextProps) {\n // get shouldShowCuratedView consists of current props\n const shouldShowCuratedView = this.shouldShowCuratedView(this.props.entityType, this.props.entityData, this.props.query);\n // get shouldShowCuratedView consists of next props\n const nextShouldShowCuratedView = this.shouldShowCuratedView(nextProps.entityType, nextProps.entityData, nextProps.query);\n // update only if shouldShowCuratedView changes\n // without this check, it will in an infinite loop of re-rendering\n if (shouldShowCuratedView !== nextShouldShowCuratedView) {\n this.props.updateCurrentGalleryViewIsCurated(nextShouldShowCuratedView);\n }\n }\n getGalleryMainTitle() {\n if (this.getCurrentEntityData().subsetSearchQuery) {\n return this.context.locParams('GalleryTitle_MainTitle_Search', [\n this.getCurrentEntityData().subsetSearchQuery\n ], 'Search results for “{0}”');\n }\n const activeFiltersWithoutReference = this.getActiveFiltersWithoutReference();\n if (activeFiltersWithoutReference.length >= 1) {\n const firstFilterName = this.context.loc(activeFiltersWithoutReference[0].LocKey, activeFiltersWithoutReference[0].Title);\n return activeFiltersWithoutReference.length === 1 ? this.context.locParams('GalleryTitle_MainTitle_OneFilter', [\n this.getCurrentEntityData().galleryTitle.title,\n firstFilterName\n ], '{0} results for {1}') : this.context.locParams('GalleryTitle_MainTitle_MultipleFilter', [\n this.getCurrentEntityData().galleryTitle.title\n ], '{0} results');\n }\n return this.getCurrentEntityData().galleryTitle.mainTitle;\n }\n getGallerySubTitle() {\n const curEntityData = this.getCurrentEntityData();\n const curEntityCount = curEntityData.count;\n const { shouldDisplayNumricValues } = this.state;\n if (curEntityCount <= 0) {\n return this.context.locParams('GalleryTitle_No_Results', [\n (curEntityCount === null || curEntityCount === void 0 ? void 0 : curEntityCount.toString()) || '',\n curEntityData.galleryTitle.title.toLocaleLowerCase()\n ], 'Showing 0 results.');\n }\n if ((this.getActiveFiltersWithoutReference().length || curEntityData.subsetSearchQuery) && curEntityCount) {\n return this.context.locParams('GalleryTitle_Results', [\n shouldDisplayNumricValues ? curEntityCount.toString() : '',\n curEntityData.galleryTitle.title.toLocaleLowerCase()\n ], 'Showing {0} results in {1}.');\n }\n return curEntityData.galleryTitle.subTitle;\n }\n getActiveFiltersWithoutReference() {\n return this.getCurrentEntityData().activeFilters.filter((f)=>!f.IsReference);\n }\n renderOthersGalleriesLinks() {\n if (!this.getActiveFiltersWithoutReference().length) {\n return null;\n }\n const { shouldDisplayNumricValues } = this.state;\n const entitiesData = this.getOthersEntitiesData();\n const results = [];\n Object.keys(entitiesData).filter((entityType)=>entitiesData[`${entityType}`].count).forEach((entityType, index, entities)=>{\n const entityData = entitiesData[`${entityType}`];\n const href = entityData.galleryTitle.linkHref;\n const galleryTitle = entityData.galleryTitle.title.toLocaleLowerCase();\n const galleryResultsCount = entityData.count;\n const telemetryPayload = {\n relatedGallery: galleryTitle,\n relatedGalleryResultsCount: galleryResultsCount,\n relatedGalleryTargetUrl: href\n };\n if (index === 0) {\n results.push(/*#__PURE__*/ _jsxs(\"span\", {\n children: [\n \" \",\n this.context.loc('GalleryTitle_Link_Pre', 'View'),\n \" \"\n ]\n }, `span-${href}`));\n } else {\n results.push(/*#__PURE__*/ _jsxs(\"span\", {\n children: [\n \" \",\n this.context.loc('GalleryTitle_Link_Seperator', 'or'),\n \" \"\n ]\n }, `span-${href}`));\n }\n const numResultsText = shouldDisplayNumricValues ? (galleryResultsCount === null || galleryResultsCount === void 0 ? void 0 : galleryResultsCount.toString()) || '' : '';\n results.push(/*#__PURE__*/ _jsx(InternalLink, {\n href: href,\n className: \"galleryTitleLink\",\n accEnabled: true,\n \"data-bi-id\": 'gallery Title link',\n \"data-bi-area\": `entity: ${this.props.entityType}`,\n onClick: ()=>{\n urlPush(entityData.galleryTitle.linkHref, true);\n },\n telemetryDetails: JSON.stringify(telemetryPayload),\n children: this.context.locParams('GalleryTitle_Link', [\n numResultsText,\n galleryTitle\n ], `${numResultsText} related results in ${galleryTitle}`)\n }, `internal-link-${href}`));\n if (index === entities.length - 1) {\n results.push(/*#__PURE__*/ _jsx(\"span\", {\n children: \".\"\n }, \"dot\"));\n }\n });\n return results;\n }\n isShowPopularItems() {\n const activeFilters = this.getActiveFiltersWithoutReference();\n const showPopular = this.getCurrentEntityData().showPopoular;\n if (showPopular === \"Never\" || showPopular === \"MainOnly\" && (activeFilters === null || activeFilters === void 0 ? void 0 : activeFilters.length) !== 0 || showPopular === \"FilteredOnly\" && (activeFilters === null || activeFilters === void 0 ? void 0 : activeFilters.length) !== 1) {\n return false;\n }\n if (this.isSearchMode(this.props.entityType, this.props.entityData)) {\n return false;\n }\n if (!this.props.isAppSource) {\n return false;\n }\n if (this.props.isEmbedded) {\n return false;\n }\n if ((activeFilters === null || activeFilters === void 0 ? void 0 : activeFilters.length) > 1) {\n return false;\n }\n if (activeFilters.length === 1 && [\n Constants.FilterQuery.product,\n Constants.FilterQuery.category,\n Constants.FilterQuery.industry\n ].indexOf(activeFilters[0].UrlGroup) === -1) {\n return false;\n }\n return true;\n }\n getPopularItemsTitle() {\n const activeFilters = this.getActiveFiltersWithoutReference();\n return activeFilters.length ? this.context.locParams('CuratedType_Most_Viewed_Title_In', [\n activeFilters[0].Title\n ], `Most viewed in ${[\n activeFilters[0].Title\n ]}`) : this.context.loc('CuratedType_Most_Viewed', 'Most Viewed');\n }\n shouldRenderBanner() {\n return this.props.isAppSource && !this.props.isEmbedded && !this.getCurrentEntityData().subsetSearchQuery && this.getCurrentEntityData().activeFilters.length === 0;\n }\n renderBannner() {\n return this.shouldRenderBanner() ? /*#__PURE__*/ _jsx(Banner, {\n data: this.getCurrentEntityData().bannerData\n }) : null;\n }\n isFullscreenEmbedded() {\n return embedHostUtils.shouldShowCuratedData(this.props.embedHost) && embedHostUtils.isFullScreenMode(this.props.query);\n }\n getRibbonItems() {\n return getFeaturedItemsByFilter(this.getCurrentEntityData().activeFilters, this.getCurrentEntityData().curatedData, this.getCurrentEntityData().idMap, this.getCurrentEntityData().allData).slice(0, 5);\n }\n getFilteredItems() {\n const ribbonItems = this.getRibbonItems();\n const filteredItems = removeDuplicateAddIns(this.getCurrentEntityData().allData, 'entityId').apps.filter((app)=>ribbonItems.every((ribbonItem)=>app.entityId !== ribbonItem.entityId));\n return filteredItems;\n }\n getPopularItems() {\n if (!this.isShowPopularItems()) {\n return [];\n }\n return getPopularItems({\n allItems: this.getFilteredItems(),\n featuredItems: this.getRibbonItems()\n });\n }\n renderPopularRibbon() {\n const popularItems = this.getPopularItems();\n return popularItems.length ? /*#__PURE__*/ _jsx(PopularApps, {\n popularAppsTitle: this.getPopularItemsTitle(),\n ribbonPopularApps: popularItems,\n ribbonKey: this.getRibbonKey()\n }) : null;\n }\n renderRecommendationsRibbons() {\n const { isAppSource, entityType, selectedLocale, countryCode, recoMicrosoft365WhatsNewItems, recoMicrosoft365TrendingItems, entityData, query, recoTrendingItems, recoWhatsNewItems } = this.props;\n const TileType = getEntityRegistration(entityType).tileType;\n const isOfficeFilter = (query === null || query === void 0 ? void 0 : query.product) === Constants.FilteredGallery.officeFilter;\n const hasNoActiveFilters = entityData[`${entityType}`].activeFilters.length === 0;\n const isFirstPage = !query.page || query.page === '1';\n const hasSearch = query === null || query === void 0 ? void 0 : query.search;\n return (isOfficeFilter && entityType === Constants.EntityType.App || hasNoActiveFilters && isFirstPage) && (entityType === Constants.EntityType.App || entityType === Constants.EntityType.Service) && isAppSource && !hasSearch && /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(RecommendationsRibbon, {\n recommendedItems: isOfficeFilter ? recoMicrosoft365TrendingItems : recoTrendingItems,\n title: this.context.loc('CuratedType_Trending_Now', 'Trending Now'),\n ribbonKey: Constants.Recommendations.TrendingMicrosoft365,\n selectedCountry: countryCode,\n selectedLocale: selectedLocale,\n tileType: TileType\n }),\n /*#__PURE__*/ _jsx(RecommendationsRibbon, {\n recommendedItems: isOfficeFilter ? recoMicrosoft365WhatsNewItems : recoWhatsNewItems,\n title: this.context.loc('CuratedType_Whats_New', 'Whats New'),\n ribbonKey: Constants.Recommendations.WhatsNewMicrosoft365,\n selectedCountry: countryCode,\n selectedLocale: selectedLocale,\n tileType: TileType\n })\n ]\n });\n }\n renderCuratedGallery() {\n return /*#__PURE__*/ _jsxs(\"div\", {\n children: [\n this.renderBannner(),\n /*#__PURE__*/ _jsx(\"div\", {\n className: classNames({\n curatedGalleryWrapper: this.getCurrentEntityData().activeFilters.length === 0 && !this.getCurrentEntityData().subsetSearchQuery\n }),\n children: /*#__PURE__*/ _jsx(CuratedGallery, {\n entityType: this.props.entityType,\n dataMap: this.getCurrentEntityData().dataMap,\n category: this.props.params.category || this.props.query,\n activeFilters: this.getCurrentEntityData().activeFilters,\n searchText: this.getCurrentEntityData().subsetSearchQuery,\n embedHost: this.props.embedHost\n })\n })\n ]\n });\n }\n shouldRenderRibbonItems() {\n return this.getCurrentEntityData().showRibbon && !this.props.isEmbedded;\n }\n renderFeaturedRibbon() {\n var _this_getCurrentEntityData_activeFilters_, _this_getCurrentEntityData_activeFilters_1;\n const ribbonItems = this.getRibbonItems();\n const featuredRibbonKey = getFeaturedAppsTitle();\n const ribbonTitle = this.context.locParams(featuredRibbonKey, [\n (_this_getCurrentEntityData_activeFilters_ = this.getCurrentEntityData().activeFilters[0]) === null || _this_getCurrentEntityData_activeFilters_ === void 0 ? void 0 : _this_getCurrentEntityData_activeFilters_.Title\n ]);\n const ribbonKey = `${featuredRibbonKey} ${(_this_getCurrentEntityData_activeFilters_1 = this.getCurrentEntityData().activeFilters[0]) === null || _this_getCurrentEntityData_activeFilters_1 === void 0 ? void 0 : _this_getCurrentEntityData_activeFilters_1.BackendKey}`;\n return this.shouldRenderRibbonItems() && ribbonItems.length ? /*#__PURE__*/ _jsx(\"div\", {\n className: \"indFeaturedContainer\",\n children: /*#__PURE__*/ _jsx(Ribbon, {\n title: ribbonTitle,\n children: ribbonItems.map((item, index)=>/*#__PURE__*/ _createElement(CommonTile, _object_spread_props(_object_spread({}, item), {\n item: item,\n tileIndex: index,\n totalTiles: ribbonItems.length,\n key: index,\n ribbonKey: ribbonKey\n })))\n })\n }) : null;\n }\n renderFilteredGallery() {\n const filteredItems = this.getFilteredItems();\n const { query, galleryPage, pageSize, embedHost, partnerAppDataLoaded, partnerAppDataLoadedError, entityType, isMobile, countryCode, changeSearchText, isEmbedded, selectedLocale, showPrivateApps, currentView, appsActiveFilters, servicesActiveFilters, cloudsIndustryActiveFilters, recoMicrosoft365WhatsNewItems, recoMicrosoft365TrendingItems } = this.props;\n return /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n this.renderBannner(),\n this.renderRecommendationsRibbons(),\n this.getCurrentEntityData().count ? /*#__PURE__*/ _jsx(\"div\", {\n className: \"allResults\",\n children: this.context.loc('FilteredGallery_AllResults', 'All results')\n }) : null,\n /*#__PURE__*/ _jsx(AppSourceFilteredGallery, {\n query: query,\n galleryPage: galleryPage,\n pageSize: pageSize,\n filteredData: filteredItems,\n count: this.getCurrentEntityData().count,\n searchText: this.getCurrentEntityData().subsetSearchQuery,\n showPrivateApps: showPrivateApps,\n isEmbedded: isEmbedded,\n embedHost: embedHost,\n partnerAppDataLoaded: partnerAppDataLoaded,\n partnerAppDataLoadedError: partnerAppDataLoadedError,\n entityType: entityType,\n isMobile: isMobile,\n selectedLocale: selectedLocale,\n selectedCountry: countryCode,\n isSelectedFilters: isFilterChosen(currentView, appsActiveFilters, servicesActiveFilters, cloudsIndustryActiveFilters),\n changeSearchText: changeSearchText,\n microsoft365WhatsNewItems: recoMicrosoft365WhatsNewItems,\n microsoft365TrendingItems: recoMicrosoft365TrendingItems\n })\n ]\n });\n }\n renderLoading() {\n return /*#__PURE__*/ _jsx(\"div\", {\n className: \"loading\",\n children: /*#__PURE__*/ _jsx(Spinner, {\n label: this.context.loc('Gallery_Loading', 'Loading...'),\n ariaLive: \"assertive\",\n labelPosition: \"left\"\n })\n });\n }\n renderPromotionPane(bannerInfo) {\n return /*#__PURE__*/ _jsx(AppPromotionPane, {\n isEmbedded: this.props.isEmbedded,\n bannerInfo: bannerInfo\n });\n }\n renderHeader(asH1) {\n const { isAppSource, isEmbedded, entityType, entityData, currentView, query } = this.props;\n const shouldHideSortingDropdown = !this.isSearchMode(entityType, entityData);\n return isAppSource ? /*#__PURE__*/ _jsxs(_Fragment, {\n children: [\n /*#__PURE__*/ _jsx(FilteredGalleryHeader, {\n localizedTitle: this.getGalleryMainTitle(),\n subTitle: this.getGallerySubTitle(),\n otherGalleriesLinks: this.renderOthersGalleriesLinks(),\n numResults: this.getCurrentEntityData().count,\n hideSortingDropdown: shouldHideSortingDropdown,\n titleAsH1: asH1\n }),\n /*#__PURE__*/ _jsx(GalleryHeader, {\n activeFilters: this.getCurrentEntityData().activeFilters,\n searchText: this.getCurrentEntityData().subsetSearchQuery,\n getFilterLink: this.filterLinkCallback.bind(this),\n isEmbedded: isEmbedded,\n entityType: entityType,\n currentView: currentView,\n urlQuery: query\n })\n ]\n }) : null;\n }\n renderImpl() {\n const { showPrivateApps, isEmbedded, embedHost, entityType, stateCountryFilterHandler, countryCode, regionCode, params, query, currentView, requestFilteredLoading, entityData, isMaccUser } = this.props;\n if (!entityType) {\n return /*#__PURE__*/ _jsx(\"div\", {});\n }\n const hideFilterPane = isEmbedded && (embedHostUtils.shouldHideFilterPane(embedHost) || showPrivateApps);\n const galleryContainerClass = classNames({\n spza_content: true,\n spza_content_hideFilterPane: hideFilterPane\n });\n const bannerInfo = getPromotionBanner({\n searchText: this.getCurrentEntityData().subsetSearchQuery,\n entityType,\n activeFilters: this.getCurrentEntityData().activeFilters\n });\n return /*#__PURE__*/ _jsx(\"div\", {\n children: /*#__PURE__*/ _jsx(\"div\", {\n className: \"spza_galleryContainer\",\n role: \"main\",\n children: /*#__PURE__*/ _jsx(\"div\", {\n className: galleryContainerClass,\n children: /*#__PURE__*/ _jsxs(\"div\", {\n className: \"paneAndGalleryWrapper\",\n children: [\n hideFilterPane ? null : /*#__PURE__*/ _jsx(FilterPane, {\n dataMap: this.getCurrentEntityData().dataMap,\n activeFilters: this.getCurrentEntityData().activeFilters,\n getFilterLink: this.filterLinkCallback.bind(this),\n embedHost: embedHost,\n isEmbedded: isEmbedded,\n entityType: entityType,\n stateCountryFilterHandler: stateCountryFilterHandler,\n countryCode: countryCode.toUpperCase(),\n regionCode: regionCode,\n params: params,\n query: query,\n currentView: currentView,\n countriesList: this.getCurrentEntityData().countriesList,\n isMaccUser: isMaccUser\n }),\n /*#__PURE__*/ _jsx(\"div\", {\n className: \"gallery\",\n // eslint-disable-next-line react/forbid-dom-props\n id: \"maincontent\",\n tabIndex: -1,\n children: /*#__PURE__*/ _jsxs(GalleryContent, {\n loadingComponent: this.renderLoading(),\n requestFilteredLoading: requestFilteredLoading,\n children: [\n this.renderPromotionPane(bannerInfo),\n this.renderHeader(!bannerInfo),\n this.shouldShowCuratedView(entityType, entityData, query) ? this.renderCuratedGallery() : this.renderFilteredGallery()\n ]\n })\n })\n ]\n })\n })\n })\n });\n }\n constructor(props){\n super(props), _define_property(this, \"context\", void 0), _define_property(this, \"getRibbonKey\", ()=>{\n const activeFilters = this.getActiveFiltersWithoutReference();\n return activeFilters.length ? `CuratedType_Most_Viewed ${activeFilters[0].UrlKey}` : 'CuratedType_Most_Viewed';\n });\n this.state = {\n shouldDisplayNumricValues: false\n };\n }\n}\nGallery.contextTypes = {\n loc: PropTypes.func,\n locParams: PropTypes.func,\n buildHref: PropTypes.func,\n renderErrorModal: PropTypes.func\n};\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _object_spread(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === \"function\") {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n _define_property(target, key, source[key]);\n });\n }\n return target;\n}\nimport { Gallery } from '@shared/components/galleryPage';\nimport { getFilteredServiceData } from '@shared/actions/thunkActions';\nimport { createSearchboxInputChangedAction, createUpdateCurrentGalleryViewIsCurated } from '@shared/actions/actions';\nimport { getEntityRegistrationByView } from '@shared/utils/entityRegistration';\nimport { getInternetOfThingsLink } from '@shared/utils/filterHelpers';\nimport { extractCountryCodeFromQueryParam } from '@shared/utils/consultingServicesUtils';\nimport { Constants } from '@shared/utils/constants';\nimport { withRouter } from '@shared/routerHistory';\nimport { connect } from 'react-redux';\nimport { isOneTimePaymentOffer } from '@shared/utils/onetimepaymentoffers';\nimport { isMaccUser } from '@shared/utils/userUtils';\nfunction tryParseInt(val) {\n let parsedVal = parseInt(val, 10);\n if (isNaN(parsedVal)) {\n parsedVal = null;\n }\n return parsedVal;\n}\nexport const mapStateToProps = (state, ownProps)=>{\n var _ownProps_location_query_showPrivateApps, _ownProps_params;\n const { config: { requestFilteredQuery, query: queryProp, featureFlags, locale, isEmbedded, isMobile, isAppSource, embedHost, requestFilteredLoading, currentView, billingCountryCode }, apps, services, cloudsIndustry } = state;\n const pageSize = tryParseInt(ownProps.location.query.pageSize);\n const galleryPage = tryParseInt(ownProps.location.query.page);\n const showPrivateApps = ((_ownProps_location_query_showPrivateApps = ownProps.location.query.showPrivateApps) === null || _ownProps_location_query_showPrivateApps === void 0 ? void 0 : _ownProps_location_query_showPrivateApps.toLowerCase()) === 'true';\n const linksList = getInternetOfThingsLink((_ownProps_params = ownProps.params) === null || _ownProps_params === void 0 ? void 0 : _ownProps_params.category);\n const query = _object_spread({}, requestFilteredQuery, ownProps.location.query);\n const subsetSearchQuery = requestFilteredQuery[Constants.TileDataFilteredQueryParams.search];\n const countryCode = extractCountryCodeFromQueryParam(queryProp) || billingCountryCode || state.services.selectedCountry;\n var _query_region;\n const regionCode = (_query_region = query === null || query === void 0 ? void 0 : query.region) !== null && _query_region !== void 0 ? _query_region : state.services.selectedRegion;\n const dataList = state.apps.dataList.filter(({ entityId })=>!isOneTimePaymentOffer(entityId));\n const entityType = getEntityRegistrationByView(currentView);\n const showRecommendations = state.config.featureFlags.recommendations;\n const { whatsNewApps, trendingApps } = state.apps.recommendedApps;\n const { whatsNewService, trendingService } = state.services.recommendedServices;\n return {\n galleryPage,\n pageSize,\n requestFilteredLoading,\n entityData: {\n [Constants.EntityType.App]: {\n allData: dataList,\n subsetData: state.apps.subsetData,\n dataMap: state.apps.dataMap,\n idMap: state.apps.idMap,\n subsetSearchQuery,\n curatedData: state.apps.curatedData,\n activeFilters: state.apps.activeFilters,\n count: state.apps.count,\n countriesList: {}\n },\n [Constants.EntityType.Service]: {\n allData: state.services.dataList,\n subsetData: state.services.subsetData,\n dataMap: state.services.dataMap,\n idMap: state.services.idMap,\n subsetSearchQuery,\n curatedData: state.services.curatedData,\n activeFilters: state.services.activeFilters,\n count: state.services.count,\n countriesList: state.services.countriesList\n },\n [Constants.EntityType.CloudsIndustry]: {\n allData: state.cloudsIndustry.dataList,\n subsetData: state.cloudsIndustry.subsetData,\n dataMap: state.cloudsIndustry.dataMap,\n idMap: state.cloudsIndustry.idMap,\n subsetSearchQuery,\n curatedData: state.cloudsIndustry.curatedData,\n activeFilters: state.cloudsIndustry.activeFilters,\n count: state.cloudsIndustry.count,\n countriesList: state.services.countriesList\n }\n },\n showPrivateApps,\n isEmbedded,\n partnerAppDataLoaded: apps.partnerAppDataLoaded,\n partnerAppDataLoadedError: apps.partnerAppDataLoadedError,\n embedHost,\n entityType,\n query,\n params: ownProps.params,\n countryCode,\n regionCode,\n isAppSource,\n isMobile,\n currentView,\n selectedLocale: locale,\n linksList,\n appsActiveFilters: apps.activeFilters,\n servicesActiveFilters: services.activeFilters,\n cloudsIndustryActiveFilters: cloudsIndustry.activeFilters,\n featureFlags,\n selectedCountry: state.services ? state.services.selectedCountry : null,\n recoMicrosoft365WhatsNewItems: showRecommendations ? apps.recommendedApps.microsoft365WhatsNewApps : [],\n recoMicrosoft365TrendingItems: showRecommendations ? apps.recommendedApps.microsoft365TrendingApps : [],\n recoWhatsNewItems: showRecommendations && (entityType === Constants.EntityType.App ? whatsNewApps : entityType === Constants.EntityType.Service ? whatsNewService : []),\n recoTrendingItems: showRecommendations && (entityType === Constants.EntityType.App ? trendingApps : entityType === Constants.EntityType.Service ? trendingService : []),\n isMaccUser: isMaccUser(state.users)\n };\n};\nexport const mapDispatchToProps = (dispatch)=>{\n return {\n stateCountryFilterHandler: ()=>{\n dispatch(getFilteredServiceData());\n },\n updateCurrentGalleryViewIsCurated: (isCuratedGalleryView)=>{\n dispatch(createUpdateCurrentGalleryViewIsCurated({\n isCuratedGalleryView: isCuratedGalleryView\n }));\n },\n changeSearchText: (searchvalue)=>dispatch(createSearchboxInputChangedAction({\n searchString: searchvalue\n }))\n };\n};\nconst GalleryPageContainer = withRouter(connect(mapStateToProps, mapDispatchToProps)(Gallery));\nexport default GalleryPageContainer;\n","/* istanbul ignore file */ export function getAppGalleryPageTitle(context) {\n return context.loc('appGallery_pageTitle');\n}\nexport function getFilteredAppPageTitle(context) {\n return context.loc('filteredApp_pageTitle');\n}\nexport function getMyReviewsPageTitle(context) {\n return context.loc('review_pageTitle');\n}\nexport function getFeaturedAppsTitle() {\n return 'FeaturedAppsInFilter';\n}\n"],"names":["_define_property","obj","key","value","Object","BannerLinks","_this_props_links","text","url","params","bannerTitle","telemetryDetails","JSON","args","event","_this_props_onLinkClick","_this_props","bannerLinkClicked","linkClickHandle","BannerContent","data","imgURL","title","description","links","WrappedBanner","bannerClickHandle","children","_links_","isHydrated","useHydration","shouldWrapWithLink","_data_links","Banner","props","context","payload","logger","CuratedGallery","sectionsTelemetry","section","perfPayload","titleId","isUrlKeyExists","filterName","urlFilters","urlKey","productInfo","shortcutFilters","_DataMap__","isCategoryExist","catagorySection","_DataMap_categories__","TileType","sections","recoWhatsNewItems","recoTrendingItems","selectedCountry","selectedLocale","_section_items","item","ribbonItems","index","target","source","_object_spread","i","arguments","ownKeys","sym","object","enumerableOnly","keys","symbols","renderL3LevelCuration","state","ownProps","category","getFilterFromQueryParam","query","bottomLevelProductFilter","filter","activeFilter","entityDataState","curatedData","whatsNewApps","trendingApps","whatsNewService","trendingService","showRecommendations","handleFilterToggle","filterType","filterValue","isActive","href","actionModifier","clickCallback","handleFilterToggleAction","FilterItem","className","showExpandedIcon","filterText","filterId","filterClassname","role","clickHandler","otherProps","classNames","FilterQuery","FilterPane","nextProps","currentProductData","_props_query","productData","products","productFilter","product","selectedRegion","firstSupportedCountryIndex","isProductFilter","filters","flat","_this_props_dataMap_products_","isCategoryFilter","isIndustryFilter","currentFilter","queryValue","isAppComplianceFilter","activeParentFilter","visibleSubFilters","filterKey","generatedId","classNameFilterPaneRoot","hideCheckbox","filterKeys","filterKeyA","filterKeyB","childFilter","childProps","filterCollection","subTitles","subTitle","indentFilters","office","shouldIndent","ShortcutFilters","indent","categoryKey","categoryValue","embedHost","productGroupings","acc","productKey","app","defaultItem","option","complianceTypes","complianceTypeGroupings","complianceType","compliance","type","regionCode","countryCode","states","allStateCode","region","oldValue","newValue","defaultCategories","dynamicCategories","hideIndustriesAndProducts","showServiceTypeFilters","categoryList","items","filterList","filterCountries","checkboxFilterPadding","FilterLink","name","start","end","_this_props_link_links","_this_props_link","buttonFocused","undefined","checkboxTooltip","onClick","pageAction","useTelemetry","rootGroupName","countryGroupName","regionGroupName","window","prevProps","_getWindow_performance","_getWindow","window1","navigationStart","requestStart","performance","dataMapFilters","dataMapArray","dataValues","countriesFilters","regionsFilters","filtersMap","filterA","filterB","currentProduct","parent","entityType","queryParams","isProduct","isCategory","isIndustry","prefix","route","productMask","tooltip","filterChildren","categoryChild","filterChild","productsMap","productChildrenKeys","productChildren","productChild","BackendKey","datavalue","industriesMap","industries","cloudIndustries","filteredCloudIndustries","categoryMap","categories","trialsMap","trials","trial","pricingModelMap","pricingModels","pricingModel","ratingsMap","ratings","rating","compianceMap","comlianceTypes","comlianceType","azureBenefitEligibleMap","azureBenefitEligibleTypes","azureBenefitEligibleType","serviceTypesMap","serviceTypes","serviceType","a","b","regions","copilotExtensionMap","copilotExtensionTypes","copilotExtensionType","searchWord","canonicalSearch","link","isWordFound","subLink","Array","_item_url_includes","_item_url","_getNpsModule","activeFilters","redirectHref","filterSearchValue","activesCount","currentSubLink","subFilter","isSubActive","_this_state_windowSize","isGroup","activeChildren","isChild","isRoot","localizedName","clearAll","filterGroups","filterGroupLinksLength","dataMap","isEmbedded","countriesList","currentView","getFilterLink","stateCountryFilterHandler","PaginationControl","pageArray","min","max","page","galleryPage","maxPages","getPageLink","n","e","getViewAllButtonText","viewTextMapping","clearSearchAndFilters","changeSearchText","viewAllAppsUrl","renderViewAllAppsButton","isPrimaryButton","currentPage","viewAllAppsClassName","viewAllAppsText","logTelemetry","renderClearFiltersButton","clearFiltersText","resetFiltersUrl","NoSearchResultsButtons","isSearch","isFilter","NoSearchResults","previousSearchText","AppSourceFilteredGallery","_getWindow_location","document","pageSize","Math","itemCount","entityRegistration","entity","linkType","_getProductByUrlKey","publicGalleryUri","privateGalleryUri","encodeURIComponent","_this_filteredData","partnerAppDataLoaded","showPrivateApps","searchText","isSelectedFilters","tagItemStyles","GalleryHeader","newPath","headerFilters","isConsultingSevices","filterTitleName","AppPromotionPane","telemetryLink","storeLink","bannerInfo","descriptionFallback","PopularApps","popularAppsTitle","ribbonPopularApps","ribbonKey","offer","requestFilteredLoading","loadingComponent","defaultPromotionsBanners","promotionsBanners","getCurrentPromotionsBanner","getPromotionBannerForSearchText","searchTextLowerCase","bannerForSearchText","banner","keyword","getPromotionBannerForFilter","promotedBannerForActiveFilters","_banner_dataValue","getPromotionBanner","searchPromotionBanner","lastLevelFilters","_to_property_key","arg","_to_primitive","input","hint","_type_of","prim","Symbol","res","TypeError","String","Number","Gallery","_this_getEntityData","_this_props_entityType","currentEntity","_object_without_properties","excluded","_object_without_properties_loose","sourceKeys","sourceSymbolKeys","entityData","searchQuery","embedHostUtils","_this_getCurrentEntityData","_this_props_countryCode","_this_props_regionCode","_this_getCurrentEntityData1","shouldShowCuratedView","nextShouldShowCuratedView","activeFiltersWithoutReference","firstFilterName","curEntityData","curEntityCount","shouldDisplayNumricValues","f","entitiesData","results","entities","galleryTitle","galleryResultsCount","numResultsText","showPopular","ribbonItem","popularItems","isAppSource","recoMicrosoft365WhatsNewItems","recoMicrosoft365TrendingItems","isOfficeFilter","hasNoActiveFilters","isFirstPage","hasSearch","_this_getCurrentEntityData_activeFilters_","_this_getCurrentEntityData_activeFilters_1","featuredRibbonKey","ribbonTitle","filteredItems","partnerAppDataLoadedError","isMobile","appsActiveFilters","servicesActiveFilters","cloudsIndustryActiveFilters","asH1","shouldHideSortingDropdown","FilteredGalleryHeader","isMaccUser","hideFilterPane","galleryContainerClass","GalleryContent","tryParseInt","val","parsedVal","parseInt","isNaN","_ownProps_location_query_showPrivateApps","_ownProps_params","_query_region","requestFilteredQuery","queryProp","featureFlags","locale","billingCountryCode","apps","services","cloudsIndustry","linksList","subsetSearchQuery","dataList","entityId","mapDispatchToProps","dispatch","isCuratedGalleryView","searchvalue","getAppGalleryPageTitle","getFilteredAppPageTitle","getMyReviewsPageTitle","getFeaturedAppsTitle"],"mappings":"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,kBACA,uBACH,CACD,MAAO,uBACP,YAAa,4BACb,oBAAqB,4IACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,0CACT,EACH,CACD,S,mFACA,WAAY,SAChB,EACA,CACI,KAAM,mBACN,UAAW,gCAAoC,CAC/C,SAAU,CACN,cACA,mBACH,CACD,MAAO,mBACP,YAAa,wBACb,oBAAqB,qHACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,mCACT,EACH,CACD,S,+EACA,WAAY,SAChB,EACA,CACI,KAAM,iBACN,UAAW,0BAA8B,CACzC,SAAU,CACN,iBACH,CACD,MAAO,iBACP,YAAa,uBACb,oBAAqB,yFACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,uCACT,EACH,CACD,S,6EACA,WAAY,SAChB,EACA,CACI,KAAM,uBACN,UAAW,kBAAsB,CACjC,SAAU,CACN,QACA,kBACH,CACD,MAAO,kBACP,YAAa,4BACb,oBAAqB,iEACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,kBACH,CACD,IAAK,iCACT,EACH,CACD,S,oEACA,WAAY,SAChB,EACA,CACI,KAAM,4BACN,UAAW,uBAA2B,CACtC,SAAU,CACN,aACA,uBACA,cACH,CACD,MAAO,uBACP,YAAa,iCACb,oBAAqB,gFACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,uBACH,CACD,IAAK,sCACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,mBACN,UAAW,sBAA0B,CACrC,SAAU,CACN,eACA,eACA,SACH,CACD,MAAO,aACP,YAAa,4BACb,oBAAqB,uHACrB,MAAO,CACH,CACI,KAAM,gCACN,OAAQ,CACJ,mBACH,CACD,IAAK,4BACT,EACH,CACD,S,qEACA,WAAY,SAChB,EACA,CACI,KAAM,uCACN,UAAW,oBAAwB,CACnC,SAAU,CACN,UACA,oBACA,WACH,CACD,MAAO,oBACP,YAAa,2CACb,oBAAqB,2FACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,oBACH,CACD,IAAK,gCACT,EACH,CACD,S,sEACA,WAAY,SAChB,EACA,CACI,KAAM,uBACN,SAAU,CACN,QACA,kBACH,CACD,MAAO,kBACP,YAAa,4BACb,oBAAqB,0FACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,kBACH,CACD,IAAK,+BACT,EACH,CACD,S,6EACA,WAAY,SAChB,EACA,CACI,KAAM,YACN,SAAU,CACN,YACH,CACD,MAAO,YACP,YAAa,mBACb,oBAAqB,8MACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,mCACT,EACH,CACD,S,wEACA,WAAY,SAChB,EACA,CACI,KAAM,UACN,SAAU,CACN,UACA,oBACA,aACH,CACD,MAAO,oBACP,YAAa,iBACb,oBAAqB,yJACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,iCACT,EACH,CACD,S,sEACA,WAAY,SAChB,EACA,CACI,KAAM,OACN,SAAU,CACN,OACH,CACD,MAAO,iBACP,YAAa,cACb,oBAAqB,yJACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,8BACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,QACN,SAAU,CACN,QACA,kBACA,kBACA,WACH,CACD,MAAO,kBACP,YAAa,eACb,oBAAqB,uGACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,+BACT,EACH,CACD,S,oEACA,WAAY,SAChB,EACA,CACI,KAAM,YACN,SAAU,CACN,YACA,sBACH,CACD,MAAO,sBACP,YAAa,mBACb,oBAAqB,sLACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,mCACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,2BACN,SAAU,CACN,YACH,CACD,MAAO,sBACP,YAAa,gCACb,oBAAqB,kIACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,sBACH,CACD,IAAK,oCACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,+BACN,SAAU,CACN,QACA,kBACA,qBACH,CACD,MAAO,QACP,YAAa,mCACb,oBAAqB,2GACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,QACH,CACD,IAAK,sCACT,EACA,CACI,KAAM,uBACN,OAAQ,CACJ,qBACH,CACD,IAAK,iDACT,EACH,CACD,S,oEACA,WAAY,SAChB,EACA,CACI,KAAM,kCACN,SAAU,CACN,wBACA,SACA,mBACA,YACH,CACD,MAAO,aACP,YAAa,qCACb,oBAAqB,iIACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,aACH,CACD,IAAK,gCACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,wBACN,SAAU,CACN,SACA,mBACH,CACD,MAAO,mBACP,YAAa,6BACb,oBAAqB,8FACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,mBACH,CACD,IAAK,iCACT,EACH,CACD,S,8EACA,WAAY,SAChB,EACA,CACI,KAAM,oBACN,UAAW,oBAAwB,CACnC,SAAU,CACN,UACA,oBACH,CACD,MAAO,oBACP,YAAa,0BACb,oBAAqB,0GACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,oBACH,CACD,IAAK,mCACT,EACH,CACD,S,sEACA,WAAY,SAChB,EACA,CACI,KAAM,yBACN,UAAW,oBAAwB,CACnC,SAAU,CACN,UACA,oBACA,OACA,QACA,OACH,CACD,MAAO,oBACP,YAAa,8BACb,oBAAqB,mHACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,oBACH,CACD,IAAK,mCACT,EACH,CACD,S,sEACA,WAAY,SAChB,EACA,CACI,KAAM,uBACN,UAAW,uBAA2B,CACtC,SAAU,CACN,aACA,uBACA,UACH,CACD,MAAO,uBACP,YAAa,6BACb,oBAAqB,gHACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,uBACH,CACD,IAAK,sCACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,iBACN,UAAW,iBAAqB,CAChC,SAAU,CACN,OACA,iBACA,cACA,mBACA,gBACH,CACD,MAAO,iBACP,YAAa,uBACb,oBAAqB,yJACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,iBACH,CACD,IAAK,8BACT,EACH,CACD,SAAU,GACV,WAAY,SAChB,EACA,CACI,KAAM,qBACN,SAAU,CACN,WACA,QACA,UACA,WACA,SACA,WACH,CACD,MAAO,qBACP,YAAa,2BACb,oBAAqB,gKACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,qBACH,CACD,IAAK,mCACT,EACH,CACD,S,gFACA,WAAY,SAChB,EACA,CACI,KAAM,yBACN,YAAa,qBACb,oBAAqB,sMACrB,SAAU,CACN,eACA,MACH,CACD,MAAO,yBACP,S,oFACA,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,yBACH,CACD,IAAK,6BACT,EACH,AACL,EACA,CACI,KAAM,yBACN,UAAW,gCAAoC,CAC/C,SAAU,CACN,yBACH,CACD,MAAO,qBACP,YAAa,0BACb,oBAAqB,+JACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,qBACH,CACD,IAAK,mCACT,EACH,CACD,S,8FACA,WAAY,SAChB,EACA,CACI,KAAM,iCACN,UAAW,wCAA4C,CACvD,SAAU,CACN,iCACH,CACD,MAAO,6BACP,YAAa,iCACb,oBAAqB,kMACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,6BACH,CACD,IAAK,uCACT,EACH,CACD,S,sGACA,WAAY,SAChB,EACA,CACI,KAAM,8CACN,UAAW,oDAAwD,CACnE,SAAU,CACN,6BACA,8CACH,CACD,MAAO,0CACP,YAAa,6CACb,oBAAqB,0LACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,oBACH,CACD,IAAK,8BACT,EACH,CACD,S,mHACA,WAAY,SAChB,EACA,CACI,KAAM,oCACN,UAAW,2CAA+C,CAC1D,SAAU,CACN,oCACH,CACD,MAAO,gCACP,YAAa,oCACb,oBAAqB,oJACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,gCACH,CACD,IAAK,6BACT,EACH,CACD,S,yGACA,WAAY,SAChB,EACA,CACI,KAAM,0CACN,UAAW,qCAAyC,CACpD,SAAU,CACN,8BACA,0CACH,CACD,MAAO,sCACP,YAAa,yCACb,oBAAqB,iLACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,sCACH,CACD,IAAK,qCACT,EACH,CACD,S,+GACA,WAAY,SAChB,EACA,CACI,KAAM,gCACN,UAAW,0CAA8C,CACzD,SAAU,CACN,oCACA,gCACH,CACD,MAAO,gCACP,YAAa,oCACb,oBAAqB,sMACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,gCACH,CACD,IAAK,qCACT,EACH,CACD,S,qGACA,WAAY,SAChB,EACA,CACI,KAAM,6BACN,UAAW,+BACX,SAAU,CACN,uBACA,UACA,WACH,AACL,EACA,CACI,KAAM,kBACN,UAAW,kBAAsB,CACjC,SAAU,CACN,QACA,kBACA,OACA,QACA,OACH,CACD,MAAO,kBACP,YAAa,wBACb,oBAAqB,sJACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,kBACH,CACD,IAAK,gDACT,EACH,CACD,S,oEACA,WAAY,SAChB,EACA,CACI,KAAM,aACN,UAAW,WAAyB,yBAA6B,CAAG,4BAAgC,CACpG,SAAU,CACN,aACH,CACD,MAAO,aACP,YAAa,gCACb,oBAAqB,oNACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,qDACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,YACN,UAAW,WAAyB,wBAA4B,CAAG,wBAA4B,CAC/F,SAAU,CACN,YACH,CACD,MAAO,YACP,YAAa,+BACb,oBAAqB,sPACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,4GACT,EACH,CACD,S,wEACA,WAAY,SAChB,EACA,CACI,KAAM,yBACN,UAAW,WAAyB,0CAA8C,CAAG,wCAA4C,CACjI,MAAO,CACH,CACI,KAAM,6BACN,IAAK,8EACT,EACH,CACD,SAAU,CACN,yBACH,CACD,MAAO,yBACP,YAAa,yCACb,oBAAqB,6OACrB,S,kFACA,WAAY,SAChB,EACA,CACI,KAAM,eACN,UAAW,WAAyB,2BAA+B,CAAG,2BAA+B,CACrG,SAAU,CACN,eACH,CACD,MAAO,eACP,YAAa,kCACb,oBAAqB,oLACrB,S,2EACA,WAAY,SAChB,EACA,CACI,KAAM,SACN,UAAW,WAAyB,qBAAyB,CAAG,2BAA+B,CAC/F,MAAO,CACH,CACI,KAAM,6BACN,IAAK,iDACT,EACH,CACD,SAAU,CACN,SACH,CACD,MAAO,SACP,YAAa,4BACb,oBAAqB,gMACrB,S,qEACA,WAAY,SAChB,EACA,CACI,KAAM,qBACN,UAAW,WAAyB,oCAAwC,CAAG,gCAAoC,CACnH,SAAU,CACN,oBACH,CACD,MAAO,qBACP,YAAa,uCACb,oBAAqB,4MACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,oGACT,EACH,CACD,S,iFACA,WAAY,SAChB,EACA,CACI,KAAM,aACN,UAAW,WAAyB,yBAA6B,CAAG,yBAA6B,CACjG,SAAU,CACN,aACH,CACD,MAAO,aACP,YAAa,gCACb,oBAAqB,6OACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,qDACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,aACN,UAAW,WAAyB,yBAA6B,CAAG,wCAA4C,CAChH,SAAU,CACN,SACH,CACD,MAAO,SACP,YAAa,gCACb,oBAAqB,0NACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,gFACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,4BACN,UAAW,WAAyB,6CAAiD,CAAG,yCAA6C,CACrI,SAAU,CACN,gBACH,CACD,MAAO,oCACP,YAAa,4CACb,oBAAqB,uNACrB,MAAO,CACH,CACI,KAAM,gCACN,IAAK,sCACT,EACA,CACI,KAAM,+BACN,IAAK,yBACT,EACH,CACD,S,sFACA,WAAY,SAChB,EACA,CACI,KAAM,uBACN,UAAW,WAAyB,uCAA2C,CAAG,mCAAuC,CACzH,SAAU,CACN,uBACH,CACD,MAAO,wBACP,YAAa,0CACb,oBAAqB,+LACrB,S,oFACA,WAAY,SAChB,EACA,CACI,KAAM,SACN,UAAW,WAAyB,2CAA+C,CAAG,qCAAyC,CAC/H,SAAU,CACN,yBACH,CACD,MAAO,SACP,YAAa,4CACb,oBAAqB,kQACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,4EACT,EACH,CACD,S,wFACA,WAAY,SAChB,EACA,CACI,KAAM,uBACN,UAAW,WAAyB,wCAA4C,CAAG,mCAAuC,CAC1H,SAAU,CACN,uBACH,CACD,MAAO,uBACP,YAAa,0CACb,oBAAqB,6NACrB,S,oFACJ,EACA,CACI,KAAM,kBACN,UAAW,WAAyB,gDAAoD,CAAG,iCAAqC,CAChI,SAAU,CACN,kBACH,CACD,MAAO,kBACP,YAAa,iDACb,oBAAqB,4JACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,0EACT,EACH,CACD,S,uEACJ,EACA,CACI,KAAM,yBACN,UAAW,WAAyB,0CAA8C,CAAG,qCAAyC,CAC9H,SAAU,CACN,yBACH,CACD,MAAO,yBACP,YAAa,yCACb,oBAAqB,uPACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,8DACT,EACH,CACD,S,kFACJ,EACA,CACI,KAAM,YACN,UAAW,sBAA0B,CACrC,SAAU,CACN,aACA,uBACH,CACD,MAAO,aACP,YAAa,mBACb,oBAAqB,4FACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,aACH,CACD,IAAK,wCACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,YACN,UAAW,sBAA0B,CACrC,SAAU,CACN,YACA,eACA,gBACH,CACD,MAAO,qCACP,YAAa,mBACb,oBAAqB,oRACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,8BACT,EACH,CACD,S,iFACA,WAAY,SAChB,EACA,CACI,KAAM,qBACN,UAAW,4BAAgC,CAC3C,SAAU,CACN,qBACA,OACH,CACD,MAAO,6CACP,YAAa,yBACb,oBAAqB,qNACrB,MAAO,EAAE,CACT,S,uEACA,WAAY,SAChB,EACA,CACI,KAAM,WACN,UAAW,oBAAwB,CACnC,SAAU,CACN,MACA,WACA,gBACA,UACA,eACH,CACD,MAAO,qBACP,YAAa,iBACb,oBAAqB,0KACrB,MAAO,CACH,CACI,KAAM,uBACN,OAAQ,CACJ,WACH,CACD,IAAK,6BACT,EACH,CACD,S,4EACA,WAAY,SAChB,EACA,CACI,KAAM,eACN,UAAW,wBAA4B,CACvC,SAAU,CACN,WACA,cACA,eACH,CACD,MAAO,yBACP,YAAa,qBACb,oBAAqB,2KACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,kCACT,EACH,CACD,S,mEACA,WAAY,SAChB,EACA,CACI,KAAM,gBACN,UAAW,0BAA8B,CACzC,SAAU,CACN,iBACH,CACD,MAAO,2BACP,YAAa,uBACb,oBAAqB,kMACrB,MAAO,CACH,CACI,KAAM,6BACN,IAAK,mCACT,EACH,CACD,S,6EACA,WAAY,SAChB,EACH,CACKC,GAAoB,CACtB,CAAC,mBAAwB,CAAC,CAAE,EAAE,CAC9B,CAAC,uBAA4B,CAAC,CAAE,EAAE,CAClC,CAAC,8BAAmC,CAAC,CAAE,CACnC,CACI,KAAM,qBACN,UAAW,WAAyB,oCAAwC,CAAG,gCAAoC,CACnH,SAAU,CACN,oBACH,CACD,MAAO,yCACP,YAAa,sDACb,oBAAqB,kOACrB,MAAO,CACH,CACI,KAAM,2BACN,OAAQ,CACJ,yCACH,CACD,IAAK,8FACT,EACA,CACI,KAAM,+BACN,IAAK,iDACT,EACH,CACD,S,iFACA,WAAY,SAChB,EACA,CACI,KAAM,kBACN,UAAW,WAAyB,gDAAoD,CAAG,iCAAqC,CAChI,SAAU,CACN,kBACH,CACD,MAAO,gCACP,YAAa,gEACb,oBAAqB,mMACrB,MAAO,CACH,CACI,KAAM,2BACN,OAAQ,CACJ,gCACH,CACD,IAAK,qCACT,EACA,CACI,KAAM,+BACN,IAAK,yCACT,EACH,CACD,S,uEACJ,EACA,CACI,KAAM,aACN,UAAW,WAAyB,yBAA6B,CAAG,wCAA4C,CAChH,SAAU,CACN,SACH,CACD,MAAO,iCACP,YAAa,+CACb,oBAAqB,qJACrB,MAAO,CACH,CACI,KAAM,2BACN,OAAQ,CACJ,iCACH,CACD,IAAK,0EACT,EACA,CACI,KAAM,+BACN,IAAK,yCACT,EACH,CACD,S,yEACA,WAAY,SAChB,EACA,CACI,KAAM,SACN,UAAW,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"}