@clickview/lite 0.0.19 → 0.0.20-rc.1
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/css/0.chunk.css.map +1 -0
- package/dist/css/1.chunk.css +146 -0
- package/dist/css/1.chunk.css.map +1 -0
- package/dist/css/11.chunk.css.map +1 -0
- package/dist/css/12.chunk.css.map +1 -0
- package/dist/css/13.chunk.css.map +1 -0
- package/dist/css/14.chunk.css.map +1 -0
- package/dist/css/15.chunk.css.map +1 -0
- package/dist/css/16.chunk.css.map +1 -0
- package/dist/css/17.chunk.css.map +1 -0
- package/dist/css/18.chunk.css.map +1 -0
- package/dist/css/19.chunk.css.map +1 -0
- package/dist/css/21.chunk.css.map +1 -0
- package/dist/css/22.chunk.css.map +1 -0
- package/dist/css/23.chunk.css.map +1 -0
- package/dist/css/24.chunk.css.map +1 -0
- package/dist/css/25.chunk.css.map +1 -0
- package/dist/css/26.chunk.css.map +1 -0
- package/dist/css/27.chunk.css.map +1 -0
- package/dist/css/28.chunk.css.map +1 -0
- package/dist/css/29.chunk.css.map +1 -0
- package/dist/css/3.chunk.css.map +1 -0
- package/dist/css/30.chunk.css +32 -0
- package/dist/css/30.chunk.css.map +1 -0
- package/dist/css/31.chunk.css.map +1 -0
- package/dist/css/32.chunk.css +6 -0
- package/dist/css/32.chunk.css.map +1 -0
- package/dist/css/33.chunk.css +5 -0
- package/dist/css/33.chunk.css.map +1 -0
- package/dist/css/34.chunk.css.map +1 -0
- package/dist/css/36.chunk.css +6 -0
- package/dist/css/36.chunk.css.map +1 -0
- package/dist/css/37.chunk.css +7 -0
- package/dist/css/37.chunk.css.map +1 -0
- package/dist/css/38.chunk.css.map +1 -0
- package/dist/css/41.chunk.css +38 -0
- package/dist/css/41.chunk.css.map +1 -0
- package/dist/css/5.chunk.css.map +1 -0
- package/dist/css/51.chunk.css +9 -0
- package/dist/css/51.chunk.css.map +1 -0
- package/dist/css/6.chunk.css.map +1 -0
- package/dist/css/7.chunk.css +66 -0
- package/dist/css/7.chunk.css.map +1 -0
- package/dist/css/lite-app.css.map +1 -0
- package/dist/libs/shared/src/utils/ImageHelper.d.ts +1 -1
- package/dist/projects/lite/src/polyfills.d.ts +2 -0
- package/dist/scripts/0.chunk.js +308 -0
- package/dist/scripts/0.chunk.js.map +1 -0
- package/dist/scripts/1.chunk.js +623 -0
- package/dist/scripts/1.chunk.js.map +1 -0
- package/dist/scripts/10.chunk.js +530 -0
- package/dist/scripts/10.chunk.js.map +1 -0
- package/dist/scripts/11.chunk.js +380 -0
- package/dist/scripts/11.chunk.js.map +1 -0
- package/dist/scripts/12.chunk.js +434 -0
- package/dist/scripts/12.chunk.js.map +1 -0
- package/dist/scripts/13.chunk.js +1287 -0
- package/dist/scripts/13.chunk.js.map +1 -0
- package/dist/scripts/14.chunk.js +575 -0
- package/dist/scripts/14.chunk.js.map +1 -0
- package/dist/scripts/15.chunk.js +806 -0
- package/dist/scripts/15.chunk.js.map +1 -0
- package/dist/scripts/16.chunk.js +482 -0
- package/dist/scripts/16.chunk.js.map +1 -0
- package/dist/scripts/17.chunk.js +428 -0
- package/dist/scripts/17.chunk.js.map +1 -0
- package/dist/scripts/18.chunk.js +766 -0
- package/dist/scripts/18.chunk.js.map +1 -0
- package/dist/scripts/19.chunk.js +647 -0
- package/dist/scripts/19.chunk.js.map +1 -0
- package/dist/scripts/2.chunk.js +18882 -0
- package/dist/scripts/2.chunk.js.map +1 -0
- package/dist/scripts/20.chunk.js +212 -0
- package/dist/scripts/20.chunk.js.map +1 -0
- package/dist/scripts/21.chunk.js +1591 -0
- package/dist/scripts/21.chunk.js.map +1 -0
- package/dist/scripts/22.chunk.js +1348 -0
- package/dist/scripts/22.chunk.js.map +1 -0
- package/dist/scripts/23.chunk.js +1181 -0
- package/dist/scripts/23.chunk.js.map +1 -0
- package/dist/scripts/24.chunk.js +1141 -0
- package/dist/scripts/24.chunk.js.map +1 -0
- package/dist/scripts/25.chunk.js +907 -0
- package/dist/scripts/25.chunk.js.map +1 -0
- package/dist/scripts/26.chunk.js +979 -0
- package/dist/scripts/26.chunk.js.map +1 -0
- package/dist/scripts/27.chunk.js +655 -0
- package/dist/scripts/27.chunk.js.map +1 -0
- package/dist/scripts/28.chunk.js +615 -0
- package/dist/scripts/28.chunk.js.map +1 -0
- package/dist/scripts/29.chunk.js +622 -0
- package/dist/scripts/29.chunk.js.map +1 -0
- package/dist/scripts/{3-f01af775f2.chunk.js → 3-7c3e2f071d.chunk.js} +1 -1
- package/dist/scripts/3.chunk.js +809 -0
- package/dist/scripts/3.chunk.js.map +1 -0
- package/dist/scripts/30.chunk.js +468 -0
- package/dist/scripts/30.chunk.js.map +1 -0
- package/dist/scripts/31.chunk.js +441 -0
- package/dist/scripts/31.chunk.js.map +1 -0
- package/dist/scripts/32.chunk.js +509 -0
- package/dist/scripts/32.chunk.js.map +1 -0
- package/dist/scripts/33.chunk.js +957 -0
- package/dist/scripts/33.chunk.js.map +1 -0
- package/dist/scripts/34.chunk.js +502 -0
- package/dist/scripts/34.chunk.js.map +1 -0
- package/dist/scripts/35.chunk.js +938 -0
- package/dist/scripts/35.chunk.js.map +1 -0
- package/dist/scripts/36.chunk.js +537 -0
- package/dist/scripts/36.chunk.js.map +1 -0
- package/dist/scripts/37.chunk.js +414 -0
- package/dist/scripts/37.chunk.js.map +1 -0
- package/dist/scripts/38.chunk.js +245 -0
- package/dist/scripts/38.chunk.js.map +1 -0
- package/dist/scripts/39.chunk.js +337 -0
- package/dist/scripts/39.chunk.js.map +1 -0
- package/dist/scripts/4.chunk.js +402 -0
- package/dist/scripts/4.chunk.js.map +1 -0
- package/dist/scripts/40.chunk.js +350 -0
- package/dist/scripts/40.chunk.js.map +1 -0
- package/dist/scripts/41.chunk.js +343 -0
- package/dist/scripts/41.chunk.js.map +1 -0
- package/dist/scripts/42.chunk.js +404 -0
- package/dist/scripts/42.chunk.js.map +1 -0
- package/dist/scripts/43.chunk.js +221 -0
- package/dist/scripts/43.chunk.js.map +1 -0
- package/dist/scripts/44.chunk.js +230 -0
- package/dist/scripts/44.chunk.js.map +1 -0
- package/dist/scripts/45.chunk.js +409 -0
- package/dist/scripts/45.chunk.js.map +1 -0
- package/dist/scripts/46.chunk.js +272 -0
- package/dist/scripts/46.chunk.js.map +1 -0
- package/dist/scripts/47.chunk.js +267 -0
- package/dist/scripts/47.chunk.js.map +1 -0
- package/dist/scripts/48.chunk.js +359 -0
- package/dist/scripts/48.chunk.js.map +1 -0
- package/dist/scripts/49.chunk.js +225 -0
- package/dist/scripts/49.chunk.js.map +1 -0
- package/dist/scripts/5.chunk.js +1104 -0
- package/dist/scripts/5.chunk.js.map +1 -0
- package/dist/scripts/50.chunk.js +318 -0
- package/dist/scripts/50.chunk.js.map +1 -0
- package/dist/scripts/51.chunk.js +64 -0
- package/dist/scripts/51.chunk.js.map +1 -0
- package/dist/scripts/52.chunk.js +108 -0
- package/dist/scripts/52.chunk.js.map +1 -0
- package/dist/scripts/53.chunk.js +110 -0
- package/dist/scripts/53.chunk.js.map +1 -0
- package/dist/scripts/54.chunk.js +162 -0
- package/dist/scripts/54.chunk.js.map +1 -0
- package/dist/scripts/55.chunk.js +145 -0
- package/dist/scripts/55.chunk.js.map +1 -0
- package/dist/scripts/56.chunk.js +139 -0
- package/dist/scripts/56.chunk.js.map +1 -0
- package/dist/scripts/57.chunk.js +142 -0
- package/dist/scripts/57.chunk.js.map +1 -0
- package/dist/scripts/58.chunk.js +173 -0
- package/dist/scripts/58.chunk.js.map +1 -0
- package/dist/scripts/59.chunk.js +160 -0
- package/dist/scripts/59.chunk.js.map +1 -0
- package/dist/scripts/6.chunk.js +335 -0
- package/dist/scripts/6.chunk.js.map +1 -0
- package/dist/scripts/60.chunk.js +98 -0
- package/dist/scripts/60.chunk.js.map +1 -0
- package/dist/scripts/61.chunk.js +48 -0
- package/dist/scripts/61.chunk.js.map +1 -0
- package/dist/scripts/62.chunk.js +70 -0
- package/dist/scripts/62.chunk.js.map +1 -0
- package/dist/scripts/63.chunk.js +32 -0
- package/dist/scripts/63.chunk.js.map +1 -0
- package/dist/scripts/64.chunk.js +29 -0
- package/dist/scripts/64.chunk.js.map +1 -0
- package/dist/scripts/65.chunk.js +27 -0
- package/dist/scripts/65.chunk.js.map +1 -0
- package/dist/scripts/66.chunk.js +65 -0
- package/dist/scripts/66.chunk.js.map +1 -0
- package/dist/scripts/67.chunk.js +67 -0
- package/dist/scripts/67.chunk.js.map +1 -0
- package/dist/scripts/68.chunk.js +104 -0
- package/dist/scripts/68.chunk.js.map +1 -0
- package/dist/scripts/69.chunk.js +89 -0
- package/dist/scripts/69.chunk.js.map +1 -0
- package/dist/scripts/7.chunk.js +2579 -0
- package/dist/scripts/7.chunk.js.map +1 -0
- package/dist/scripts/70.chunk.js +1001 -0
- package/dist/scripts/70.chunk.js.map +1 -0
- package/dist/scripts/71.chunk.js +36 -0
- package/dist/scripts/71.chunk.js.map +1 -0
- package/dist/scripts/8.chunk.js +24 -0
- package/dist/scripts/8.chunk.js.map +1 -0
- package/dist/scripts/9.chunk.js +327 -0
- package/dist/scripts/9.chunk.js.map +1 -0
- package/dist/scripts/{bundle-5ecb0c9441.min.js → bundle-df3f2fe30a.min.js} +1 -1
- package/dist/scripts/bundle.js +38145 -0
- package/dist/scripts/bundle.js.map +1 -0
- package/dist/scripts/bundles.json +1 -1
- package/dist/scripts/polyfills.js +15232 -0
- package/dist/scripts/polyfills.js.map +1 -0
- package/package.json +1 -1
- package/dist/scripts/14-9f08e07fae.chunk.js +0 -1
- package/dist/scripts/3-6e2ac46662.chunk.js +0 -7
- package/dist/scripts/4-ea79bf1533.chunk.js +0 -1
- package/dist/scripts/bundle-25efc68e8d.min.js +0 -1
- package/dist/scripts/bundle-c6241bd7ac.min.js +0 -1
- package/dist/scripts/bundle-ece1c21857.min.js +0 -1
- /package/dist/scripts/{0-d95e8444c4.chunk.js → 0-531d6e6349.chunk.js} +0 -0
- /package/dist/scripts/{11-d419aa0984.chunk.js → 11-8f0bdf9018.chunk.js} +0 -0
- /package/dist/scripts/{12-b38a27f951.chunk.js → 12-48ed970d19.chunk.js} +0 -0
- /package/dist/scripts/{13-1ad100c6fa.chunk.js → 13-b0f32ba098.chunk.js} +0 -0
- /package/dist/scripts/{14-ffa8f0cdc3.chunk.js → 14-3fdae3a2e0.chunk.js} +0 -0
- /package/dist/scripts/{15-ee9fb81b9f.chunk.js → 15-fded12e48f.chunk.js} +0 -0
- /package/dist/scripts/{16-8fe78e04c2.chunk.js → 16-adabe89775.chunk.js} +0 -0
- /package/dist/scripts/{17-ea7fe3ea28.chunk.js → 17-b2cd7a4b5e.chunk.js} +0 -0
- /package/dist/scripts/{18-1bb07c0b9b.chunk.js → 18-40f63a0517.chunk.js} +0 -0
- /package/dist/scripts/{19-c869d34687.chunk.js → 19-402b058c2a.chunk.js} +0 -0
- /package/dist/scripts/{2-a816feb2a1.chunk.js → 2-2af40ff44f.chunk.js} +0 -0
- /package/dist/scripts/{20-43ec005977.chunk.js → 20-6fefb546ab.chunk.js} +0 -0
- /package/dist/scripts/{21-8513db8251.chunk.js → 21-a89abdba1d.chunk.js} +0 -0
- /package/dist/scripts/{22-d4adb2384c.chunk.js → 22-09dbfdff25.chunk.js} +0 -0
- /package/dist/scripts/{23-d8b5b9ad2c.chunk.js → 23-b206a9cf33.chunk.js} +0 -0
- /package/dist/scripts/{24-f2913e26e2.chunk.js → 24-7841060223.chunk.js} +0 -0
- /package/dist/scripts/{25-68705527ea.chunk.js → 25-a7d11dc1a9.chunk.js} +0 -0
- /package/dist/scripts/{26-7d25448f1c.chunk.js → 26-e74d7d8b73.chunk.js} +0 -0
- /package/dist/scripts/{27-bab6c9f5c7.chunk.js → 27-98612375ea.chunk.js} +0 -0
- /package/dist/scripts/{28-080baa3fbc.chunk.js → 28-bf3436e9a7.chunk.js} +0 -0
- /package/dist/scripts/{29-5e9889b68a.chunk.js → 29-4e8053f425.chunk.js} +0 -0
- /package/dist/scripts/{30-cdbeea4fc5.chunk.js → 30-52574fd7e7.chunk.js} +0 -0
- /package/dist/scripts/{31-6fa4413cdb.chunk.js → 31-a1cd93aead.chunk.js} +0 -0
- /package/dist/scripts/{32-d4725d3b7d.chunk.js → 32-3582316ec6.chunk.js} +0 -0
- /package/dist/scripts/{33-bec24aab85.chunk.js → 33-c12e2d64d8.chunk.js} +0 -0
- /package/dist/scripts/{34-c42c6cf42a.chunk.js → 34-123b98d346.chunk.js} +0 -0
- /package/dist/scripts/{35-4512b236f2.chunk.js → 35-0d10217f78.chunk.js} +0 -0
- /package/dist/scripts/{36-eede7769b2.chunk.js → 36-926dfeed42.chunk.js} +0 -0
- /package/dist/scripts/{37-80ed339c4f.chunk.js → 37-b7eb76b267.chunk.js} +0 -0
- /package/dist/scripts/{38-c11d4c88e3.chunk.js → 38-194e4e7a6b.chunk.js} +0 -0
- /package/dist/scripts/{39-d0e74fb062.chunk.js → 39-52658e5919.chunk.js} +0 -0
- /package/dist/scripts/{4-ca4a9fc001.chunk.js → 4-1069225fdd.chunk.js} +0 -0
- /package/dist/scripts/{40-d764e6157b.chunk.js → 40-f894eeb643.chunk.js} +0 -0
- /package/dist/scripts/{41-0aa7093354.chunk.js → 41-0185da83f4.chunk.js} +0 -0
- /package/dist/scripts/{42-3d8c5fa14c.chunk.js → 42-7dec68cd96.chunk.js} +0 -0
- /package/dist/scripts/{43-969806e81e.chunk.js → 43-a0bebde767.chunk.js} +0 -0
- /package/dist/scripts/{44-e8e3fef4c3.chunk.js → 44-70673a004e.chunk.js} +0 -0
- /package/dist/scripts/{45-d8f70269d6.chunk.js → 45-e4e06801b2.chunk.js} +0 -0
- /package/dist/scripts/{46-946ae22c1f.chunk.js → 46-349ff5f0d5.chunk.js} +0 -0
- /package/dist/scripts/{47-1579412cd0.chunk.js → 47-42a55c12e2.chunk.js} +0 -0
- /package/dist/scripts/{48-fdf97c1c73.chunk.js → 48-8af4070f2b.chunk.js} +0 -0
- /package/dist/scripts/{49-970fc479c8.chunk.js → 49-d94fce3ca9.chunk.js} +0 -0
- /package/dist/scripts/{5-d1bb14adf6.chunk.js → 5-66270e3a0d.chunk.js} +0 -0
- /package/dist/scripts/{50-1257ab0b95.chunk.js → 50-fab4522d40.chunk.js} +0 -0
- /package/dist/scripts/{51-ac615445f0.chunk.js → 51-119315f5af.chunk.js} +0 -0
- /package/dist/scripts/{52-874629b81c.chunk.js → 52-2f07b899d9.chunk.js} +0 -0
- /package/dist/scripts/{53-22e3d0793b.chunk.js → 53-43aaf5b628.chunk.js} +0 -0
- /package/dist/scripts/{54-da1a07610c.chunk.js → 54-70394f7bc2.chunk.js} +0 -0
- /package/dist/scripts/{55-02647df65c.chunk.js → 55-5f4a32f8ef.chunk.js} +0 -0
- /package/dist/scripts/{56-1b6e6349fa.chunk.js → 56-87d38b6834.chunk.js} +0 -0
- /package/dist/scripts/{57-8fc09ba02c.chunk.js → 57-b9334f46ba.chunk.js} +0 -0
- /package/dist/scripts/{58-8e5cc56c3f.chunk.js → 58-7aedb52028.chunk.js} +0 -0
- /package/dist/scripts/{6-0e53df2ece.chunk.js → 6-a888530bed.chunk.js} +0 -0
- /package/dist/scripts/{7-26822045b2.chunk.js → 7-7e596a99ba.chunk.js} +0 -0
- /package/dist/scripts/{8-7450eff674.chunk.js → 8-abff2ccf3c.chunk.js} +0 -0
- /package/dist/scripts/{9-f24f1577dd.chunk.js → 9-58b0e36108.chunk.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/apps/playlists/components/playlist-list/PartialPlaylistList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/dynamic-widget/DynamicWidget.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/dynamic-widget/DynamicWidgetEventHandlers.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/dynamic-widget/DynamicWidgetReducer.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/dynamic-widget/dynamic-widget.scss?7e56","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/series-widget-item/PartialSeriesList.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/subject-widget-item/PartialSubjectWidgetItem.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/subject-widget-item/SubjectWidgetItem.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/widgets/items/subject-widget-item/subject-widget-item.scss?9d2b","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/flight-requests/AudienceRequests.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseResizeListener.ts"],"names":[],"mappings":"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","file":"scripts/15.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { Row, Col } from 'react-bootstrap';\r\n\r\nimport styles from './playlist.scss';\r\n\r\ninterface PartialPlaylistListProps {\r\n numItems?: number;\r\n itemClassName?: string;\r\n showHeading?: boolean;\r\n}\r\n\r\nPartialPlaylistList.defaultProps = {\r\n numItems: 8\r\n};\r\n\r\nexport function PartialPlaylistList(props: PartialPlaylistListProps): JSX.Element {\r\n const PARTIAL_PLAYLISTS = [...Array(props.numItems)];\r\n\r\n const className = props.itemClassName || '';\r\n\r\n return (\r\n <>\r\n {props.showHeading && <div className={`${styles.partialHeading} partial-loading-background`} />}\r\n <Row>\r\n {PARTIAL_PLAYLISTS.map((p, idx) =>\r\n <Col key={idx} xs={6} sm={4} md={3} lg={2} className={className}>\r\n <div className='py-2'>\r\n <div className={`${styles.basePlaylistItem} partial-loading-background`} />\r\n </div>\r\n </Col>\r\n )}\r\n </Row>\r\n </>\r\n );\r\n}","import * as React from 'react';\r\nimport * as _ from 'underscore';\r\n\r\nimport { Core } from 'libs/common/core';\r\nimport { ObjectHelper } from 'libs/common/react/utils/ObjectHelper';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ArrayHelper } from 'libs/common/react/utils/ArrayHelper';\r\n\r\nimport { useResizeListener } from 'libs/shared/hooks/UseResizeListener';\r\nimport { useLazyLoad } from 'libs/shared/hooks/UseLazyLoad';\r\nimport { CssMeasurement } from 'libs/shared/enums/CssMeasurement';\r\nimport { WidgetButton, WidgetButtonDirection } from 'libs/shared/components/widgets/widget-button/WidgetButton';\r\nimport { PartialSubjectWidgetItem } from 'libs/shared/components/widgets/items/subject-widget-item/PartialSubjectWidgetItem';\r\nimport { SlidingListContainer } from 'libs/shared/components/widgets/sliding-list/SlidingListContainer';\r\nimport { SlidingListRefs } from 'libs/shared/interfaces/SlidingListRefs';\r\nimport { BaseObject } from 'libs/shared/interfaces';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\nimport { PartialLoadingHelper } from 'libs/shared/utils/PartialLoadingHelper';\r\n\r\nimport { getDragEndHandler, getDragHandler, getResizeEndHandler, getResizeHandler, getTouchMoveHandler, getTouchEndHandler } from './DynamicWidgetEventHandlers';\r\nimport { DynamicWidgetReducer, DynamicWidgetState, initialSliderState } from './DynamicWidgetReducer';\r\n\r\nimport styles from './dynamic-widget.scss';\r\n\r\nconst namespace = 'shared.dynamicWidget';\r\n\r\ninterface WidgetSnapshot extends DynamicWidgetState {\r\n initialMouseX: number;\r\n}\r\n\r\ninterface DynamicWidgetProps {\r\n childAppLink: Core.AppLink;\r\n childComponent: React.ElementType;\r\n endComponent?: React.ElementType;\r\n\r\n collection?: BaseObject[];\r\n fetch?: (...args: any[]) => any;\r\n lazyLoad?: boolean;\r\n\r\n headingPhraseKey?: 'topics' | 'teach';\r\n}\r\n\r\nexport function DynamicWidget(props: DynamicWidgetProps): JSX.Element {\r\n const { childComponent: WidgetItemComponent, endComponent: EndComponent } = props;\r\n\r\n const [ state, dispatch ] = React.useReducer(DynamicWidgetReducer, initialSliderState);\r\n\r\n // A snapshot of the widget state is captured on the very first `Drag` event as a point of reference\r\n const [ widgetSnapshot, setWidgetSnapshot ] = React.useState<WidgetSnapshot>(null);\r\n\r\n const elementRefs: SlidingListRefs = {\r\n container: React.useRef(null),\r\n firstElement: React.useRef(null),\r\n lastElement: React.useRef(null)\r\n };\r\n\r\n useResizeListener(getResizeHandler(elementRefs, dispatch), getResizeEndHandler(elementRefs.container));\r\n\r\n const { ref, inView } = useLazyLoad(props.lazyLoad);\r\n\r\n let widgetData = props.collection;\r\n if (!props.collection && FunctionHelper.isFunction(props.fetch))\r\n widgetData = props.fetch(inView);\r\n\r\n /**\r\n * Once the widget data has been set, we can initialize the reducer. This is because\r\n * the reducer depends on the refs being set, but they don't get set until the markup has been loaded.\r\n */\r\n React.useEffect(() => {\r\n if (!widgetData || ObjectHelper.isEmpty(widgetData))\r\n return;\r\n\r\n dispatch({\r\n type: WidgetInteraction.Init,\r\n payload: elementRefs\r\n });\r\n\r\n }, [widgetData]);\r\n\r\n function getWidgetItems(): JSX.Element {\r\n if (!widgetData)\r\n return;\r\n\r\n const items = widgetData.map(widgetItem => {\r\n let itemRef: React.MutableRefObject<HTMLDivElement>;\r\n\r\n if (widgetItem === ArrayHelper.first(widgetData))\r\n itemRef = elementRefs.firstElement;\r\n\r\n if (widgetItem === ArrayHelper.last(widgetData) && !EndComponent)\r\n itemRef = elementRefs.lastElement;\r\n\r\n return (\r\n <div key={widgetItem.id} ref={itemRef} className={styles.itemSpacing}>\r\n <WidgetItemComponent\r\n data={widgetItem}\r\n appLink={props.childAppLink}\r\n />\r\n </div>\r\n );\r\n });\r\n\r\n if (EndComponent)\r\n items.push((\r\n <div key='end-widget-component' ref={elementRefs.lastElement} className={styles.itemSpacing}>\r\n <EndComponent />\r\n </div>\r\n ));\r\n\r\n return <>{items}</>;\r\n }\r\n\r\n const widgetItems = React.useMemo(getWidgetItems, [widgetData]);\r\n\r\n if (widgetData && !widgetData.length)\r\n return <></>;\r\n\r\n if (!widgetData || ObjectHelper.isEmpty(widgetData)) {\r\n return (\r\n <div ref={ref}>\r\n <PartialDynamicWidget />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <>\r\n {props.headingPhraseKey &&\r\n <h4 className='d-inline-block mr-2 pl-1 mb-2'>\r\n <Text namespace={namespace} phrase={props.headingPhraseKey} />\r\n </h4>\r\n }\r\n <div className='position-relative px-1'>\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Left}\r\n onClick={() => dispatch({ type: WidgetInteraction.Previous })}\r\n hide={state.hideLeftButton}\r\n useGradientBackdrop\r\n />\r\n <div className='overflow-hidden'>\r\n <SlidingListContainer\r\n position={state.offset}\r\n positionType={CssMeasurement.Pixels}\r\n onDrag={getDragHandler(elementRefs.container, state, dispatch, widgetSnapshot, setWidgetSnapshot)}\r\n onDragEnd={getDragEndHandler(elementRefs.container, setWidgetSnapshot)}\r\n onTouchMove={getTouchMoveHandler(elementRefs.container, state, dispatch, widgetSnapshot, setWidgetSnapshot)}\r\n onTouchEnd={getTouchEndHandler(elementRefs.container, setWidgetSnapshot)}\r\n ref={elementRefs.container}\r\n >\r\n {widgetItems}\r\n </SlidingListContainer>\r\n </div>\r\n <WidgetButton\r\n direction={WidgetButtonDirection.Right}\r\n onClick={() => dispatch({ type: WidgetInteraction.Next })}\r\n hide={state.hideRightButton}\r\n useGradientBackdrop\r\n />\r\n </div>\r\n </>\r\n );\r\n}\r\n\r\nconst PARTIAL_WIDGET_ITEMS = PartialLoadingHelper.getPartialLoadingItems();\r\n\r\nexport const PartialDynamicWidget = () => (\r\n <div className='pb-3 d-flex flex-nowrap'>\r\n {PARTIAL_WIDGET_ITEMS.map((item, idx) => <PartialSubjectWidgetItem key={idx} />)}\r\n </div>\r\n);","import { ReducerActions } from 'libs/common/react/interfaces';\r\n\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\nimport { SlidingListRefs } from 'libs/shared/interfaces/SlidingListRefs';\r\n\r\nimport { DynamicWidgetState } from './DynamicWidgetReducer';\r\n\r\ninterface WidgetSnapshot extends DynamicWidgetState {\r\n initialMouseX: number;\r\n}\r\n\r\n/**\r\n * Resize events\r\n */\r\nexport const getResizeHandler = (\r\n elementRefs: SlidingListRefs,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>\r\n) => () => {\r\n if (elementRefs.container.current)\r\n elementRefs.container.current.style.transition = '';\r\n\r\n dispatch({\r\n type: WidgetInteraction.Resize,\r\n payload: elementRefs\r\n });\r\n};\r\n\r\nexport const getResizeEndHandler = (containerRef: React.MutableRefObject<HTMLDivElement>) => () => {\r\n if (containerRef.current)\r\n containerRef.current.style.transition = 'transform .5s ease-in-out';\r\n};\r\n\r\n/**\r\n * Touch / Drag start events\r\n */\r\nexport const getDragHandler = (\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n widgetState: DynamicWidgetState,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>,\r\n widgetSnapshot: WidgetSnapshot,\r\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\r\n) => (event: React.DragEvent<HTMLDivElement>): void => {\r\n const mouseX = event.clientX;\r\n\r\n handleDragOrTouchMove(mouseX, containerRef, widgetState, dispatch, widgetSnapshot, setWidgetSnapshot);\r\n};\r\n\r\nexport const getTouchMoveHandler = (\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n widgetState: DynamicWidgetState,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>,\r\n widgetSnapshot: WidgetSnapshot,\r\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\r\n) => (event: React.TouchEvent<HTMLDivElement>): void => {\r\n const firstTouch = event.touches.item(0);\r\n const touchX = firstTouch.clientX;\r\n\r\n handleDragOrTouchMove(touchX, containerRef, widgetState, dispatch, widgetSnapshot, setWidgetSnapshot);\r\n};\r\n\r\nfunction handleDragOrTouchMove(\r\n xCoord: number,\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n widgetState: DynamicWidgetState,\r\n dispatch: React.Dispatch<ReducerActions<WidgetInteraction>>,\r\n widgetSnapshot: WidgetSnapshot,\r\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\r\n): void {\r\n let snapshot = widgetSnapshot;\r\n\r\n if (!snapshot) {\r\n snapshot = { ...widgetState, initialMouseX: xCoord };\r\n setWidgetSnapshot(snapshot);\r\n containerRef.current.style.transition = '';\r\n }\r\n\r\n dispatch({\r\n type: WidgetInteraction.Drag,\r\n payload: {\r\n widgetSnapshot: snapshot,\r\n currentMouseX: xCoord\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Touch / Drag end events\r\n */\r\nexport const getDragEndHandler = (\r\n containerRef: React.MutableRefObject<HTMLDivElement>,\r\n setWidgetSnapshot: React.Dispatch<WidgetSnapshot>\r\n) => () => {\r\n containerRef.current.style.transition = 'transform .5s ease-in-out';\r\n setWidgetSnapshot(null);\r\n};\r\n\r\nexport const getTouchEndHandler = getDragEndHandler;","import { ReducerActions } from 'libs/common/react/interfaces';\r\nimport { WidgetInteraction } from 'libs/shared/enums/WidgetInteraction';\r\n\r\nexport interface DynamicWidgetState {\r\n /**\r\n * X-position argument for `translate3d()` to determine where the slider is positioned.\r\n */\r\n offset: number;\r\n\r\n /**\r\n * Left position of the slider container.\r\n * Set on `Init`, and updated on `Resize`.\r\n * Used for calculations on `Previous`, or for dragging to the right.\r\n */\r\n containerLeftPosition: number;\r\n\r\n /**\r\n * Right position of the slider container.\r\n * Set on Init, and updated on Resize.\r\n * Used for calculations on `Next`, or for dragging to the left.\r\n */\r\n containerRightPosition: number;\r\n\r\n /**\r\n * The position of the left edge of the very first element in the slider list.\r\n * Initially this will always be equal to `containerLeftPosition`.\r\n */\r\n firstElementPosition: number;\r\n\r\n /**\r\n * The position of the right edge of the very last element in the slider list.\r\n */\r\n lastElementPosition: number;\r\n\r\n /**\r\n * True when `firstElementPosition === containerLeftPosition`.\r\n */\r\n hideLeftButton: boolean;\r\n\r\n /**\r\n * True when `lastElementPositon === containerRightPosition`.\r\n */\r\n hideRightButton: boolean;\r\n\r\n /**\r\n * When clicking left or right, this number is the max distance in pixels that the slider.\r\n * will move.\r\n * Default 300.\r\n * Can only be set once on `Init` action.\r\n */\r\n maxSlideDistance: number;\r\n\r\n /**\r\n * This is calculated on `Init`, and is the lowest number the `offset` state can ever be.\r\n * This is needed for the `Drag` event, as the `Drag` event can only calculate whole numbers.\r\n * 99% of the time, the leftOffsetLimit is a very specific decimal number, so we calculate it\r\n * on `Init` and reference it on `Drag` events when necessary.\r\n */\r\n leftOffsetLimit: number;\r\n}\r\n\r\nconst MAX_SLIDE_DISTANCE = 500; // px\r\n\r\n/**\r\n * `null` values are initialized in the `Init` action. This is dispatched\r\n * later, because it uses JQuery elements that aren't immediately available\r\n * when `useReducer` is called.\r\n */\r\nexport const initialSliderState: DynamicWidgetState = {\r\n offset: 0,\r\n containerLeftPosition: null,\r\n containerRightPosition: null,\r\n firstElementPosition: null,\r\n lastElementPosition: null,\r\n hideLeftButton: true,\r\n hideRightButton: true,\r\n maxSlideDistance: MAX_SLIDE_DISTANCE,\r\n leftOffsetLimit: null\r\n};\r\n\r\nfunction onInit(payload: any): object {\r\n const { container = {}, lastElement = {} } = payload;\r\n\r\n if (!container.current || !lastElement.current)\r\n return initialSliderState;\r\n\r\n const containerLeftPosition = payload.container.current.getBoundingClientRect().left;\r\n const containerRightPosition = payload.container.current.getBoundingClientRect().right;\r\n\r\n const firstElementPosition = containerLeftPosition;\r\n const lastElementPosition = payload.lastElement.current.getBoundingClientRect().right;\r\n const leftOffsetLimit = containerRightPosition - lastElementPosition;\r\n\r\n return {\r\n ...initialSliderState,\r\n containerLeftPosition,\r\n containerRightPosition,\r\n firstElementPosition,\r\n lastElementPosition,\r\n hideRightButton: lastElementPosition < containerRightPosition,\r\n leftOffsetLimit\r\n };\r\n}\r\n\r\nfunction onNext(prevState: DynamicWidgetState): object {\r\n const { firstElementPosition, lastElementPosition, maxSlideDistance, offset, containerRightPosition } = prevState;\r\n\r\n /**\r\n * The distance in pixels that the slider will move along the x-axis.\r\n * This will be the `maxSlideDistance` constant value, or if that value is too large we calculate\r\n * the remaining overflowing space and only slide by that amount.\r\n */\r\n const slideDistance = lastElementPosition - containerRightPosition >= maxSlideDistance\r\n ? maxSlideDistance\r\n : lastElementPosition - containerRightPosition;\r\n\r\n return {\r\n firstElementPosition: firstElementPosition - slideDistance,\r\n lastElementPosition: lastElementPosition - slideDistance,\r\n offset: offset - slideDistance,\r\n hideRightButton: lastElementPosition - slideDistance === containerRightPosition,\r\n hideLeftButton: false\r\n };\r\n}\r\n\r\nfunction onPrevious(prevState: DynamicWidgetState): object {\r\n const { containerLeftPosition, firstElementPosition, lastElementPosition, maxSlideDistance, offset } = prevState;\r\n\r\n const fullSlide = firstElementPosition + maxSlideDistance <= containerLeftPosition;\r\n const slideDistance = fullSlide ? maxSlideDistance : Math.abs(offset);\r\n\r\n return {\r\n firstElementPosition: firstElementPosition + slideDistance,\r\n lastElementPosition: lastElementPosition + slideDistance,\r\n offset: offset + slideDistance,\r\n hideLeftButton: !fullSlide || firstElementPosition + slideDistance === containerLeftPosition,\r\n hideRightButton: false\r\n };\r\n}\r\n\r\nfunction onDrag(prevState: DynamicWidgetState, payload: any): object {\r\n const { widgetSnapshot, currentMouseX } = payload;\r\n\r\n // Disable dragging if the slider isn't long enough\r\n if (widgetSnapshot.hideLeftButton && widgetSnapshot.hideRightButton)\r\n return {};\r\n\r\n // The distance from the initial `MouseDown` event x-coordinate, to the present x-coordinate\r\n const dragDistance = widgetSnapshot.initialMouseX - currentMouseX;\r\n\r\n let offset = widgetSnapshot.offset - dragDistance;\r\n let firstElementPosition = widgetSnapshot.firstElementPosition - dragDistance;\r\n let lastElementPosition = widgetSnapshot.lastElementPosition - dragDistance;\r\n let hideLeftButton = false;\r\n let hideRightButton = false;\r\n\r\n if (firstElementPosition > prevState.containerLeftPosition) {\r\n offset = 0;\r\n firstElementPosition = prevState.containerLeftPosition;\r\n lastElementPosition = prevState.lastElementPosition;\r\n hideLeftButton = true;\r\n }\r\n\r\n if (lastElementPosition <= prevState.containerRightPosition) {\r\n offset = prevState.leftOffsetLimit;\r\n firstElementPosition = prevState.containerLeftPosition - Math.abs(prevState.leftOffsetLimit);\r\n lastElementPosition = widgetSnapshot.containerRightPosition;\r\n hideRightButton = true;\r\n }\r\n\r\n return {\r\n offset,\r\n firstElementPosition,\r\n lastElementPosition,\r\n hideLeftButton,\r\n hideRightButton\r\n };\r\n}\r\n\r\nexport function DynamicWidgetReducer(\r\n prevState: DynamicWidgetState,\r\n action: ReducerActions<WidgetInteraction>\r\n): DynamicWidgetState {\r\n switch (action.type) {\r\n case WidgetInteraction.Init:\r\n case WidgetInteraction.Resize:\r\n return {\r\n ...prevState,\r\n ...onInit(action.payload)\r\n };\r\n\r\n case WidgetInteraction.Next:\r\n return {\r\n ...prevState,\r\n ...onNext(prevState)\r\n };\r\n\r\n case WidgetInteraction.Previous:\r\n return {\r\n ...prevState,\r\n ...onPrevious(prevState)\r\n };\r\n\r\n case WidgetInteraction.Drag:\r\n return {\r\n ...prevState,\r\n ...onDrag(prevState, action.payload)\r\n };\r\n default:\r\n return prevState;\r\n }\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemSpacing\":\"cv--itemSpacing--10Pgb\"};","import * as React from 'react';\r\nimport styles from './series-widget-item.scss';\r\n\r\nconst PARTIAL_SERIES = [...Array(4)];\r\n\r\nexport const PartialSeriesList = () => (\r\n <div className='pb-3'>\r\n <div className={`partial-loading-background ${styles.partialLoadingHeading}`} dangerouslySetInnerHTML={{ __html: ' ' }} />\r\n <div className='row'>\r\n {PARTIAL_SERIES.map((s, idx) =>\r\n <div key={idx} className='col-6 col-sm-4 col-lg-3 '>\r\n <div className='py-2'>\r\n <div className={`${styles.partialLoading} partial-loading-background`} />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n);","import * as React from 'react';\r\n\r\nimport { RandomHelper } from 'libs/common/react/utils/RandomHelper';\r\n\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\n\r\nimport styles from './subject-widget-item.scss';\r\n\r\nexport const PartialSubjectWidgetItem = () => {\r\n const [width] = React.useState(RandomHelper.getRandomInt(5) + 3 + 'rem');\r\n\r\n return (\r\n <div className={`border d-flex position-relative mr-2 ${styles.widgetItem}`}>\r\n <div className={styles.imagePanel} />\r\n <div className='px-2' style={{ width }}> </div>\r\n <ThumbnailFallback type={ThumbnailFallbackType.Subject} />\r\n </div>\r\n );\r\n};","import * as React from 'react';\r\n\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { TextHelper } from 'libs/common/react/utils/TextHelper';\r\nimport { Classification } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageSize } from 'libs/shared/enums/Images';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { ThumbnailFallback, ThumbnailFallbackType } from 'libs/shared/components/thumbnails/base/ThumbnailFallback';\r\nimport { Text } from 'libs/shared/components/text/Text';\r\n\r\nimport styles from './subject-widget-item.scss';\r\n\r\nconst namespace = 'shared.subjectWidgetItem';\r\n\r\ninterface NamePanelProps {\r\n name: string;\r\n multiline?: boolean;\r\n}\r\n\r\nconst ComingSoonNamePanel = ({ name, multiline }: NamePanelProps) => {\r\n let wrapperClassName = `${styles.comingSoonPanel} px-3 text-center mt-3`;\r\n let textClassName = `${styles.name} h6 mb-0 pb-1`;\r\n\r\n if (!multiline) {\r\n wrapperClassName += ' text-nowrap';\r\n textClassName += ' text-truncate';\r\n } else {\r\n textClassName += ` ${styles.clamped} clamp-2`;\r\n }\r\n\r\n return (\r\n <div className={wrapperClassName}>\r\n <small className='text-muted'><Text namespace={namespace} phrase='comingSoon' /></small>\r\n <p className={textClassName}>{name}</p>\r\n </div>\r\n );\r\n};\r\n\r\nconst NormalNamePanel = ({ name, multiline }: NamePanelProps) => {\r\n let wrapperClassName = 'px-3 text-center d-flex align-items-center';\r\n let textClassName = `${styles.name} h6 mb-0 pb-1`;\r\n\r\n if (!multiline) {\r\n wrapperClassName += ' text-nowrap text-truncate';\r\n textClassName += ' text-truncate';\r\n } else {\r\n textClassName += ` ${styles.clamped} clamp-2 text-left`;\r\n }\r\n\r\n return (\r\n <div className={wrapperClassName}>\r\n <p className={textClassName}>{name}</p>\r\n </div>\r\n );\r\n};\r\n\r\ninterface SubjectWidgetItemProps {\r\n data: Classification;\r\n appLink: Core.AppLink;\r\n isLarge?: boolean;\r\n}\r\n\r\nfunction SubjectWidgetItem(props: SubjectWidgetItemProps): JSX.Element {\r\n const appLink = {\r\n ...props.appLink,\r\n args: [ props.data.id, TextHelper.slugify(props.data.name) ]\r\n };\r\n\r\n const coverUrl = ImageHelper.createUrl(props.data.cover?.url, { size: ImageSize.Small });\r\n\r\n return (\r\n <AppLink appLink={appLink}>\r\n <div className={`border d-flex position-relative ${styles.widgetItem}`} id={props.data.id}>\r\n <div className={`${styles.imagePanel} ${props.isLarge ? styles.large : ''}`} style={{ backgroundImage: `url('${coverUrl}')` }} />\r\n {props.data.comingSoon\r\n ? <ComingSoonNamePanel name={props.data.name} multiline={props.isLarge} />\r\n : <NormalNamePanel name={props.data.name} multiline={props.isLarge} />\r\n }\r\n <ThumbnailFallback type={ThumbnailFallbackType.Subject} extraClasses={props.isLarge ? styles.large : ''} />\r\n </div>\r\n </AppLink>\r\n );\r\n}\r\n\r\nconst Memoized = React.memo(SubjectWidgetItem);\r\n\r\nexport { Memoized as SubjectWidgetItem };","// extracted by mini-css-extract-plugin\nmodule.exports = {\"widgetItem\":\"cv--widgetItem--1oyw1\",\"imagePanel\":\"cv--imagePanel--1UOVG\",\"large\":\"cv--large--1EtWs\",\"comingSoonPanel\":\"cv--comingSoonPanel--3js2e\",\"name\":\"cv--name--3csgE\",\"clamped\":\"cv--clamped--1y2oG\",\"editSubjectsItem\":\"cv--editSubjectsItem--1yBMf\"};","import { Flight } from 'libs/common/flight';\r\n\r\nconst endpoints = {\r\n presentationAudiences: () => `/api/domain/v1/subjects/audiences`\r\n};\r\n\r\nexport const AudienceRequests = {\r\n presentationAudiences(): Flight.Request {\r\n return {\r\n bootstrapName: 'presentationAudiences',\r\n url: endpoints.presentationAudiences(),\r\n key: `presentation:audiences`,\r\n normalize: false\r\n };\r\n }\r\n};","import * as React from 'react';\r\n\r\n/**\r\n * Hook function for listening to scroll events\r\n * @param onResize - gets called on resize.\r\n * @param onResizeEnd (optional) - gets called 100ms after the last resize event. Timer restarts everytime the callback\r\n * runs so that endCallback only fires after a stretch of resize events.\r\n * @param dependencies - values from the component (e.g. state, props and functions) that are used \r\n * inside the effect hook.\r\n */\r\nexport function useResizeListener(onResize: () => void, onResizeEnd?: () => void, dependencies: any[] = []): void {\r\n let resizeTimeout: number;\r\n\r\n const onResizeModified = () => {\r\n onResize();\r\n\r\n window.clearTimeout(resizeTimeout);\r\n resizeTimeout = window.setTimeout(onResizeEnd, 100);\r\n };\r\n\r\n React.useEffect(() => {\r\n window.addEventListener('resize', onResizeEnd ? onResizeModified : onResize);\r\n return () => window.removeEventListener('resize', onResizeEnd ? onResizeModified : onResize);\r\n }, [...dependencies]);\r\n}"],"sourceRoot":""}
|
|
@@ -0,0 +1,482 @@
|
|
|
1
|
+
(window["webpackJsonp_clickview_lite"] = window["webpackJsonp_clickview_lite"] || []).push([[16],{
|
|
2
|
+
|
|
3
|
+
/***/ "../../libs/shared/src/components/back-button/BackButton.tsx":
|
|
4
|
+
/*!*******************************************************************************************************!*\
|
|
5
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/back-button/BackButton.tsx ***!
|
|
6
|
+
\*******************************************************************************************************/
|
|
7
|
+
/*! exports provided: BackButton */
|
|
8
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
9
|
+
|
|
10
|
+
"use strict";
|
|
11
|
+
__webpack_require__.r(__webpack_exports__);
|
|
12
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BackButton", function() { return BackButton; });
|
|
13
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
14
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
15
|
+
/* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
16
|
+
/* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
|
|
17
|
+
/* harmony import */ var _app_link_AppLink__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../app-link/AppLink */ "../../libs/shared/src/components/app-link/AppLink.tsx");
|
|
18
|
+
/* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
var namespace = 'shared.backButton';
|
|
25
|
+
BackButton.defaultProps = {
|
|
26
|
+
color: 'black'
|
|
27
|
+
};
|
|
28
|
+
function BackButton(_ref) {
|
|
29
|
+
var backToName = _ref.backToName,
|
|
30
|
+
appLink = _ref.appLink,
|
|
31
|
+
color = _ref.color;
|
|
32
|
+
var backPhrase = backToName ? _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'backTo', {
|
|
33
|
+
backToName: backToName
|
|
34
|
+
}) : _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'back');
|
|
35
|
+
var colorClass = color === 'black' ? '' : 'text-light';
|
|
36
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_app_link_AppLink__WEBPACK_IMPORTED_MODULE_3__["AppLink"], {
|
|
37
|
+
appLink: appLink,
|
|
38
|
+
className: "d-inline-flex align-items-center h5 mb-0 ".concat(colorClass)
|
|
39
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
|
|
40
|
+
svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_4__["cvSvgLibrary"].ChevronLeft,
|
|
41
|
+
size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Medium
|
|
42
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("span", {
|
|
43
|
+
className: 'ml-1'
|
|
44
|
+
}, backPhrase));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/***/ }),
|
|
48
|
+
|
|
49
|
+
/***/ "../../libs/shared/src/components/banner-header/BannerHeader.tsx":
|
|
50
|
+
/*!***********************************************************************************************************!*\
|
|
51
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx ***!
|
|
52
|
+
\***********************************************************************************************************/
|
|
53
|
+
/*! exports provided: BannerHeader, PartialBannerHeader */
|
|
54
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
55
|
+
|
|
56
|
+
"use strict";
|
|
57
|
+
__webpack_require__.r(__webpack_exports__);
|
|
58
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BannerHeader", function() { return BannerHeader; });
|
|
59
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PartialBannerHeader", function() { return PartialBannerHeader; });
|
|
60
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
61
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
62
|
+
/* harmony import */ var _back_button_BackButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../back-button/BackButton */ "../../libs/shared/src/components/back-button/BackButton.tsx");
|
|
63
|
+
/* harmony import */ var _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/ImageHelper */ "../../libs/shared/src/utils/ImageHelper.ts");
|
|
64
|
+
/* harmony import */ var _enums_Images__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../enums/Images */ "../../libs/shared/src/enums/Images.ts");
|
|
65
|
+
/* harmony import */ var _actions_Actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../actions/Actions */ "../../libs/shared/src/components/actions/Actions.tsx");
|
|
66
|
+
/* harmony import */ var _banner_header_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./banner-header.scss */ "../../libs/shared/src/components/banner-header/banner-header.scss");
|
|
67
|
+
/* harmony import */ var _banner_header_scss__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_banner_header_scss__WEBPACK_IMPORTED_MODULE_5__);
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
var BannerHeader = react__WEBPACK_IMPORTED_MODULE_0__["memo"](function (props) {
|
|
75
|
+
var heading = props.heading,
|
|
76
|
+
banner = props.banner,
|
|
77
|
+
imageCdnUrl = props.imageCdnUrl,
|
|
78
|
+
actions = props.actions,
|
|
79
|
+
sortComponent = props.sortComponent;
|
|
80
|
+
var url = _utils_ImageHelper__WEBPACK_IMPORTED_MODULE_2__["ImageHelper"].createBannerUrl(banner, {
|
|
81
|
+
fallbackBaseUrl: imageCdnUrl,
|
|
82
|
+
fallbackCategoryName: heading,
|
|
83
|
+
type: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageType"].Banners
|
|
84
|
+
}, {
|
|
85
|
+
size: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ImageSize"].Large,
|
|
86
|
+
resizeType: _enums_Images__WEBPACK_IMPORTED_MODULE_3__["ResizeType"].Cover
|
|
87
|
+
});
|
|
88
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
89
|
+
className: 'banner',
|
|
90
|
+
style: {
|
|
91
|
+
backgroundImage: "url('".concat(url, "')")
|
|
92
|
+
}
|
|
93
|
+
}, props.backButtonAppLink && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
94
|
+
className: 'pt-3'
|
|
95
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_back_button_BackButton__WEBPACK_IMPORTED_MODULE_1__["BackButton"], {
|
|
96
|
+
appLink: props.backButtonAppLink,
|
|
97
|
+
backToName: props.backButtonText,
|
|
98
|
+
color: 'white'
|
|
99
|
+
})), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h1", {
|
|
100
|
+
className: 'text-white text-shadow position-absolute m-0 pb-3'
|
|
101
|
+
}, heading), !!actions && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
102
|
+
className: _banner_header_scss__WEBPACK_IMPORTED_MODULE_5___default.a.actionsContainer
|
|
103
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_actions_Actions__WEBPACK_IMPORTED_MODULE_4__["Actions"], {
|
|
104
|
+
actions: actions,
|
|
105
|
+
sortComponent: sortComponent
|
|
106
|
+
})));
|
|
107
|
+
}, function (prevProps, nextProps) {
|
|
108
|
+
return prevProps.actions === nextProps.actions;
|
|
109
|
+
});
|
|
110
|
+
var PartialBannerHeader = function PartialBannerHeader() {
|
|
111
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
112
|
+
className: "partial-banner partial-loading-background"
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
/***/ }),
|
|
117
|
+
|
|
118
|
+
/***/ "../../libs/shared/src/components/banner-header/banner-header.scss":
|
|
119
|
+
/*!*************************************************************************************************************!*\
|
|
120
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/banner-header.scss ***!
|
|
121
|
+
\*************************************************************************************************************/
|
|
122
|
+
/*! no static exports found */
|
|
123
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
124
|
+
|
|
125
|
+
// extracted by mini-css-extract-plugin
|
|
126
|
+
module.exports = {"actionsContainer":"cv--actionsContainer--286KF"};
|
|
127
|
+
|
|
128
|
+
/***/ }),
|
|
129
|
+
|
|
130
|
+
/***/ "../../libs/shared/src/components/empty-state/EmptyState.tsx":
|
|
131
|
+
/*!*******************************************************************************************************!*\
|
|
132
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx ***!
|
|
133
|
+
\*******************************************************************************************************/
|
|
134
|
+
/*! exports provided: EmptyState */
|
|
135
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
136
|
+
|
|
137
|
+
"use strict";
|
|
138
|
+
__webpack_require__.r(__webpack_exports__);
|
|
139
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyState", function() { return EmptyState; });
|
|
140
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
141
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
142
|
+
|
|
143
|
+
function EmptyState(props) {
|
|
144
|
+
var imageUrl = props.imageUrl,
|
|
145
|
+
heading = props.heading,
|
|
146
|
+
description = props.description;
|
|
147
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
148
|
+
className: 'empty-state-container'
|
|
149
|
+
}, react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
150
|
+
className: 'content-container'
|
|
151
|
+
}, imageUrl && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("img", {
|
|
152
|
+
src: imageUrl
|
|
153
|
+
}), react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("h1", null, heading), description && react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("p", {
|
|
154
|
+
dangerouslySetInnerHTML: {
|
|
155
|
+
__html: description
|
|
156
|
+
}
|
|
157
|
+
})));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/***/ }),
|
|
161
|
+
|
|
162
|
+
/***/ "../../libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx":
|
|
163
|
+
/*!****************************************************************************************************************************!*\
|
|
164
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx ***!
|
|
165
|
+
\****************************************************************************************************************************/
|
|
166
|
+
/*! exports provided: InfiniteScrollFooter */
|
|
167
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
168
|
+
|
|
169
|
+
"use strict";
|
|
170
|
+
__webpack_require__.r(__webpack_exports__);
|
|
171
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfiniteScrollFooter", function() { return InfiniteScrollFooter; });
|
|
172
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
173
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
174
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-bootstrap */ "react-bootstrap");
|
|
175
|
+
/* harmony import */ var react_bootstrap__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_bootstrap__WEBPACK_IMPORTED_MODULE_1__);
|
|
176
|
+
/* harmony import */ var _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg-container/SvgContainer */ "../../libs/shared/src/components/svg-container/SvgContainer.tsx");
|
|
177
|
+
/* harmony import */ var _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/SvgHelper */ "../../libs/shared/src/utils/SvgHelper.ts");
|
|
178
|
+
/* harmony import */ var _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./infinite-scroll-footer.scss */ "../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss");
|
|
179
|
+
/* harmony import */ var _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4__);
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
function InfiniteScrollFooter(props) {
|
|
186
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"]("div", {
|
|
187
|
+
className: "p-3 text-center ".concat(_infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default.a.container)
|
|
188
|
+
}, props.isFetching ? react__WEBPACK_IMPORTED_MODULE_0__["createElement"](react_bootstrap__WEBPACK_IMPORTED_MODULE_1__["Spinner"], {
|
|
189
|
+
as: 'span',
|
|
190
|
+
animation: 'border',
|
|
191
|
+
role: 'status',
|
|
192
|
+
className: _infinite_scroll_footer_scss__WEBPACK_IMPORTED_MODULE_4___default.a.spinner
|
|
193
|
+
}) : react__WEBPACK_IMPORTED_MODULE_0__["createElement"](_svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainer"], {
|
|
194
|
+
svgName: _utils_SvgHelper__WEBPACK_IMPORTED_MODULE_3__["cvSvgLibrary"].ChevronDown,
|
|
195
|
+
className: 'svg-container cursor-pointer',
|
|
196
|
+
size: _svg_container_SvgContainer__WEBPACK_IMPORTED_MODULE_2__["SvgContainerSize"].Large,
|
|
197
|
+
onClick: props.onClick
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/***/ }),
|
|
202
|
+
|
|
203
|
+
/***/ "../../libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss":
|
|
204
|
+
/*!*******************************************************************************************************************************!*\
|
|
205
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss ***!
|
|
206
|
+
\*******************************************************************************************************************************/
|
|
207
|
+
/*! no static exports found */
|
|
208
|
+
/***/ (function(module, exports, __webpack_require__) {
|
|
209
|
+
|
|
210
|
+
// extracted by mini-css-extract-plugin
|
|
211
|
+
module.exports = {"container":"cv--container--1_KC6","spinner":"cv--spinner--VXlcl"};
|
|
212
|
+
|
|
213
|
+
/***/ }),
|
|
214
|
+
|
|
215
|
+
/***/ "../../libs/shared/src/context/PageTitleContext.tsx":
|
|
216
|
+
/*!**********************************************************************************************!*\
|
|
217
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/context/PageTitleContext.tsx ***!
|
|
218
|
+
\**********************************************************************************************/
|
|
219
|
+
/*! exports provided: PageTitleContext, PageTitleContextProvider */
|
|
220
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
221
|
+
|
|
222
|
+
"use strict";
|
|
223
|
+
__webpack_require__.r(__webpack_exports__);
|
|
224
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleContext", function() { return PageTitleContext; });
|
|
225
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleContextProvider", function() { return PageTitleContextProvider; });
|
|
226
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
227
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
228
|
+
/* harmony import */ var _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/services/LanguageService */ "../../libs/common/src/backbone/services/LanguageService.tsx");
|
|
229
|
+
/* harmony import */ var _utils_PageTitleHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/PageTitleHelper */ "../../libs/shared/src/utils/PageTitleHelper.ts");
|
|
230
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
231
|
+
|
|
232
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
233
|
+
|
|
234
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
235
|
+
|
|
236
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
237
|
+
|
|
238
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
239
|
+
|
|
240
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
var PageTitleContext = react__WEBPACK_IMPORTED_MODULE_0__["createContext"]({});
|
|
246
|
+
var namespace = 'shared.context';
|
|
247
|
+
|
|
248
|
+
var DEFAULT_TITLE = function DEFAULT_TITLE() {
|
|
249
|
+
return _common_src_backbone_services_LanguageService__WEBPACK_IMPORTED_MODULE_1__["LanguageService"].getPhrase(namespace, 'defaultTitle');
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
var PageTitleContextProvider = function PageTitleContextProvider(_ref) {
|
|
253
|
+
var children = _ref.children;
|
|
254
|
+
|
|
255
|
+
var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__["useState"](DEFAULT_TITLE),
|
|
256
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
257
|
+
currentPageTitle = _React$useState2[0],
|
|
258
|
+
setCurrentPageTitle = _React$useState2[1];
|
|
259
|
+
|
|
260
|
+
var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](DEFAULT_TITLE),
|
|
261
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
262
|
+
previousPageTitle = _React$useState4[0],
|
|
263
|
+
setPreviousPageTitle = _React$useState4[1];
|
|
264
|
+
|
|
265
|
+
var setPageTitle = function setPageTitle(title) {
|
|
266
|
+
if (title === currentPageTitle) return;
|
|
267
|
+
if (currentPageTitle !== previousPageTitle) setPreviousPageTitle(currentPageTitle);
|
|
268
|
+
setCurrentPageTitle(title);
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
var revertPageTitle = function revertPageTitle() {
|
|
272
|
+
setCurrentPageTitle(previousPageTitle);
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
276
|
+
return _utils_PageTitleHelper__WEBPACK_IMPORTED_MODULE_2__["PageTitleHelper"].setPageTitle(currentPageTitle);
|
|
277
|
+
}, [currentPageTitle]);
|
|
278
|
+
return react__WEBPACK_IMPORTED_MODULE_0__["createElement"](PageTitleContext.Provider, {
|
|
279
|
+
value: {
|
|
280
|
+
setPageTitle: setPageTitle,
|
|
281
|
+
revertPageTitle: revertPageTitle
|
|
282
|
+
}
|
|
283
|
+
}, children);
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
/***/ }),
|
|
287
|
+
|
|
288
|
+
/***/ "../../libs/shared/src/hooks/UseInfiniteScroll.ts":
|
|
289
|
+
/*!********************************************************************************************!*\
|
|
290
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts ***!
|
|
291
|
+
\********************************************************************************************/
|
|
292
|
+
/*! exports provided: useInfiniteScroll */
|
|
293
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
294
|
+
|
|
295
|
+
"use strict";
|
|
296
|
+
__webpack_require__.r(__webpack_exports__);
|
|
297
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useInfiniteScroll", function() { return useInfiniteScroll; });
|
|
298
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
299
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
300
|
+
/* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
var SCROLL_TOLERANCE = 400; // value in px
|
|
304
|
+
|
|
305
|
+
function useInfiniteScroll(fetchNextPage, hasMore, isFetching) {
|
|
306
|
+
var handleScroll = function handleScroll() {
|
|
307
|
+
if (isFetching) return;
|
|
308
|
+
var currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;
|
|
309
|
+
var totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;
|
|
310
|
+
if (currentScrollHeight < totalHeight) return;
|
|
311
|
+
fetchNextPage();
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
Object(react__WEBPACK_IMPORTED_MODULE_0__["useEffect"])(function () {
|
|
315
|
+
var onScroll = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].throttle(handleScroll, 200);
|
|
316
|
+
if (hasMore) window.addEventListener('scroll', onScroll);
|
|
317
|
+
return function () {
|
|
318
|
+
return window.removeEventListener('scroll', onScroll);
|
|
319
|
+
};
|
|
320
|
+
}, [hasMore]);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/***/ }),
|
|
324
|
+
|
|
325
|
+
/***/ "../../libs/shared/src/hooks/UseSelectAllPages.ts":
|
|
326
|
+
/*!********************************************************************************************!*\
|
|
327
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts ***!
|
|
328
|
+
\********************************************************************************************/
|
|
329
|
+
/*! exports provided: useSelectAllPages */
|
|
330
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
331
|
+
|
|
332
|
+
"use strict";
|
|
333
|
+
__webpack_require__.r(__webpack_exports__);
|
|
334
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSelectAllPages", function() { return useSelectAllPages; });
|
|
335
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
336
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
337
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
338
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
|
|
339
|
+
/* harmony import */ var _common_src_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../common/src/react */ "../../libs/common/src/react/index.ts");
|
|
340
|
+
/* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
|
|
341
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
342
|
+
|
|
343
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
344
|
+
|
|
345
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
346
|
+
|
|
347
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
348
|
+
|
|
349
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
350
|
+
|
|
351
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
var safeGetCursor = function safeGetCursor(request) {
|
|
359
|
+
return request && request.data && request.data.pagination && request.data.pagination.cursors && request.data.pagination.cursors.next;
|
|
360
|
+
};
|
|
361
|
+
/**
|
|
362
|
+
* Hook to select all pages of a collection from the store and flatten them.
|
|
363
|
+
* It will not trigger any fetches.
|
|
364
|
+
*
|
|
365
|
+
* @param getKey - callback function to get the key for each page.
|
|
366
|
+
* Can be false if the key requires data that hasn't yet been fetched - e.g. user id.
|
|
367
|
+
*/
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
function useSelectAllPages(getKey) {
|
|
371
|
+
return Object(react_redux__WEBPACK_IMPORTED_MODULE_1__["useSelector"])(Object(react__WEBPACK_IMPORTED_MODULE_0__["useMemo"])(function () {
|
|
372
|
+
return function (state) {
|
|
373
|
+
var getKeyFn = getKey;
|
|
374
|
+
var request = _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_3__["FunctionHelper"].isFunction(getKey) && _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].getResponse(state, getKeyFn());
|
|
375
|
+
var isFetching = request && request.isFetching;
|
|
376
|
+
var shouldInitialFetch = request && request.shouldFetch;
|
|
377
|
+
var items = request && request.data && request.data.data;
|
|
378
|
+
var nextCursor = safeGetCursor(request); // Retrieve all pages that are currently in the store.
|
|
379
|
+
|
|
380
|
+
while (nextCursor) {
|
|
381
|
+
request = _common_src_react__WEBPACK_IMPORTED_MODULE_2__["Flight"].getResponse(state, getKeyFn(nextCursor));
|
|
382
|
+
isFetching = request.isFetching; // If next page hasn't been fetched, break.
|
|
383
|
+
|
|
384
|
+
if (request.shouldFetch) break;
|
|
385
|
+
var newItems = request.data && request.data.data;
|
|
386
|
+
newItems && items.push.apply(items, _toConsumableArray(newItems));
|
|
387
|
+
nextCursor = safeGetCursor(request);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
return {
|
|
391
|
+
shouldInitialFetch: shouldInitialFetch,
|
|
392
|
+
items: items,
|
|
393
|
+
nextCursor: nextCursor,
|
|
394
|
+
isFetching: isFetching
|
|
395
|
+
};
|
|
396
|
+
};
|
|
397
|
+
}, [getKey]));
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/***/ }),
|
|
401
|
+
|
|
402
|
+
/***/ "../../libs/shared/src/hooks/useSetPageTitle.ts":
|
|
403
|
+
/*!******************************************************************************************!*\
|
|
404
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/useSetPageTitle.ts ***!
|
|
405
|
+
\******************************************************************************************/
|
|
406
|
+
/*! exports provided: useSetPageTitle */
|
|
407
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
408
|
+
|
|
409
|
+
"use strict";
|
|
410
|
+
__webpack_require__.r(__webpack_exports__);
|
|
411
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSetPageTitle", function() { return useSetPageTitle; });
|
|
412
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
413
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
414
|
+
/* harmony import */ var _common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../common/src/backbone/utils/FunctionHelper */ "../../libs/common/src/backbone/utils/FunctionHelper.ts");
|
|
415
|
+
/* harmony import */ var _context_PageTitleContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../context/PageTitleContext */ "../../libs/shared/src/context/PageTitleContext.tsx");
|
|
416
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
417
|
+
|
|
418
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
419
|
+
|
|
420
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
421
|
+
|
|
422
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
423
|
+
|
|
424
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
425
|
+
|
|
426
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Hook function to set the page title using the useEffect hook.
|
|
433
|
+
* @param title - value to set the page title to.
|
|
434
|
+
* @param dependencies - values from the component (e.g. state, props and functions) that are used
|
|
435
|
+
* inside the effect hook.
|
|
436
|
+
*/
|
|
437
|
+
|
|
438
|
+
function useSetPageTitle(title) {
|
|
439
|
+
var dependencies = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
440
|
+
|
|
441
|
+
var _React$useContext = react__WEBPACK_IMPORTED_MODULE_0__["useContext"](_context_PageTitleContext__WEBPACK_IMPORTED_MODULE_2__["PageTitleContext"]),
|
|
442
|
+
setPageTitle = _React$useContext.setPageTitle;
|
|
443
|
+
|
|
444
|
+
react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () {
|
|
445
|
+
if (!title || !_common_src_backbone_utils_FunctionHelper__WEBPACK_IMPORTED_MODULE_1__["FunctionHelper"].isFunction(setPageTitle)) return;
|
|
446
|
+
setPageTitle(title);
|
|
447
|
+
}, [title].concat(_toConsumableArray(dependencies)));
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
/***/ }),
|
|
451
|
+
|
|
452
|
+
/***/ "../../libs/shared/src/utils/PageTitleHelper.ts":
|
|
453
|
+
/*!******************************************************************************************!*\
|
|
454
|
+
!*** C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/PageTitleHelper.ts ***!
|
|
455
|
+
\******************************************************************************************/
|
|
456
|
+
/*! exports provided: PageTitleHelper */
|
|
457
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
|
458
|
+
|
|
459
|
+
"use strict";
|
|
460
|
+
__webpack_require__.r(__webpack_exports__);
|
|
461
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PageTitleHelper", function() { return PageTitleHelper; });
|
|
462
|
+
/* harmony import */ var _common_src_backbone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../common/src/backbone */ "../../libs/common/src/backbone/index.ts");
|
|
463
|
+
|
|
464
|
+
var TITLE_LENGTH = 60;
|
|
465
|
+
var SUFFIX = ' - ClickView';
|
|
466
|
+
|
|
467
|
+
var trimTitle = function trimTitle(title) {
|
|
468
|
+
if (title.length + SUFFIX.length <= TITLE_LENGTH) return title + SUFFIX;
|
|
469
|
+
return title.substring(0, TITLE_LENGTH - 3) + '...' + SUFFIX;
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
var PageTitleHelper = {
|
|
473
|
+
setPageTitle: function setPageTitle(title) {
|
|
474
|
+
if (!title) return;
|
|
475
|
+
_common_src_backbone__WEBPACK_IMPORTED_MODULE_0__["Core"].LocationUtils.SetPageTitle(trimTitle(title));
|
|
476
|
+
}
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
/***/ })
|
|
480
|
+
|
|
481
|
+
}]);
|
|
482
|
+
//# sourceMappingURL=16.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/back-button/BackButton.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/BannerHeader.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/banner-header/banner-header.scss?c604","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/empty-state/EmptyState.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/InfiniteScrollFooter.tsx","webpack://@clickview/lite/C:/ClickView/front-end/clickview/packages/libs/shared/src/components/infinite-scroll-footer/infinite-scroll-footer.scss?924e","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/context/PageTitleContext.tsx","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseInfiniteScroll.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/UseSelectAllPages.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/hooks/useSetPageTitle.ts","file://C:/ClickView/front-end/clickview/packages/libs/shared/src/utils/PageTitleHelper.ts"],"names":[],"mappings":"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","file":"scripts/16.chunk.js","sourcesContent":["import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { AppLink } from 'libs/shared/components/app-link/AppLink';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nconst namespace = 'shared.backButton';\r\n\r\ninterface BackButtonProps {\r\n appLink: Core.AppLink;\r\n backToName?: string;\r\n color?: 'black' | 'white';\r\n}\r\n\r\nBackButton.defaultProps = {\r\n color: 'black'\r\n};\r\n\r\nexport function BackButton({ backToName, appLink, color }: BackButtonProps): React.ReactElement {\r\n const backPhrase = backToName\r\n ? LanguageService.getPhrase(namespace, 'backTo', { backToName })\r\n : LanguageService.getPhrase(namespace, 'back');\r\n\r\n const colorClass = color === 'black' ? '' : 'text-light';\r\n\r\n return (\r\n <AppLink appLink={appLink} className={`d-inline-flex align-items-center h5 mb-0 ${colorClass}`}>\r\n <SvgContainer svgName={cvSvgLibrary.ChevronLeft} size={SvgContainerSize.Medium} />\r\n <span className='ml-1'>{backPhrase}</span>\r\n </AppLink>\r\n );\r\n}","import * as React from 'react';\r\nimport { Core } from 'libs/common/core';\r\n\r\nimport { BackButton } from 'libs/shared/components/back-button/BackButton';\r\nimport { Banner } from 'libs/shared/interfaces';\r\nimport { ImageHelper } from 'libs/shared/utils/ImageHelper';\r\nimport { ImageType, ImageSize, ResizeType } from 'libs/shared/enums/Images';\r\nimport { Actions, ActionOptions } from 'libs/shared/components/actions/Actions';\r\n\r\nimport styles from './banner-header.scss';\r\n\r\ninterface BannerHeaderProps {\r\n heading: string;\r\n banner: Banner;\r\n imageCdnUrl: string;\r\n actions?: ActionOptions[];\r\n backButtonAppLink?: Core.AppLink;\r\n backButtonText?: string;\r\n sortComponent?: JSX.Element;\r\n}\r\n\r\nexport const BannerHeader = React.memo(function(props: React.PropsWithChildren<BannerHeaderProps>): React.ReactElement {\r\n const { heading, banner, imageCdnUrl, actions, sortComponent } = props;\r\n\r\n const url = ImageHelper.createBannerUrl(banner, {\r\n fallbackBaseUrl: imageCdnUrl,\r\n fallbackCategoryName: heading,\r\n type: ImageType.Banners,\r\n }, {\r\n size: ImageSize.Large,\r\n resizeType: ResizeType.Cover\r\n });\r\n\r\n return (\r\n <div className='banner' style={{ backgroundImage: `url('${url}')` }}>\r\n {props.backButtonAppLink && (\r\n <div className='pt-3'>\r\n <BackButton\r\n appLink={props.backButtonAppLink}\r\n backToName={props.backButtonText}\r\n color='white'\r\n />\r\n </div>\r\n )}\r\n <h1 className='text-white text-shadow position-absolute m-0 pb-3'>{heading}</h1>\r\n {!!actions && (\r\n <div className={styles.actionsContainer}>\r\n <Actions actions={actions} sortComponent={sortComponent} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}, (prevProps, nextProps): boolean => (\r\n prevProps.actions === nextProps.actions\r\n));\r\n\r\nexport const PartialBannerHeader = () => <div className={`partial-banner partial-loading-background`} />;","// extracted by mini-css-extract-plugin\nmodule.exports = {\"actionsContainer\":\"cv--actionsContainer--286KF\"};","import * as React from 'react';\r\n\r\ninterface EmptyStateProps {\r\n imageUrl: string;\r\n heading: string;\r\n description?: string;\r\n}\r\n\r\nexport function EmptyState(props: EmptyStateProps): React.ReactElement {\r\n const { imageUrl, heading, description } = props;\r\n\r\n return (\r\n <div className='empty-state-container'>\r\n <div className='content-container'>\r\n {imageUrl && <img src={imageUrl} />}\r\n <h1>{heading}</h1>\r\n {description && <p dangerouslySetInnerHTML={{ __html: description }}/>}\r\n </div>\r\n </div>\r\n );\r\n}","import * as React from 'react';\r\nimport { Spinner } from 'react-bootstrap';\r\n\r\nimport { SvgContainer, SvgContainerSize } from 'libs/shared/components/svg-container/SvgContainer';\r\nimport { cvSvgLibrary } from 'libs/shared/utils/SvgHelper';\r\n\r\nimport styles from './infinite-scroll-footer.scss';\r\n\r\ninterface InfiniteScrollFooterProps {\r\n isFetching: boolean;\r\n onClick?: () => void;\r\n}\r\n\r\nexport function InfiniteScrollFooter(props: InfiniteScrollFooterProps): React.ReactElement {\r\n return (\r\n <div className={`p-3 text-center ${styles.container}`}>\r\n {props.isFetching\r\n ? <Spinner as='span' animation='border' role='status' className={styles.spinner} />\r\n : <SvgContainer\r\n svgName={cvSvgLibrary.ChevronDown}\r\n className='svg-container cursor-pointer'\r\n size={SvgContainerSize.Large}\r\n onClick={props.onClick}\r\n />\r\n }\r\n </div>\r\n );\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"cv--container--1_KC6\",\"spinner\":\"cv--spinner--VXlcl\"};","import * as React from 'react';\r\nimport { LanguageService } from 'libs/common/backbone/services/LanguageService';\r\nimport { PageTitleHelper } from 'libs/shared/utils/PageTitleHelper';\r\n\r\ninterface IPageTitleContext {\r\n setPageTitle?: (title: string) => void;\r\n revertPageTitle?: () => void;\r\n}\r\n\r\nexport const PageTitleContext = React.createContext<IPageTitleContext>({});\r\n\r\nconst namespace = 'shared.context';\r\n\r\nconst DEFAULT_TITLE = () => LanguageService.getPhrase(namespace, 'defaultTitle');\r\n\r\nexport const PageTitleContextProvider = ({ children }: React.PropsWithChildren<{}>): React.ReactElement => {\r\n const [ currentPageTitle, setCurrentPageTitle ] = React.useState(DEFAULT_TITLE);\r\n const [ previousPageTitle, setPreviousPageTitle ] = React.useState(DEFAULT_TITLE);\r\n\r\n const setPageTitle = (title: string) => {\r\n if (title === currentPageTitle)\r\n return;\r\n\r\n if (currentPageTitle !== previousPageTitle)\r\n setPreviousPageTitle(currentPageTitle);\r\n\r\n setCurrentPageTitle(title);\r\n };\r\n\r\n const revertPageTitle = () => {\r\n setCurrentPageTitle(previousPageTitle);\r\n };\r\n\r\n React.useEffect(() => PageTitleHelper.setPageTitle(currentPageTitle), [currentPageTitle]);\r\n\r\n return (\r\n <PageTitleContext.Provider value={{ setPageTitle, revertPageTitle }}>\r\n {children}\r\n </PageTitleContext.Provider>\r\n );\r\n};","import { useEffect } from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nconst SCROLL_TOLERANCE = 400; // value in px\r\n\r\nexport function useInfiniteScroll(fetchNextPage: () => void, hasMore: boolean, isFetching: boolean): void {\r\n const handleScroll = (): void => {\r\n if (isFetching)\r\n return;\r\n\r\n const currentScrollHeight = window.innerHeight + document.documentElement.scrollTop;\r\n\r\n const totalHeight = document.documentElement.scrollHeight - SCROLL_TOLERANCE;\r\n\r\n if (currentScrollHeight < totalHeight)\r\n return;\r\n\r\n fetchNextPage();\r\n };\r\n\r\n useEffect(() => {\r\n const onScroll = FunctionHelper.throttle(handleScroll, 200);\r\n\r\n if (hasMore)\r\n window.addEventListener('scroll', onScroll);\r\n\r\n return () => window.removeEventListener('scroll', onScroll);\r\n }, [hasMore]);\r\n}","import { useMemo } from 'react';\r\nimport { useSelector } from 'react-redux';\r\n\r\nimport { Flight } from 'libs/common/flight';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\nimport { ApplicationState } from 'libs/common/react/interfaces';\r\nimport { BasePaginatedCollection } from 'libs/shared/interfaces';\r\n\r\nconst safeGetCursor = (request: Flight.Response<any>): string => {\r\n return request\r\n && request.data\r\n && request.data.pagination\r\n && request.data.pagination.cursors\r\n && request.data.pagination.cursors.next;\r\n};\r\n\r\ninterface SelectAllPagesResult<T> {\r\n items: T[];\r\n shouldInitialFetch: boolean;\r\n nextCursor: string;\r\n isFetching: boolean;\r\n}\r\n\r\n/**\r\n * Hook to select all pages of a collection from the store and flatten them.\r\n * It will not trigger any fetches.\r\n * \r\n * @param getKey - callback function to get the key for each page.\r\n * Can be false if the key requires data that hasn't yet been fetched - e.g. user id.\r\n */\r\nexport function useSelectAllPages<T>(getKey: ((cursor?: string) => string) | false): SelectAllPagesResult<T> {\r\n return useSelector(useMemo(() => (state: ApplicationState) => {\r\n const getKeyFn = (getKey as Function);\r\n\r\n let request = FunctionHelper.isFunction(getKey) &&\r\n Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn());\r\n\r\n let isFetching = request && request.isFetching;\r\n const shouldInitialFetch = request && request.shouldFetch;\r\n\r\n let items = request && request.data && request.data.data;\r\n let nextCursor = safeGetCursor(request);\r\n\r\n // Retrieve all pages that are currently in the store.\r\n while (nextCursor) {\r\n request = Flight.getResponse<BasePaginatedCollection<T>>(state, getKeyFn(nextCursor));\r\n\r\n isFetching = request.isFetching;\r\n\r\n // If next page hasn't been fetched, break.\r\n if (request.shouldFetch)\r\n break;\r\n\r\n let newItems = request.data && request.data.data;\r\n newItems && items.push(...newItems);\r\n\r\n nextCursor = safeGetCursor(request);\r\n }\r\n\r\n return {\r\n shouldInitialFetch,\r\n items,\r\n nextCursor,\r\n isFetching,\r\n };\r\n }, [getKey]));\r\n}","import * as React from 'react';\r\nimport { FunctionHelper } from 'libs/common/backbone/utils/FunctionHelper';\r\n\r\nimport { PageTitleContext } from 'libs/shared/context/PageTitleContext';\r\n\r\n/**\r\n * Hook function to set the page title using the useEffect hook.\r\n * @param title - value to set the page title to.\r\n * @param dependencies - values from the component (e.g. state, props and functions) that are used \r\n * inside the effect hook.\r\n */\r\nexport function useSetPageTitle(title: string, dependencies: any[] = []): void {\r\n const { setPageTitle } = React.useContext(PageTitleContext);\r\n\r\n React.useEffect(() => {\r\n if (!title || !FunctionHelper.isFunction(setPageTitle))\r\n return;\r\n\r\n setPageTitle(title);\r\n }, [ title, ...dependencies ]);\r\n}","import { Core } from 'libs/common/core';\r\n\r\nconst TITLE_LENGTH = 60;\r\nconst SUFFIX = ' - ClickView';\r\n\r\nconst trimTitle = (title: string): string => {\r\n if (title.length + SUFFIX.length <= TITLE_LENGTH)\r\n return title + SUFFIX;\r\n\r\n return title.substring(0, TITLE_LENGTH - 3) + '...' + SUFFIX;\r\n};\r\n\r\nexport const PageTitleHelper = {\r\n setPageTitle(title: string): void {\r\n if (!title)\r\n return;\r\n\r\n Core.LocationUtils.SetPageTitle(trimTitle(title));\r\n }\r\n};"],"sourceRoot":""}
|