@clickview/lite 0.53.4 → 0.53.6-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundles.json +1 -1
- package/dist/css/{6094-lite-bcd14ea6d2.chunk.css → 1019-lite-bbcf2bff27.chunk.css} +3 -2
- package/dist/css/{1329-lite-be86e46c78.chunk.css → 1329-lite-458183b24f.chunk.css} +2 -2
- package/dist/css/{1838-lite-e6a28b84ed.chunk.css → 1838-lite-981a5e0783.chunk.css} +1 -1
- package/dist/css/{1760-lite-bcd14ea6d2.chunk.css → 2548-lite-bbcf2bff27.chunk.css} +3 -2
- package/dist/css/{3969-lite-29e14c7861.chunk.css → 3969-lite-ed58852d97.chunk.css} +2 -2
- package/dist/css/{422-lite-dace5f41de.chunk.css → 422-lite-b8c1fd1dee.chunk.css} +1 -1
- package/dist/css/{4502-lite-92be6697e7.chunk.css → 4502-lite-eaf1a1113c.chunk.css} +1 -1
- package/dist/css/{5220-lite-9832e2c2fb.chunk.css → 5220-lite-8a8d5d035f.chunk.css} +1 -1
- package/dist/css/{537-lite-56a3fc7e48.chunk.css → 537-lite-4de4c47713.chunk.css} +1 -1
- package/dist/css/{6489-lite-9045df4bb9.chunk.css → 6489-lite-e271aaed2d.chunk.css} +1 -1
- package/dist/css/{6544-lite-d46c2d634c.chunk.css → 6544-lite-319ed51ccc.chunk.css} +1 -1
- package/dist/css/{5549-lite-97ed26d0aa.chunk.css → 6596-lite-bb28584922.chunk.css} +2 -1
- package/dist/css/{841-lite-27b6485cd1.chunk.css → 841-lite-46ef623835.chunk.css} +1 -1
- package/dist/css/{8522-lite-2f2797038e.chunk.css → 8522-lite-f100606ec5.chunk.css} +1 -1
- package/dist/css/{8801-lite-c88eb54bee.chunk.css → 8801-lite-d34200ab29.chunk.css} +2 -2
- package/dist/css/{3640-lite-97ed26d0aa.chunk.css → 9010-lite-bb28584922.chunk.css} +2 -1
- package/dist/languages/en.json +1 -1
- package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js → 1019-8f977b5095-lite.chunk.js} +2 -2
- package/dist/scripts/{1760-8d51aa0b08-lite.chunk.js.map → 1019-8f977b5095-lite.chunk.js.map} +1 -1
- package/dist/scripts/1080-509aa6e738-lite.chunk.js +2 -0
- package/dist/scripts/1080-509aa6e738-lite.chunk.js.map +1 -0
- package/dist/scripts/1169-e64f0dbd67-lite.chunk.js +2 -0
- package/dist/scripts/1169-e64f0dbd67-lite.chunk.js.map +1 -0
- package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js +3 -0
- package/dist/scripts/1329-bdbbf6c7fd-lite.chunk.js.map +1 -0
- package/dist/scripts/{1379-976d20185f-lite.chunk.js → 1379-ca519ec56b-lite.chunk.js} +3 -3
- package/dist/scripts/{1379-976d20185f-lite.chunk.js.map → 1379-ca519ec56b-lite.chunk.js.map} +1 -1
- package/dist/scripts/1518-4f76dbeee8-lite.chunk.js +2 -0
- package/dist/scripts/1518-4f76dbeee8-lite.chunk.js.map +1 -0
- package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js → 1838-95081e8dea-lite.chunk.js} +1 -1
- package/dist/scripts/{1838-87fb96ee2c-lite.chunk.js.map → 1838-95081e8dea-lite.chunk.js.map} +1 -1
- package/dist/scripts/184-6ce393c251-lite.chunk.js +2 -0
- package/dist/scripts/184-6ce393c251-lite.chunk.js.map +1 -0
- package/dist/scripts/{2004-3005565af0-lite.chunk.js → 2004-e20d72976c-lite.chunk.js} +3 -3
- package/dist/scripts/{2004-3005565af0-lite.chunk.js.map → 2004-e20d72976c-lite.chunk.js.map} +1 -1
- package/dist/scripts/{2094-58390aa60a-lite.chunk.js → 2094-a16bbca3a3-lite.chunk.js} +2 -2
- package/dist/scripts/2094-a16bbca3a3-lite.chunk.js.map +1 -0
- package/dist/scripts/2142-c46ca4050f-lite.chunk.js +2 -0
- package/dist/scripts/2142-c46ca4050f-lite.chunk.js.map +1 -0
- package/dist/scripts/2199-be40da7440-lite.chunk.js +2 -0
- package/dist/scripts/2199-be40da7440-lite.chunk.js.map +1 -0
- package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js +2 -0
- package/dist/scripts/2548-c48b8d3e3c-lite.chunk.js.map +1 -0
- package/dist/scripts/3969-6d7c342d0c-lite.chunk.js +2 -0
- package/dist/scripts/3969-6d7c342d0c-lite.chunk.js.map +1 -0
- package/dist/scripts/3999-317a4538c6-lite.chunk.js +3 -0
- package/dist/scripts/3999-317a4538c6-lite.chunk.js.map +1 -0
- package/dist/scripts/{422-ee640f76c5-lite.chunk.js → 422-a63a7eb901-lite.chunk.js} +1 -1
- package/dist/scripts/{422-ee640f76c5-lite.chunk.js.map → 422-a63a7eb901-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4502-af4903784e-lite.chunk.js → 4502-a7d60fa257-lite.chunk.js} +1 -1
- package/dist/scripts/{4502-af4903784e-lite.chunk.js.map → 4502-a7d60fa257-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4554-c0d7490a46-lite.chunk.js → 4554-b9aa07891f-lite.chunk.js} +2 -2
- package/dist/scripts/4554-b9aa07891f-lite.chunk.js.map +1 -0
- package/dist/scripts/{4591-379f0fe588-lite.chunk.js → 4591-21c0094f28-lite.chunk.js} +2 -2
- package/dist/scripts/{4591-379f0fe588-lite.chunk.js.map → 4591-21c0094f28-lite.chunk.js.map} +1 -1
- package/dist/scripts/{4683-ce52da47d8-lite.chunk.js → 4683-d3afe2dfa8-lite.chunk.js} +2 -2
- package/dist/scripts/4683-d3afe2dfa8-lite.chunk.js.map +1 -0
- package/dist/scripts/5220-291b2243ad-lite.chunk.js +3 -0
- package/dist/scripts/5220-291b2243ad-lite.chunk.js.map +1 -0
- package/dist/scripts/537-6efb9bc099-lite.chunk.js +3 -0
- package/dist/scripts/537-6efb9bc099-lite.chunk.js.map +1 -0
- package/dist/scripts/5660-6711768c20-lite.chunk.js +2 -0
- package/dist/scripts/5660-6711768c20-lite.chunk.js.map +1 -0
- package/dist/scripts/5936-e839cb8193-lite.chunk.js +2 -0
- package/dist/scripts/5936-e839cb8193-lite.chunk.js.map +1 -0
- package/dist/scripts/{624-bf0ff6257f-lite.chunk.js → 624-09b51a9d32-lite.chunk.js} +3 -3
- package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.map → 624-09b51a9d32-lite.chunk.js.map} +1 -1
- package/dist/scripts/6450-f16821bf09-lite.chunk.js +2 -0
- package/dist/scripts/6450-f16821bf09-lite.chunk.js.map +1 -0
- package/dist/scripts/6489-c242844567-lite.chunk.js +3 -0
- package/dist/scripts/6489-c242844567-lite.chunk.js.map +1 -0
- package/dist/scripts/6544-07898e3fa3-lite.chunk.js +2 -0
- package/dist/scripts/6544-07898e3fa3-lite.chunk.js.map +1 -0
- package/dist/scripts/6596-848fbf79bb-lite.chunk.js +2 -0
- package/dist/scripts/6596-848fbf79bb-lite.chunk.js.map +1 -0
- package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js → 6741-fe09fea334-lite.chunk.js} +3 -3
- package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.map → 6741-fe09fea334-lite.chunk.js.map} +1 -1
- package/dist/scripts/6752-0d139a6c9a-lite.chunk.js +2 -0
- package/dist/scripts/6752-0d139a6c9a-lite.chunk.js.map +1 -0
- package/dist/scripts/696-fa78eb455f-lite.chunk.js +2 -0
- package/dist/scripts/696-fa78eb455f-lite.chunk.js.map +1 -0
- package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js → 7234-d15fe07f0e-lite.chunk.js} +2 -2
- package/dist/scripts/{7234-ef6ab1e557-lite.chunk.js.map → 7234-d15fe07f0e-lite.chunk.js.map} +1 -1
- package/dist/scripts/729-594be12089-lite.chunk.js +2 -0
- package/dist/scripts/729-594be12089-lite.chunk.js.map +1 -0
- package/dist/scripts/{7293-3e6ad36a7a-lite.chunk.js → 7293-35871fc150-lite.chunk.js} +2 -2
- package/dist/scripts/7293-35871fc150-lite.chunk.js.map +1 -0
- package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js → 8192-eb7054ccc6-lite.chunk.js} +2 -2
- package/dist/scripts/{8192-e2d9a26cc5-lite.chunk.js.map → 8192-eb7054ccc6-lite.chunk.js.map} +1 -1
- package/dist/scripts/841-11af1334bf-lite.chunk.js +3 -0
- package/dist/scripts/841-11af1334bf-lite.chunk.js.map +1 -0
- package/dist/scripts/{8522-b4b217640c-lite.chunk.js → 8522-8e9c576bf6-lite.chunk.js} +1 -1
- package/dist/scripts/{8522-b4b217640c-lite.chunk.js.map → 8522-8e9c576bf6-lite.chunk.js.map} +1 -1
- package/dist/scripts/8801-3a7652eb35-lite.chunk.js +2 -0
- package/dist/scripts/8801-3a7652eb35-lite.chunk.js.map +1 -0
- package/dist/scripts/9010-ef7ea501ee-lite.chunk.js +2 -0
- package/dist/scripts/9010-ef7ea501ee-lite.chunk.js.map +1 -0
- package/dist/scripts/9139-22fb64f542-lite.chunk.js +2 -0
- package/dist/scripts/9139-22fb64f542-lite.chunk.js.map +1 -0
- package/dist/scripts/9173-e45847aa35-lite.chunk.js +2 -0
- package/dist/scripts/9173-e45847aa35-lite.chunk.js.map +1 -0
- package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js → 9395-e1a02b01ce-lite.chunk.js} +3 -3
- package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.map → 9395-e1a02b01ce-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js → 9478-13da35c4ee-lite.chunk.js} +3 -3
- package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.map → 9478-13da35c4ee-lite.chunk.js.map} +1 -1
- package/dist/scripts/{953-bf3d621a33-lite.chunk.js → 953-225db845ab-lite.chunk.js} +3 -3
- package/dist/scripts/{953-bf3d621a33-lite.chunk.js.map → 953-225db845ab-lite.chunk.js.map} +1 -1
- package/dist/scripts/{9899-68b030d4e2-lite.chunk.js → 9899-fa58471776-lite.chunk.js} +2 -2
- package/dist/scripts/{9899-68b030d4e2-lite.chunk.js.map → 9899-fa58471776-lite.chunk.js.map} +1 -1
- package/dist/scripts/bundle-7f9a9b650d.min.js +3 -0
- package/dist/scripts/bundle-7f9a9b650d.min.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/1080-4173ce26bd-lite.chunk.js +0 -2
- package/dist/scripts/1080-4173ce26bd-lite.chunk.js.map +0 -1
- package/dist/scripts/1169-d090f0a147-lite.chunk.js +0 -2
- package/dist/scripts/1169-d090f0a147-lite.chunk.js.map +0 -1
- package/dist/scripts/1329-d48379c043-lite.chunk.js +0 -3
- package/dist/scripts/1329-d48379c043-lite.chunk.js.map +0 -1
- package/dist/scripts/1518-9756fde01e-lite.chunk.js +0 -2
- package/dist/scripts/1518-9756fde01e-lite.chunk.js.map +0 -1
- package/dist/scripts/184-ee581fa2e0-lite.chunk.js +0 -2
- package/dist/scripts/184-ee581fa2e0-lite.chunk.js.map +0 -1
- package/dist/scripts/2094-58390aa60a-lite.chunk.js.map +0 -1
- package/dist/scripts/2199-476ac5922f-lite.chunk.js +0 -2
- package/dist/scripts/2199-476ac5922f-lite.chunk.js.map +0 -1
- package/dist/scripts/3640-1ac0a110f4-lite.chunk.js +0 -2
- package/dist/scripts/3640-1ac0a110f4-lite.chunk.js.map +0 -1
- package/dist/scripts/3969-c0160d0139-lite.chunk.js +0 -2
- package/dist/scripts/3969-c0160d0139-lite.chunk.js.map +0 -1
- package/dist/scripts/4063-786732e7b0-lite.chunk.js +0 -2
- package/dist/scripts/4063-786732e7b0-lite.chunk.js.map +0 -1
- package/dist/scripts/4273-de24896b28-lite.chunk.js +0 -3
- package/dist/scripts/4273-de24896b28-lite.chunk.js.map +0 -1
- package/dist/scripts/4554-c0d7490a46-lite.chunk.js.map +0 -1
- package/dist/scripts/4683-ce52da47d8-lite.chunk.js.map +0 -1
- package/dist/scripts/4850-5ddd277550-lite.chunk.js +0 -2
- package/dist/scripts/4850-5ddd277550-lite.chunk.js.map +0 -1
- package/dist/scripts/5220-85898810a6-lite.chunk.js +0 -3
- package/dist/scripts/5220-85898810a6-lite.chunk.js.map +0 -1
- package/dist/scripts/537-de7445d41a-lite.chunk.js +0 -3
- package/dist/scripts/537-de7445d41a-lite.chunk.js.map +0 -1
- package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js +0 -2
- package/dist/scripts/5549-e0ed88aaa1-lite.chunk.js.map +0 -1
- package/dist/scripts/5660-a356acdbca-lite.chunk.js +0 -2
- package/dist/scripts/5660-a356acdbca-lite.chunk.js.map +0 -1
- package/dist/scripts/5936-92d9cea005-lite.chunk.js +0 -2
- package/dist/scripts/5936-92d9cea005-lite.chunk.js.map +0 -1
- package/dist/scripts/6094-8546003d79-lite.chunk.js +0 -2
- package/dist/scripts/6094-8546003d79-lite.chunk.js.map +0 -1
- package/dist/scripts/6450-601f889072-lite.chunk.js +0 -2
- package/dist/scripts/6450-601f889072-lite.chunk.js.map +0 -1
- package/dist/scripts/6489-532a022587-lite.chunk.js +0 -3
- package/dist/scripts/6489-532a022587-lite.chunk.js.map +0 -1
- package/dist/scripts/6544-ae27efabab-lite.chunk.js +0 -2
- package/dist/scripts/6544-ae27efabab-lite.chunk.js.map +0 -1
- package/dist/scripts/6752-5dddab5e0b-lite.chunk.js +0 -2
- package/dist/scripts/6752-5dddab5e0b-lite.chunk.js.map +0 -1
- package/dist/scripts/6852-9dfd47d085-lite.chunk.js +0 -2
- package/dist/scripts/6852-9dfd47d085-lite.chunk.js.map +0 -1
- package/dist/scripts/7293-3e6ad36a7a-lite.chunk.js.map +0 -1
- package/dist/scripts/841-73ef4ba5ec-lite.chunk.js +0 -3
- package/dist/scripts/841-73ef4ba5ec-lite.chunk.js.map +0 -1
- package/dist/scripts/8801-222a1b2e99-lite.chunk.js +0 -2
- package/dist/scripts/8801-222a1b2e99-lite.chunk.js.map +0 -1
- package/dist/scripts/9139-49023800c6-lite.chunk.js +0 -2
- package/dist/scripts/9139-49023800c6-lite.chunk.js.map +0 -1
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js +0 -2
- package/dist/scripts/9173-f9708ec0de-lite.chunk.js.map +0 -1
- package/dist/scripts/bundle-e72459b30e.min.js +0 -3
- package/dist/scripts/bundle-e72459b30e.min.js.map +0 -1
- /package/dist/css/{4273-lite-a3c7435ba4.chunk.css → 3999-lite-a3c7435ba4.chunk.css} +0 -0
- /package/dist/css/{4063-lite-f72fc7b813.chunk.css → 4860-lite-f72fc7b813.chunk.css} +0 -0
- /package/dist/css/{4850-lite-f72fc7b813.chunk.css → 729-lite-f72fc7b813.chunk.css} +0 -0
- /package/dist/scripts/{1329-d48379c043-lite.chunk.js.LICENSE.txt → 1329-bdbbf6c7fd-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{1379-976d20185f-lite.chunk.js.LICENSE.txt → 1379-ca519ec56b-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{2004-3005565af0-lite.chunk.js.LICENSE.txt → 2004-e20d72976c-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{4273-de24896b28-lite.chunk.js.LICENSE.txt → 3999-317a4538c6-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{5220-85898810a6-lite.chunk.js.LICENSE.txt → 5220-291b2243ad-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{537-de7445d41a-lite.chunk.js.LICENSE.txt → 537-6efb9bc099-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{624-bf0ff6257f-lite.chunk.js.LICENSE.txt → 624-09b51a9d32-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6489-532a022587-lite.chunk.js.LICENSE.txt → 6489-c242844567-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{6741-1c125dbc6c-lite.chunk.js.LICENSE.txt → 6741-fe09fea334-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{841-73ef4ba5ec-lite.chunk.js.LICENSE.txt → 841-11af1334bf-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9395-e9b5cdbdce-lite.chunk.js.LICENSE.txt → 9395-e1a02b01ce-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{9478-abfa7ed3cc-lite.chunk.js.LICENSE.txt → 9478-13da35c4ee-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{953-bf3d621a33-lite.chunk.js.LICENSE.txt → 953-225db845ab-lite.chunk.js.LICENSE.txt} +0 -0
- /package/dist/scripts/{bundle-e72459b30e.min.js.LICENSE.txt → bundle-7f9a9b650d.min.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2094-58390aa60a-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/apps/search/components/filter-actions/FilterActions.tsx","file:///app/packages/libs/shared/src/apps/search/components/filter-button/filter-button.scss","file:///app/packages/libs/shared/src/apps/search/components/filter-button/FilterButton.tsx","file:///app/packages/libs/shared/src/utils/StateHelper.ts","file:///app/packages/libs/shared/src/apps/search/components/filter-button/MoreFiltersButton.tsx","file:///app/packages/libs/shared/src/components/widgets/items/tag-widget-item/TagWidgetItem.tsx","file:///app/packages/libs/shared/src/apps/search/components/filter-types/tag-filter/tag-filter.scss","file:///app/packages/libs/shared/src/apps/search/components/filter-types/tag-filter/TagFilter.tsx","file:///app/packages/libs/shared/src/apps/search/components/reset-button/ResetButton.tsx","file:///app/packages/libs/shared/src/apps/search/components/search-filters/SearchFilters.tsx","file:///app/packages/libs/shared/src/components/tags/PartialTagItem.tsx","file:///app/packages/libs/shared/src/components/tags/TagItem.tsx","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/widget-header.scss","file:///app/packages/libs/shared/src/components/widgets/curated-widgets/components/header/WidgetHeader.tsx","file:///app/packages/libs/shared/src/components/widgets/hooks/useWidgetKeyboard.ts","file:///app/packages/libs/shared/src/utils/DragHelper.ts","file:///app/packages/libs/shared/src/components/widgets/sliding-list/SlidingListContainer.tsx","file:///app/packages/libs/shared/src/enums/CssMeasurement.ts","file:///app/packages/libs/shared/src/enums/TagType.ts","file:///app/packages/libs/shared/src/enums/WidgetInteraction.ts","file:///app/packages/libs/shared/src/errors/handlers/HttpErrorHandlers.ts","file:///app/packages/libs/shared/src/apps/search/components/search-filters/search-filters.scss","file:///app/packages/libs/shared/src/components/tags/tags.scss"],"sourcesContent":["import * as React from 'react';\n\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\n\nconst namespace = 'search.filterActions';\n\ninterface FilterActionsProps {\n className?: string;\n onClickReset: () => void;\n onClickApply: () => void;\n active: boolean;\n}\n\nFilterActions.defaultProps = {\n active: false,\n className: ''\n};\n\nexport function FilterActions(props: FilterActionsProps): JSX.Element {\n return (\n <div className={`d-flex justify-content-between ${props.className}`}>\n {props.active ? (\n <DivButton className='text-secondary hover-text-underline cursor-pointer' onClick={props.onClickReset}>\n <Text namespace={namespace} phrase='reset' />\n </DivButton>\n ) : (\n <div className='invisible' />\n )}\n\n <DivButton className='info-link' onClick={props.onClickApply}>\n <Text namespace={namespace} phrase='apply' />\n </DivButton>\n </div>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"hideCaret\":\"KDq7l\",\"filterMenu\":\"E9o_Q\",\"twoColumnsWidth\":\"C70vU\",\"nestedCheckboxesWidth\":\"kUHcg\",\"switchWidth\":\"bi1FH\",\"moreFiltersWidth\":\"rbr22\",\"svgContainer\":\"UwDMA\"};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\n\nimport styles from './filter-button.scss';\n\n/**\n * If your filter requires some customisations to the default width, add a use case here.\n */\nfunction getCustomWidthClass(filter: SearchFilter): string {\n if (FilterHelper.displayTwoColumns(filter))\n return styles.twoColumnsWidth;\n\n // Some classifications has long names, so we make them wider\n if (filter.id === 'classification')\n return styles.classificationWidth;\n \n if (FilterHelper.displayTwoLayers(filter))\n return styles.nestedCheckboxesWidth;\n\n if (filter.type === 'switch')\n return styles.switchWidth;\n\n return '';\n}\n\nFilterButton.defaultProps = {\n hideCaret: true\n};\n\ninterface FilterButtonProps {\n filter: SearchFilter;\n hideCaret?: boolean;\n}\n\nexport function FilterButton(props: FilterButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state[props.filter.id];\n\n const isDropdownFilter = props.filter.type === 'dropdown';\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<FilterState>(currentFilterState);\n\n React.useEffect(() => {\n setLabel(FilterHelper.getLabel(props.filter, currentFilterState));\n setDraftState(currentFilterState);\n }, [ props.filter, currentFilterState?.selection ]);\n\n function onSelectItem(state: FilterState): void {\n setDraftState(state);\n\n if (isDropdownFilter)\n applyFilter(state);\n }\n\n function onClickReset(): void {\n const defaultOption = props.filter.options?.find(o => o.default);\n\n setDraftState({\n active: false,\n selection: defaultOption ? [defaultOption] : []\n });\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function applyFilter(newState: FilterState = draftState): void {\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: newState },\n state.appLink\n );\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing || isDropdownFilter)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n const FilterComponent = React.useMemo(() => {\n return props.filter.customComponent\n ? props.filter.customComponent\n : FilterHelper.mapTypeToComponent(props.filter.type);\n }, [props.filter.type]);\n\n const baseClass = `fw-semibold mx-1 btn d-flex align-items-center`;\n const caretClass = props.hideCaret && !isDropdownFilter ? styles.hideCaret : '';\n const customWidthClass = getCustomWidthClass(props.filter);\n\n if (props.filter.type === 'button')\n return (\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n );\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle\n id={`filterButton-${props.filter.id}`}\n className={`${baseClass} ${caretClass}`}\n variant={(currentFilterState.active && !isDropdownFilter) ? 'dark' : 'outline-dark'}\n disabled={props.filter.disabled}\n >\n {!!props.filter.icon && (\n <div className={styles.svgContainer}>\n <SvgContainer svgName={props.filter.icon} />\n </div>\n )}\n {props.filter.labelPrefix} {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu>\n <div className={`mx-1 ${styles.filterMenu} ${customWidthClass} ${!isDropdownFilter ? 'px-2 py-1' : ''}`}>\n <FilterComponent\n filter={props.filter}\n draftState={draftState}\n setDraftState={onSelectItem}\n />\n\n {(!isDropdownFilter && !props.filter.disabled) && (\n <FilterActions\n active={draftState.active}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n )}\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nexport const StateHelper = {\n /**\n * Helper function to get the setState function for an individual key in a state object.\n * \n * @param setState React setState action\n * @param key Property within the state object we're updating\n * @param callback Optional callback to modify data before setting state. Uses identity fn by default.\n * \n * @returns Newly updated state object\n */\n getSetStateByKey<T extends HashObject>(\n setState: React.Dispatch<React.SetStateAction<T>>,\n key: keyof T,\n callback?: (data: any, state?: T) => T[keyof T]\n ): (data: any) => void {\n return (data: any) => setState(state => {\n const fn = FunctionHelper.isFunction(callback) ? callback : FunctionHelper.useIdentity<T>();\n return { ...state, [key]: fn(data, state) };\n });\n }\n};","import * as React from 'react';\nimport { Dropdown } from 'react-bootstrap';\n\nimport { FilterActions } from 'libs/shared/apps/search/components/filter-actions/FilterActions';\nimport { FilterIds, MoreFilters } from 'libs/shared/apps/search/interfaces';\nimport { DraftState, FilterContext, FilterStateHash } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { StateHelper } from 'libs/shared/utils/StateHelper';\n\nimport styles from './filter-button.scss';\n\nfunction getTotalActiveFilters(currentState: FilterStateHash): number {\n const total = Object.keys(currentState).reduce((acc: number, key: FilterIds) => {\n return currentState[key].active\n ? acc + 1\n : acc;\n }, 0);\n\n return total;\n}\n\ninterface MoreFiltersButtonProps {\n filter: MoreFilters;\n}\n\nexport function MoreFiltersButton(props: MoreFiltersButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n const currentFilterState = state.moreFilters;\n\n const [ label, setLabel ] = React.useState(props.filter.name);\n const [ showDropdown, setShowDropdown ] = React.useState(false);\n const [ draftState, setDraftState ] = React.useState<DraftState>(currentFilterState);\n const [ totalActiveFilters, setTotalActiveFilters ] = React.useState(getTotalActiveFilters(currentFilterState));\n\n const currentFilterStateKey = Object.keys(currentFilterState).map((id: FilterIds) => {\n return `${id}:${currentFilterState[id].active}`;\n }).join('-');\n\n React.useEffect(() => {\n setDraftState(currentFilterState);\n setTotalActiveFilters(getTotalActiveFilters(currentFilterState));\n }, [ props.filter, currentFilterStateKey ]);\n\n React.useEffect(() => {\n setLabel(totalActiveFilters ? `${props.filter.name} - ${totalActiveFilters}` : props.filter.name);\n }, [totalActiveFilters]);\n\n function onClickReset(): void {\n const filterIds = Object.keys(currentFilterState) as FilterIds[];\n\n const newState = filterIds.reduce((acc: DraftState, filterId) => {\n const filter = props.filter.filters.find(f => f.id === filterId);\n const defaultOption = filter.options?.find(o => o.default);\n\n acc[filterId] = {\n active: false,\n selection: defaultOption ? [defaultOption] : []\n };\n\n return acc;\n }, {});\n\n setDraftState(newState);\n }\n\n function onClickApply(): void {\n applyFilter();\n setShowDropdown(false);\n }\n\n function onToggleDropdown(isShowing: boolean): void {\n setShowDropdown(isShowing);\n\n if (isShowing)\n return;\n\n // Apply the filter if the dropdown has been closed\n applyFilter();\n }\n\n function applyFilter(): void {\n FilterHelper.applyFilter(\n props.filter.filters,\n currentFilterState,\n draftState,\n state.appLink\n );\n }\n\n const baseClass = `fw-semibold ${styles.hideCaret} mx-1 btn`;\n\n return (\n <Dropdown onToggle={onToggleDropdown} show={showDropdown}>\n <Dropdown.Toggle id={props.filter.id} className={baseClass} variant={totalActiveFilters ? 'dark' : 'outline-dark'}>\n {label}\n </Dropdown.Toggle>\n\n <Dropdown.Menu onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className={`mx-1 ${styles.moreFiltersWidth} ${props.filter.type !== 'dropdown' ? 'px-2 py-1' : ''}`}>\n {props.filter.filters.map(filter => {\n const FilterComponent = filter.customComponent\n ? filter.customComponent\n : FilterHelper.mapTypeToComponent(filter.type);\n\n return (\n <fieldset key={filter.id}>\n <FilterComponent\n filter={filter}\n draftState={draftState[filter.id]}\n setDraftState={StateHelper.getSetStateByKey(setDraftState, filter.id)}\n isOnMoreFilters\n />\n </fieldset>\n );\n })}\n\n <FilterActions\n active={!!Object.keys(draftState).find((key: FilterIds) => draftState[key].active)}\n onClickReset={onClickReset}\n onClickApply={onClickApply}\n />\n </div>\n </Dropdown.Menu>\n </Dropdown>\n );\n}","import React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { FilterOption } from 'libs/shared/apps/search/interfaces';\nimport { TagItem } from 'libs/shared/components/tags/TagItem';\nimport { BaseObject, Tag } from 'libs/shared/interfaces';\n\nexport interface TagWidgetItemProps {\n appLink: Core.AppLink;\n data: Tag;\n selectedItems?: BaseObject[];\n onClick?: (data: Tag | FilterOption) => void;\n}\n\nexport function TagWidgetItem(props: TagWidgetItemProps): JSX.Element {\n const isSelected = props.selectedItems.find(selection => selection.id === props.data.id);\n\n const colorClass = isSelected ? `bg-gray-900 text-white` : 'bg-light';\n\n return (\n <TagItem\n tag={props.data}\n appLink={props.appLink}\n tagClass={`no-decoration ${colorClass} lh-1`}\n onClick={() => props.onClick(props.data)}\n />\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"tagItem\":\"j84HW\"};","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { FilterOption, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterState } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { PartialTagItem } from 'libs/shared/components/tags/PartialTagItem';\nimport { DynamicWidget } from 'libs/shared/components/widgets/dynamic-widget/DynamicWidget';\nimport { TagWidgetItem, TagWidgetItemProps } from 'libs/shared/components/widgets/items/tag-widget-item/TagWidgetItem';\n\nimport styles from './tag-filter.scss';\n\ninterface TagFilterProps {\n filter: SearchFilter;\n queryParams: HashObject;\n isFetching?: boolean;\n}\n\nexport function TagFilter(props: TagFilterProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n if (!props.filter?.id)\n return <></>;\n\n const currentFilterState = state[props.filter.id];\n\n const { selection: selections } = currentFilterState;\n\n const unappliedOptions = props.filter?.options?.filter(opt => {\n return !selections?.find(selection => selection.id === opt.id);\n }) ?? [];\n\n function onClickOption(option: FilterOption): void {\n let nextFilterState: FilterState = null;\n\n let indexOfItem: number = -1;\n\n // Find the index of the selected item if it's already selected\n selections.find((selection, i) => {\n if (indexOfItem > -1)\n return;\n\n if (selection.id.toString() !== option.id.toString())\n return;\n\n indexOfItem = i;\n });\n\n if (indexOfItem >= 0) {\n const newItems = [ ...selections.slice(0, indexOfItem), ...selections.slice(indexOfItem + 1) ];\n \n nextFilterState = {\n active: !!newItems.length,\n selection: newItems\n };\n } else {\n nextFilterState = {\n active: true,\n selection: selections.concat(option)\n };\n }\n\n FilterHelper.applyFilter(\n [props.filter],\n currentFilterState,\n { [props.filter.id]: nextFilterState },\n state.appLink\n );\n }\n\n function getContainerClass(): string {\n let className = 'mb-3';\n\n if (collection.length && props.isFetching)\n className += ' mt-n1';\n else if (!collection.length && !props.isFetching)\n className += ' d-none';\n\n return className;\n }\n\n const collection = [ ...selections, ...(props.isFetching ? [] : unappliedOptions) ];\n\n return (\n <div className={(props.isFetching || collection.length) ? 'py-2' : ''}>\n <div className={getContainerClass()}>\n {(!!collection.length || props.isFetching) && (\n <DynamicWidget\n collection={collection}\n childComponent={(props: TagWidgetItemProps) => (\n <TagWidgetItem\n {...props}\n selectedItems={selections}\n onClick={onClickOption}\n />\n )}\n staticChildren={props.isFetching\n ? new Array(3).fill({\n component: () => <PartialTagItem tagClass={styles.tagItem} />,\n position: 'end'\n })\n : []\n }\n partialLoadingComponent={() => (\n <div className='me-2'>\n <PartialTagItem tagClass={`${styles.tagItem}`} />\n </div>\n )}\n />\n )}\n </div>\n </div>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\n\nimport { MoreFilters, SearchFilter } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext } from 'libs/shared/apps/search/reducers';\nimport { DivButton } from 'libs/shared/components/div-button/DivButton';\nimport { Text } from 'libs/shared/components/text/Text';\nimport { PropsWithAnalyticsOptions } from 'libs/shared/interfaces';\n\ntype ResetButtonProps = PropsWithAnalyticsOptions<{\n currentQueryParam: string;\n mainFilters: Array<SearchFilter>;\n moreFilters: MoreFilters;\n alignLeft?: boolean;\n}>;\n\nexport function ResetButton(props: ResetButtonProps): JSX.Element {\n const { state } = React.useContext(FilterContext);\n\n const onClickReset = () => {\n Core.AppLinkHelper.trigger({\n ...state.appLink,\n params: props.currentQueryParam ? { query: props.currentQueryParam } : null\n });\n };\n\n return (\n <DivButton\n onClick={onClickReset}\n className={`${props.alignLeft ? 'order-first' : ''} hover-text-underline cursor-pointer d-flex align-items-center mx-2`}\n >\n <Text namespace='search.resetButton' phrase='reset' />\n </DivButton>\n );\n}","import * as React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\n\nimport { AnalyticsOptions } from 'libs/analytics/interfaces';\n\nimport { FilterButton } from 'libs/shared/apps/search/components/filter-button/FilterButton';\nimport { MoreFiltersButton } from 'libs/shared/apps/search/components/filter-button/MoreFiltersButton';\nimport { TagFilter } from 'libs/shared/apps/search/components/filter-types/tag-filter/TagFilter';\nimport { ResetButton } from 'libs/shared/apps/search/components/reset-button/ResetButton';\nimport { MoreFilters, SearchFilter, SearchIndices } from 'libs/shared/apps/search/interfaces';\nimport { FilterContext, FilterReducer } from 'libs/shared/apps/search/reducers';\nimport { FilterHelper } from 'libs/shared/apps/search/utils/FilterHelper';\nimport { LanguageNamespaceContext, Text } from 'libs/shared/components/text/Text';\n\nimport styles from './search-filters.scss';\n\ntype SearchFiltersProps = {\n queryParams: HashObject;\n mainFilters: SearchFilter[];\n appLink: Core.AppLink;\n moreFilters?: MoreFilters;\n isFetchingOptions?: boolean;\n constantIndices?: SearchIndices[];\n analyticsOptions?: AnalyticsOptions;\n\n hideHeading?: boolean;\n hideDivider?: boolean;\n hideResetButton?: boolean;\n alignResetButtonLeft?: boolean;\n hideCaret?: boolean;\n};\n\nexport function SearchFilters(props: SearchFiltersProps): JSX.Element {\n const { queryParams, appLink, hideHeading, isFetchingOptions, constantIndices = []} = props;\n\n const newState = React.useMemo(() => {\n return FilterHelper.deriveInitialStateFromQuery(queryParams, props.mainFilters, props.moreFilters, appLink);\n }, [ queryParams, isFetchingOptions ]);\n\n const [ state, dispatch ] = React.useReducer(FilterReducer, newState);\n\n React.useEffect(() => {\n if (ObjectHelper.isEqual(newState, state))\n return;\n\n dispatch({\n type: 'update',\n payload: newState\n });\n\n if (props.analyticsOptions) {\n FilterHelper.logFilterEvent(\n props.mainFilters,\n props.moreFilters,\n newState,\n queryParams.query,\n props.analyticsOptions\n );\n }\n }, [newState]);\n\n const indices = ArrayHelper.uniq([\n ...FilterHelper.getAppliedIndices(queryParams),\n ...constantIndices\n ]);\n\n const { mainFilters, moreFilters } = FilterHelper.mixinDisabledFields(\n state,\n indices,\n props.mainFilters,\n props.moreFilters\n );\n\n // Separate the tag filter as it's rendered differently\n const mainFiltersWithoutTags = mainFilters.filter(f => f.type !== 'tag');\n const tagFilter = mainFilters.find(f => f.type === 'tag');\n\n return (\n <FilterContext.Provider value={{ state, dispatch }}>\n <LanguageNamespaceContext.Provider value='search.searchFilters'>\n <section>\n <div className={`d-flex ${!props.hideDivider ? 'border-bottom pb-3 mb-3' : ''}`}>\n {!hideHeading && (\n <h2 className='h5 mb-0 d-inline-block pe-2 border-end d-flex align-items-center'>\n <Text phrase='heading' />\n </h2>\n )}\n\n <div className={`d-flex flex-wrap ${styles.filtersContainer} ${!hideHeading ? 'ms-2' : ''}`}>\n {mainFiltersWithoutTags.map(f => (\n <FilterButton key={f.id} filter={f} hideCaret={props.hideCaret} />\n ))}\n\n {moreFilters && <MoreFiltersButton filter={moreFilters} />}\n\n {FilterHelper.hasActiveFilters(queryParams) && !props.hideResetButton && (\n <ResetButton\n mainFilters={props.mainFilters}\n moreFilters={props.moreFilters}\n currentQueryParam={queryParams.query}\n analyticsOptions={props.analyticsOptions}\n alignLeft={props.alignResetButtonLeft}\n />\n )}\n </div>\n </div>\n \n <TagFilter\n filter={tagFilter}\n queryParams={queryParams}\n isFetching={props.isFetchingOptions}\n />\n </section>\n </LanguageNamespaceContext.Provider>\n </FilterContext.Provider>\n );\n}\n","import React from 'react';\n\nimport styles from './tags.scss';\n\ninterface PartialTagItemProps {\n tagClass?: string;\n}\n\nexport const PartialTagItem = React.memo(function({ tagClass = '' }: PartialTagItemProps): JSX.Element {\n const classNames = `partial-loading-background d-inline-block rounded-pill py-1 px-2 mb-1 me-1 text-nowrap ${tagClass} ${styles.partialTag}`;\n\n return (\n <div className='mt-1'>\n <span className={classNames}> </span>\n </div>\n );\n});","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Core } from 'libs/common/core';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { TagType } from 'libs/shared/enums/TagType';\nimport { Tag, ThemeColours } from 'libs/shared/interfaces';\n\nimport styles from './tags.scss';\n\nconst namespace = 'shared.tags';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface TagItemProps {\n tag: Tag;\n themeColours?: ThemeColours;\n appLink?: Core.AppLink;\n onClick?: () => void;\n onRemove?: () => void;\n disabled?: boolean;\n tagClass?: string;\n}\n\nfunction getTagTypeClass(tagType: TagType, hasThemeColour: boolean): string {\n switch (tagType) {\n case TagType.Pedagogy:\n case TagType.Skill:\n return 'pedagogy-tag text-white';\n\n case TagType.Hidden:\n return 'hidden-tag fw-normal';\n\n case TagType.Normal:\n if (!hasThemeColour)\n return 'bg-gray-100 fw-normal';\n return '';\n\n default:\n return '';\n }\n}\n\nexport function TagItem(props: TagItemProps): JSX.Element {\n const { tag, appLink, onClick, disabled, tagClass = 'tag' } = props;\n\n const name = tag.name.toLowerCase();\n const tagType = tag.tagType?.toLowerCase() as TagType;\n\n const hasThemeColour = (tagType === TagType.Normal && props.themeColours) && !!props.themeColours?.secondary;\n let classNames = `rounded-pill py-1 px-2 my-1 me-1 ${tagClass} ${getTagTypeClass(tagType, hasThemeColour)}`;\n\n if (hasThemeColour)\n classNames += ' text-white';\n\n if ((appLink || onClick) && !disabled)\n classNames += ' cursor-pointer';\n\n if (disabled)\n classNames += ' ' + styles.disabled;\n\n if (props.onRemove)\n classNames += ' ' + styles.badge;\n\n if (!appLink)\n classNames += ' d-inline-block';\n\n const style: React.CSSProperties = hasThemeColour\n ? { backgroundColor: props.themeColours.secondary }\n : {};\n\n if (appLink) {\n return (\n <AppLink\n onClick={onClick}\n appLink={appLink}\n className={classNames}\n title={name}\n style={style}\n >\n <span className='text-truncate text-nowrap'>{name}</span>\n </AppLink>\n );\n }\n\n return (\n <button\n onClick={onClick}\n className={classNames}\n title={name}\n style={style}\n aria-label={`${getPhrase('ariaFilter')} ${name}`}\n >\n <span className='text-truncate text-nowrap'>\n {name}\n {props.onRemove &&\n <button\n onClick={props.onRemove}\n className={`${styles.close} btn-close font-size-normal`}\n role='button'\n aria-label='Close'\n />\n }\n </span>\n </button>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"seeMore\":\"yv0FS\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { AnalyticsOptions, ClickDescriptor } from 'libs/analytics/interfaces';\n\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\n\nimport styles from './widget-header.scss';\n\nconst namespace = 'shared.widgetHeader';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\ninterface WidgetHeaderProps {\n name: string;\n description: string;\n\n appLink?: Core.AppLink;\n analyticsData?: HashObject;\n analyticsOptions?: AnalyticsOptions;\n showSeeMoreLink?: boolean;\n onClick?: () => void;\n}\n\nfunction SeeMore(props: WidgetHeaderProps) {\n return (\n <div className={`ms-3 ${styles.seeMore}`}>\n <AppLink\n appLink={props.appLink}\n analyticsData={props.analyticsData }\n analyticsOptions={{ ...props.analyticsOptions, descriptor: ClickDescriptor.SeeMore }}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n >\n <p className='hover-text-underline text-dark curated-widget-heading'>{getPhrase('seeMore')}</p>\n </AppLink>\n </div>\n );\n}\n\nexport function WidgetHeader(props: WidgetHeaderProps): JSX.Element {\n const hasDescription = !!props.description;\n\n if (!props.name && !props.description)\n return <></>;\n\n return (\n <div className='curated-widget-header'>\n <div className='d-flex justify-content-between'>\n {!!props.name && (\n <div className={styles.title}>\n <AppLink\n appLink={props.appLink}\n analyticsOptions={props.analyticsOptions}\n analyticsData={props.analyticsData}\n className={`text-decoration-none ${props.appLink ? 'curated-widget-link' : ''}`}\n onClick={props.onClick}\n >\n <h2 className='h4 curated-widget-heading'>\n {props.name}\n </h2>\n </AppLink>\n </div>\n )}\n {!!props.appLink && !hasDescription && !!props.showSeeMoreLink && <SeeMore {...props}/>}\n </div>\n \n {hasDescription && (\n <div className='d-flex justify-content-between align-items-end'>\n <p className={`description curated-widget-description ${styles.description}`}>\n <span>{props.description}</span>\n </p>\n {!!props.appLink && !!props.showSeeMoreLink && <SeeMore {...props}/> }\n </div>\n )}\n </div>\n );\n}","import React from 'react';\n\nimport { HashObject } from 'libs/common/react/interfaces';\n\nimport { DynamicWidgetState } from 'libs/shared/components/widgets/dynamic-widget';\nimport { FixedWidgetState } from 'libs/shared/components/widgets/fixed-widget';\n\n// Sync with transition time in SlidingListContainer.tsx\nconst SLIDER_ANIMATION_TIME = 400;\n\ntype FixedWidgetKeyboardOptions = {\n type: 'fixed',\n state: FixedWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery?: never;\n}\n\ntype DynamicWidgetKeyboardOptions = {\n type: 'dynamic',\n state: DynamicWidgetState,\n containerRef: React.MutableRefObject<HTMLElement>\n mediaQuery: string\n}\n\ntype UseWidgetKeyboard = FixedWidgetKeyboardOptions | DynamicWidgetKeyboardOptions\n\nexport function useWidgetKeyboard(options: UseWidgetKeyboard) {\n const { type, state, containerRef, mediaQuery } = options;\n\n const [ isTabbing, setIsTabbing ] = React.useState(false);\n const [ dynamicAttributes, setDynamicAttributes ] = React.useState<HashObject>({});\n const [ focusedWidgetIndex, setFocusedWidgetIndex ] = React.useState(null);\n \n /**\n * Get accessibility attributes for dynamic widget items\n * */\n React.useEffect(() => {\n if (type !== 'dynamic' || !containerRef.current || !(state as DynamicWidgetState).containerLeftPosition) return;\n \n setTimeout(() => getDynamicAttributes(), SLIDER_ANIMATION_TIME + 50);\n }, [\n containerRef.current,\n mediaQuery,\n (state as DynamicWidgetState).offset,\n (state as DynamicWidgetState).containerLeftPosition\n ]);\n\n function getDynamicAttributes() {\n const dynamicWidgetState = state as DynamicWidgetState;\n \n if (!containerRef.current?.children)\n return;\n \n const focusableItems = Array.from(containerRef.current.children).reduce((acc, item) => {\n const rect = item?.getBoundingClientRect();\n\n /**\n * When any part of the widget item is visible it should be focusable,\n * otherwise prevent interaction and the slider should be the next focusable element\n * */\n const isItemVisable =\n rect.left < dynamicWidgetState.containerRightPosition &&\n rect.right > dynamicWidgetState.containerLeftPosition;\n\n return {\n ...acc,\n [item.id]: isItemVisable\n ? {\n 'aria-hidden': false\n } : {\n 'aria-hidden': true,\n 'inert': 'true'\n }\n };\n }, {});\n\n setDynamicAttributes(focusableItems);\n }\n\n /**\n * Get accessibility attributes for fixed widget items\n * */\n function getFixedAttributes(index?: number) {\n const fixedWidgetState = state as FixedWidgetState;\n\n const isItemVisible =\n index >= (fixedWidgetState.offset - fixedWidgetState.viewableItems) &&\n index < fixedWidgetState.offset;\n if (isItemVisible) {\n return {\n 'aria-hidden': false\n };\n }\n\n return {\n 'inert': 'true',\n 'aria-hidden': true\n };\n }\n\n /**\n * When the user is not signed in, there may be videos which are not focusable.\n * setTimeout is required because the transition time is 400ms\n */\n function focusNext() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let nextFocusableElement: HTMLElement = null;\n\n for (let i = (focusedWidgetIndex + 1); i < items.length; i++) {\n if (nextFocusableElement)\n break;\n \n nextFocusableElement = items[i].querySelector('a[tabindex=\"0\"]');\n }\n\n if (nextFocusableElement)\n nextFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function focusPrev() {\n setTimeout(() => {\n if (!containerRef.current)\n return;\n\n const items = containerRef.current.querySelectorAll('li[aria-hidden]');\n\n let prevFocusableElement: HTMLElement = null;\n for (let i = focusedWidgetIndex - 1; i >= 0; i--) {\n if (prevFocusableElement) break;\n \n const item = items[i];\n prevFocusableElement = item.querySelector('a[tabindex=\"0\"]');\n }\n \n if (prevFocusableElement)\n prevFocusableElement.focus();\n }, SLIDER_ANIMATION_TIME + 100);\n }\n\n function onFocusWidget(index: number) {\n if (document.querySelector('.user-is-tabbing')) {\n setIsTabbing(true);\n setFocusedWidgetIndex(index);\n }\n }\n\n function onBlurWidget() {\n if (!document.querySelector('.user-is-tabbing')) {\n setIsTabbing(false);\n setFocusedWidgetIndex(null);\n }\n }\n\n return {\n isTabbing,\n onFocusWidget,\n onBlurWidget,\n getFixedAttributes,\n dynamicAttributes,\n focusNext,\n focusPrev\n };\n}","import { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\n\nconst blankImage = new Image();\nblankImage.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=';\n\nexport const DragHelper = {\n // This removes the image that appears when you drag a draggable HTML element\n hideDragImage(event: React.DragEvent<HTMLElement>): void {\n if (!event.dataTransfer.setDragImage || !FunctionHelper.isFunction(event.dataTransfer.setDragImage))\n return;\n\n event.dataTransfer.setDragImage(blankImage, 0, 0);\n }\n};","import * as React from 'react';\n\nimport { UserAgentHelper } from 'libs/common/backbone/utils/UserAgentHelper';\nimport { HashObject } from 'libs/common/react/interfaces/HashObject';\n\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\nimport { DragHelper } from 'libs/shared/utils/DragHelper';\n\nconst isTouchScreen = UserAgentHelper.isTouchScreen();\n\nconst getPositionStyling = (xPosition: number, measurement: CssMeasurement, dragPercentage?: number) => {\n // Used in situations where a touch screen user is dragging the `<FixedWidget />`\n if (measurement === CssMeasurement.Percentage && dragPercentage)\n xPosition = xPosition - dragPercentage;\n \n return {\n transform: `translate3d(${xPosition}${measurement}, 0px, 0px)`,\n // Sync with transition time in useWidgetKeyboard.ts\n transition: 'transform .4s ease-in-out'\n };\n};\n\ninterface SlidingListContainerProps extends React.PropsWithChildren<unknown> {\n position: number;\n positionType: CssMeasurement;\n\n onDrag?: (event: React.DragEvent<HTMLUListElement>) => void;\n onDragEnd?: () => void;\n\n onTouchMove?: (event: React.TouchEvent<HTMLUListElement>) => void;\n onTouchEnd?: () => void;\n\n percentageDragged?: number;\n}\n\nexport const SlidingListContainer = React.forwardRef((\n props: SlidingListContainerProps,\n ref: React.MutableRefObject<HTMLUListElement>\n): JSX.Element => {\n const { children, positionType, onDrag, onDragEnd, onTouchMove, onTouchEnd, percentageDragged, position = 0 } = props;\n\n function getEventListeners(): HashObject {\n const listenerProps: HashObject = {};\n\n if (onDrag && onDragEnd) {\n listenerProps.draggable = true;\n listenerProps.onDragEnd = onDragEnd;\n listenerProps.onDragStart = DragHelper.hideDragImage;\n listenerProps.onDragOver = onDrag;\n }\n\n if (onTouchMove && onTouchEnd && isTouchScreen) {\n listenerProps.onTouchMoveCapture = onTouchMove;\n listenerProps.onTouchEndCapture = onTouchEnd;\n }\n\n return listenerProps;\n }\n\n return (\n <ul\n className='list-unstyled d-flex flex-nowrap position-relative w-100'\n style={getPositionStyling(position, positionType, percentageDragged)}\n ref={ref}\n {...getEventListeners()}\n >\n {children}\n </ul>\n );\n});","export enum CssMeasurement {\n Percentage = '%',\n Pixels = 'px'\n}","export enum TagType {\n Normal = 'normal',\n Pedagogy = 'pedagogy',\n Hidden = 'hidden',\n Skill = 'skill',\n Curation = 'curation'\n}\n\n/**\n * This should **only** be used to create new tags in master (as it only accepts enum values).\n * Use the string enum above for all other cases.\n */\nexport enum TagTypeNumber {\n Normal = 0,\n Pedagogy = 1,\n Hidden = 2,\n Skill = 3,\n Curation = 4\n}","export enum WidgetInteraction {\n Init = 'init',\n Next = 'next',\n Previous = 'previous',\n Resize = 'resize',\n Drag = 'drag',\n Update = 'update',\n JumpToIndex = 'jump-to-index'\n}","import { BaseError } from 'libs/common/backbone/core/BaseError';\nimport { HttpStatus } from 'libs/common/backbone/enums/HttpStatus';\nimport { Xhr } from 'libs/common/backbone/interfaces';\nimport { Core } from 'libs/common/core';\n\nimport { NotFoundError } from 'libs/shared/errors/general/not-found/NotFoundError';\nimport { PrivateResourceError } from 'libs/shared/errors/general/private-resource/PrivateResourceError';\nimport { RegionLockedResourceError } from 'libs/shared/errors/general/region-locked-resource/RegionLockedResourceError';\nimport { UnspecifiedError } from 'libs/shared/errors/general/unspecified-error/UnspecifiedError';\nimport { VideoTypes } from 'libs/shared/interfaces';\n\nexport interface HttpErrorMap {\n notFound?: new () => BaseError;\n forbidden?: {\n rating?: new (description: string) => BaseError;\n yearLevel?: new (description: string) => BaseError;\n region?: new () => BaseError;\n privacy?: new (video?: VideoTypes) => BaseError;\n };\n badRequest?: new () => BaseError;\n}\n\nexport type IgnoreHttpErrorMap = {\n [key in keyof HttpErrorMap]: boolean;\n};\n\nconst defaultErrors: HttpErrorMap = {\n notFound: NotFoundError,\n forbidden: {\n rating: PrivateResourceError,\n yearLevel: PrivateResourceError,\n region: RegionLockedResourceError,\n privacy: PrivateResourceError\n },\n badRequest: UnspecifiedError\n};\n\nexport function handleHttpError(\n info: HttpStatus | Xhr,\n customErrorMap: HttpErrorMap = {},\n /**\n * Prevent certain errors in the errorMap from being thrown\n * so that you may implement your own handler\n */\n ignoreMap: IgnoreHttpErrorMap = {}\n): void {\n if (!info)\n return;\n\n let statusCode: HttpStatus;\n\n if (typeof(info) === 'number') {\n statusCode = info;\n } else {\n statusCode = info.status;\n }\n\n const errorMap = {\n ...defaultErrors,\n ...customErrorMap\n };\n\n if (!statusCode)\n return;\n\n if (!Core.ErrorHelper.isStatusCodeError(statusCode))\n return;\n\n if (statusCode === HttpStatus.NotFound) {\n if (!ignoreMap.notFound)\n Core.ErrorHelper.throw(new errorMap.notFound());\n return;\n }\n\n if (statusCode === HttpStatus.Forbidden) {\n /**\n * TODO: Work out how to go about handling all forbidden errors, such as region locking, year levels,\n * ratings, and privacy.\n */\n if (!ignoreMap.forbidden)\n Core.ErrorHelper.throw(new errorMap.forbidden.privacy());\n return;\n }\n\n if (!ignoreMap.badRequest)\n Core.ErrorHelper.throw(new errorMap.badRequest());\n}\n\nexport function handleXhrError(xhr: Xhr, customErrorMap?: HttpErrorMap): void {\n handleHttpError(xhr.status, customErrorMap);\n}","// extracted by mini-css-extract-plugin\nexport default {\"partialFilterHeading\":\"O8f8H\",\"partialButton\":\"ThKam\",\"filtersContainer\":\"JIp3h\"};","// extracted by mini-css-extract-plugin\nexport default {\"tagList\":\"Zw6d9\",\"disabled\":\"jlL1c\",\"partialTag\":\"too_N\",\"badge\":\"OjtN8\",\"close\":\"X9joI\"};"],"names":["namespace","FilterActions","props","className","active","DivButton","onClick","onClickReset","Text","phrase","onClickApply","defaultProps","FilterButton","state","currentFilterState","filter","id","isDropdownFilter","type","name","label","setLabel","showDropdown","setShowDropdown","draftState","setDraftState","onSelectItem","applyFilter","newState","FilterHelper","appLink","selection","FilterComponent","customComponent","caretClass","hideCaret","customWidthClass","Dropdown","onToggle","isShowing","show","variant","disabled","icon","SvgContainer","svgName","labelPrefix","defaultOption","options","find","o","StateHelper","getSetStateByKey","setState","key","callback","data","fn","FunctionHelper","getTotalActiveFilters","currentState","Object","keys","reduce","acc","MoreFiltersButton","moreFilters","totalActiveFilters","setTotalActiveFilters","currentFilterStateKey","map","join","filters","baseClass","e","stopPropagation","isOnMoreFilters","filterId","f","TagWidgetItem","colorClass","selectedItems","TagItem","tag","tagClass","TagFilter","selections","unappliedOptions","opt","onClickOption","option","nextFilterState","indexOfItem","i","toString","newItems","slice","length","concat","collection","isFetching","DynamicWidget","childComponent","staticChildren","Array","fill","component","PartialTagItem","position","partialLoadingComponent","ResetButton","params","currentQueryParam","query","alignLeft","SearchFilters","queryParams","hideHeading","isFetchingOptions","constantIndices","mainFilters","dispatch","ObjectHelper","payload","analyticsOptions","indices","ArrayHelper","mainFiltersWithoutTags","tagFilter","value","hideDivider","hideResetButton","alignResetButtonLeft","classNames","getPhrase","toLowerCase","tagType","hasThemeColour","themeColours","secondary","getTagTypeClass","onRemove","style","backgroundColor","title","role","LanguageService","SeeMore","AppLink","analyticsData","descriptor","WidgetHeader","hasDescription","description","showSeeMoreLink","SLIDER_ANIMATION_TIME","useWidgetKeyboard","containerRef","mediaQuery","isTabbing","setIsTabbing","dynamicAttributes","setDynamicAttributes","focusedWidgetIndex","setFocusedWidgetIndex","current","containerLeftPosition","setTimeout","dynamicWidgetState","children","focusableItems","from","item","rect","getBoundingClientRect","isItemVisable","left","containerRightPosition","right","getDynamicAttributes","offset","onFocusWidget","index","document","querySelector","onBlurWidget","getFixedAttributes","fixedWidgetState","viewableItems","focusNext","items","querySelectorAll","nextFocusableElement","focus","focusPrev","prevFocusableElement","blankImage","Image","src","DragHelper","event","dataTransfer","setDragImage","isTouchScreen","UserAgentHelper","SlidingListContainer","ref","listenerProps","xPosition","measurement","dragPercentage","positionType","onDrag","onDragEnd","onTouchMove","onTouchEnd","percentageDragged","CssMeasurement","C","transform","transition","draggable","onDragStart","onDragOver","onTouchMoveCapture","onTouchEndCapture","TagType","TagTypeNumber","WidgetInteraction","defaultErrors","notFound","forbidden","rating","yearLevel","region","privacy","badRequest","handleHttpError","info","customErrorMap","ignoreMap","statusCode","status","errorMap"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[2199],{78259:(e,t,n)=>{n.d(t,{O:()=>i});var a=n(58176),o=n.n(a),c=n(39479),l={className:"info-link",defaultProtocol:"https"},i={linkifyText:function(e,t){if(e){var n=t?c.extend({},l,t):l;return o()(e,n)}}}},84963:(e,t,n)=>{n.d(t,{r:()=>d});var a=n(32735),o=n(23481),c=n(83914),l=n(76177),i=n(35223);const r={tag:"XRj8d",tooltip:"X6mLk"};var s="specialEventCalendar.comingSoonTag";function d(e){return a.createElement(l.u,{title:o.T.getPhrase(s,"tooltip"),spanHackClassName:"d-block ".concat(r.tooltip),spanHack:!0},a.createElement("div",{className:"d-flex text-dark align-items-center ".concat(r.tag," ").concat(e.className)},a.createElement(c.x,{svgName:i.vn.Timer}),!e.onlyIcon&&o.T.getPhrase(s,"comingSoon")))}},6107:(e,t,n)=>{n.d(t,{b:()=>g});var a=n(32735),o=n(110),c=n(78259),l=n(28400),i=n(49985),r=n(65858),s=n(84963),d=n(12324),m=n(42735),u=n(36848),v=n(75163),p=n(2284);const f={modalWidth:"SgHYb",banner:"PLw1p",pill:"UNBr0",logo:"xv_tc"};function g(e){var t,n,g,b,D,E=e.getAppLink(e.event.content,l.m.slugify(e.event.name)),k=null===(t=e.getBackgroundColor)||void 0===t?void 0:t.call(e,e.event.content),M=null===(n=e.getIconUrl)||void 0===n?void 0:n.call(e,e.event.content),h=null===(g=e.getBannerUrl)||void 0===g?void 0:g.call(e,e.event.content),Y=!!e.event.endDate,N=e.event.content.status===p.W.ComingSoon,O=null===(b=e.getStartTime)||void 0===b?void 0:b.call(e,e.event.content),w=null===(D=e.getActionLabel)||void 0===D?void 0:D.call(e),y={actionType:r.Vw.Click,entity:r.py.SpecialEvent,location:e.inPopup?r.LZ.CalendarPopup:r.LZ.CalendarDay},x={topicId:e.event.content.id,eventId:e.event.specialEventId,presentationId:e.presentationId,date:o.O.format(new Date(e.event.startDate),"YYYY-MM-DD"),status:e.event.content.status};return a.createElement("div",null,O&&a.createElement("h6",null,O),a.createElement("div",{onClick:function(){N&&i.k.logUserAction(x,y)}},a.createElement(u.F,{appLink:!N&&E,className:"".concat(N?"":"cursor-pointer"," text-decoration-none"),onClick:e.onClick,analyticsOptions:y,analyticsData:x},a.createElement("div",{className:"banner rounded-3 position-relative ".concat(f.banner),style:{backgroundColor:k,backgroundImage:"url('".concat(h,"')")}},a.createElement("div",{className:"d-flex justify-content-between align-items-center w-100 h-100 px-3"},a.createElement("div",{className:"d-flex align-items-center"},M&&a.createElement("div",{className:"".concat(f.logo," rounded-circle flex-shrink-0 overflow-hidden me-2")},a.createElement(v.Z,{data:M})),a.createElement("div",{className:"text-white"},N&&a.createElement(s.r,{className:"pe-2 fw-semibold mb-1 rounded-pill justify-content-start ".concat(f.pill)}),Y&&a.createElement("div",{className:"mb-1"},d.T.getDisplayDate(e.event.startDate,e.event.endDate)),a.createElement("h2",{className:"h4 text-white text-shadow ".concat(e.event.description?"clamp-2":"clamp-1"),title:e.event.name},e.event.name))),a.createElement("div",{className:"d-none d-sm-block flex-shrink-0"},!N&&a.createElement(m.K,{className:"btn btn-outline-dark fw-semibold"},w))))),a.createElement("div",{className:"mt-2 mb-3 pre-wrap text-break",dangerouslySetInnerHTML:{__html:c.O.linkifyText(e.event.description||e.event.content.description)}})))}},7870:(e,t,n)=>{n.d(t,{N:()=>i});var a=n(97395),o=n(75896),c=n(110),l=n(40424),i={calendarEvents:function(e,t,n){return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/content",{from:e,to:t,presentationId:n}),publicUrl:a._.urlBuilder("/api/discover/special-events/content",{from:e,to:t,presentationId:n}),key:"presentation:".concat(n,":events:from:").concat(e,":to").concat(t)}},nextTopicSpecialEvent:function(e,t){var n={presentationId:t,limit:1,from:c.O.format(new Date,"YYYY-MM-DD"),objectType:l.VH.Classification};return{url:a._.urlBuilder("{gateway}/v1/discover/special-events/object/".concat(e,"/next-events"),n),publicUrl:a._.urlBuilder("/api/discover/special-events/object/".concat(e,"/next-events"),n),key:"presentation:".concat(t,":events:classification:").concat(e),formatData:function(e){return o.m.first(e)}}}}},12324:(e,t,n)=>{n.d(t,{T:()=>o});var a=n(110),o={getDisplayDate:function(e,t){return t?e.slice(5,7)!==t.slice(5,7)?"".concat(a.O.format(e,"D MMM")," - ").concat(a.O.format(t,"D MMM")):"".concat(a.O.format(e,"D")," - ").concat(a.O.format(t,"D")," ").concat(a.O.format(e,"MMM")):a.O.format(e,"D MMM")},getEventsInMonth:function(e,t){return e.filter((function(e){return a.O.format(e.startDate,"YYYY-MM")===a.O.format(t,"YYYY-MM")}))},getOrdinalDate:function(e){return"".concat(a.O.getLocalDateOrdinal(a.O.get(e,"date"))," ").concat(a.O.format(e,"MMMM"))}}},2284:(e,t,n)=>{var a;n.d(t,{W:()=>a}),function(e){e.Draft="Draft",e.ComingSoon="ComingSoon",e.Published="Published"}(a||(a={}))},72199:(e,t,n)=>{n.r(t),n.d(t,{SpecialEventListView:()=>k});var a=n(32735),o=n(42648),c=n(23481),l=n(20354),i=n(110),r=n(6107),s=n(7870),d=n(12324),m=n(9111),u=n(13876),v=n(86698),p=n(34181);const f={modalWidth:"LrMq0",buttons:"jAfM0"};var g="specialEventCalendar.eventListPopup",b=c.T.encloseNamespace(g),D=400,E=300;function k(e){var t,n=(0,v.y)({redirectOnError:!0}).activePresentation,k=new Date(e.from),M=new Date(e.to),h=l.a.useBasicFetch((null==n?void 0:n.id)&&s.N.calendarEvents(i.O.format(k,"YYYY-MM-DD"),i.O.format(M,"YYYY-MM-DD"),n.id)),Y=(null===(t=h.data)||void 0===t?void 0:t.filter((function(t){return t.startDate===i.O.format(new Date(e.date),"YYYY-MM-DD")})))||[];return(null==n?void 0:n.id)?a.createElement(m.G,{title:"Events on ".concat(d.T.getOrdinalDate(e.date)),closePopup:e.closePopup,dialogClassName:f.modalWidth,bodyClassName:"p-0",showLoadingSpinner:!h.data},a.createElement(o.$B,{autoHeight:!0,autoHeightMin:E,autoHeightMax:D},a.createElement("div",{className:"px-3 pt-2"},Y.map((function(t){return a.createElement(r.b,{key:t.content.id,getAppLink:function(e,t){return p.L.getAppLink(Object.assign(Object.assign({},e),{name:t}))},event:t,onClick:e.closePopup,inPopup:!0,presentationId:n.id,getActionLabel:function(){return b("buttonLabel")},getBannerUrl:function(e){var t;return null===(t=e.banner)||void 0===t?void 0:t.url}})})))),a.createElement("div",{className:"ms-3"},a.createElement(u.u,{className:f.buttons},a.createElement(u.u.Cancel,{variant:"outline-dark",className:"mb-3",onClick:e.closePopup,text:c.T.getPhrase(g,"close")})))):a.createElement(a.Fragment,null)}}}]);
|
|
2
|
-
//# sourceMappingURL=2199-476ac5922f-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/2199-476ac5922f-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/common/src/react/utils/LinkifyHelper.ts","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/coming-soon-tag.scss","file:///app/packages/libs/shared/src/apps/calendar/components/coming-soon-tag/ComingSoonTag.tsx","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/special-event-list-item.scss","file:///app/packages/libs/shared/src/apps/calendar/components/special-event-list-item/SpecialEventListItem.tsx","file:///app/packages/libs/shared/src/apps/calendar/flight-request/CalendarRequests.ts","file:///app/packages/libs/shared/src/apps/calendar/utils/SpecialEventHelper.ts","file:///app/packages/libs/shared/src/enums/ClassificationStatus.ts","file:///app/packages/projects/lite/src/apps/calendar/views/special-event-list-view/special-event-list-view.scss","file:///app/packages/projects/lite/src/apps/calendar/views/special-event-list-view/SpecialEventListView.tsx"],"sourcesContent":["import { ObjectHash } from 'backbone';\nimport linkifyStr from 'linkifyjs/string';\nimport * as _ from 'underscore';\n\nconst BaseLinkifyOptions = {\n className: 'info-link',\n defaultProtocol: 'https'\n};\n\nexport const LinkifyHelper = {\n /**\n * The underlying linkifyStr interface escapes text within the input string\n */\n linkifyText(text: string, options?: ObjectHash): string {\n if (!text) return;\n const ops = options ? _.extend({}, BaseLinkifyOptions, options) : BaseLinkifyOptions;\n return linkifyStr(text, ops);\n }\n};","// extracted by mini-css-extract-plugin\nexport default {\"tag\":\"XRj8d\",\"tooltip\":\"X6mLk\"};","import React from 'react';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\n\nimport { SvgContainer } from 'libs/shared/components/svg-container/SvgContainer';\nimport { Tooltip } from 'libs/shared/components/tooltip/Tooltip';\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\n\nimport styles from './coming-soon-tag.scss';\n\nconst namespace = 'specialEventCalendar.comingSoonTag';\n\ninterface ComingSoonProps {\n className?: string;\n onlyIcon?: boolean;\n}\n\nexport function ComingSoonTag(props: ComingSoonProps): JSX.Element {\n return (\n <Tooltip title={LanguageService.getPhrase(namespace, 'tooltip')} spanHackClassName={`d-block ${styles.tooltip}`} spanHack>\n <div className={`d-flex text-dark align-items-center ${styles.tag} ${props.className}`}>\n <SvgContainer svgName={cvSvgLibrary.Timer} />\n {!props.onlyIcon && LanguageService.getPhrase(namespace, 'comingSoon')}\n </div>\n </Tooltip>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"modalWidth\":\"SgHYb\",\"banner\":\"PLw1p\",\"pill\":\"UNBr0\",\"logo\":\"xv_tc\"};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\nimport { LinkifyHelper } from 'libs/common/react/utils/LinkifyHelper';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { AnalyticsHelper } from 'libs/analytics/AnalyticsHelper';\nimport { AnalyticsOptions, EntityType, LocationContext, UserAction } from 'libs/analytics/interfaces';\n\nimport { ComingSoonTag } from 'libs/shared/apps/calendar/components/coming-soon-tag/ComingSoonTag';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { ActionButton } from 'libs/shared/components/actions/ActionButton';\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\nimport { BaseImage } from 'libs/shared/components/image/BaseImage';\nimport { ClassificationStatus } from 'libs/shared/enums/ClassificationStatus';\nimport { CalendarEvent, CalendarEventContent } from 'libs/shared/interfaces';\n\nimport styles from './special-event-list-item.scss';\n\ninterface SpecialEventListItemProps {\n getAppLink: (content: CalendarEventContent, name: string) => Core.AppLink;\n event: CalendarEvent<CalendarEventContent>;\n onClick?: () => void;\n inPopup?: boolean;\n presentationId: string;\n headingClassName?: string;\n getIconUrl?: (content: CalendarEventContent) => string;\n getBackgroundColor?: (content: CalendarEventContent) => string;\n getBannerUrl?: (content: CalendarEventContent) => string;\n getActionLabel?: () => string;\n getStartTime?: (content: CalendarEventContent) => string;\n isPastEvent?: (content: CalendarEventContent) => boolean;\n}\n\nexport function SpecialEventListItem(props: SpecialEventListItemProps): JSX.Element {\n const appLink = props.getAppLink(props.event.content, TextHelper.slugify(props.event.name));\n\n const backgroundColor = props.getBackgroundColor?.(props.event.content);\n const iconUrl = props.getIconUrl?.(props.event.content);\n const bannerUrl = props.getBannerUrl?.(props.event.content);\n const multiDayEvent = !!props.event.endDate;\n const isComingSoon = props.event.content.status === ClassificationStatus.ComingSoon;\n const startTime = props.getStartTime?.(props.event.content);\n const actionLabel = props.getActionLabel?.();\n\n const analyticsOptions: AnalyticsOptions = {\n actionType: UserAction.Click,\n entity: EntityType.SpecialEvent,\n location: props.inPopup ? LocationContext.CalendarPopup : LocationContext.CalendarDay\n };\n const analyticsData = {\n topicId: props.event.content.id,\n eventId: props.event.specialEventId,\n presentationId: props.presentationId,\n date: DateHelper.format(new Date(props.event.startDate), 'YYYY-MM-DD'),\n status: props.event.content.status\n };\n\n return (\n <div>\n {startTime && (\n <h6>{startTime}</h6>\n )}\n\n <div onClick={() => {\n if (isComingSoon)\n AnalyticsHelper.logUserAction(analyticsData, analyticsOptions);\n }}>\n <AppLink\n appLink={!isComingSoon && appLink}\n className={`${!isComingSoon ? 'cursor-pointer' : ''} text-decoration-none`}\n onClick={props.onClick}\n analyticsOptions={analyticsOptions}\n analyticsData={analyticsData}\n >\n <div\n className={`banner rounded-3 position-relative ${styles.banner}`}\n style={{ backgroundColor, backgroundImage: `url('${bannerUrl}')` }}\n >\n <div className={`d-flex justify-content-between align-items-center w-100 h-100 px-3`}>\n <div className='d-flex align-items-center'>\n {iconUrl && (\n <div className={`${styles.logo} rounded-circle flex-shrink-0 overflow-hidden me-2`}>\n <BaseImage data={iconUrl} />\n </div>\n )}\n <div className='text-white'>\n {isComingSoon && <ComingSoonTag className={`pe-2 fw-semibold mb-1 rounded-pill justify-content-start ${styles.pill}`}/>}\n \n {multiDayEvent && (\n <div className='mb-1'>{SpecialEventHelper.getDisplayDate(props.event.startDate, props.event.endDate)}</div>\n )}\n <h2 className={`h4 text-white text-shadow ${props.event.description ? 'clamp-2' : 'clamp-1'}`} title={props.event.name}>{props.event.name}</h2>\n \n </div>\n </div>\n\n <div className='d-none d-sm-block flex-shrink-0'>\n {!isComingSoon && (\n <ActionButton className='btn btn-outline-dark fw-semibold'>\n {actionLabel}\n </ActionButton>\n )}\n </div>\n </div>\n </div>\n </AppLink>\n <div className='mt-2 mb-3 pre-wrap text-break' dangerouslySetInnerHTML={{ __html: LinkifyHelper.linkifyText(props.event.description || props.event.content.description) }}/>\n </div>\n </div>\n );\n}\n","import { UrlHelper } from 'libs/common/backbone/utils/UrlHelper';\nimport { Flight } from 'libs/common/flight';\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent, CalendarEventContentType } from 'libs/shared/interfaces';\n\nexport const CalendarRequests = {\n calendarEvents(\n from: string,\n to: string,\n presentationId: string\n ): Flight.PublicRequest {\n return {\n url: UrlHelper.urlBuilder('{gateway}/v1/discover/special-events/content', { from, to, presentationId }),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/content`, { from, to, presentationId }),\n key: `presentation:${presentationId}:events:from:${from}:to${to}`\n };\n },\n\n nextTopicSpecialEvent(\n classificationId: string,\n presentationId: string\n ): Flight.PublicRequest {\n const params = {\n presentationId,\n limit: 1,\n from: DateHelper.format(new Date(), 'YYYY-MM-DD'),\n objectType: CalendarEventContentType.Classification\n };\n\n return {\n url: UrlHelper.urlBuilder(`{gateway}/v1/discover/special-events/object/${classificationId}/next-events`, params),\n publicUrl: UrlHelper.urlBuilder(`/api/discover/special-events/object/${classificationId}/next-events`, params),\n key: `presentation:${presentationId}:events:classification:${classificationId}`,\n formatData: (events: CalendarEvent[]) => ArrayHelper.first(events)\n };\n }\n};\n","import { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nexport const SpecialEventHelper = {\n getDisplayDate(startDate: string, endDate: string): string {\n if (!endDate)\n // one day event\n return DateHelper.format(startDate, 'D MMM');\n\n if (startDate.slice(5, 7) !== endDate.slice(5, 7))\n // span across months\n return `${DateHelper.format(startDate, 'D MMM')} - ${DateHelper.format(endDate, 'D MMM')}`;\n \n // same month event\n return `${DateHelper.format(startDate, 'D')} - ${DateHelper.format(endDate, 'D')} ${DateHelper.format(startDate, 'MMM')}`;\n },\n\n getEventsInMonth(calendarEvents: CalendarEvent[], month: Date) {\n return calendarEvents.filter(e => DateHelper.format(e.startDate, 'YYYY-MM') === DateHelper.format(month, 'YYYY-MM'));\n },\n\n getOrdinalDate(date: string): string {\n return `${DateHelper.getLocalDateOrdinal(DateHelper.get(date, 'date'))} ${DateHelper.format(date, 'MMMM')}`;\n }\n};","// Maps to enum in SubjectApi but uses the\n// key rather than the value as SubjectsApi returns the key.\nexport enum ClassificationStatus {\n Draft = 'Draft',\n ComingSoon = 'ComingSoon',\n Published = 'Published'\n}","// extracted by mini-css-extract-plugin\nexport default {\"modalWidth\":\"LrMq0\",\"buttons\":\"jAfM0\"};","import React from 'react';\nimport { Scrollbars } from 'react-custom-scrollbars-2';\n\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\nimport { Flight } from 'libs/common/flight';\nimport { DateHelper } from 'libs/common/react/utils/DateHelper';\n\nimport { SpecialEventListItem } from 'libs/shared/apps/calendar/components/special-event-list-item/SpecialEventListItem';\nimport { CalendarRequests } from 'libs/shared/apps/calendar/flight-request/CalendarRequests';\nimport { SpecialEventHelper } from 'libs/shared/apps/calendar/utils/SpecialEventHelper';\nimport { Popup } from 'libs/shared/components/popup/Popup';\nimport { PopupButtons } from 'libs/shared/components/popup/PopupButtons';\nimport { Classification, PopupViewProps } from 'libs/shared/interfaces';\nimport { CalendarEvent } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\nimport { ClassificationAppLinkHelper } from 'shared/utils/ClassificationAppLinkHelper';\n\nimport styles from './special-event-list-view.scss';\n\nconst namespace = 'specialEventCalendar.eventListPopup';\nconst getPhrase = LanguageService.encloseNamespace(namespace);\n\nconst SCROLL_HEIGHT_MAX = 400;// in px\nconst SCROLL_HEIGHT_MIN = 300;// in px\nexport interface SpecialEventsViewQueryParams extends PopupViewProps {\n from: string;\n to: string;\n date: string;\n}\n\nexport function SpecialEventListView(props: SpecialEventsViewQueryParams): JSX.Element {\n const { activePresentation } = usePresentation({ redirectOnError: true });\n\n const fromDate = new Date(props.from);\n const toDate = new Date(props.to);\n\n const events = Flight.useBasicFetch<CalendarEvent[]>(activePresentation?.id\n && CalendarRequests.calendarEvents(DateHelper.format(fromDate, 'YYYY-MM-DD'), DateHelper.format(toDate, 'YYYY-MM-DD'), activePresentation.id));\n const eventsOnDay = events.data?.filter(e => e.startDate === DateHelper.format(new Date(props.date), 'YYYY-MM-DD')) || [];\n\n if (!activePresentation?.id)\n return <></>;\n\n return (\n <Popup\n title={`Events on ${SpecialEventHelper.getOrdinalDate(props.date)}`}\n closePopup={props.closePopup}\n dialogClassName={styles.modalWidth}\n bodyClassName={'p-0'}\n showLoadingSpinner={!events.data}\n >\n <Scrollbars\n autoHeight\n autoHeightMin={SCROLL_HEIGHT_MIN}\n autoHeightMax={SCROLL_HEIGHT_MAX}\n >\n <div className='px-3 pt-2'>\n {eventsOnDay.map(e => (\n <SpecialEventListItem\n key={e.content.id}\n getAppLink={(content, name) =>\n ClassificationAppLinkHelper.getAppLink({ ...content as Classification, name })}\n event={e}\n onClick={props.closePopup}\n inPopup\n presentationId={activePresentation.id}\n getActionLabel={() => getPhrase('buttonLabel')}\n getBannerUrl={(classification: Classification) => classification.banner?.url}\n />\n ))}\n </div>\n </Scrollbars>\n <div className='ms-3'>\n <PopupButtons className={styles.buttons}>\n <PopupButtons.Cancel\n variant='outline-dark'\n className='mb-3'\n onClick={props.closePopup}\n text={LanguageService.getPhrase(namespace, 'close')}\n />\n </PopupButtons>\n </div>\n </Popup>\n\n );\n}"],"names":["BaseLinkifyOptions","className","defaultProtocol","LinkifyHelper","linkifyText","text","options","ops","namespace","ComingSoonTag","props","Tooltip","title","LanguageService","spanHackClassName","spanHack","SvgContainer","svgName","onlyIcon","SpecialEventListItem","appLink","getAppLink","event","content","TextHelper","name","backgroundColor","getBackgroundColor","iconUrl","getIconUrl","bannerUrl","getBannerUrl","multiDayEvent","endDate","isComingSoon","status","ClassificationStatus","startTime","getStartTime","actionLabel","getActionLabel","analyticsOptions","actionType","entity","location","inPopup","analyticsData","topicId","id","eventId","specialEventId","presentationId","date","DateHelper","Date","startDate","onClick","AnalyticsHelper","AppLink","style","backgroundImage","BaseImage","data","SpecialEventHelper","description","ActionButton","dangerouslySetInnerHTML","__html","CalendarRequests","calendarEvents","from","to","url","publicUrl","key","nextTopicSpecialEvent","classificationId","params","limit","objectType","formatData","events","getDisplayDate","slice","getEventsInMonth","month","filter","e","getOrdinalDate","getPhrase","SCROLL_HEIGHT_MAX","SCROLL_HEIGHT_MIN","SpecialEventListView","activePresentation","usePresentation","redirectOnError","fromDate","toDate","eventsOnDay","Popup","closePopup","dialogClassName","bodyClassName","showLoadingSpinner","autoHeight","autoHeightMin","autoHeightMax","map","ClassificationAppLinkHelper","classification","banner","PopupButtons","variant"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3640],{5859:(e,a,i)=>{function t(e,a){(null==a||a>e.length)&&(a=e.length);for(var i=0,t=Array(a);i<a;i++)t[i]=e[i];return t}i.d(a,{u:()=>r});var n={numItems:5,minWidth:50,maxWidth:100},r={getPartialLoadingItems:function(){var e,a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=Object.assign(Object.assign({},n),a);return(e=Array(i.numItems),function(e){if(Array.isArray(e))return t(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,a){if(e){if("string"==typeof e)return t(e,a);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?t(e,a):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).map((function(){return{width:"".concat(Math.max(Math.floor(Math.random()*i.maxWidth),i.minWidth),"px")}}))}}},70067:(e,a,i)=>{i.r(a),i.d(a,{PlaySharedClipViewV2:()=>x});var t=i(32735),n=i(20354),r=i(65858),c=i(16714),s=i(43012),o=i(39151),d=i(1666),l=i(20768),u=i(31949),p=i(1575),m=i(26304),v=i(22902),g=i(15311),I=i(79612),h=i(76753),y=i(51855),f=i(7179),A=i(49948),P=i(36873),C=i(27638),E=i(44110),b=i(35014),V=i(97816),O=i(81812),F=i(14085);function x(e){var a,i,x,L,S,G,k=(0,g.r)().hasProduct,R=(0,C.u)(r.LZ.VideoThumbnail),T=R.setFavourite,w=R.canFavourite,q=(0,v.T)().hasPermissions,N=(0,y.G)().isPlugin,U=(0,O.a)(),M=(0,b.I)(),j=n.a.useBasicFetch(u.N.currentUser()),_=n.a.useBasicFetch(o.L.config()),W=n.a.useBasicFetch(s.e.sharedClip(e.objectId,e.shareId)),B=n.a.useBasicFetch(!!(null===(a=W.data)||void 0===a?void 0:a._parentVideo)&&p.R.video(W.data._parentVideo.id)),D=n.a.useBasicFetch(!!(null===(x=null===(i=W.data)||void 0===i?void 0:i._parentVideo)||void 0===x?void 0:x.id)&&M.canViewClips&&s.e.videoClips(W.data._parentVideo.id)),H=n.a.useBasicFetch(M.canViewInteractives&&l.b.videoInteractives(e.objectId)),K=(0,P.k)({video:B.data,context:e.queryParams.context,contextId:e.queryParams.contextId,moviesAndTv:e.queryParams.mtv,currentUser:j.data}),Q=(0,E.i)(),Y=n.a.useBasicFetch((null===(L=j.data)||void 0===L?void 0:L.isAuthenticated)&&d.h.yearGroups(j.data.customerId)),Z=(0,A.l)(e.objectId);return(0,I.M)(h.CG.getClipMetadata({content:W.data})),(0,V.V)(null!==(S=K.videos)&&void 0!==S?S:[]),(0,m.b)(W),(0,f.P)({id:e.objectId,app:"clips",shareId:e.shareId}),W.data&&j.hasCompleted&&_.hasCompleted&&Z.hasCompleted?t.createElement(F.S,{shareId:e.shareId,clip:W.data,clips:D.data,interactives:H.data,originalVideo:B.data,currentUser:j.data,yearGroups:Y.data,relatedVideos:K,canFavourite:w,setFavourite:T,hasProduct:k,queryParams:e.queryParams,audiences:Q.data,imageCdnUrl:_.data.imageCdnUrl,canManageVideoAccess:q(c.C.ManageVideoAccess),pointsOfInterest:null==Z?void 0:Z.items,featureAccess:M,tableOfContentsId:null===(G=e.queryParams)||void 0===G?void 0:G.tocId,shouldShowSideTableOfContents:U,isPlugin:N}):t.createElement(t.Fragment,null)}},44110:(e,a,i)=>{i.d(a,{i:()=>c});var t=i(20354),n=i(89454),r=i(86698),c=function(){var e=(0,r.y)({redirectOnError:!0}),a=e.activePresentation,i=e.getFallbackPresentation,c=a||i();return t.a.useBasicFetch(!!c&&n.O.presentationAudiences(c.id))}},14085:(e,a,i)=>{i.d(a,{S:()=>H});var t=i(32735),n=i(28400),r=i(49935),c=i(5640),s=i(12059),o=i(51184),d=i(64921),l=i(95812),u=i(53709),p=i(71063),m=i(10439),v=i(35429),g=i(4594),I=i(16714),h=i(12754),y=i(22902),f=i(65332),A=i(76196),P=i(59598),C=i(31908),E=i(26492),b=i(9465),V=i(91479),O=i(47938),F=i(81024),x=i(78166),L=i(99742),S=i(14070),G=i(97291),k=i(22490),R=i(63010),T=i(14476),w=i(53256),q=i(83345),N=i(13231),U=i(51365),M=i(10671),j=i(10741),_="shared.playClipV2";function W(e){var a=(0,y.T)().hasPermissions,i=(0,M._)({location:M.i.VideoItem});return t.createElement("section",{className:"play-page-section",id:P.K.ClippedFrom,ref:function(a){var i;a&&(null===(i=e.headingRef)||void 0===i?void 0:i.current)&&e.headingRef.current.set(P.K.ClippedFrom,a)}},t.createElement("h2",{className:"h4 mb-0"},t.createElement(q.x,{namespace:_,phrase:"clippedFrom"})),t.createElement(U.M.Provider,{value:i},t.createElement(N.E4,{videos:[e.originalVideo],yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,getVideoAppLink:function(a,i){return k.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},hasPermissions:a,presentationAudiences:e.audiences,getPreviewQuestionsAppLink:function(e){return j.j.getPreviewQuestionsAppLink(e)},isPlugin:e.isPlugin,getClassroomGuideAppLink:e.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:e.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.getResourceGuidanceAppLink})))}const B={main:"iQ0Ie",expandedToc:"sIoV8"};var D=function(e,a,i){return function(t){return i?{application:G.O.VIDEOS,action:S.e.Videos.PREVIEW_PDF,args:[t.id],params:{videoId:e,shareId:a}}:{application:G.O.SIGN_UP,action:S.e.SignUp.SIGN_UP}}};function H(e){var a,i,q,N,U,M,j,_,H,K,Q=(0,v.g)(),Y=(0,y.T)().hasPermissions,Z=C.M.getCanBeConsumed(e.clip).canConsume,J=(0,R.Q)(e.tableOfContentsId),$=J.tableOfContentsActiveId,z=J.setTableOfContentsActiveId,X=J.controlledId,ee=J.setControlledId,ae=J.tableOfContentsExpanded,ie=J.onToggleTableOfContents,te=(0,o.Wp)(e.clip)&&e.featureAccess.canViewGlance,ne=(0,T.i)(te),re=ne.headingRef,ce=ne.headingElements,se=ce.map((function(a){var i;return{id:a.id,name:w.d.getSectionHeading(a.id,{clips:e.clips,interactives:e.interactives,resources:null===(i=e.clip.resources)||void 0===i?void 0:i.data,isPlayClipPage:!0})}}));(0,f.D)({setActiveId:z,headingElements:ce,controlledId:X,setControlledId:ee}),(0,A.P)(ce,e.tableOfContentsId);var oe=C.M.isVideoTypeArchived(e.clip),de=Y(I.C.StudentExperience),le=t.useRef(!1);function ue(){var e,a,i,t;le.current=!(null===(a=null===(e=null==Q?void 0:Q.playerRef)||void 0===e?void 0:e.current)||void 0===a?void 0:a.isPaused()),null===(t=null===(i=null==Q?void 0:Q.playerRef)||void 0===i?void 0:i.current)||void 0===t||t.pause()}function pe(){var e,a;le.current&&(null===(a=null===(e=null==Q?void 0:Q.playerRef)||void 0===e?void 0:e.current)||void 0===a||a.play())}function me(){var a,i;return!(!e.originalVideo||!(null===(a=e.clip._canBeConsumed)||void 0===a?void 0:a.value)||!(null===(i=e.currentUser)||void 0===i?void 0:i.isAuthenticated)||!e.hasProduct(h.x.Primary)||de)}var ve="picture-in-picture"===Q.mode||e.featureAccess.canViewPublicLayout,ge=null!==(i=null===(a=e.clips)||void 0===a?void 0:a.filter((function(a){return a.id.toString()!==e.clip.id.toString()})))&&void 0!==i?i:[];return t.createElement("div",{className:"px-4 play-page-sections-container"},t.createElement("main",{className:"".concat(B.main," ").concat(e.shouldShowSideTableOfContents&&ae?B.expandedToc:e.shouldShowSideTableOfContents&&!ae?"pe-4":void 0)},!!(null===(q=e.breadcrumbs)||void 0===q?void 0:q.length)&&t.createElement("div",{className:"mb-2"},t.createElement(r.Oo,{breadcrumbs:e.breadcrumbs})),t.createElement(O.W,{restrictions:e.clip._restrictions,yearGroups:e.yearGroups,objectId:e.clip.id,objectTypeId:g.E.Clip,canManageVideoAccess:e.canManageVideoAccess}),oe&&t.createElement(E.T,{typeId:e.clip.typeId,hasStudentExperience:de}),t.createElement("section",{id:P.K.Video,className:"mb-2 ".concat(p.M.GLOBAL_PLAYER_SELECTOR),ref:function(e){e&&(null==re?void 0:re.current)&&re.current.set(P.K.Video,e)}},Z&&t.createElement(m.r,{key:e.clip.id,objectId:e.clip.id,objectTypeId:e.clip.typeId,shareId:e.shareId,context:null===(N=e.queryParams)||void 0===N?void 0:N.context,contextId:null===(U=e.queryParams)||void 0===U?void 0:U.contextId,moviesAndTv:null===(M=e.queryParams)||void 0===M?void 0:M.mtv,playNext:null===(j=e.queryParams)||void 0===j?void 0:j.playNext,startTime:null!==(H=null===(_=e.queryParams)||void 0===_?void 0:_.t)&&void 0!==H?H:null===(K=e.queryParams)||void 0===K?void 0:K.startTime,mode:"default",location:"play-page"}),t.createElement("div",{className:ve?"":"d-none"},t.createElement(F.S,{video:e.clip,type:"pip"}))),t.createElement(V.v,{media:e.clip,yearGroups:e.yearGroups,audiences:e.audiences,originalVideoAppLink:me()?{application:G.O.VIDEOS,action:S.e.Videos.PLAY_VIDEO,args:[e.originalVideo.id,n.m.slugify(e.originalVideo.name)]}:null,featureAccess:e.featureAccess,shareId:e.shareId}),te?t.createElement(d.j,{video:e.clip,pointsOfInterest:e.pointsOfInterest,setStartTime:function(e){var a;return null===(a=Q.playerRef.current)||void 0===a?void 0:a.currentTime(e)},getTagAppLink:function(e){return{application:G.O.SEARCH,action:S.e.Search.HOME,params:{tagOrClassification:e.name}}},suppressInteractivity:e.featureAccess.canViewPublicLayout,canViewGlance:te}):t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:ue,onExitImmersiveReader:pe,getTagAppLink:function(e){return{application:G.O.SEARCH,action:S.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:re,suppressInteractivity:e.featureAccess.canViewPublicLayout}),t.createElement(u.M,{video:e.clip,canViewResources:e.featureAccess.canViewResourceItems,imageCdnUrl:e.imageCdnUrl,getAppLink:D(e.clip.id,e.shareId,e.featureAccess.canViewResourceItems),analyticsData:{clipId:e.clip.id,clipName:e.clip.name},resourceThumbnailFallbackUrl:L.W.Fallbacks.RESOURCE_THUMBNAIL,headingRef:re}),t.createElement(l.J,{video:e.clip,interactives:e.interactives,imageCdnUrl:e.imageCdnUrl,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},canViewInteractives:e.featureAccess.canViewInteractives,headingRef:re,yearGroups:e.yearGroups,setFavourite:e.setFavourite,canFavourite:e.canFavourite,isPlugin:e.isPlugin}),t.createElement(c.O,{clips:ge||[],video:e.clip,canViewClips:e.featureAccess.canViewClips,yearGroups:e.yearGroups,audiences:e.audiences,imageCdnUrl:e.imageCdnUrl,setFavourite:e.setFavourite,canFavourite:e.canFavourite,headingRef:re,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},isPlugin:e.isPlugin}),te&&t.createElement(s.a,{video:e.clip,onLaunchImmersiveReader:ue,onExitImmersiveReader:pe,getTagAppLink:function(e){return{application:G.O.SEARCH,action:S.e.Search.HOME,params:{tagOrClassification:e.name}}},headingRef:re,suppressInteractivity:e.featureAccess.canViewPublicLayout}),!!me()&&t.createElement(W,{originalVideo:e.originalVideo,setFavourite:e.setFavourite,canFavourite:e.canFavourite,yearGroups:e.yearGroups,shareId:e.shareId,queryParams:e.queryParams,audiences:e.audiences,headingRef:re,isPlugin:e.isPlugin,getClassroomGuideAppLink:k.W.getClassroomGuideAppLink,getInteractiveGuidanceAppLink:k.W.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:k.W.getResourceGuidanceAppLink}),t.createElement(x.Z,{currentVideo:e.clip,yearGroups:e.yearGroups,relatedVideos:e.relatedVideos,setFavourite:e.setFavourite,canFavourite:e.canFavourite,currentUser:e.currentUser,audiences:e.audiences,getVideoAppLink:function(a,i){return k.W.getAppLink(a,Object.assign(Object.assign({},i),{context:e.queryParams.context,contextId:e.queryParams.contextId,playNext:e.queryParams.playNext,shareId:e.shareId,moviesAndTv:e.queryParams.mtv}))},moviesAndTv:e.queryParams.mtv,isPlugin:e.isPlugin})),t.createElement(b.h,{isExpanded:ae,setIsExpanded:ie,items:se,activeId:$,setControlledId:ee,analyticsData:{clipId:e.clip.id,clipName:e.clip.name},showInSide:e.shouldShowSideTableOfContents}))}}}]);
|
|
2
|
-
//# sourceMappingURL=3640-1ac0a110f4-lite.chunk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scripts/3640-1ac0a110f4-lite.chunk.js","mappings":"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","sources":["file:///app/packages/libs/shared/src/utils/PartialLoadingHelper.ts","file:///app/packages/projects/lite/src/apps/share/views/play-shared-clip/v2/PlaySharedClipViewV2.tsx","file:///app/packages/projects/lite/src/shared/hooks/usePresentationAudiences.ts","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/clipped-from/ClippedFrom.tsx","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/play-clip-v2.scss","file:///app/packages/projects/lite/src/shared/views/play-clip/v2/components/play-clip/PlayClipV2.tsx"],"sourcesContent":["const DEFAULT_PARTIAL_LOADING_OPTIONS: PartialLoadingOptions = {\n numItems: 5,\n minWidth: 50, // px\n maxWidth: 100 // px\n};\n\nexport interface PartialLoadingOptions {\n numItems?: number;\n minWidth?: number;\n maxWidth?: number;\n}\n\ninterface PartialLoadingItem {\n width: string;\n}\n\nexport const PartialLoadingHelper = {\n getPartialLoadingItems(options: PartialLoadingOptions = {}): PartialLoadingItem[] {\n const opts = {\n ...DEFAULT_PARTIAL_LOADING_OPTIONS,\n ...options\n };\n\n const getRandomFilterWidth = () => Math.max(Math.floor(Math.random() * opts.maxWidth), opts.minWidth);\n\n return [...Array(opts.numItems)].map(() => ({ width: `${getRandomFilterWidth()}px` }));\n }\n};","import React from 'react';\n\nimport { Flight } from 'libs/common/flight';\n\nimport { LocationContext } from 'libs/analytics/interfaces';\n\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ClipRequests } from 'libs/shared/flight-requests/ClipRequests';\nimport { ConfigRequests } from 'libs/shared/flight-requests/ConfigRequests';\nimport { CustomerRequests } from 'libs/shared/flight-requests/CustomerRequests';\nimport { InteractiveRequests } from 'libs/shared/flight-requests/InteractiveRequests';\nimport { UserRequests } from 'libs/shared/flight-requests/UserRequests';\nimport { VideoRequests } from 'libs/shared/flight-requests/VideoRequests';\nimport { useCannotConsumeError } from 'libs/shared/hooks/useCannotConsumeError';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { useProducts } from 'libs/shared/hooks/UseProducts';\nimport { useSetPageMetadata } from 'libs/shared/hooks/useSetPageMetadata';\nimport { Clip, Config, CurrentUser, InteractiveMetadata, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PageMetadataHelper } from 'libs/shared/utils/PageMetadataHelper';\n\nimport { usePluginHelper } from 'shared/hooks/use-plugin-helper/usePluginHelper';\nimport { useDeepLinks } from 'shared/hooks/useDeepLinks';\nimport { useFetchPointsOfInterest } from 'shared/hooks/useFetchPointsOfInterest';\nimport { useGetRelatedVideos } from 'shared/hooks/useGetRelatedVideos';\nimport { useLiteFavourites } from 'shared/hooks/useLiteFavourites';\nimport { usePresentationAudiences } from 'shared/hooks/usePresentationAudiences';\nimport { useVideoFeatureAccess } from 'shared/hooks/useVideoFeatureAccess';\nimport { useVideoMixin } from 'shared/hooks/useVideoMixin';\nimport { useShouldShowSideTableOfContents } from 'shared/views/play/v2/hooks/useShouldShowTableOfContents';\nimport { PlayClipV2 } from 'shared/views/play-clip/v2/components/play-clip/PlayClipV2';\n\nimport { ShareLinkViewProps } from 'apps/share/interfaces/ShareLinkViewProps';\n\nexport function PlaySharedClipViewV2(props: ShareLinkViewProps): React.ReactElement {\n const { hasProduct } = useProducts();\n const { setFavourite, canFavourite } = useLiteFavourites(LocationContext.VideoThumbnail);\n const { hasPermissions } = usePermissions();\n const { isPlugin } = usePluginHelper();\n\n const shouldShowSideTableOfContents = useShouldShowSideTableOfContents();\n\n const featureAccess = useVideoFeatureAccess();\n\n const currentUser = Flight.useBasicFetch<CurrentUser>(UserRequests.currentUser());\n const config = Flight.useBasicFetch<Config>(ConfigRequests.config());\n const clip = Flight.useBasicFetch<Clip>(ClipRequests.sharedClip(props.objectId, props.shareId));\n const video = Flight.useBasicFetch<Video>(!!clip.data?._parentVideo &&\n VideoRequests.video(clip.data._parentVideo.id));\n const childClips = Flight.useBasicFetch<Clip[]>(\n !!clip.data?._parentVideo?.id && featureAccess.canViewClips && ClipRequests.videoClips(clip.data._parentVideo.id)\n );\n const interactives = Flight.useBasicFetch<InteractiveMetadata[]>(\n featureAccess.canViewInteractives && InteractiveRequests.videoInteractives(props.objectId)\n );\n \n const relatedVideos = useGetRelatedVideos({\n video: video.data,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n moviesAndTv: props.queryParams.mtv,\n currentUser: currentUser.data\n });\n const audiences = usePresentationAudiences();\n const yearGroups = Flight.useBasicFetch<YearGroup[]>(\n currentUser.data?.isAuthenticated && CustomerRequests.yearGroups(currentUser.data.customerId)\n );\n const pointsOfInterest = useFetchPointsOfInterest(props.objectId);\n\n useSetPageMetadata(PageMetadataHelper.getClipMetadata({ content: clip.data }));\n\n useVideoMixin(relatedVideos.videos ?? []);\n useCannotConsumeError(clip);\n useDeepLinks({ id: props.objectId, app: 'clips', shareId: props.shareId });\n\n const hasLoaded = (\n clip.data &&\n currentUser.hasCompleted &&\n config.hasCompleted &&\n pointsOfInterest.hasCompleted\n );\n\n if (!hasLoaded)\n return <></>;\n\n return (\n <PlayClipV2\n shareId={props.shareId}\n clip={clip.data}\n clips={childClips.data}\n interactives={interactives.data}\n originalVideo={video.data}\n currentUser={currentUser.data}\n yearGroups={yearGroups.data}\n relatedVideos={relatedVideos}\n canFavourite={canFavourite}\n setFavourite={setFavourite}\n hasProduct={hasProduct}\n queryParams={props.queryParams}\n audiences={audiences.data}\n imageCdnUrl={config.data.imageCdnUrl}\n canManageVideoAccess={hasPermissions(PermissionName.ManageVideoAccess)}\n pointsOfInterest={pointsOfInterest?.items}\n featureAccess={featureAccess}\n tableOfContentsId={props.queryParams?.tocId}\n shouldShowSideTableOfContents={shouldShowSideTableOfContents}\n isPlugin={isPlugin}\n />\n );\n}","import { Flight } from 'libs/common/react/index';\n\nimport { AudienceRequests } from 'libs/shared/flight-requests/AudienceRequests';\nimport { PresentationAudience } from 'libs/shared/interfaces';\n\nimport { usePresentation } from 'shared/hooks/usePresentation';\n\nexport const usePresentationAudiences = () => {\n const { activePresentation, getFallbackPresentation } = usePresentation({ redirectOnError: true });\n\n const presentation = activePresentation || getFallbackPresentation();\n\n const audiences = Flight.useBasicFetch<PresentationAudience[]>(\n !!presentation &&\n AudienceRequests.presentationAudiences(presentation.id)\n );\n\n return audiences;\n};","import React from 'react';\n\nimport { Core } from 'libs/common/backbone/index';\n\nimport { Text } from 'libs/shared/components/text/Text';\nimport { VideoList } from 'libs/shared/components/video-list/VideoList';\nimport { VideoActionsContext } from 'libs/shared/context/VideoActionsContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { CanFavouriteFunc, FavouriteFunc, PresentationAudience, VideoTypes, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\n\nimport { useVideoActions, VideoActionsLocation } from 'shared/hooks/use-video-actions/useVideoActions';\nimport { InteractiveHelpers } from 'shared/utils/InteractiveHelper';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\n\nconst namespace = 'shared.playClipV2';\n\ninterface ClippedFromProps {\n originalVideo: VideoTypes;\n yearGroups: YearGroup[];\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n audiences: PresentationAudience[];\n shareId?: string;\n headingRef: React.MutableRefObject<Map<PlayPageAnchor, HTMLElement>>;\n isPlugin: boolean;\n getInteractiveGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getResourceGuidanceAppLink: (id: string, type: MasterType) => Core.AppLink;\n getClassroomGuideAppLink: (id: string, type: MasterType) => Core.AppLink;\n}\n\nexport function ClippedFrom(props: ClippedFromProps) {\n const { hasPermissions } = usePermissions();\n const videoActions = useVideoActions({ location: VideoActionsLocation.VideoItem });\n\n return (\n <section\n className='play-page-section'\n id={PlayPageAnchor.ClippedFrom}\n ref={el => {\n (el && props.headingRef?.current) && props.headingRef.current.set(PlayPageAnchor.ClippedFrom, el);\n }}\n >\n <h2 className='h4 mb-0'><Text namespace={namespace} phrase='clippedFrom' /></h2>\n <VideoActionsContext.Provider value={videoActions}>\n <VideoList\n videos={[props.originalVideo]}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n hasPermissions={hasPermissions}\n presentationAudiences={props.audiences}\n getPreviewQuestionsAppLink={interactive => InteractiveHelpers.getPreviewQuestionsAppLink(interactive)}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={props.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={props.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={props.getResourceGuidanceAppLink}\n />\n </VideoActionsContext.Provider>\n </section>\n );\n}","// extracted by mini-css-extract-plugin\nexport default {\"main\":\"iQ0Ie\",\"expandedToc\":\"sIoV8\"};","import React from 'react';\n\nimport { Core } from 'libs/common/core';\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\n\nimport { Breadcrumb, Breadcrumbs } from 'libs/shared/components/breadcrumbs/Breadcrumbs';\nimport { PlayPageClips } from 'libs/shared/components/play-page-v2/clips-widget/PlayPageClips';\nimport { VideoDetailsWithScrollbarV2 } from 'libs/shared/components/play-page-v2/details/VideoDetailsV2';\nimport { hasGlanceData } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceUtilsV2';\nimport { VideoAtAGlanceV2 } from 'libs/shared/components/play-page-v2/glance/VideoAtAGlanceV2';\nimport { PlayPageInteractives } from 'libs/shared/components/play-page-v2/interactives-widget/PlayPageInteractives';\nimport { PlayPageResources } from 'libs/shared/components/play-page-v2/resources-widget/PlayPageResources';\nimport { SeoConstants } from 'libs/shared/constants/SeoConstants';\nimport { GlobalPlayerConsumer } from 'libs/shared/context/player-context/components/GlobalPlayerConsumer';\nimport { usePlayerContext } from 'libs/shared/context/player-context/PlayerContext';\nimport { MasterType } from 'libs/shared/enums/MasterType';\nimport { PermissionName } from 'libs/shared/enums/PermissionName';\nimport { ProductId } from 'libs/shared/enums/ProductId';\nimport { usePermissions } from 'libs/shared/hooks/usePermissions';\nimport { HasProductFunc } from 'libs/shared/hooks/UseProducts';\nimport { useTableOfContentsActiveHeading } from 'libs/shared/hooks/useTableOfContentsActiveHeading';\nimport { useTableOfContentsScroll } from 'libs/shared/hooks/useTableOfContentsScroll';\nimport { CanFavouriteFunc, Clip, CurrentUser, FavouriteFunc, InteractiveMetadata, Link, PointOfInterest, PresentationAudience, Resource, Video, YearGroup } from 'libs/shared/interfaces';\nimport { PlayPageAnchor } from 'libs/shared/interfaces/PlayPageAnchor';\nimport { PlayViewQueryParams } from 'libs/shared/interfaces/query-params/PlayViewQueryParams';\nimport { VideoHelper } from 'libs/shared/utils/VideoHelper';\n\nimport { ArchivedBanner } from 'shared/components/play-page/ArchivedBanner';\nimport { TableOfContentsContainer } from 'shared/components/play-page/components/table-of-contents/TableOfContents';\nimport { PlayPageTitleAndActions } from 'shared/components/play-page/components/title-and-actions/PlayPageTitleAndActions';\nimport { RestrictionBanner } from 'shared/components/play-page/RestrictionBanner';\nimport { PlayerPlaceholder } from 'shared/components/player-placeholder/PlayerPlaceholder';\nimport { RelatedVideos } from 'shared/components/related-videos/RelatedVideos';\nimport { ImageUrls } from 'shared/constants/ImageUrls';\nimport { Actions } from 'shared/constants/LiteActions';\nimport { AppChannels } from 'shared/constants/LiteRadioChannels';\nimport { RelatedVideosHash } from 'shared/hooks/useGetRelatedVideos';\nimport { VideoFeaturesHash } from 'shared/hooks/useVideoFeatureAccess';\nimport { VideoAppLinkHelper } from 'shared/utils/VideoAppLinkHelper';\nimport { usePlayPageTableOfContent } from 'shared/views/play/v2/hooks/usePlayPageTableOfContent';\nimport { useSectionHeadings } from 'shared/views/play/v2/hooks/useSectionHeadings';\nimport { PlayPageUtils } from 'shared/views/play/v2/PlayPageUtilV2';\nimport { ClippedFrom } from 'shared/views/play-clip/v2/components/clipped-from/ClippedFrom';\n\nimport styles from './play-clip-v2.scss';\n\nconst getResourceAppLink = (videoId: string, shareId: string, canViewResource: boolean) =>\n (resource: Resource | Link) => {\n if (!canViewResource) {\n return {\n application: AppChannels.SIGN_UP,\n action: Actions.SignUp.SIGN_UP\n };\n }\n\n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PREVIEW_PDF,\n args: [resource.id],\n params: {\n videoId: videoId,\n shareId: shareId\n }\n };\n };\n\n\ninterface PlayClipV2Props {\n clip: Clip;\n clips: Clip[];\n interactives: InteractiveMetadata[];\n originalVideo: Video;\n currentUser: CurrentUser;\n yearGroups: YearGroup[];\n relatedVideos: RelatedVideosHash;\n setFavourite: FavouriteFunc;\n canFavourite: CanFavouriteFunc;\n queryParams: PlayViewQueryParams;\n hasProduct: HasProductFunc;\n audiences: PresentationAudience[];\n imageCdnUrl: string;\n shareId?: string;\n canManageVideoAccess: boolean;\n pointsOfInterest?: PointOfInterest[];\n featureAccess: VideoFeaturesHash;\n tableOfContentsId: string;\n shouldShowSideTableOfContents: boolean;\n isPlugin: boolean;\n breadcrumbs?: Breadcrumb[];\n}\n\nexport function PlayClipV2(props: PlayClipV2Props): JSX.Element {\n const playerContext = usePlayerContext();\n\n const { hasPermissions } = usePermissions();\n const { canConsume } = VideoHelper.getCanBeConsumed(props.clip);\n \n const {\n tableOfContentsActiveId,\n setTableOfContentsActiveId,\n controlledId,\n setControlledId,\n tableOfContentsExpanded,\n onToggleTableOfContents\n } = usePlayPageTableOfContent(props.tableOfContentsId);\n\n const hasGlance = hasGlanceData(props.clip) && props.featureAccess.canViewGlance;\n\n const { headingRef, headingElements } = useSectionHeadings(hasGlance);\n const items = headingElements.map(ele => {\n return {\n id: ele.id as PlayPageAnchor,\n name: PlayPageUtils.getSectionHeading(\n ele.id as PlayPageAnchor,\n {\n clips: props.clips,\n interactives: props.interactives,\n resources: props.clip.resources?.data,\n isPlayClipPage: true\n }\n )\n };\n });\n\n useTableOfContentsActiveHeading({\n setActiveId: setTableOfContentsActiveId,\n headingElements,\n controlledId,\n setControlledId\n });\n\n useTableOfContentsScroll(headingElements, props.tableOfContentsId);\n\n const isArchived = VideoHelper.isVideoTypeArchived(props.clip);\n const hasStudentExperience = hasPermissions(PermissionName.StudentExperience);\n /**\n * Need to use a ref because if we use state, onExitImmersiveReader will have a stale\n * reference of the state. This is because the state is changed in onLaunchImmersiveReader\n * which is passed in at the same time as onExitImmersiveReader\n */\n const shouldPlayOnExitImmersiveReader = React.useRef(false);\n\n function onLaunchImmersiveReader(): void {\n shouldPlayOnExitImmersiveReader.current = !playerContext?.playerRef?.current?.isPaused();\n playerContext?.playerRef?.current?.pause();\n }\n\n function onExitImmersiveReader(): void {\n if (!shouldPlayOnExitImmersiveReader.current)\n return;\n\n playerContext?.playerRef?.current?.play();\n }\n\n function canAccessOriginal(): boolean {\n if (!props.originalVideo || !props.clip._canBeConsumed?.value)\n return false;\n\n if (!props.currentUser?.isAuthenticated)\n return false;\n\n if (!props.hasProduct(ProductId.Primary))\n return false;\n\n if (hasStudentExperience)\n return false;\n\n return true;\n }\n\n function getOriginalVideoAppLink(): Core.AppLink {\n if (!canAccessOriginal())\n return null;\n \n return {\n application: AppChannels.VIDEOS,\n action: Actions.Videos.PLAY_VIDEO,\n args: [ props.originalVideo.id, TextHelper.slugify(props.originalVideo.name) ]\n };\n }\n\n const showPlayerPlaceholder = playerContext.mode === 'picture-in-picture' || props.featureAccess.canViewPublicLayout;\n\n const otherClips = props.clips?.filter(c => c.id.toString() !== props.clip.id.toString()) ?? [];\n\n function getMainClassName() {\n if (props.shouldShowSideTableOfContents && tableOfContentsExpanded) {\n return styles.expandedToc;\n }\n if (props.shouldShowSideTableOfContents && !tableOfContentsExpanded)\n return 'pe-4';\n }\n\n return (\n <div className='px-4 play-page-sections-container'>\n <main className={`${styles.main} ${getMainClassName()}`}>\n {!!props.breadcrumbs?.length &&\n <div className='mb-2'>\n <Breadcrumbs breadcrumbs={props.breadcrumbs} />\n </div>\n }\n\n\n <RestrictionBanner\n restrictions={props.clip._restrictions}\n yearGroups={props.yearGroups}\n objectId={props.clip.id}\n objectTypeId={MasterType.Clip}\n canManageVideoAccess={props.canManageVideoAccess}\n />\n\n {isArchived && (\n <ArchivedBanner\n typeId={props.clip.typeId}\n hasStudentExperience={hasStudentExperience}\n />\n )}\n\n <section\n id={PlayPageAnchor.Video}\n className={`mb-2 ${SeoConstants.GLOBAL_PLAYER_SELECTOR}`}\n ref={el => { (el && headingRef?.current) && headingRef.current.set(PlayPageAnchor.Video, el); }}\n >\n {canConsume && (\n <GlobalPlayerConsumer\n key={props.clip.id}\n objectId={props.clip.id}\n objectTypeId={props.clip.typeId}\n shareId={props.shareId}\n context={props.queryParams?.context}\n contextId={props.queryParams?.contextId}\n moviesAndTv={props.queryParams?.mtv}\n playNext={props.queryParams?.playNext}\n startTime={props.queryParams?.t ?? props.queryParams?.startTime}\n mode='default'\n location='play-page'\n />\n )}\n <div className={showPlayerPlaceholder ? '' : 'd-none'}>\n <PlayerPlaceholder\n video={props.clip}\n type='pip'\n />\n </div>\n </section>\n\n <PlayPageTitleAndActions\n media={props.clip}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n originalVideoAppLink={getOriginalVideoAppLink()}\n featureAccess={props.featureAccess}\n shareId={props.shareId}\n />\n\n {/* if no glance render video details here */}\n {hasGlance ? (\n <VideoAtAGlanceV2\n video={props.clip}\n pointsOfInterest={props.pointsOfInterest}\n setStartTime={(time: number) => playerContext.playerRef.current?.currentTime(time)}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n canViewGlance={hasGlance}\n />\n ) : (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n\n <PlayPageResources\n video={props.clip}\n canViewResources={props.featureAccess.canViewResourceItems}\n imageCdnUrl={props.imageCdnUrl}\n getAppLink={\n getResourceAppLink(props.clip.id, props.shareId, props.featureAccess.canViewResourceItems)\n }\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n resourceThumbnailFallbackUrl={ImageUrls.Fallbacks.RESOURCE_THUMBNAIL}\n headingRef={headingRef}\n />\n\n <PlayPageInteractives\n video={props.clip}\n interactives={props.interactives}\n imageCdnUrl={props.imageCdnUrl}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n canViewInteractives={props.featureAccess.canViewInteractives}\n headingRef={headingRef}\n yearGroups={props.yearGroups}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n isPlugin={props.isPlugin}\n />\n\n <PlayPageClips\n clips={otherClips || []}\n video={props.clip}\n canViewClips={props.featureAccess.canViewClips}\n yearGroups={props.yearGroups}\n audiences={props.audiences}\n imageCdnUrl={props.imageCdnUrl}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n headingRef={headingRef}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n isPlugin={props.isPlugin}\n />\n\n {/* if has glance, render video details here */}\n {hasGlance && (\n <VideoDetailsWithScrollbarV2\n video={props.clip}\n onLaunchImmersiveReader={onLaunchImmersiveReader}\n onExitImmersiveReader={onExitImmersiveReader}\n getTagAppLink={tag => ({\n application: AppChannels.SEARCH,\n action: Actions.Search.HOME,\n params: { tagOrClassification: tag.name }\n })}\n headingRef={headingRef}\n suppressInteractivity={props.featureAccess.canViewPublicLayout}\n />\n )}\n \n {!!canAccessOriginal() && (\n <ClippedFrom\n originalVideo={props.originalVideo}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n yearGroups={props.yearGroups}\n shareId={props.shareId}\n queryParams={props.queryParams}\n audiences={props.audiences}\n headingRef={headingRef}\n isPlugin={props.isPlugin}\n getClassroomGuideAppLink={VideoAppLinkHelper.getClassroomGuideAppLink}\n getInteractiveGuidanceAppLink={VideoAppLinkHelper.getInteractiveGuidanceAppLink}\n getResourceGuidanceAppLink={VideoAppLinkHelper.getResourceGuidanceAppLink}\n />\n )}\n\n <RelatedVideos\n currentVideo={props.clip}\n yearGroups={props.yearGroups}\n relatedVideos={props.relatedVideos}\n setFavourite={props.setFavourite}\n canFavourite={props.canFavourite}\n currentUser={props.currentUser}\n audiences={props.audiences}\n getVideoAppLink={(v, opts) => VideoAppLinkHelper.getAppLink(v, {\n ...opts,\n context: props.queryParams.context,\n contextId: props.queryParams.contextId,\n playNext: props.queryParams.playNext,\n shareId: props.shareId,\n moviesAndTv: props.queryParams.mtv\n })}\n moviesAndTv={props.queryParams.mtv}\n isPlugin={props.isPlugin}\n />\n\n </main>\n\n <TableOfContentsContainer\n isExpanded={tableOfContentsExpanded}\n setIsExpanded={onToggleTableOfContents}\n items={items}\n activeId={tableOfContentsActiveId}\n setControlledId={setControlledId}\n analyticsData={{ clipId: props.clip.id, clipName: props.clip.name }}\n showInSide={props.shouldShowSideTableOfContents}\n />\n \n </div>\n );\n}"],"names":["DEFAULT_PARTIAL_LOADING_OPTIONS","numItems","minWidth","maxWidth","PartialLoadingHelper","getPartialLoadingItems","options","opts","Array","map","width","Math","max","floor","random","PlaySharedClipViewV2","props","hasProduct","u","setFavourite","canFavourite","hasPermissions","isPlugin","shouldShowSideTableOfContents","featureAccess","currentUser","config","clip","objectId","shareId","video","data","_parentVideo","id","childClips","canViewClips","interactives","canViewInteractives","relatedVideos","context","queryParams","contextId","moviesAndTv","mtv","audiences","yearGroups","isAuthenticated","customerId","pointsOfInterest","content","videos","app","hasCompleted","clips","originalVideo","imageCdnUrl","canManageVideoAccess","items","tableOfContentsId","tocId","usePresentationAudiences","redirectOnError","activePresentation","getFallbackPresentation","presentation","namespace","ClippedFrom","usePermissions","videoActions","useVideoActions","location","className","PlayPageAnchor","ref","el","headingRef","current","set","Text","phrase","VideoActionsContext","value","VideoList","getVideoAppLink","v","VideoAppLinkHelper","playNext","presentationAudiences","getPreviewQuestionsAppLink","interactive","InteractiveHelper","getClassroomGuideAppLink","getInteractiveGuidanceAppLink","getResourceGuidanceAppLink","getResourceAppLink","videoId","canViewResource","resource","application","action","args","params","PlayClipV2","playerContext","canConsume","VideoHelper","usePlayPageTableOfContent","tableOfContentsActiveId","setTableOfContentsActiveId","controlledId","setControlledId","tableOfContentsExpanded","onToggleTableOfContents","hasGlance","canViewGlance","useSectionHeadings","headingElements","ele","name","resources","isPlayClipPage","useTableOfContentsActiveHeading","setActiveId","useTableOfContentsScroll","isArchived","hasStudentExperience","PermissionName","shouldPlayOnExitImmersiveReader","onLaunchImmersiveReader","playerRef","isPaused","pause","onExitImmersiveReader","play","canAccessOriginal","_canBeConsumed","ProductId","showPlayerPlaceholder","mode","canViewPublicLayout","otherClips","filter","c","toString","breadcrumbs","length","Breadcrumbs","RestrictionBanner","restrictions","_restrictions","objectTypeId","MasterType","ArchivedBanner","typeId","SeoConstants","GlobalPlayerConsumer","key","startTime","t","PlayerPlaceholder","type","PlayPageTitleAndActions","media","originalVideoAppLink","TextHelper","VideoAtAGlanceV2","setStartTime","time","currentTime","getTagAppLink","tag","tagOrClassification","suppressInteractivity","PlayPageResources","canViewResources","canViewResourceItems","getAppLink","analyticsData","clipId","clipName","resourceThumbnailFallbackUrl","ImageUrls","PlayPageInteractives","PlayPageClips","RelatedVideos","currentVideo","TableOfContents","isExpanded","setIsExpanded","activeId","showInSide"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_clickview_lite=self.webpackChunk_clickview_lite||[]).push([[3969],{71020:(e,t,n)=>{n.d(t,{_:()=>u});var a=n(32735),i=n(80247),r=n(34152),s=n(83914),o=n(35223);const l={container:"VwD1b",spinner:"eJ85e"};function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function u(e){var t,n,u=(t=(0,r.YD)(),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,s,o=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,n)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(e,t):void 0}}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),d=u[0],p=u[1];return a.useEffect((function(){var t;e.fetchOnScroll&&p&&!e.isFetching&&(null===(t=e.fetchNext)||void 0===t||t.call(e,e.nextCursor))}),[p,e.isFetching]),a.createElement("div",{className:"p-3 text-center ".concat(l.container),ref:d},e.isFetching?a.createElement(i.Z,{as:"span",animation:"border",role:"status",className:l.spinner}):a.createElement(s.x,{svgName:o.vn.ChevronDown,className:"svg-container cursor-pointer",size:s.S.Large,onClick:function(){var t;return null===(t=e.fetchNext)||void 0===t?void 0:t.call(e,e.nextCursor)}}))}u.defaultProps={fetchOnScroll:!1}},16930:(e,t,n)=>{n.d(t,{W:()=>d,f:()=>c});var a=n(32735),i=n(23481),r=n(83914),s=n(35223);const o="VSAPU",l="kgeXh";var c,u=i.T.encloseNamespace("shared.widgetButton");!function(e){e[e.Left=0]="Left",e[e.Right=1]="Right"}(c||(c={}));var d=a.memo((function(e){var t,n,i,d=e.direction===c.Left,p=d?s.vn.ChevronLeft:s.vn.ChevronRight;return e.hide?a.createElement(a.Fragment,null):a.createElement("div",{className:"_ejId",style:"videos"===(null===(n=e.state)||void 0===n?void 0:n.contents)?{paddingBottom:56.25/(null===(i=e.state)||void 0===i?void 0:i.viewableItems)+"%"}:{height:"100%"}},e.useGradientBackdrop&&a.createElement("div",{className:d?"".concat("Pt3nx"," ").concat(e.leftGradientClassName):"".concat("ZuAif"," ").concat(e.rightGradientClassName)}),!e.hideExtendedClickableArea&&a.createElement("button",{onClick:e.onClick,className:"".concat("AtsWP"," ").concat(d?o:l),tabIndex:-1}),a.createElement("button",{className:"".concat((t="BVcIS",t+=d?" ".concat(o," ").concat(e.leftButtonClassName):" ".concat(l," ").concat(e.rightButtonClassName))," ").concat("gAsE9"," ").concat(e.className||""),onClick:e.onClick,"aria-label":u(d?"previous":"next")},e.hoverText&&a.createElement("span",{className:"ps-3 pe-2 ".concat("APA36")},e.hoverText),a.createElement(r.x,{svgName:p,size:r.S.Medium,className:"svg-container d-inline-block ".concat("Ev4hr")})))}))},60115:(e,t,n)=>{n.d(t,{K:()=>c});var a=n(32735),i=n(50242),r=n(91967),s=400,o=n(45719);function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function c(e,t,n,c,u,d){var p,m,v,y,g=(p=(0,a.useState)(0),m=2,function(e){if(Array.isArray(e))return e}(p)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,s,o=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(p,m)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(e,t):void 0}}(p,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=g[0],h=g[1],b=t,L=(0,o.P)((function(t){if(!e)return null;var n=e(t);return n?n.key:null}),c,u);return v={fetchNextPage:function(){if(t&&e&&L)return h((function(e){return e+1})),b(L.nextCursor)},hasMore:!!(null==L?void 0:L.nextCursor),isFetching:null==L?void 0:L.isFetching,scrollContainer:d},y=function(){if(!v.isFetching){if(v.scrollContainer){var e=v.scrollContainer;if(e.getBoundingClientRect().height+e.scrollTop<e.scrollHeight-s)return}else if(window.innerHeight+document.documentElement.scrollTop<document.documentElement.scrollHeight-s)return;v.fetchNextPage()}},(0,a.useEffect)((function(){var e=r.q.throttle(y,200),t=v.scrollContainer||window;return v.hasMore&&t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}),[v.hasMore,v.fetchNextPage,v.scrollContainer]),(0,a.useEffect)((function(){L&&L.shouldInitialFetch&&t&&(b(),h((function(e){return e+1})))}),[null==L?void 0:L.shouldInitialFetch,t]),(0,a.useEffect)((function(){var e,t;if((null==L?void 0:L.statusCode)&&r.q.isFunction(n)){var a=+(null===(t=null===(e=L.statusCode)||void 0===e?void 0:e.toString())||void 0===t?void 0:t.substr(0,1));a!==i.k.ClientError&&a!==i.k.ServerError||n(f,L.statusCode)}}),[null==L?void 0:L.statusCode]),{items:null==L?void 0:L.items,hasMore:!!(null==L?void 0:L.nextCursor),nextCursor:null==L?void 0:L.nextCursor,isFetching:null==L?void 0:L.isFetching,totalItems:null==L?void 0:L.totalItems,hasFirstPageCompleted:null==L?void 0:L.hasFirstPageCompleted}}},55493:(e,t,n)=>{n.r(t),n.d(t,{SearchResultsView:()=>Pt,namespace:()=>Et});var a=n(32735),i=n(23481),r=n(65858),s=n(68050),o=n(83345),l=n(79967),c=n(31908),u=n(69111),d=n(2192);function p(e){var t,n,i,s=Object.assign(Object.assign({},e.analyticsData),{id:null===(t=e.data)||void 0===t?void 0:t.id,name:null===(n=e.data)||void 0===n?void 0:n.name}),o=Object.assign(Object.assign({location:r.LZ.ClassificationListItem},e.analyticsOptions),{actionType:r.Vw.Click,entity:r.py.Company,descriptor:r._S.Cover});return a.createElement(d.Q,Object.assign({},e,{analyticsData:s,analyticsOptions:o,coverUrl:null===(i=e.data.logo)||void 0===i?void 0:i.url}))}function m(e){return a.createElement(u.Z,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3},a.createElement("div",{className:"position-relative px-1 mb-2"},a.createElement(p,{data:e.item,getChildAppLink:e.appLinks.getCompanyAppLink,getChildAppLinkOptions:function(){var t,n;return null===(n=(t=e.appLinks).getCompanyAppLinkOptions)||void 0===n?void 0:n.call(t,e.item)},analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle})))}var v=n(81886),y=n(43500),g=n(36848),f=n(82072);const h="ZhLPS";function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var L="search.exchangeVideoGroup";function A(e){var t,n,i=e.item.showCount>=3?3:e.item.showCount,s=v.Q.C$.getCurrentAppLink(),l=null!==(t=s.params)&&void 0!==t?t:{},c=null!==(n=null==l?void 0:l.source)&&void 0!==n?n:[];c&&!Array.isArray(c)&&(c=[c]);var u,d=Object.assign(Object.assign({},s),{params:Object.assign(Object.assign({},l),{source:[].concat((u=c,function(e){if(Array.isArray(e))return b(e)}(u)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(u)||function(e,t){if(e){if("string"==typeof e)return b(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?b(e,t):void 0}}(u)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[y.fi.ExchangeArchive])})}),p={query:e.queryParams.query,itemIndex:e.itemIndex,pagePositionIndex:e.pagePositionIndex},m={entity:r.py.SearchResults,location:r.LZ.ExchangeSearchGroupItem,actionType:r.Vw.Click,descriptor:r.Bk.ExchangeArchive};return a.createElement("div",{className:0===e.pagePositionIndex?"border-bottom pb-1 mb-3":"border-top border-bottom pt-3 mt-2 pb-1 mb-3"},a.createElement(g.F,{appLink:d,analyticsData:p,analyticsOptions:m},a.createElement("h2",{className:"h4"},a.createElement(o.x,{namespace:L,phrase:"heading"}))),a.createElement("p",null,a.createElement(o.x,{namespace:L,phrase:"message"})," ",a.createElement(g.F,{appLink:e.appLinks.searchSettings,className:"text-info",analyticsData:p,analyticsOptions:Object.assign(Object.assign({},m),{descriptor:r._S.Settings})},a.createElement(o.x,{namespace:L,phrase:"searchSettings"})),"."),a.createElement("div",{className:"position-relative ".concat(h)},e.item.videos.slice(0,i).map((function(t,n){return a.createElement(f.m,{key:n,video:t,yearGroups:e.yearGroups,getVideoAppLink:e.appLinks.getVideoAppLink,getSubTextAppLink:e.appLinks.getSubTextAppLink,presentationAudiences:e.audiences,setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:t._score,maxScore:t._maxScore,featured:t._featured},pagePositionIndex:e.pagePositionIndex},companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink,isPlugin:e.isPlugin})}))),a.createElement("div",{className:"text-center py-2"},a.createElement(g.F,{className:"text-secondary",appLink:d,analyticsData:p,analyticsOptions:m},a.createElement(o.x,{namespace:L,phrase:"seeMore"}))))}var k=n(3626);function x(e){return a.createElement("div",{className:"pb-3"},a.createElement(k.J,{video:e.item,presentationAudiences:e.audiences,getVideoAppLink:function(t,n){return e.appLinks.getVideoAppLink(t,n)},subTextAppLink:e.appLinks.getSubTextAppLink(e.item),setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},hideInteractiveBadge:!0,yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,showVideoGuidance:c.M.showVideoGuidance(e.hasPermissions),imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink}))}var E=n(98981),S=n(7733);const P={videoList:"eEZEe"};var O="search.playlistWithVideos";function C(e){var t,n=(t=(0,l.k)()).xl||t.xxl?3:2,i=e.playlist.videos.data.slice(0,n),c={actionType:r.Vw.Click,entity:r.py.Playlist,location:r.LZ.PlaylistWithVideos},d=Object.assign(Object.assign({},e.analyticsData),{id:e.playlist.id,name:e.playlist.name});return a.createElement("div",{className:"ps-2 py-2"},a.createElement(s.Z,{className:"g-0 border border-light rounded-3"},a.createElement(u.Z,{xs:4,lg:3,className:"pe-3"},a.createElement(E.tN,{appLink:e.playlistAppLink,analyticsData:e.analyticsData,analyticsOptions:Object.assign(Object.assign({},c),{descriptor:r._S.Cover}),data:e.playlist,presentationAudiences:e.presentationAudiences,bgColourClassNames:S.o,itemStyle:"round-left",imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,showCount:!1,showOwner:!0})),a.createElement(u.Z,{xs:8,lg:9},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("div",{className:"pt-3 mb-n2 ".concat(P.videoList)},null==i?void 0:i.map((function(t){var n=Object.assign(Object.assign({},d),{videoId:t.id,videoName:t.name});return a.createElement("div",{key:t.id,className:"mb-2"},a.createElement(f.m,{video:t,getSubTextAppLink:e.getSubTextAppLink,canFavourite:function(){return!1},setFavourite:null,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:r.py.Video,location:r.LZ.PlaylistWithVideos},size:"sm",yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin,hideVideoGuidance:!0}))}))),a.createElement("div",{className:"text-end pt-3 pe-3"},a.createElement(g.F,{className:"info-link fw-semibold",appLink:e.playlistAppLink,analyticsData:d,analyticsOptions:Object.assign(Object.assign({},c),{descriptor:r._S.Link})},a.createElement(o.x,{namespace:O,phrase:"seeAllVideos"})))))))}function I(e){return a.createElement("div",{className:"mx-n2"},a.createElement(C,{playlist:e.item,yearGroups:e.yearGroups,playlistAppLink:e.appLinks.getPlaylistAppLink(e.item),presentationAudiences:e.audiences,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},imageCdnUrl:e.imageCdnUrl,currentUser:e.currentUser,preloadImage:!0,getSubTextAppLink:e.appLinks.getSubTextAppLink,getVideoAppLink:e.appLinks.getVideoAppLink,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin}))}var j=n(34004);const F={videoList:"UT8bc"};var T="search.seriesWithVideos";function w(e){var t,n=(t=(0,l.k)()).xl||t.xxl?5:t.lg||t.md?4:3,i=e.series.videos.data.slice(0,n),c={actionType:r.Vw.Click,entity:r.py.Series,location:r.LZ.SeriesWithVideos},d=Object.assign(Object.assign({},e.analyticsData),{id:e.series.id,name:e.series.name});return a.createElement("div",{className:"ps-2 py-2"},a.createElement(s.Z,{className:"g-0 border border-light rounded-3"},a.createElement(u.Z,{xs:4,lg:3,className:"pe-3"},a.createElement(g.F,{appLink:e.seriesAppLink,className:"position-relative",analyticsData:d,analyticsOptions:Object.assign(Object.assign({},c),{descriptor:r._S.TallPoster})},a.createElement(j.r,{series:e.series,presentationAudiences:e.presentationAudiences,preloadImage:e.preloadImage,imageClass:"rounded-start-lg"}))),a.createElement(u.Z,{xs:8,lg:9},a.createElement("div",{className:"d-flex justify-content-between"},a.createElement("div",{className:"pt-3 mb-n2 ".concat(F.videoList)},null==i?void 0:i.map((function(t){var n=Object.assign(Object.assign({},d),{videoId:t.id,videoName:t.name});return t=Object.assign(Object.assign({},t),{series:e.series}),a.createElement("div",{key:t.id,className:"mb-2"},a.createElement(f.m,{video:t,getSubTextAppLink:e.subTextAppLink,canFavourite:function(){return!1},setFavourite:null,getVideoAppLink:e.getVideoAppLink,analyticsData:n,analyticsOptions:{entity:r.py.Video,location:r.LZ.SeriesWithVideos},size:"sm",yearGroups:e.yearGroups,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin,hideVideoGuidance:!0}))}))),a.createElement("div",{className:"text-end pt-3 pe-3"},a.createElement(g.F,{className:"info-link fw-semibold",appLink:e.seriesAppLink,analyticsData:d,analyticsOptions:Object.assign(Object.assign({},c),{descriptor:r._S.Link})},a.createElement(o.x,{namespace:T,phrase:"seeAllVideos"})))))))}function N(e){return a.createElement("div",{className:"mx-n2"},a.createElement(w,{yearGroups:e.yearGroups,presentationAudiences:e.audiences,series:e.item,seriesAppLink:e.appLinks.getSeriesAppLink(e.item),subTextAppLink:e.appLinks.getSubTextAppLink,getVideoAppLink:e.appLinks.getVideoAppLink,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},preloadImage:!0,companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,isPlugin:e.isPlugin}))}var _=n(5465),V=n(24900),q=n(11882),R="search.collectionVideoList";function U(e){var t,n=(t=(0,l.k)()).xs?2:t.sm?1:3,i={analyticsData:e.analyticsData,analyticsOptions:e.analyticsOptions};return a.createElement(a.Fragment,null,a.createElement("ul",{className:"list-unstyled my-1"},e.videos.slice(0,n).map((function(t){var n,r=!!t.episodeNumber&&!!(null===(n=t.season)||void 0===n?void 0:n.id);return a.createElement("li",{key:"".concat(e.collectionId,":").concat(t.id),className:"d-flex align-items-center"},a.createElement(g.F,Object.assign({},i,{className:"clamp-1",appLink:e.getVideoAppLink(t)}),r&&a.createElement(a.Fragment,null,a.createElement(q.Q,{video:t})," "),t.name))}))),a.createElement(g.F,Object.assign({},i,{className:"info-link",appLink:e.appLink}),a.createElement(o.x,{namespace:R,phrase:"seeAll"})))}var D=n(83657),G=n(18559),M=n(17464),B=n(75163),Z=n(9977),Q=n(54610);const W={overlayContainer:"MnBcv",overlay:"AZSmh"};var $="search.collectionThumbnail";function H(e){var t,n,i,s,c=(0,l.k)(),d="sm"===Z.O.getSize(c,"md"),p=!!(null===(n=null===(t=e.collection.videos)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length),m=p&&e.collection.videos.data.find((function(e){var t;return!!(null===(t=e.thumbnail)||void 0===t?void 0:t.url)})),v=(s=Object.assign(Object.assign({},e.analyticsData),{id:e.collection.id,name:e.collection.name}),m&&(s.videoId=m.id,s.videoName=m.name),s),y="series"===e.collectionType;return a.createElement("div",{className:"row g-0 ".concat(d?"":"py-2")},a.createElement(u.Z,Object.assign({},Z.O.getThumbnailColumns(),{className:"flex-column align-items-flex-start ".concat(d?"pb-2 pe-2":"mb-1 px-2")}),a.createElement("div",{className:"position-relative overflow-hidden ".concat(d?"rounded":"rounded-3")},a.createElement(B.Z,{data:null==m?void 0:m.thumbnail,appLink:e.appLink,imageType:Q.__.Thumbnails,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:r._S.Thumbnail})},a.createElement(V.z,{type:e.maskType}),a.createElement(_.oy,{type:e.imageFallbackType}),a.createElement("div",{className:"d-flex flex-column align-items-center justify-content-center text-white h-100 ".concat(W.overlay)},a.createElement(o.x,{namespace:$,phrase:"seeAll"}))))),a.createElement(u.Z,Object.assign({},Z.O.getDetailsColumns(),{className:d?"pb-2":"px-2"}),!e.isPlugin&&a.createElement(D.e,{actions:e.getCollectionActions(e.collection,e.showActions,e.collectionType,e.analyticsOptions),className:"float-end mt-n1",actionsDropdownClassName:"btn btn-link ms-1"}),a.createElement(g.F,{appLink:e.appLink,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:r._S.Title})},a.createElement("h5",{className:"m-0 mb-1"},a.createElement("span",{className:"clamp-1"},e.collection.name))),y&&!e.hideBadges&&a.createElement(M.c,null,a.createElement(G.C,{type:G.g.Rating,data:e.collection.rating}),a.createElement(G.C,{type:G.g.ProductionYear,data:null===(i=e.collection.metadata)||void 0===i?void 0:i.year})),p&&a.createElement(U,{collectionId:e.collection.id,videos:e.collection.videos.data,appLink:e.appLink,analyticsData:v,analyticsOptions:Object.assign(Object.assign({},e.analyticsOptions),{descriptor:r._S.Link}),getVideoAppLink:e.getVideoAppLink})))}function z(e){return a.createElement("div",{className:"position-relative ".concat(h)},a.createElement(H,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:r.py.Playlist,actionType:r.Vw.Click,location:r.LZ.PlaylistListItem},appLink:e.appLinks.getPlaylistAppLink(e.item),showActions:e.showActions,collection:e.item,collectionType:"playlist",maskType:V.O.Playlist,imageFallbackType:_.mS.PlaylistThumbnail,isPlugin:e.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions}))}function J(e){return a.createElement("div",{className:"position-relative ".concat(h)},a.createElement(H,{analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},analyticsOptions:{entity:r.py.Series,actionType:r.Vw.Click,location:r.LZ.SeriesListItem},appLink:e.appLinks.getSeriesAppLink(e.item),collectionType:"series",collection:e.item,showActions:e.showActions,maskType:V.O.Series,imageFallbackType:_.mS.SeriesThumbnail,hideBadges:!0,isPlugin:e.isPlugin,getVideoAppLink:e.appLinks.getVideoAppLink,getCollectionActions:e.appLinks.getCollectionActions}))}var X=n(9513);function K(e){return a.createElement(u.Z,{as:"li",sm:6,md:e.useLargeStyle?6:4,lg:e.useLargeStyle?4:3},a.createElement("div",{className:"position-relative px-1 mb-2"},a.createElement(X.Vz,{data:e.item,getChildAppLink:e.appLinks.getClassificationAppLink,getChildAppLinkOptions:function(){var t,n;return null===(n=(t=e.appLinks).getClassificationAppLinkOptions)||void 0===n?void 0:n.call(t,e.item)},availablePresentations:e.availablePresentations,analyticsData:{itemIndex:e.itemIndex,search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:0},isLarge:e.useLargeStyle})))}var Y=n(34550),ee=n(66133);function te(e){var t,n=(t=e.item,c.M.isClip(t)?Y.I:c.M.isInteractive(t)?ee.H:f.m);return a.createElement("div",{className:"position-relative ".concat(h)},a.createElement(n,{video:e.item,yearGroups:e.yearGroups,getVideoAppLink:e.appLinks.getVideoAppLink,getSubTextAppLink:e.appLinks.getSubTextAppLink,getPreviewQuestionsAppLink:e.appLinks.getPreviewQuestionsAppLink,presentationAudiences:e.audiences,setFavourite:e.setFavourite,canFavourite:e.canFavourite,analyticsData:{search:{query:e.queryParams.query,score:e.item._score,maxScore:e.item._maxScore,featured:e.item._featured},pagePositionIndex:e.pagePositionIndex},companyLogoFallbackUrl:e.companyLogoFallbackUrl,subTextType:e.subTextType,hasPermissions:e.hasPermissions,imageCdnUrl:e.imageCdnUrl,isPlugin:e.isPlugin,getClassroomGuideAppLink:e.appLinks.getClassroomGuideAppLink,getResourceGuidanceAppLink:e.appLinks.getResourceGuidanceAppLink,getInteractiveGuidanceAppLink:e.appLinks.getInteractiveGuidanceAppLink}))}function ne(e){return function(e){if(Array.isArray(e))return ae(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return ae(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ae(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ae(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var ie=a.memo((function(e){var t,n,i,r,u,d,p,v,y=(0,l.k)(),g=y.xs||y.sm;if(!(null===(t=e.results)||void 0===t?void 0:t.length)&&!(null===(n=e.topics)||void 0===n?void 0:n.totalResults)&&!(null===(i=e.companies)||void 0===i?void 0:i.totalResults))return a.createElement(a.Fragment,null);var f=[].concat(ne(null!==(u=null===(r=e.companies)||void 0===r?void 0:r.results)&&void 0!==u?u:[]),ne(null!==(p=null===(d=e.topics)||void 0===d?void 0:d.results)&&void 0!==p?p:[])),h=Object.assign({useLargeStyle:f.length<4},e);return a.createElement("div",{className:"position-relative"},a.createElement("p",{role:"status",className:"visually-hidden"},a.createElement(o.x,{namespace:"shared.mixedSearchResults",phrase:"ariaSearch"})),!!f.length&&a.createElement(s.Z,{as:"ul",className:"list-unstyled g-0 pb-3 mx-n1"},f.slice(0,8).map((function(e,t){switch(e.type.toLowerCase()){case"company":return a.createElement(m,Object.assign({key:t,item:e,itemIndex:t},h));case"subject":return a.createElement(K,Object.assign({key:t,item:e,itemIndex:t},h))}}))),null===(v=e.results)||void 0===v?void 0:v.map((function(e,t){var n,i,r=f.length?t+1:t;if("isExchangeVideoGroup"in e&&e.isExchangeVideoGroup)return a.createElement(A,Object.assign({key:t,item:e,pagePositionIndex:r},h));switch(null===(n=e.type)||void 0===n?void 0:n.toLowerCase()){case"interactive":case"clip":case"video":return 0===t&&e._featured&&c.M.isVideo(e)?a.createElement(x,Object.assign({key:t,item:e,pagePositionIndex:r},h)):a.createElement(te,Object.assign({key:t,item:e,pagePositionIndex:r},h));case"playlist":return g?a.createElement(z,Object.assign({key:t,item:e,pagePositionIndex:r},h)):a.createElement(I,Object.assign({key:t,item:e,pagePositionIndex:r},h));case"series":return g||!(null===(i=e.tallPoster)||void 0===i?void 0:i.id)?a.createElement(J,Object.assign({key:t,item:e,pagePositionIndex:r},h)):a.createElement(N,Object.assign({key:t,item:e,pagePositionIndex:r},h))}})))})),re=n(93659),se="search.searchSubstitute";function oe(e){return e.substitute?a.createElement("div",{className:"pb-3"},a.createElement("p",{className:"mb-1 h6"},a.createElement(o.x,{namespace:se,phrase:"showingFor"})," ",a.createElement(g.F,{className:"info-link",appLink:e.getAppLink(e.substitute,e.queryParams),appLinkOptions:{replace:!0}},e.substitute)),a.createElement("p",{className:"mb-0 h6 fw-normal"},a.createElement(o.x,{namespace:se,phrase:"searchInsteadFor"}),a.createElement(g.F,{className:"info-link",appLink:e.getAppLink(e.queryParams.query,Object.assign(Object.assign({},e.queryParams),{allowSubstitute:"false"}))},e.queryParams.query),a.createElement(o.x,{namespace:se,phrase:"endOriginal"}))):a.createElement(a.Fragment,null)}var le="search.searchSuggestions";function ce(e){var t;return(null===(t=e.suggestions)||void 0===t?void 0:t.length)?a.createElement("div",{className:"d-flex align-items-center mb-3"},a.createElement(o.x,{namespace:le,phrase:"didYouMean"})," ",e.suggestions.map((function(t,n){return a.createElement(a.Fragment,{key:"".concat(t,":").concat(n)},0!==n&&a.createElement("span",{className:"mx-1"},"•"),a.createElement(g.F,{className:"info-link",appLink:e.getAppLink(t,e.queryParams),appLinkOptions:{replace:!0}},t))}))):a.createElement(a.Fragment,null)}ce.defaultProps={suggestions:[],queryParams:{}};var ue=n(71020),de=n(51365),pe=n(79612),me=n(76753),ve=n(14070),ye=n(97291),ge=n(51855),fe=n(10671),he=n(27638),be=n(20354),Le=n(96560),Ae=n(16714),ke=n(72639),xe=n(12754),Ee=n(21750),Se=n(39151),Pe=n(1666),Oe=n(98064),Ce=n(31949),Ie=n(22902),je=n(15311),Fe=n(37802),Te=n(40424),we=n(87114),Ne=n(24965),_e=n(82817),Ve=n(86698),qe=n(44110),Re=n(23737),Ue=n(1211),De=n(99940),Ge=n(97395),Me=n(2997),Be=n(27898);function Ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Qe(e){return Qe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qe(e)}function We(e){var t,n,a,i=e.totalResults,r=null!==(n=null===(t=null==e?void 0:e.results)||void 0===t?void 0:t.filter((function(e){var t,n,a,r,s,o,l,c;if("series"!==e._index&&"playlist"!==e._index)return!0;if("playlist"===e._index){var u=e;return!!((null===(n=null===(t=u.clips)||void 0===t?void 0:t.data)||void 0===n?void 0:n.length)||(null===(r=null===(a=u.interactives)||void 0===a?void 0:a.data)||void 0===r?void 0:r.length)||(null===(o=null===(s=u.videos)||void 0===s?void 0:s.data)||void 0===o?void 0:o.length))||(i--,!1)}return 0!==(null===(c=null===(l=e.videos)||void 0===l?void 0:l.data)||void 0===c?void 0:c.length)||(i--,!1)})))&&void 0!==n?n:[];e.results=r,e.totalResults=i;var s=null===(a=r[0])||void 0===a?void 0:a._score;return Object.assign(Object.assign({},e),{results:Be.Q.mapMaxScoreToSearchResults(r,s)})}var $e={searchV4:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=arguments.length>4?arguments[4]:void 0,r=arguments.length>5?arguments[5]:void 0,s="search:v4:".concat(e,":").concat(a,":").concat(t,":").concat(i);s+=Object.keys(n).map((function(e){var t=n[e];return Array.isArray(t)?t.join(";"):t})).join(";");var o=n,l="".concat(Me.w.FILTER_PARAM_PREFIX,"excludeLibraryExclusive"),c=o[l],u=o.isLearner,d=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]])}return n}(o,["symbol"===Qe(l)?l:l+"","isLearner"]),p={searchType:"content",indices:t.map((function(e){return"video"===e&&c?{index:e,filters:{excludeLibraryExclusive:c}}:{index:e}})),filters:Object.entries(d).reduce((function(e,t){var n,a,i=(a=2,function(e){if(Array.isArray(e))return e}(n=t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,s,o=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(n,a)||function(e,t){if(e){if("string"==typeof e)return Ze(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ze(e,t):void 0}}(n,a)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),r=i[0],s=i[1];return Object.assign(Object.assign({},e),function(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=Qe(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=Qe(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==Qe(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},r.replace("filters.",""),s))}),{}),query:e,allowSubstitute:a,cursor:null!=i?i:void 0,isLearner:!!u,limit:r};return{url:"{gateway}/v4/search",publicUrl:"/api/search/v4",type:De.k.POST,data:p,key:s,formatData:We}},search:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=arguments.length>4?arguments[4]:void 0,r=arguments.length>5?arguments[5]:void 0,s=arguments.length>6?arguments[6]:void 0,o=arguments.length>7?arguments[7]:void 0,l="search:".concat(e,":").concat(a,":").concat(t,":").concat(i);l+=Object.keys(n).map((function(e){var t=n[e];return Array.isArray(t)?t.join(";"):t})).join(";");var c=Object.assign({},Object.assign({index:t,cursor:null!=i?i:void 0,query:e,allowSubstitute:a,limit:r},n));return{url:Ge._.urlBuilder("{gateway}/v3/search",c),publicUrl:Ge._.urlBuilder("/api/search",c),key:l,formatData:We,success:s,error:o}},tagsAndClassifications:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,r=arguments.length>5?arguments[5]:void 0,s=Object.assign({},Object.assign({index:t,cursor:a,query:e},n));return{url:Ge._.urlBuilder("{gateway}/v3/search/tags-and-classifications",s),publicUrl:Ge._.urlBuilder("/api/search/tags-and-classifications",s),key:"filter:options:".concat(e,":").concat(t.join(":"),":").concat(a),success:i,error:r,normalize:!1}}},He=n(97514),ze=n(4499);function Je(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Xe=n(1048),Ke=n(2284),Ye=n(85594),et=n(24598);function tt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var nt=["filters.classification","filters.presentation"],at=["filters.classification","filters.presentation","isLearner"];function it(e){return function(e){if(Array.isArray(e))return rt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return rt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?rt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function st(e){var t,n,a,i,r,s,o=be.a.useBasicFetch(Ce.N.currentUser()),l=be.a.useBasicFetch((null===(t=o.data)||void 0===t?void 0:t.id)&&Ce.N.user(o.data.id)),c=be.a.useBasicFetch(Se.L.config()),u=be.a.useBasicFetch((null===(n=o.data)||void 0===n?void 0:n.isAuthenticated)&&Pe.h.yearGroups(o.data.customerId)),d=(0,je.r)(),p=(0,Fe.r)(null),m=function(){var e,t,n,a,i,r=be.a.useBasicFetch(Ce.N.currentUser()),s=(0,je.r)(),o=(0,Fe.r)(null),l=be.a.useBasicFetch(Oe.D.streamableLearning()),c=null===(e=l.data)||void 0===e?void 0:e.objectId,u=s.hasProduct(xe.x.Exchange)&&o.showExchangeSearchResults,d=be.a.useBasicFetch((null===(t=r.data)||void 0===t?void 0:t.isAuthenticated)&&Oe.D.domainLibraries(["sharedLibrary","customLibrary","workspace","hostedLibrary","exchange"])),p=null!==(n=d.data)&&void 0!==n?n:[],m=null==p?void 0:p.findIndex((function(e){return e.type===Le.r.Exchange})),v=null===(a=p[m])||void 0===a?void 0:a.id;if(u||(p=[].concat(it(p.slice(0,m)),it(p.slice(m+1)))),c){var y=null==p?void 0:p.findIndex((function(e){return e.id.toString()===c.toString()}));p=[].concat(it(p.slice(0,y)),it(p.slice(y+1)))}return{hasLibrariesCompleted:l.hasCompleted&&(!(null===(i=r.data)||void 0===i?void 0:i.isAuthenticated)||d.hasCompleted),libraries:p,exchangeLibraryId:v,streamableLibraryId:c,showExchangeSearchResults:u}}(),v=m.hasLibrariesCompleted,y=m.libraries,g=m.exchangeLibraryId,f=m.streamableLibraryId,h=m.showExchangeSearchResults,b=(0,Ve.y)(),L=b.activePresentation,A=b.availablePresentations,k=b.getFallbackPresentation,x=b.hasPresentationsLoaded,E=L||k(),S=null==E?void 0:E.id,P=(0,_e.M)(),O=(0,qe.i)(),C=function(e){var t=(0,(0,Ie.T)().hasPermissions)(Ae.C.StudentExperience),n=(0,Ve.y)(),a=n.availablePresentations,i=n.hasPresentationsLoaded,r=t?e?[null==e?void 0:e.id]:null:null==a?void 0:a.map((function(e){return e.id}));return be.a.useBasicFetch(i&&r&&Ue.J.schoolLevels(r))}(E),I=null===(i=null===(a=C.data)||void 0===a?void 0:a.schoolLevels)||void 0===i?void 0:i.map((function(e){return e.id})),j=be.a.useBasicFetch((null==C?void 0:C.data)&&Ee.x.topicsFromAllAvailablePresentations(I)),F=function(){var e,t,n=be.a.useBasicFetch(Ce.N.currentUser()),a=be.a.useBasicFetch(Ne.Z.ratings(null===(e=n.data)||void 0===e?void 0:e.countryCode)),i=(0,Ve.y)(),r=i.activePresentation,s=i.availablePresentations,o=i.getFallbackPresentation,l=i.hasPresentationsLoaded,c=r||o();return l?(null==s?void 0:s.length)>1||!c||we.i.getMappedPresentationLevel(c.learningLevel)!==ke.p.Level_1?a:Object.assign(Object.assign({},a),{data:null===(t=a.data)||void 0===t?void 0:t.filter((function(e){return e.code&&e.value<64}))}):a}(),T=(0,Ie.T)(),w=T.hasPermissions,N=T.hasLocalPermissions,_=w(Ae.C.StudentExperience),V=w(Ae.C.ViewCurriculums),q=N(Ae.E.UseSeriesActions),R=w(Ae.C.ViewLibraries),U=w(Ae.C.ViewMoviesTv),D=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0,s=(null==n?void 0:n.length)&&He.qr.buildBackendFilterParams(e,n,[a],r,[]),o=Xe.t.pick(s,r?at:nt);o["filters.classificationType"]=Ye.A.Subject,o["filters.status"]=Ke.W.Published,(null==e?void 0:e.moviesAndTv)&&(o["filters.curationTag"]=et.b.MOVIES_AND_TV),i.length&&(o["filters.presentation"]=i.map((function(e){return e.id})));var l=null!==(t=null==i?void 0:i.reduce((function(e,t){return e[t.id]=t,e}),{}))&&void 0!==t?t:{},c=!He.qr.getAppliedIndices(e).includes("classification"),u=$e.search(ze.y.getQuery(e),["classification"],o,"false"!==e.allowSubstitute),d=!c,p=be.a.useBasicFetch(d&&u);if(!d)return null;if(!p.data)return p;if(!i||(null==i?void 0:i.length)<2)return p;var m,v=(m=p.data.results,function(e){if(Array.isArray(e))return tt(e)}(m)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(m)||function(e,t){if(e){if("string"==typeof e)return tt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?tt(e,t):void 0}}(m)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort((function(e,t){if(e._score!==t._score)return 0;var n=l[e.presentationId],a=l[t.presentationId];return n?a?n.value-a.value:-1:1}));return Object.assign(Object.assign({},p),{data:Object.assign(Object.assign({},p.data),{results:v})})}(e,F.data,S,A,_),G=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>3?arguments[3]:void 0,a=(arguments.length>2?arguments[2]:void 0).map((function(e){return e.id})),i=(null==t?void 0:t.length)&&He.qr.buildBackendFilterParams(e,t,a,!1,[])||{};(null==a?void 0:a.length)&&(i["filters.presentation"]=a);var r,s=!He.qr.getAppliedIndices(e).includes("company"),o=$e.search(ze.y.getQuery(e),["company"],i,"false"!==e.allowSubstitute),l=!s&&n,c=be.a.useBasicFetch(l&&o);return l?c.data?Object.assign(Object.assign({},c),{data:Object.assign(Object.assign({},c.data),{results:(r=c.data.results,function(e){if(Array.isArray(e))return Je(e)}(r)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return Je(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Je(e,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())})}):c:null}(e,F.data,A,U);return{queryParams:e,currentUser:o,userDetails:l,config:c,yearGroups:u,products:d,settings:p,curriculums:P,audiences:O,schoolLevels:C,currentPresentation:E,availablePresentations:A,availableTopics:j,ratings:F,topics:D,companies:G,moviesAndTvDashboard:(0,Re.y)({targetType:Te.ku.MoviesAndTv,queryParams:e}).dashboard,currentPresentationId:S,isLearner:_,canViewCurriculums:V,canUseSeriesActions:q,libraries:y,hasDataLoaded:O.hasCompleted&&x&&o.hasCompleted&&(!(null===(r=o.data)||void 0===r?void 0:r.isAuthenticated)||l.hasCompleted)&&F.hasCompleted&&c.hasCompleted&&A&&(!(null===(s=o.data)||void 0===s?void 0:s.isAuthenticated)||!d.isLoadingProducts)&&!p.isLoadingSettings&&v,exchangeLibraryId:g,streamableLibraryId:f,showExchangeSearchResults:h,hasPermissions:w,hasCustomLibraries:R,hasMoviesAndTv:U}}var ot=n(94644),lt=n(69883),ct=n(60115),ut=n(97816),dt=n(4594);function pt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function mt(e){return mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},mt(e)}function vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var yt="search.utils";function gt(e){var t,n,r,s,o,l,u=e.queryParams,d=e.appliedIndices,p=e.backendFilters,m=(0,lt.Z)(),v=be.a.useGetFetch(),y=be.a.useGetResponse(null===(t=b())||void 0===t?void 0:t.key),g=function(t){var n,a,i;return!!t&&(null===(i=null===(a=null===(n=e.backendFilters)||void 0===n?void 0:n["".concat(Me.w.FILTER_PARAM_PREFIX,"library")])||void 0===a?void 0:a.some)||void 0===i?void 0:i.call(a,(function(e){return e.toString()===t})))}(null===(n=e.exchangeLibraryId)||void 0===n?void 0:n.toString()),f=e.hasDataLoaded&&(null==d?void 0:d.length)&&e.showExchangeSearchResults&&!g,h=be.a.useBasicFetch(f&&$e.searchV4(u.query,d,p,"false"!==u.allowSubstitute,null,10));function b(t){if(e.hasDataLoaded&&(null==d?void 0:d.length)){var n=Object.assign({},e.backendFilters);if(e.showExchangeSearchResults&&!g){var a="".concat(Me.w.FILTER_PARAM_PREFIX,"excludeLibraryExclusive");n=Object.assign(Object.assign({},n),function(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=mt(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=mt(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==mt(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}({},a,[].concat(function(e){if(Array.isArray(e))return vt(e)}(i=n[a])||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(i)||function(e,t){if(e){if("string"==typeof e)return vt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?vt(e,t):void 0}}(i)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),[e.exchangeLibraryId])))}return $e.searchV4(u.query,d,n,"false"!==u.allowSubstitute,t)}var i}function L(e){v(b(e))}var A=(0,ct.K)(b,L,(function(e,t){if(1===e)return(0,ot.r)(t);m.error(i.T.getPhrase(yt,"error"))}),(function(e){return e.results})),k=null===(r=A.items)||void 0===r?void 0:r.filter((function(e){return"video"===e._index||"clip"===e._index}));(0,ut.V)(k);var x=function(e){var t;return a.useMemo((function(){var t,n;if(!(null===(t=e.searchResults)||void 0===t?void 0:t.length)||!(null===(n=e.mixedExchangeSearchResults)||void 0===n?void 0:n.length)||"untouched"===e.groupingType)return e.searchResults;var a,i,r,s=function(e){if(Array.isArray(e))return pt(e)}(r=e.searchResults)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(r)||function(e,t){if(e){if("string"==typeof e)return pt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pt(e,t):void 0}}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),o=[],l=!1;e.mixedExchangeSearchResults.forEach((function(e,t){var n,r,s;if(3!==o.length){if(c.M.isVideo(e)&&1===(null===(n=e.libraries.data)||void 0===n?void 0:n.length)&&(null===(s=null===(r=e.libraries.data)||void 0===r?void 0:r[0])||void 0===s?void 0:s.typeId)===dt.E.ExchangeCollection)return void 0===a&&(a=t,i=0,l=!0),l&&i++,void o.push(e);l=!1}}));var u={id:null,type:null,name:null,videos:o,showCount:0===a?1:i,isExchangeVideoGroup:!0,_index:null};return"group"===e.groupingType&&o.length&&s.splice(a,0,u),s}),[e.searchResultsResponse,null===(t=e.searchResults)||void 0===t?void 0:t.length,e.mixedExchangeSearchResults,e.groupingType])}({searchResults:A.items,mixedExchangeSearchResults:null===(s=h.data)||void 0===s?void 0:s.results,searchResultsResponse:y.data,groupingType:e.showExchangeSearchResults?g?"untouched":"group":"omit"});return Object.assign(Object.assign({},A),{hasFirstPageCompleted:A.hasFirstPageCompleted||!e.hasDataLoaded||!(null==d?void 0:d.length),items:x,fetchNext:L,substituteQuery:null===(o=y.data)||void 0===o?void 0:o.substituteQuery,suggestions:null===(l=y.data)||void 0===l?void 0:l.suggestions})}var ft=n(2948),ht=n(86702);function bt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}var Lt=n(23232),At=n(99742),kt="search.searchResultsEmptyState";function xt(e){var t,n,i=e.scotland&&"nessie"===(null===(n=null===(t=e.query)||void 0===t?void 0:t.trim())||void 0===n?void 0:n.toLowerCase())?At.W.EmptyStates.Search.RESULTS_SCOTLAND:At.W.EmptyStates.Search.RESULTS;return a.createElement(o.D.Provider,{value:kt},a.createElement(Lt.u,null,a.createElement(Lt.u.Image,{src:i}),a.createElement(Lt.u.Heading,null,e.query?a.createElement(o.x,{phrase:"headingWithQuery",options:{query:e.query}}):a.createElement(o.x,{phrase:"headingWithoutQuery"})),a.createElement(Lt.u.Info,null,a.createElement(o.x,{phrase:"info"}),a.createElement(g.F,{className:"info-link",appLink:{application:ye.O.SUBJECT,action:ve.e.Subjects.CLASSIFICATION_ALL}},a.createElement(o.x,{phrase:"topicsAppLink"})))))}var Et="search.searchResults",St=i.T.encloseNamespace(Et);function Pt(e){var t,n,i,s,o,l,c,u,d,p,m,v,y=e.queryParams,g=void 0===y?{}:y,f=(0,fe._)({location:fe.i.VideoItem}),h=(0,he.u)(r.LZ.VideoThumbnail),b=h.setFavourite,L=h.canFavourite,A=(0,ge.G)().isPlugin,k=st(g),x=ze.y.getBackendFilters(k),E=!!(null==x?void 0:x.appliedIndices.length),S=(v=E&&x,be.a.useBasicFetch(v&&$e.tagsAndClassifications(v.queryParams.query,v.appliedIndices,v.backendFilters))),P=gt(Object.assign(Object.assign({},x),k)),O=ze.y.getFilters(k,null==x?void 0:x.inaccessibleIndices,E&&S);(0,pe.M)(me.CG.getDefaultMetadata({title:null!==(t=g.query)&&void 0!==t?t:"",phraseContext:{phraseHandler:St,titlePhrase:"pageTitle",descriptionPhrase:"pageDescription"},allowIndexing:!1}));var C,I,j,F,T,w,N=k.hasDataLoaded&&O,_=P.hasFirstPageCompleted&&(!k.topics||k.topics.hasCompleted)&&(!k.companies||k.companies.hasCompleted)&&(!E||S.hasCompleted)&&!!O,V=(null===(n=P.items)||void 0===n?void 0:n.length)||(null===(s=null===(i=k.topics)||void 0===i?void 0:i.data)||void 0===s?void 0:s.totalResults)||(null===(l=null===(o=k.companies)||void 0===o?void 0:o.data)||void 0===l?void 0:l.totalResults);return C=_,T=(0,ft.D)(ht.y.SHOW_SEARCH_MASK,!0),w=2,I=function(e){if(Array.isArray(e))return e}(T)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,s,o=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(T,w)||function(e,t){if(e){if("string"==typeof e)return bt(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?bt(e,t):void 0}}(T,w)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),j=I[0],F=I[1],a.useEffect((function(){j&&C&&F(!1)}),[C]),N?a.createElement("div",{className:"px-4"},a.createElement(oe,{substitute:P.substituteQuery,queryParams:g,getAppLink:ze.y.getSearchAppLink}),!P.substituteQuery&&a.createElement(ce,{suggestions:P.suggestions,queryParams:g,getAppLink:ze.y.getSearchAppLink}),!!k.audiences.data&&!!k.ratings.data&&!!k.availableTopics.data&&a.createElement(re.J,{queryParams:g,mainFilters:null==O?void 0:O.mainFilters,moreFilters:null==O?void 0:O.moreFilters,analyticsOptions:{entity:r.py.SearchResults,location:r.LZ.SearchFilters},appLink:{application:ye.O.SEARCH,action:ve.e.Search.HOME},isFetchingOptions:S.isFetching}),_&&a.createElement("section",null,V?a.createElement(de.M.Provider,{value:f},a.createElement(ie,{queryParams:g,results:P.items,topics:null===(c=k.topics)||void 0===c?void 0:c.data,companies:null===(u=k.companies)||void 0===u?void 0:u.data,setFavourite:b,canFavourite:L,audiences:!g.moviesAndTv&&k.audiences.data,currentUser:k.currentUser.data,imageCdnUrl:k.config.data.imageCdnUrl,availablePresentations:k.availablePresentations,showActions:!k.isLearner&&k.canUseSeriesActions,hasPermissions:k.hasPermissions,yearGroups:k.yearGroups.data,isPlugin:A,appLinks:ze.y.getAppLinks(k.currentPresentation,k.availablePresentations,g.moviesAndTv),subTextType:"series"})):a.createElement(xt,{query:g.query,scotland:null!==(m=!!(null===(p=null===(d=k.currentPresentation)||void 0===d?void 0:d.description)||void 0===p?void 0:p.toLowerCase().includes("scotland")))&&void 0!==m&&m}),(P.hasMore||P.isFetching)&&a.createElement(ue._,{isFetching:P.isFetching,fetchNext:P.fetchNext,nextCursor:P.nextCursor,fetchOnScroll:!0}))):a.createElement(a.Fragment,null)}},24965:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(97395),i={ratings:function(e){return{url:"/api/domain/v2/me/ratings",publicUrl:a._.urlBuilder("/api/domain/v2/me/ratings",{countryCode:e}),key:"ratings",formatData:function(e){return e.sort((function(e,t){return e.value-t.value}))}}}}},44110:(e,t,n)=>{n.d(t,{i:()=>s});var a=n(20354),i=n(89454),r=n(86698),s=function(){var e=(0,r.y)({redirectOnError:!0}),t=e.activePresentation,n=e.getFallbackPresentation,s=t||n();return a.a.useBasicFetch(!!s&&i.O.presentationAudiences(s.id))}},97816:(e,t,n)=>{n.d(t,{V:()=>d});var a=n(32735),i=n(20354),r=n(21750),s=n(31949),o=n(1575),l=n(31908);function c(e,t){if(e){if("string"==typeof e)return u(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function d(e){var t,n,d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},p=i.a.useBasicFetch(s.N.currentUser()),m=a.useRef(new Set),v=function(e){return e?Array.isArray(e)?e.filter((function(e){return!!e&&(l.M.isVideo(e)||l.M.isClip(e))})):"data"in e?e.data.filter((function(e){return!!e&&(l.M.isVideo(e)||l.M.isClip(e))})):[]:[]}(e),y=v.map((function(e){return e.id})),g=(t=a.useState([]),n=2,function(e){if(Array.isArray(e))return e}(t)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,i,r,s,o=[],l=!0,c=!1;try{if(r=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(a=r.call(n)).done)&&(o.push(a.value),o.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n.return&&(s=n.return(),Object(s)!==s))return}finally{if(c)throw i}}return o}}(t,n)||c(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=g[0],h=g[1];a.useEffect((function(){if((null==y?void 0:y.length)&&p.hasCompleted){var e=[];y.forEach((function(t){m.current.has(t)||(e.push(t),m.current.add(t))})),e.length&&h((function(t){var n,a=[].concat(function(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t),[o.R.videoMixinAssocs(e,d.flightNamespace)]);return(null===(n=p.data)||void 0===n?void 0:n.isAuthenticated)&&a.push(r.x.hasCurriculumLinks(e,null,d.flightNamespace)),a}))}}),[null==y?void 0:y.length,p.hasCompleted]),i.a.useBasicFetchAll(f)}}}]);
|
|
2
|
-
//# sourceMappingURL=3969-c0160d0139-lite.chunk.js.map
|