@veeqo/ui 14.12.0-beta-2 → 14.13.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/components/Button/Button.cjs +2 -2
- package/dist/components/Button/Button.cjs.map +1 -1
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +0 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +0 -1
- package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +0 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +0 -1
- package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -1
- package/dist/components/DataTable/DataTable.cjs +0 -1
- package/dist/components/DataTable/DataTable.cjs.map +1 -1
- package/dist/components/DataTable/DataTable.js +0 -1
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/DataTable/renderers/renderHeader.cjs +0 -1
- package/dist/components/DataTable/renderers/renderHeader.cjs.map +1 -1
- package/dist/components/DataTable/renderers/renderHeader.js +0 -1
- package/dist/components/DataTable/renderers/renderHeader.js.map +1 -1
- package/dist/components/LegacyDataTable/StickyHeader.cjs +22 -4
- package/dist/components/LegacyDataTable/StickyHeader.cjs.map +1 -1
- package/dist/components/LegacyDataTable/StickyHeader.js +23 -5
- package/dist/components/LegacyDataTable/StickyHeader.js.map +1 -1
- package/dist/components/Loader/Loader.cjs +1 -1
- package/dist/components/Loader/Loader.cjs.map +1 -1
- package/dist/components/Loader/Loader.d.ts +1 -1
- package/dist/components/Loader/Loader.js +1 -1
- package/dist/components/Loader/Loader.js.map +1 -1
- package/dist/components/Loader/loader.module.scss.cjs +2 -2
- package/dist/components/Loader/loader.module.scss.cjs.map +1 -1
- package/dist/components/Loader/loader.module.scss.js +2 -2
- package/dist/components/Loader/loader.module.scss.js.map +1 -1
- package/dist/components/Loader/loaderTypes.d.ts +0 -1
- package/dist/components/Modal/Modal.cjs +2 -20
- package/dist/components/Modal/Modal.cjs.map +1 -1
- package/dist/components/Modal/Modal.js +1 -19
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Popup/Popup.cjs +28 -0
- package/dist/components/Popup/Popup.cjs.map +1 -0
- package/dist/components/Popup/Popup.d.ts +3 -0
- package/dist/components/Popup/Popup.js +22 -0
- package/dist/components/Popup/Popup.js.map +1 -0
- package/dist/components/Popup/Popup.module.scss.cjs +9 -0
- package/dist/components/Popup/Popup.module.scss.cjs.map +1 -0
- package/dist/components/Popup/Popup.module.scss.js +7 -0
- package/dist/components/Popup/Popup.module.scss.js.map +1 -0
- package/dist/components/Popup/index.d.ts +2 -0
- package/dist/components/{VideoModal/components/Popup.d.ts → Popup/types.d.ts} +1 -2
- package/dist/components/ScrollLock/ScrollLock.cjs +26 -0
- package/dist/components/ScrollLock/ScrollLock.cjs.map +1 -0
- package/dist/components/ScrollLock/ScrollLock.d.ts +1 -0
- package/dist/components/ScrollLock/ScrollLock.js +24 -0
- package/dist/components/ScrollLock/ScrollLock.js.map +1 -0
- package/dist/components/ScrollLock/index.d.ts +1 -0
- package/dist/components/Search/Search.cjs +2 -1
- package/dist/components/Search/Search.cjs.map +1 -1
- package/dist/components/Search/Search.js +2 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/ViewsContainer/hooks/useSetScrollPosition.cjs +8 -2
- package/dist/components/ViewsContainer/hooks/useSetScrollPosition.cjs.map +1 -1
- package/dist/components/ViewsContainer/hooks/useSetScrollPosition.js +8 -2
- package/dist/components/ViewsContainer/hooks/useSetScrollPosition.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/index.cjs +2 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/theme/index.cjs +0 -1
- package/dist/theme/index.cjs.map +1 -1
- package/dist/theme/index.d.ts +0 -1
- package/dist/theme/index.js +0 -1
- package/dist/theme/index.js.map +1 -1
- package/package.json +2 -14
- package/dist/components/VideoModal/VideoModal.cjs +0 -26
- package/dist/components/VideoModal/VideoModal.cjs.map +0 -1
- package/dist/components/VideoModal/VideoModal.d.ts +0 -3
- package/dist/components/VideoModal/VideoModal.js +0 -20
- package/dist/components/VideoModal/VideoModal.js.map +0 -1
- package/dist/components/VideoModal/VideoModalDemo.d.ts +0 -2
- package/dist/components/VideoModal/components/Popup.cjs +0 -24
- package/dist/components/VideoModal/components/Popup.cjs.map +0 -1
- package/dist/components/VideoModal/components/Popup.js +0 -17
- package/dist/components/VideoModal/components/Popup.js.map +0 -1
- package/dist/components/VideoModal/components/styled.cjs +0 -26
- package/dist/components/VideoModal/components/styled.cjs.map +0 -1
- package/dist/components/VideoModal/components/styled.d.ts +0 -8
- package/dist/components/VideoModal/components/styled.js +0 -18
- package/dist/components/VideoModal/components/styled.js.map +0 -1
- package/dist/components/VideoModal/index.d.ts +0 -2
- package/dist/components/VideoModal/styled.cjs +0 -17
- package/dist/components/VideoModal/styled.cjs.map +0 -1
- package/dist/components/VideoModal/styled.d.ts +0 -11
- package/dist/components/VideoModal/styled.js +0 -9
- package/dist/components/VideoModal/styled.js.map +0 -1
- package/dist/components/VideoModal/types.d.ts +0 -9
- package/dist/theme/utils.cjs +0 -8
- package/dist/theme/utils.cjs.map +0 -1
- package/dist/theme/utils.d.ts +0 -2
- package/dist/theme/utils.js +0 -6
- package/dist/theme/utils.js.map +0 -1
- package/dist/utils/forms/inputStyles.d.ts +0 -22
- package/dist/utils/forms/variables.d.ts +0 -8
|
@@ -23,7 +23,8 @@ const Search = withLabels.withLabels(({ type = 'text', disabled = false, onClear
|
|
|
23
23
|
};
|
|
24
24
|
const renderIcon = () => {
|
|
25
25
|
if (isLoading) {
|
|
26
|
-
return React__default.default.createElement(
|
|
26
|
+
return (React__default.default.createElement("span", { style: { color: fill || 'var(--colors-secondary-blue-base)' } },
|
|
27
|
+
React__default.default.createElement(Loader.Loader, { height: 24 })));
|
|
27
28
|
}
|
|
28
29
|
if (shouldShowClear && onClearClick) {
|
|
29
30
|
return (React__default.default.createElement(Button.Button, { variant: "unstyled", onClick: onClearClick, style: { display: 'flex' }, "aria-label": "Clear text", type: "button" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.cjs","sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\n\nimport { withLabels } from '../../hoc';\nimport { buildClassnames } from '../../utils';\nimport { SearchProps } from './types';\n\nimport { Button } from '../Button';\nimport { Loader } from '../Loader';\nimport { TextField } from '../TextField';\nimport { CrossIcon, SearchIcon } from '../../icons';\n\nimport styles from './Search.module.scss';\n\nexport const Search = withLabels(\n ({\n type = 'text',\n disabled = false,\n onClearClick,\n onChange,\n value = '',\n className = '',\n isLoading = false,\n fill,\n reversed = false,\n autoComplete = 'on',\n ...otherProps\n }: SearchProps) => {\n const shouldShowClear = value && value.length > 0;\n const iconPosition = reversed ? 'left' : 'right';\n\n const onClickSearch = () => {\n onChange?.(value);\n };\n\n const renderIcon = () => {\n if (isLoading) {\n return <
|
|
1
|
+
{"version":3,"file":"Search.cjs","sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\n\nimport { withLabels } from '../../hoc';\nimport { buildClassnames } from '../../utils';\nimport { SearchProps } from './types';\n\nimport { Button } from '../Button';\nimport { Loader } from '../Loader';\nimport { TextField } from '../TextField';\nimport { CrossIcon, SearchIcon } from '../../icons';\n\nimport styles from './Search.module.scss';\n\nexport const Search = withLabels(\n ({\n type = 'text',\n disabled = false,\n onClearClick,\n onChange,\n value = '',\n className = '',\n isLoading = false,\n fill,\n reversed = false,\n autoComplete = 'on',\n ...otherProps\n }: SearchProps) => {\n const shouldShowClear = value && value.length > 0;\n const iconPosition = reversed ? 'left' : 'right';\n\n const onClickSearch = () => {\n onChange?.(value);\n };\n\n const renderIcon = () => {\n if (isLoading) {\n return (\n <span style={{ color: fill || 'var(--colors-secondary-blue-base)' }}>\n <Loader height={24} />\n </span>\n );\n }\n if (shouldShowClear && onClearClick) {\n return (\n <Button\n variant=\"unstyled\"\n onClick={onClearClick}\n style={{ display: 'flex' }}\n aria-label=\"Clear text\"\n type=\"button\"\n >\n <CrossIcon color={fill || 'var(--colors-neutral-ink-dark)'} />\n </Button>\n );\n }\n return (\n <Button\n variant=\"unstyled\"\n onClick={onClickSearch}\n style={{ display: 'flex' }}\n aria-label=\"Search\"\n disabled={disabled}\n type=\"button\"\n >\n <SearchIcon color={fill || 'var(--colors-neutral-ink-dark)'} />\n </Button>\n );\n };\n\n return (\n <div\n className={buildClassnames([\n styles.searchContainer,\n iconPosition === 'left' ? styles.iconLeft : styles.iconRight,\n className,\n ])}\n >\n <TextField\n className={styles.searchInput}\n type={type}\n value={value}\n onChange={onChange}\n disabled={disabled}\n autoComplete={autoComplete}\n {...otherProps}\n />\n <div className={styles.iconContainer}>{renderIcon()}</div>\n </div>\n );\n },\n);\n"],"names":["withLabels","React","Loader","Button","CrossIcon","SearchIcon","buildClassnames","styles","TextField"],"mappings":";;;;;;;;;;;;;;;;;MAaa,MAAM,GAAGA,qBAAU,CAC9B,CAAC,EACC,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,IAAI,EACnB,GAAG,UAAU,EACD,KAAI;IAChB,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;IACjD,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;IAEhD,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,KAAK,CAAC;AACnB,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,IAAI,SAAS,EAAE;YACb,QACEC,sBAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,mCAAmC,EAAE,EAAA;gBACjEA,sBAAA,CAAA,aAAA,CAACC,aAAM,IAAC,MAAM,EAAE,EAAE,EAAA,CAAI,CACjB;AAEV,QAAA;QACD,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,QACED,sBAAA,CAAA,aAAA,CAACE,aAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBACf,YAAY,EACvB,IAAI,EAAC,QAAQ,EAAA;gBAEbF,sBAAA,CAAA,aAAA,CAACG,wBAAS,EAAA,EAAC,KAAK,EAAE,IAAI,IAAI,gCAAgC,EAAA,CAAI,CACvD;AAEZ,QAAA;AACD,QAAA,QACEH,sBAAA,CAAA,aAAA,CAACE,aAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,YAAA,EACf,QAAQ,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EAAA;YAEbF,sBAAA,CAAA,aAAA,CAACI,yBAAU,EAAA,EAAC,KAAK,EAAE,IAAI,IAAI,gCAAgC,EAAA,CAAI,CACxD;AAEb,IAAA,CAAC;AAED,IAAA,QACEJ,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEK,+BAAe,CAAC;AACzB,YAAAC,aAAM,CAAC,eAAe;AACtB,YAAA,YAAY,KAAK,MAAM,GAAGA,aAAM,CAAC,QAAQ,GAAGA,aAAM,CAAC,SAAS;YAC5D,SAAS;SACV,CAAC,EAAA;AAEF,QAAAN,sBAAA,CAAA,aAAA,CAACO,eAAS,EAAA,EACR,SAAS,EAAED,aAAM,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAAA,GACtB,UAAU,EAAA,CACd;QACFN,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEM,aAAM,CAAC,aAAa,EAAA,EAAG,UAAU,EAAE,CAAO,CACtD;AAEV,CAAC;;;;"}
|
|
@@ -17,7 +17,8 @@ const Search = withLabels(({ type = 'text', disabled = false, onClearClick, onCh
|
|
|
17
17
|
};
|
|
18
18
|
const renderIcon = () => {
|
|
19
19
|
if (isLoading) {
|
|
20
|
-
return React__default.createElement(
|
|
20
|
+
return (React__default.createElement("span", { style: { color: fill || 'var(--colors-secondary-blue-base)' } },
|
|
21
|
+
React__default.createElement(Loader, { height: 24 })));
|
|
21
22
|
}
|
|
22
23
|
if (shouldShowClear && onClearClick) {
|
|
23
24
|
return (React__default.createElement(Button, { variant: "unstyled", onClick: onClearClick, style: { display: 'flex' }, "aria-label": "Clear text", type: "button" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\n\nimport { withLabels } from '../../hoc';\nimport { buildClassnames } from '../../utils';\nimport { SearchProps } from './types';\n\nimport { Button } from '../Button';\nimport { Loader } from '../Loader';\nimport { TextField } from '../TextField';\nimport { CrossIcon, SearchIcon } from '../../icons';\n\nimport styles from './Search.module.scss';\n\nexport const Search = withLabels(\n ({\n type = 'text',\n disabled = false,\n onClearClick,\n onChange,\n value = '',\n className = '',\n isLoading = false,\n fill,\n reversed = false,\n autoComplete = 'on',\n ...otherProps\n }: SearchProps) => {\n const shouldShowClear = value && value.length > 0;\n const iconPosition = reversed ? 'left' : 'right';\n\n const onClickSearch = () => {\n onChange?.(value);\n };\n\n const renderIcon = () => {\n if (isLoading) {\n return <
|
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../src/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\n\nimport { withLabels } from '../../hoc';\nimport { buildClassnames } from '../../utils';\nimport { SearchProps } from './types';\n\nimport { Button } from '../Button';\nimport { Loader } from '../Loader';\nimport { TextField } from '../TextField';\nimport { CrossIcon, SearchIcon } from '../../icons';\n\nimport styles from './Search.module.scss';\n\nexport const Search = withLabels(\n ({\n type = 'text',\n disabled = false,\n onClearClick,\n onChange,\n value = '',\n className = '',\n isLoading = false,\n fill,\n reversed = false,\n autoComplete = 'on',\n ...otherProps\n }: SearchProps) => {\n const shouldShowClear = value && value.length > 0;\n const iconPosition = reversed ? 'left' : 'right';\n\n const onClickSearch = () => {\n onChange?.(value);\n };\n\n const renderIcon = () => {\n if (isLoading) {\n return (\n <span style={{ color: fill || 'var(--colors-secondary-blue-base)' }}>\n <Loader height={24} />\n </span>\n );\n }\n if (shouldShowClear && onClearClick) {\n return (\n <Button\n variant=\"unstyled\"\n onClick={onClearClick}\n style={{ display: 'flex' }}\n aria-label=\"Clear text\"\n type=\"button\"\n >\n <CrossIcon color={fill || 'var(--colors-neutral-ink-dark)'} />\n </Button>\n );\n }\n return (\n <Button\n variant=\"unstyled\"\n onClick={onClickSearch}\n style={{ display: 'flex' }}\n aria-label=\"Search\"\n disabled={disabled}\n type=\"button\"\n >\n <SearchIcon color={fill || 'var(--colors-neutral-ink-dark)'} />\n </Button>\n );\n };\n\n return (\n <div\n className={buildClassnames([\n styles.searchContainer,\n iconPosition === 'left' ? styles.iconLeft : styles.iconRight,\n className,\n ])}\n >\n <TextField\n className={styles.searchInput}\n type={type}\n value={value}\n onChange={onChange}\n disabled={disabled}\n autoComplete={autoComplete}\n {...otherProps}\n />\n <div className={styles.iconContainer}>{renderIcon()}</div>\n </div>\n );\n },\n);\n"],"names":["React"],"mappings":";;;;;;;;;;;MAaa,MAAM,GAAG,UAAU,CAC9B,CAAC,EACC,IAAI,GAAG,MAAM,EACb,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,QAAQ,EACR,KAAK,GAAG,EAAE,EACV,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,YAAY,GAAG,IAAI,EACnB,GAAG,UAAU,EACD,KAAI;IAChB,MAAM,eAAe,GAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;IACjD,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO;IAEhD,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAG,KAAK,CAAC;AACnB,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,IAAI,SAAS,EAAE;YACb,QACEA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,mCAAmC,EAAE,EAAA;gBACjEA,cAAA,CAAA,aAAA,CAAC,MAAM,IAAC,MAAM,EAAE,EAAE,EAAA,CAAI,CACjB;AAEV,QAAA;QACD,IAAI,eAAe,IAAI,YAAY,EAAE;YACnC,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBACf,YAAY,EACvB,IAAI,EAAC,QAAQ,EAAA;gBAEbA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,KAAK,EAAE,IAAI,IAAI,gCAAgC,EAAA,CAAI,CACvD;AAEZ,QAAA;AACD,QAAA,QACEA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,YAAA,EACf,QAAQ,EACnB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAC,QAAQ,EAAA;YAEbA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,KAAK,EAAE,IAAI,IAAI,gCAAgC,EAAA,CAAI,CACxD;AAEb,IAAA,CAAC;AAED,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,eAAe,CAAC;AACzB,YAAA,MAAM,CAAC,eAAe;AACtB,YAAA,YAAY,KAAK,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS;YAC5D,SAAS;SACV,CAAC,EAAA;AAEF,QAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EACR,SAAS,EAAE,MAAM,CAAC,WAAW,EAC7B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAAA,GACtB,UAAU,EAAA,CACd;QACFA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,EAAG,UAAU,EAAE,CAAO,CACtD;AAEV,CAAC;;;;"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
-
var reactUse = require('react-use');
|
|
5
4
|
var utils = require('../utils.cjs');
|
|
6
5
|
|
|
6
|
+
function usePrevious(value) {
|
|
7
|
+
const ref = React.useRef();
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
ref.current = value;
|
|
10
|
+
});
|
|
11
|
+
return ref.current;
|
|
12
|
+
}
|
|
7
13
|
const useSetScrollPosition = ({ containerRef, children, hasMoreViews = false, onFetchMoreViews, isLoadingMoreViews = false, }) => {
|
|
8
14
|
var _a;
|
|
9
15
|
const [leftDisabled, setLeftDisabled] = React.useState(true);
|
|
10
16
|
const [rightDisabled, setRightDisabled] = React.useState(false);
|
|
11
17
|
const [viewStartPositions, setViewStartPositions] = React.useState([]);
|
|
12
18
|
const activeTab = (_a = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('[aria-selected = true]');
|
|
13
|
-
const prevActiveTab =
|
|
19
|
+
const prevActiveTab = usePrevious(activeTab);
|
|
14
20
|
const handleScroll = React.useCallback(() => {
|
|
15
21
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
16
22
|
if (((_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.scrollLeft) > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSetScrollPosition.cjs","sources":["../../../../src/components/ViewsContainer/hooks/useSetScrollPosition.ts"],"sourcesContent":["import { MutableRefObject, ReactNode, useCallback, useEffect, useState, Children } from 'react';\nimport { usePrevious } from 'react-use';\nimport { createViewPositionArray, getNextViewPosition, getPrevViewPosition } from '../utils';\n\ntype UseSetScrollPositionProps = {\n containerRef: MutableRefObject<HTMLDivElement>;\n children: ReactNode;\n hasMoreViews?: boolean;\n onFetchMoreViews?: () => void;\n isLoadingMoreViews?: boolean;\n};\n\nexport const useSetScrollPosition = ({\n containerRef,\n children,\n hasMoreViews = false,\n onFetchMoreViews,\n isLoadingMoreViews = false,\n}: UseSetScrollPositionProps) => {\n const [leftDisabled, setLeftDisabled] = useState(true);\n const [rightDisabled, setRightDisabled] = useState(false);\n const [viewStartPositions, setViewStartPositions] = useState<number[]>([]);\n\n const activeTab = containerRef?.current?.querySelector('[aria-selected = true]');\n const prevActiveTab = usePrevious(activeTab);\n\n const handleScroll = useCallback(() => {\n if (containerRef.current?.scrollLeft > 0) {\n setLeftDisabled(false);\n } else {\n if (document.getElementById('left-arrow') === document.activeElement) {\n document.getElementById('right-arrow')?.focus();\n }\n setLeftDisabled(true);\n }\n\n const maxScrollWidth = containerRef.current?.scrollWidth ?? 0;\n const maxClientWidth = containerRef.current?.clientWidth ?? 0;\n const maxScrollLeft = maxScrollWidth - maxClientWidth;\n\n // -10 to prevent javascript assertion errors on floating points\n if (containerRef.current?.scrollLeft >= maxScrollLeft - 10) {\n if (document.getElementById('right-arrow') === document.activeElement) {\n document.getElementById('left-arrow')?.focus();\n }\n setRightDisabled(true);\n\n // Check if we've reached the end and should fetch more data\n // Only fetches more when not already loading more views and has more views to load\n if (hasMoreViews && onFetchMoreViews && !isLoadingMoreViews) {\n onFetchMoreViews();\n }\n } else {\n setRightDisabled(false);\n }\n }, [containerRef, onFetchMoreViews, isLoadingMoreViews, hasMoreViews]);\n\n const handleResize = useCallback(() => {\n if (!containerRef.current) return;\n if (containerRef.current.scrollWidth - containerRef.current.getBoundingClientRect().width < 5) {\n setRightDisabled(true);\n } else {\n setRightDisabled(false);\n }\n }, [containerRef]);\n\n const toNextScrollPosition = useCallback(() => {\n const newPosition = getNextViewPosition(\n viewStartPositions,\n containerRef.current.scrollLeft,\n containerRef.current.clientWidth,\n );\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n const toPrevScrollPosition = useCallback(() => {\n const newPosition = getPrevViewPosition(viewStartPositions, containerRef.current.scrollLeft);\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n // Initialize view positions when container first has children\n useEffect(() => {\n if (!containerRef?.current?.children?.length || viewStartPositions.length > 0) return;\n\n setViewStartPositions(createViewPositionArray(containerRef.current));\n }, [containerRef, viewStartPositions.length]);\n\n // Handle new item addition - scroll to end and update positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n\n const childrenCount = containerRef.current.children.length;\n const positionsCount = viewStartPositions.length;\n const totalChildren = Children.count(children);\n\n const shouldScrollToNewItem =\n childrenCount !== positionsCount && positionsCount > 0 && positionsCount < totalChildren;\n\n if (!shouldScrollToNewItem) return;\n\n containerRef.current.scrollTo({\n left: containerRef.current.scrollWidth - containerRef.current.clientWidth,\n top: 0,\n behavior: 'smooth',\n });\n\n // Compute the x position of the new item\n const lastChildRect =\n containerRef.current.children[positionsCount - 1]?.getBoundingClientRect();\n const newPosition = viewStartPositions[positionsCount - 1] + (lastChildRect?.x ?? 0) - 20;\n\n setViewStartPositions([...viewStartPositions, newPosition]);\n }, [containerRef, children, viewStartPositions]);\n\n // Handle active tab changes - scroll to active tab\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (activeTab === prevActiveTab || activeTab === null) return;\n if (containerRef.current.children.length !== viewStartPositions.length) return;\n\n const index = Array.from(containerRef.current.children).indexOf(activeTab);\n if (index === -1) return;\n\n containerRef.current.scrollTo({\n left: viewStartPositions[index],\n top: 0,\n behavior: 'smooth',\n });\n }, [activeTab, prevActiveTab, containerRef, viewStartPositions]);\n\n // Handle fetching more views - recompute positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (viewStartPositions.length >= containerRef.current.children.length) return;\n\n const currentScrollLeft = containerRef.current.scrollLeft;\n\n // Temporarily reset scroll to 0 to get accurate positions\n containerRef.current.scrollTo({ left: 0, top: 0, behavior: 'auto' });\n\n // Recompute positions from scroll position 0\n setViewStartPositions(createViewPositionArray(containerRef.current));\n\n // Restore the user's scroll position\n containerRef.current.scrollTo({ left: currentScrollLeft, top: 0, behavior: 'auto' });\n }, [containerRef, viewStartPositions.length]);\n\n // Handle window resize and scroll event listeners\n useEffect(() => {\n if (!containerRef?.current) return;\n\n const container = containerRef.current;\n\n handleResize();\n window.addEventListener('resize', handleResize);\n container.addEventListener('scroll', handleScroll);\n\n // eslint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('resize', handleResize);\n container.removeEventListener('scroll', handleScroll);\n };\n }, [containerRef, handleResize, handleScroll]);\n\n return { rightDisabled, leftDisabled, toNextScrollPosition, toPrevScrollPosition };\n};\n"],"names":["useState","usePrevious","useCallback","getNextViewPosition","getPrevViewPosition","useEffect","createViewPositionArray","Children"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSetScrollPosition.cjs","sources":["../../../../src/components/ViewsContainer/hooks/useSetScrollPosition.ts"],"sourcesContent":["import {\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n Children,\n} from 'react';\nimport { createViewPositionArray, getNextViewPosition, getPrevViewPosition } from '../utils';\n\nfunction usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\ntype UseSetScrollPositionProps = {\n containerRef: MutableRefObject<HTMLDivElement>;\n children: ReactNode;\n hasMoreViews?: boolean;\n onFetchMoreViews?: () => void;\n isLoadingMoreViews?: boolean;\n};\n\nexport const useSetScrollPosition = ({\n containerRef,\n children,\n hasMoreViews = false,\n onFetchMoreViews,\n isLoadingMoreViews = false,\n}: UseSetScrollPositionProps) => {\n const [leftDisabled, setLeftDisabled] = useState(true);\n const [rightDisabled, setRightDisabled] = useState(false);\n const [viewStartPositions, setViewStartPositions] = useState<number[]>([]);\n\n const activeTab = containerRef?.current?.querySelector('[aria-selected = true]');\n const prevActiveTab = usePrevious(activeTab);\n\n const handleScroll = useCallback(() => {\n if (containerRef.current?.scrollLeft > 0) {\n setLeftDisabled(false);\n } else {\n if (document.getElementById('left-arrow') === document.activeElement) {\n document.getElementById('right-arrow')?.focus();\n }\n setLeftDisabled(true);\n }\n\n const maxScrollWidth = containerRef.current?.scrollWidth ?? 0;\n const maxClientWidth = containerRef.current?.clientWidth ?? 0;\n const maxScrollLeft = maxScrollWidth - maxClientWidth;\n\n // -10 to prevent javascript assertion errors on floating points\n if (containerRef.current?.scrollLeft >= maxScrollLeft - 10) {\n if (document.getElementById('right-arrow') === document.activeElement) {\n document.getElementById('left-arrow')?.focus();\n }\n setRightDisabled(true);\n\n // Check if we've reached the end and should fetch more data\n // Only fetches more when not already loading more views and has more views to load\n if (hasMoreViews && onFetchMoreViews && !isLoadingMoreViews) {\n onFetchMoreViews();\n }\n } else {\n setRightDisabled(false);\n }\n }, [containerRef, onFetchMoreViews, isLoadingMoreViews, hasMoreViews]);\n\n const handleResize = useCallback(() => {\n if (!containerRef.current) return;\n if (containerRef.current.scrollWidth - containerRef.current.getBoundingClientRect().width < 5) {\n setRightDisabled(true);\n } else {\n setRightDisabled(false);\n }\n }, [containerRef]);\n\n const toNextScrollPosition = useCallback(() => {\n const newPosition = getNextViewPosition(\n viewStartPositions,\n containerRef.current.scrollLeft,\n containerRef.current.clientWidth,\n );\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n const toPrevScrollPosition = useCallback(() => {\n const newPosition = getPrevViewPosition(viewStartPositions, containerRef.current.scrollLeft);\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n // Initialize view positions when container first has children\n useEffect(() => {\n if (!containerRef?.current?.children?.length || viewStartPositions.length > 0) return;\n\n setViewStartPositions(createViewPositionArray(containerRef.current));\n }, [containerRef, viewStartPositions.length]);\n\n // Handle new item addition - scroll to end and update positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n\n const childrenCount = containerRef.current.children.length;\n const positionsCount = viewStartPositions.length;\n const totalChildren = Children.count(children);\n\n const shouldScrollToNewItem =\n childrenCount !== positionsCount && positionsCount > 0 && positionsCount < totalChildren;\n\n if (!shouldScrollToNewItem) return;\n\n containerRef.current.scrollTo({\n left: containerRef.current.scrollWidth - containerRef.current.clientWidth,\n top: 0,\n behavior: 'smooth',\n });\n\n // Compute the x position of the new item\n const lastChildRect =\n containerRef.current.children[positionsCount - 1]?.getBoundingClientRect();\n const newPosition = viewStartPositions[positionsCount - 1] + (lastChildRect?.x ?? 0) - 20;\n\n setViewStartPositions([...viewStartPositions, newPosition]);\n }, [containerRef, children, viewStartPositions]);\n\n // Handle active tab changes - scroll to active tab\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (activeTab === prevActiveTab || activeTab === null) return;\n if (containerRef.current.children.length !== viewStartPositions.length) return;\n\n const index = Array.from(containerRef.current.children).indexOf(activeTab);\n if (index === -1) return;\n\n containerRef.current.scrollTo({\n left: viewStartPositions[index],\n top: 0,\n behavior: 'smooth',\n });\n }, [activeTab, prevActiveTab, containerRef, viewStartPositions]);\n\n // Handle fetching more views - recompute positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (viewStartPositions.length >= containerRef.current.children.length) return;\n\n const currentScrollLeft = containerRef.current.scrollLeft;\n\n // Temporarily reset scroll to 0 to get accurate positions\n containerRef.current.scrollTo({ left: 0, top: 0, behavior: 'auto' });\n\n // Recompute positions from scroll position 0\n setViewStartPositions(createViewPositionArray(containerRef.current));\n\n // Restore the user's scroll position\n containerRef.current.scrollTo({ left: currentScrollLeft, top: 0, behavior: 'auto' });\n }, [containerRef, viewStartPositions.length]);\n\n // Handle window resize and scroll event listeners\n useEffect(() => {\n if (!containerRef?.current) return;\n\n const container = containerRef.current;\n\n handleResize();\n window.addEventListener('resize', handleResize);\n container.addEventListener('scroll', handleScroll);\n\n // eslint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('resize', handleResize);\n container.removeEventListener('scroll', handleScroll);\n };\n }, [containerRef, handleResize, handleScroll]);\n\n return { rightDisabled, leftDisabled, toNextScrollPosition, toPrevScrollPosition };\n};\n"],"names":["useRef","useEffect","useState","useCallback","getNextViewPosition","getPrevViewPosition","createViewPositionArray","Children"],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import { useState, useCallback, useEffect, Children } from 'react';
|
|
2
|
-
import { usePrevious } from 'react-use';
|
|
1
|
+
import { useState, useCallback, useEffect, Children, useRef } from 'react';
|
|
3
2
|
import { getNextViewPosition, getPrevViewPosition, createViewPositionArray } from '../utils.js';
|
|
4
3
|
|
|
4
|
+
function usePrevious(value) {
|
|
5
|
+
const ref = useRef();
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
ref.current = value;
|
|
8
|
+
});
|
|
9
|
+
return ref.current;
|
|
10
|
+
}
|
|
5
11
|
const useSetScrollPosition = ({ containerRef, children, hasMoreViews = false, onFetchMoreViews, isLoadingMoreViews = false, }) => {
|
|
6
12
|
var _a;
|
|
7
13
|
const [leftDisabled, setLeftDisabled] = useState(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSetScrollPosition.js","sources":["../../../../src/components/ViewsContainer/hooks/useSetScrollPosition.ts"],"sourcesContent":["import { MutableRefObject, ReactNode, useCallback, useEffect, useState, Children } from 'react';\nimport { usePrevious } from 'react-use';\nimport { createViewPositionArray, getNextViewPosition, getPrevViewPosition } from '../utils';\n\ntype UseSetScrollPositionProps = {\n containerRef: MutableRefObject<HTMLDivElement>;\n children: ReactNode;\n hasMoreViews?: boolean;\n onFetchMoreViews?: () => void;\n isLoadingMoreViews?: boolean;\n};\n\nexport const useSetScrollPosition = ({\n containerRef,\n children,\n hasMoreViews = false,\n onFetchMoreViews,\n isLoadingMoreViews = false,\n}: UseSetScrollPositionProps) => {\n const [leftDisabled, setLeftDisabled] = useState(true);\n const [rightDisabled, setRightDisabled] = useState(false);\n const [viewStartPositions, setViewStartPositions] = useState<number[]>([]);\n\n const activeTab = containerRef?.current?.querySelector('[aria-selected = true]');\n const prevActiveTab = usePrevious(activeTab);\n\n const handleScroll = useCallback(() => {\n if (containerRef.current?.scrollLeft > 0) {\n setLeftDisabled(false);\n } else {\n if (document.getElementById('left-arrow') === document.activeElement) {\n document.getElementById('right-arrow')?.focus();\n }\n setLeftDisabled(true);\n }\n\n const maxScrollWidth = containerRef.current?.scrollWidth ?? 0;\n const maxClientWidth = containerRef.current?.clientWidth ?? 0;\n const maxScrollLeft = maxScrollWidth - maxClientWidth;\n\n // -10 to prevent javascript assertion errors on floating points\n if (containerRef.current?.scrollLeft >= maxScrollLeft - 10) {\n if (document.getElementById('right-arrow') === document.activeElement) {\n document.getElementById('left-arrow')?.focus();\n }\n setRightDisabled(true);\n\n // Check if we've reached the end and should fetch more data\n // Only fetches more when not already loading more views and has more views to load\n if (hasMoreViews && onFetchMoreViews && !isLoadingMoreViews) {\n onFetchMoreViews();\n }\n } else {\n setRightDisabled(false);\n }\n }, [containerRef, onFetchMoreViews, isLoadingMoreViews, hasMoreViews]);\n\n const handleResize = useCallback(() => {\n if (!containerRef.current) return;\n if (containerRef.current.scrollWidth - containerRef.current.getBoundingClientRect().width < 5) {\n setRightDisabled(true);\n } else {\n setRightDisabled(false);\n }\n }, [containerRef]);\n\n const toNextScrollPosition = useCallback(() => {\n const newPosition = getNextViewPosition(\n viewStartPositions,\n containerRef.current.scrollLeft,\n containerRef.current.clientWidth,\n );\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n const toPrevScrollPosition = useCallback(() => {\n const newPosition = getPrevViewPosition(viewStartPositions, containerRef.current.scrollLeft);\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n // Initialize view positions when container first has children\n useEffect(() => {\n if (!containerRef?.current?.children?.length || viewStartPositions.length > 0) return;\n\n setViewStartPositions(createViewPositionArray(containerRef.current));\n }, [containerRef, viewStartPositions.length]);\n\n // Handle new item addition - scroll to end and update positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n\n const childrenCount = containerRef.current.children.length;\n const positionsCount = viewStartPositions.length;\n const totalChildren = Children.count(children);\n\n const shouldScrollToNewItem =\n childrenCount !== positionsCount && positionsCount > 0 && positionsCount < totalChildren;\n\n if (!shouldScrollToNewItem) return;\n\n containerRef.current.scrollTo({\n left: containerRef.current.scrollWidth - containerRef.current.clientWidth,\n top: 0,\n behavior: 'smooth',\n });\n\n // Compute the x position of the new item\n const lastChildRect =\n containerRef.current.children[positionsCount - 1]?.getBoundingClientRect();\n const newPosition = viewStartPositions[positionsCount - 1] + (lastChildRect?.x ?? 0) - 20;\n\n setViewStartPositions([...viewStartPositions, newPosition]);\n }, [containerRef, children, viewStartPositions]);\n\n // Handle active tab changes - scroll to active tab\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (activeTab === prevActiveTab || activeTab === null) return;\n if (containerRef.current.children.length !== viewStartPositions.length) return;\n\n const index = Array.from(containerRef.current.children).indexOf(activeTab);\n if (index === -1) return;\n\n containerRef.current.scrollTo({\n left: viewStartPositions[index],\n top: 0,\n behavior: 'smooth',\n });\n }, [activeTab, prevActiveTab, containerRef, viewStartPositions]);\n\n // Handle fetching more views - recompute positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (viewStartPositions.length >= containerRef.current.children.length) return;\n\n const currentScrollLeft = containerRef.current.scrollLeft;\n\n // Temporarily reset scroll to 0 to get accurate positions\n containerRef.current.scrollTo({ left: 0, top: 0, behavior: 'auto' });\n\n // Recompute positions from scroll position 0\n setViewStartPositions(createViewPositionArray(containerRef.current));\n\n // Restore the user's scroll position\n containerRef.current.scrollTo({ left: currentScrollLeft, top: 0, behavior: 'auto' });\n }, [containerRef, viewStartPositions.length]);\n\n // Handle window resize and scroll event listeners\n useEffect(() => {\n if (!containerRef?.current) return;\n\n const container = containerRef.current;\n\n handleResize();\n window.addEventListener('resize', handleResize);\n container.addEventListener('scroll', handleScroll);\n\n // eslint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('resize', handleResize);\n container.removeEventListener('scroll', handleScroll);\n };\n }, [containerRef, handleResize, handleScroll]);\n\n return { rightDisabled, leftDisabled, toNextScrollPosition, toPrevScrollPosition };\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSetScrollPosition.js","sources":["../../../../src/components/ViewsContainer/hooks/useSetScrollPosition.ts"],"sourcesContent":["import {\n MutableRefObject,\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n Children,\n} from 'react';\nimport { createViewPositionArray, getNextViewPosition, getPrevViewPosition } from '../utils';\n\nfunction usePrevious<T>(value: T): T | undefined {\n const ref = useRef<T>();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\ntype UseSetScrollPositionProps = {\n containerRef: MutableRefObject<HTMLDivElement>;\n children: ReactNode;\n hasMoreViews?: boolean;\n onFetchMoreViews?: () => void;\n isLoadingMoreViews?: boolean;\n};\n\nexport const useSetScrollPosition = ({\n containerRef,\n children,\n hasMoreViews = false,\n onFetchMoreViews,\n isLoadingMoreViews = false,\n}: UseSetScrollPositionProps) => {\n const [leftDisabled, setLeftDisabled] = useState(true);\n const [rightDisabled, setRightDisabled] = useState(false);\n const [viewStartPositions, setViewStartPositions] = useState<number[]>([]);\n\n const activeTab = containerRef?.current?.querySelector('[aria-selected = true]');\n const prevActiveTab = usePrevious(activeTab);\n\n const handleScroll = useCallback(() => {\n if (containerRef.current?.scrollLeft > 0) {\n setLeftDisabled(false);\n } else {\n if (document.getElementById('left-arrow') === document.activeElement) {\n document.getElementById('right-arrow')?.focus();\n }\n setLeftDisabled(true);\n }\n\n const maxScrollWidth = containerRef.current?.scrollWidth ?? 0;\n const maxClientWidth = containerRef.current?.clientWidth ?? 0;\n const maxScrollLeft = maxScrollWidth - maxClientWidth;\n\n // -10 to prevent javascript assertion errors on floating points\n if (containerRef.current?.scrollLeft >= maxScrollLeft - 10) {\n if (document.getElementById('right-arrow') === document.activeElement) {\n document.getElementById('left-arrow')?.focus();\n }\n setRightDisabled(true);\n\n // Check if we've reached the end and should fetch more data\n // Only fetches more when not already loading more views and has more views to load\n if (hasMoreViews && onFetchMoreViews && !isLoadingMoreViews) {\n onFetchMoreViews();\n }\n } else {\n setRightDisabled(false);\n }\n }, [containerRef, onFetchMoreViews, isLoadingMoreViews, hasMoreViews]);\n\n const handleResize = useCallback(() => {\n if (!containerRef.current) return;\n if (containerRef.current.scrollWidth - containerRef.current.getBoundingClientRect().width < 5) {\n setRightDisabled(true);\n } else {\n setRightDisabled(false);\n }\n }, [containerRef]);\n\n const toNextScrollPosition = useCallback(() => {\n const newPosition = getNextViewPosition(\n viewStartPositions,\n containerRef.current.scrollLeft,\n containerRef.current.clientWidth,\n );\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n const toPrevScrollPosition = useCallback(() => {\n const newPosition = getPrevViewPosition(viewStartPositions, containerRef.current.scrollLeft);\n\n containerRef.current.scrollTo({\n left: newPosition,\n top: 0,\n behavior: 'smooth',\n });\n }, [containerRef, viewStartPositions]);\n\n // Initialize view positions when container first has children\n useEffect(() => {\n if (!containerRef?.current?.children?.length || viewStartPositions.length > 0) return;\n\n setViewStartPositions(createViewPositionArray(containerRef.current));\n }, [containerRef, viewStartPositions.length]);\n\n // Handle new item addition - scroll to end and update positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n\n const childrenCount = containerRef.current.children.length;\n const positionsCount = viewStartPositions.length;\n const totalChildren = Children.count(children);\n\n const shouldScrollToNewItem =\n childrenCount !== positionsCount && positionsCount > 0 && positionsCount < totalChildren;\n\n if (!shouldScrollToNewItem) return;\n\n containerRef.current.scrollTo({\n left: containerRef.current.scrollWidth - containerRef.current.clientWidth,\n top: 0,\n behavior: 'smooth',\n });\n\n // Compute the x position of the new item\n const lastChildRect =\n containerRef.current.children[positionsCount - 1]?.getBoundingClientRect();\n const newPosition = viewStartPositions[positionsCount - 1] + (lastChildRect?.x ?? 0) - 20;\n\n setViewStartPositions([...viewStartPositions, newPosition]);\n }, [containerRef, children, viewStartPositions]);\n\n // Handle active tab changes - scroll to active tab\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (activeTab === prevActiveTab || activeTab === null) return;\n if (containerRef.current.children.length !== viewStartPositions.length) return;\n\n const index = Array.from(containerRef.current.children).indexOf(activeTab);\n if (index === -1) return;\n\n containerRef.current.scrollTo({\n left: viewStartPositions[index],\n top: 0,\n behavior: 'smooth',\n });\n }, [activeTab, prevActiveTab, containerRef, viewStartPositions]);\n\n // Handle fetching more views - recompute positions\n useEffect(() => {\n if (!containerRef?.current?.children?.length) return;\n if (viewStartPositions.length >= containerRef.current.children.length) return;\n\n const currentScrollLeft = containerRef.current.scrollLeft;\n\n // Temporarily reset scroll to 0 to get accurate positions\n containerRef.current.scrollTo({ left: 0, top: 0, behavior: 'auto' });\n\n // Recompute positions from scroll position 0\n setViewStartPositions(createViewPositionArray(containerRef.current));\n\n // Restore the user's scroll position\n containerRef.current.scrollTo({ left: currentScrollLeft, top: 0, behavior: 'auto' });\n }, [containerRef, viewStartPositions.length]);\n\n // Handle window resize and scroll event listeners\n useEffect(() => {\n if (!containerRef?.current) return;\n\n const container = containerRef.current;\n\n handleResize();\n window.addEventListener('resize', handleResize);\n container.addEventListener('scroll', handleScroll);\n\n // eslint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('resize', handleResize);\n container.removeEventListener('scroll', handleScroll);\n };\n }, [containerRef, handleResize, handleScroll]);\n\n return { rightDisabled, leftDisabled, toNextScrollPosition, toPrevScrollPosition };\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,7 @@ export { LoginWithAmazonButton } from './LoginWithAmazonButton';
|
|
|
41
41
|
export { Modal, type Action as ModalAction } from './Modal';
|
|
42
42
|
export { Pagination } from './Pagination';
|
|
43
43
|
export { Popover } from './Popover';
|
|
44
|
+
export { Popup, type PopupProps } from './Popup';
|
|
44
45
|
export { Portal } from './Portal';
|
|
45
46
|
export { PriceInput } from './PriceInput';
|
|
46
47
|
export { Radio } from './Radio';
|
|
@@ -68,7 +69,6 @@ export { UploadFile } from './UploadFile';
|
|
|
68
69
|
export { AcceptedFileTypes, FileSizeUnit } from './UploadFile/constants';
|
|
69
70
|
export { UploadedFile } from './UploadedFile';
|
|
70
71
|
export { VeeqoLogo, type LogoVariant, type ColorVariant } from './VeeqoLogo';
|
|
71
|
-
export { VideoModal, Popup } from './VideoModal';
|
|
72
72
|
export { View } from './View';
|
|
73
73
|
export { ViewTab } from './ViewTab';
|
|
74
74
|
export { ViewsContainer } from './ViewsContainer';
|
package/dist/index.cjs
CHANGED
|
@@ -51,6 +51,7 @@ var LoginWithAmazonButton = require('./components/LoginWithAmazonButton/LoginWit
|
|
|
51
51
|
var Modal = require('./components/Modal/Modal.cjs');
|
|
52
52
|
var Pagination = require('./components/Pagination/Pagination.cjs');
|
|
53
53
|
var Popover = require('./components/Popover/Popover.cjs');
|
|
54
|
+
var Popup = require('./components/Popup/Popup.cjs');
|
|
54
55
|
var Portal = require('./components/Portal/Portal.cjs');
|
|
55
56
|
var PriceInput = require('./components/PriceInput/PriceInput.cjs');
|
|
56
57
|
var Radio = require('./components/Radio/Radio.cjs');
|
|
@@ -77,8 +78,6 @@ var UploadFile = require('./components/UploadFile/UploadFile.cjs');
|
|
|
77
78
|
var constants = require('./components/UploadFile/constants.cjs');
|
|
78
79
|
var UploadedFile = require('./components/UploadedFile/UploadedFile.cjs');
|
|
79
80
|
var VeeqoLogo = require('./components/VeeqoLogo/VeeqoLogo.cjs');
|
|
80
|
-
var VideoModal = require('./components/VideoModal/VideoModal.cjs');
|
|
81
|
-
var Popup = require('./components/VideoModal/components/Popup.cjs');
|
|
82
81
|
var View = require('./components/View/View.cjs');
|
|
83
82
|
var ViewTab = require('./components/ViewTab/ViewTab.cjs');
|
|
84
83
|
var ViewsContainer = require('./components/ViewsContainer/ViewsContainer.cjs');
|
|
@@ -345,7 +344,6 @@ var VeeqoLogoFull = require('./logos/components/VeeqoLogoFull.cjs');
|
|
|
345
344
|
var VendLogoFull = require('./logos/components/VendLogoFull.cjs');
|
|
346
345
|
var WalmartLogoFull = require('./logos/components/WalmartLogoFull.cjs');
|
|
347
346
|
var WooCommerceLogoFull = require('./logos/components/WooCommerceLogoFull.cjs');
|
|
348
|
-
var utils = require('./theme/utils.cjs');
|
|
349
347
|
|
|
350
348
|
|
|
351
349
|
|
|
@@ -411,6 +409,7 @@ exports.LoginWithAmazonButton = LoginWithAmazonButton.LoginWithAmazonButton;
|
|
|
411
409
|
exports.Modal = Modal.Modal;
|
|
412
410
|
exports.Pagination = Pagination.Pagination;
|
|
413
411
|
exports.Popover = Popover.Popover;
|
|
412
|
+
exports.Popup = Popup.Popup;
|
|
414
413
|
exports.Portal = Portal.Portal;
|
|
415
414
|
exports.PriceInput = PriceInput.PriceInput;
|
|
416
415
|
exports.Radio = Radio.Radio;
|
|
@@ -444,8 +443,6 @@ Object.defineProperty(exports, "FileSizeUnit", {
|
|
|
444
443
|
});
|
|
445
444
|
exports.UploadedFile = UploadedFile.UploadedFile;
|
|
446
445
|
exports.VeeqoLogo = VeeqoLogo.VeeqoLogo;
|
|
447
|
-
exports.VideoModal = VideoModal.VideoModal;
|
|
448
|
-
exports.Popup = Popup.Popup;
|
|
449
446
|
exports.View = View.View;
|
|
450
447
|
exports.ViewTab = ViewTab.ViewTab;
|
|
451
448
|
exports.ViewsContainer = ViewsContainer.ViewsContainer;
|
|
@@ -714,5 +711,4 @@ exports.VeeqoLogoFull = VeeqoLogoFull.ReactComponent;
|
|
|
714
711
|
exports.VendLogoFull = VendLogoFull.ReactComponent;
|
|
715
712
|
exports.WalmartLogoFull = WalmartLogoFull.ReactComponent;
|
|
716
713
|
exports.WooCommerceLogoFull = WooCommerceLogoFull.ReactComponent;
|
|
717
|
-
exports.getTextStyles = utils.getTextStyles;
|
|
718
714
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -49,6 +49,7 @@ export { LoginWithAmazonButton } from './components/LoginWithAmazonButton/LoginW
|
|
|
49
49
|
export { Modal } from './components/Modal/Modal.js';
|
|
50
50
|
export { Pagination } from './components/Pagination/Pagination.js';
|
|
51
51
|
export { Popover } from './components/Popover/Popover.js';
|
|
52
|
+
export { Popup } from './components/Popup/Popup.js';
|
|
52
53
|
export { Portal } from './components/Portal/Portal.js';
|
|
53
54
|
export { PriceInput } from './components/PriceInput/PriceInput.js';
|
|
54
55
|
export { Radio } from './components/Radio/Radio.js';
|
|
@@ -75,8 +76,6 @@ export { UploadFile } from './components/UploadFile/UploadFile.js';
|
|
|
75
76
|
export { AcceptedFileTypes, FileSizeUnit } from './components/UploadFile/constants.js';
|
|
76
77
|
export { UploadedFile } from './components/UploadedFile/UploadedFile.js';
|
|
77
78
|
export { VeeqoLogo } from './components/VeeqoLogo/VeeqoLogo.js';
|
|
78
|
-
export { VideoModal } from './components/VideoModal/VideoModal.js';
|
|
79
|
-
export { Popup } from './components/VideoModal/components/Popup.js';
|
|
80
79
|
export { View } from './components/View/View.js';
|
|
81
80
|
export { ViewTab } from './components/ViewTab/ViewTab.js';
|
|
82
81
|
export { ViewsContainer } from './components/ViewsContainer/ViewsContainer.js';
|
|
@@ -343,5 +342,4 @@ export { ReactComponent as VeeqoLogoFull } from './logos/components/VeeqoLogoFul
|
|
|
343
342
|
export { ReactComponent as VendLogoFull } from './logos/components/VendLogoFull.js';
|
|
344
343
|
export { ReactComponent as WalmartLogoFull } from './logos/components/WalmartLogoFull.js';
|
|
345
344
|
export { ReactComponent as WooCommerceLogoFull } from './logos/components/WooCommerceLogoFull.js';
|
|
346
|
-
export { getTextStyles } from './theme/utils.js';
|
|
347
345
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/theme/index.cjs
CHANGED
package/dist/theme/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/theme/index.ts"],"sourcesContent":["import { colors } from './modules/colors';\nimport { breakpoints } from './modules/breakpoints';\nimport { layers } from './modules/layers';\nimport { radius } from './modules/radius';\nimport { Shadows } from './modules/shadows';\nimport { sizes } from './modules/sizes';\nimport { text, common } from './modules/text';\n\nexport
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/theme/index.ts"],"sourcesContent":["import { colors } from './modules/colors';\nimport { breakpoints } from './modules/breakpoints';\nimport { layers } from './modules/layers';\nimport { radius } from './modules/radius';\nimport { Shadows } from './modules/shadows';\nimport { sizes } from './modules/sizes';\nimport { text, common } from './modules/text';\n\nexport const theme = {\n ...common,\n breakpoints,\n colors,\n layers,\n radius,\n shadows: Shadows,\n sizes,\n text,\n};\n"],"names":["common","breakpoints","colors","layers","radius","Shadows","sizes","text"],"mappings":";;;;;;;;;;AAQO,MAAM,KAAK,GAAG;AACnB,IAAA,GAAGA,WAAM;iBACTC,uBAAW;YACXC,aAAM;YACNC,aAAM;YACNC,aAAM;AACN,IAAA,OAAO,EAAEC,eAAO;WAChBC,WAAK;UACLC,SAAI;;;;;"}
|
package/dist/theme/index.d.ts
CHANGED
package/dist/theme/index.js
CHANGED
package/dist/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import { colors } from './modules/colors';\nimport { breakpoints } from './modules/breakpoints';\nimport { layers } from './modules/layers';\nimport { radius } from './modules/radius';\nimport { Shadows } from './modules/shadows';\nimport { sizes } from './modules/sizes';\nimport { text, common } from './modules/text';\n\nexport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/theme/index.ts"],"sourcesContent":["import { colors } from './modules/colors';\nimport { breakpoints } from './modules/breakpoints';\nimport { layers } from './modules/layers';\nimport { radius } from './modules/radius';\nimport { Shadows } from './modules/shadows';\nimport { sizes } from './modules/sizes';\nimport { text, common } from './modules/text';\n\nexport const theme = {\n ...common,\n breakpoints,\n colors,\n layers,\n radius,\n shadows: Shadows,\n sizes,\n text,\n};\n"],"names":[],"mappings":";;;;;;;;AAQO,MAAM,KAAK,GAAG;AACnB,IAAA,GAAG,MAAM;IACT,WAAW;IACX,MAAM;IACN,MAAM;IACN,MAAM;AACN,IAAA,OAAO,EAAE,OAAO;IAChB,KAAK;IACL,IAAI;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veeqo/ui",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.13.0",
|
|
4
4
|
"description": "New optimised component library for Veeqo.",
|
|
5
5
|
"author": "Robert Wealthall",
|
|
6
6
|
"license": "ISC",
|
|
@@ -83,7 +83,6 @@
|
|
|
83
83
|
"@types/react": "^17.0.5",
|
|
84
84
|
"@types/react-dom": "^16.9.12",
|
|
85
85
|
"@types/react-transition-group": "^4.4.6",
|
|
86
|
-
"@types/styled-components": "^5.1.27",
|
|
87
86
|
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
88
87
|
"@typescript-eslint/parser": "^6.7.3",
|
|
89
88
|
"auto-changelog": "^2.4.0",
|
|
@@ -106,7 +105,6 @@
|
|
|
106
105
|
"jest-axe": "~6.0.0",
|
|
107
106
|
"jest-cli": "~29.0.3",
|
|
108
107
|
"jest-environment-jsdom": "~29.0.3",
|
|
109
|
-
"jest-styled-components": "~7.1.1",
|
|
110
108
|
"lodash.throttle": "^4.1.1",
|
|
111
109
|
"playroom": "^0.39.1",
|
|
112
110
|
"postcss": "^8.5.3",
|
|
@@ -115,9 +113,7 @@
|
|
|
115
113
|
"react": "^17.0.2",
|
|
116
114
|
"react-dom": "^17.0.2",
|
|
117
115
|
"react-popper": "^2.2.5",
|
|
118
|
-
"react-scrolllock-configurable": "4.0.5",
|
|
119
116
|
"react-transition-group": "^4.3.0",
|
|
120
|
-
"react-use": "^15.3.8",
|
|
121
117
|
"remark-gfm": "^4.0.1",
|
|
122
118
|
"resize-observer-polyfill": "^1.5.1",
|
|
123
119
|
"rimraf": "^5.0.5",
|
|
@@ -127,13 +123,11 @@
|
|
|
127
123
|
"sass-loader": "^16.0.5",
|
|
128
124
|
"storybook": "10.3.3",
|
|
129
125
|
"style-loader": "^2.0.0",
|
|
130
|
-
"styled-components": "^5.1.1",
|
|
131
126
|
"stylelint": "^16.25.0",
|
|
132
127
|
"stylelint-config-standard-scss": "^13.0.0",
|
|
133
128
|
"ts-jest": "^29.1.1",
|
|
134
129
|
"tsc-alias": "^1.8.8",
|
|
135
|
-
"typescript": "^5.2.2"
|
|
136
|
-
"typescript-plugin-styled-components": "^3.0.0"
|
|
130
|
+
"typescript": "^5.2.2"
|
|
137
131
|
},
|
|
138
132
|
"peerDependencies": {
|
|
139
133
|
"@internationalized/date": "^3.5.4",
|
|
@@ -145,17 +139,11 @@
|
|
|
145
139
|
"react-aria-components": "^1.2.1",
|
|
146
140
|
"react-dom": "^17.0.2",
|
|
147
141
|
"react-popper": "^2.2.5",
|
|
148
|
-
"react-scrolllock-configurable": "4.0.5",
|
|
149
142
|
"react-transition-group": "^4.3.0",
|
|
150
|
-
"react-use": "^15.3.8",
|
|
151
143
|
"resize-observer-polyfill": "^1.5.1",
|
|
152
|
-
"styled-components": "^5.1.1",
|
|
153
144
|
"uid": "^2.0.2"
|
|
154
145
|
},
|
|
155
146
|
"overrides": {
|
|
156
|
-
"react-scrolllock-configurable": {
|
|
157
|
-
"react": "$react"
|
|
158
|
-
},
|
|
159
147
|
"auto-changelog": {
|
|
160
148
|
"handlebars": "4.7.9"
|
|
161
149
|
},
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var Popup = require('./components/Popup.cjs');
|
|
5
|
-
var styled = require('./styled.cjs');
|
|
6
|
-
var useClickOutside = require('../../hooks/useClickOutside.cjs');
|
|
7
|
-
require('../../hooks/useFocusVisible.cjs');
|
|
8
|
-
require('uid/secure');
|
|
9
|
-
require('lodash.throttle');
|
|
10
|
-
var CrossIcon = require('../../icons/design-system/components/CrossIcon.cjs');
|
|
11
|
-
|
|
12
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
|
-
|
|
14
|
-
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
|
-
|
|
16
|
-
const VideoModal = ({ id, youtubeVideoId, showVideoModal, handleCloseClick, }) => {
|
|
17
|
-
const ref = useClickOutside.useClickOutside(showVideoModal, handleCloseClick);
|
|
18
|
-
return (React__default.default.createElement(Popup.Popup, { shouldShow: showVideoModal, className: `${id}-video` },
|
|
19
|
-
React__default.default.createElement(styled.PopupContent, { "data-testid": "video-modal_popup-content", className: `video-modal--${showVideoModal ? 'visible' : 'hidden'}` },
|
|
20
|
-
React__default.default.createElement(styled.VideoWrapper, { ref: ref },
|
|
21
|
-
React__default.default.createElement("iframe", { title: `${id}-video`, src: `https://www.youtube.com/embed/${youtubeVideoId}`, frameBorder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true }),
|
|
22
|
-
React__default.default.createElement(styled.ButtonSC, { variant: "flat", onClick: handleCloseClick, "data-testid": "video-modal--close", iconSlot: React__default.default.createElement(CrossIcon.ReactComponent, { color: "white" }) })))));
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
exports.VideoModal = VideoModal;
|
|
26
|
-
//# sourceMappingURL=VideoModal.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VideoModal.cjs","sources":["../../../src/components/VideoModal/VideoModal.tsx"],"sourcesContent":["import React from 'react';\nimport { Popup } from './components/Popup';\nimport { VideoModalProps } from './types';\nimport { PopupContent, VideoWrapper, ButtonSC } from './styled';\nimport { useClickOutside } from '../../hooks';\nimport { CrossIcon } from '../../icons';\n\nexport const VideoModal = ({\n id,\n youtubeVideoId,\n showVideoModal,\n handleCloseClick,\n}: VideoModalProps) => {\n const ref = useClickOutside(showVideoModal, handleCloseClick);\n\n return (\n <Popup shouldShow={showVideoModal} className={`${id}-video`}>\n <PopupContent\n data-testid=\"video-modal_popup-content\"\n className={`video-modal--${showVideoModal ? 'visible' : 'hidden'}`}\n >\n <VideoWrapper ref={ref}>\n <iframe\n title={`${id}-video`}\n src={`https://www.youtube.com/embed/${youtubeVideoId}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n <ButtonSC\n variant=\"flat\"\n onClick={handleCloseClick}\n data-testid=\"video-modal--close\"\n iconSlot={<CrossIcon color=\"white\" />}\n />\n </VideoWrapper>\n </PopupContent>\n </Popup>\n );\n};\n"],"names":["useClickOutside","React","Popup","PopupContent","VideoWrapper","ButtonSC","CrossIcon"],"mappings":";;;;;;;;;;;;;;;AAOO,MAAM,UAAU,GAAG,CAAC,EACzB,EAAE,EACF,cAAc,EACd,cAAc,EACd,gBAAgB,GACA,KAAI;IACpB,MAAM,GAAG,GAAGA,+BAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAE7D,IAAA,QACEC,sBAAA,CAAA,aAAA,CAACC,WAAK,EAAA,EAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,CAAA,EAAG,EAAE,CAAA,MAAA,CAAQ,EAAA;AACzD,QAAAD,sBAAA,CAAA,aAAA,CAACE,mBAAY,EAAA,EAAA,aAAA,EACC,2BAA2B,EACvC,SAAS,EAAE,CAAA,aAAA,EAAgB,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAA,CAAE,EAAA;AAElE,YAAAF,sBAAA,CAAA,aAAA,CAACG,mBAAY,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA;gBACpBH,sBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACE,KAAK,EAAE,CAAA,EAAG,EAAE,QAAQ,EACpB,GAAG,EAAE,CAAA,8BAAA,EAAiC,cAAc,EAAE,EACtD,WAAW,EAAC,GAAG,EACf,KAAK,EAAC,0FAA0F,EAChG,eAAe,EAAA,IAAA,EAAA,CACf;gBACFA,sBAAA,CAAA,aAAA,CAACI,eAAQ,EAAA,EACP,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,gBAAgB,EAAA,aAAA,EACb,oBAAoB,EAChC,QAAQ,EAAEJ,sBAAA,CAAA,aAAA,CAACK,wBAAS,EAAA,EAAC,KAAK,EAAC,OAAO,EAAA,CAAG,EAAA,CACrC,CACW,CACF,CACT;AAEZ;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import { Popup } from './components/Popup.js';
|
|
3
|
-
import { PopupContent, VideoWrapper, ButtonSC } from './styled.js';
|
|
4
|
-
import { useClickOutside } from '../../hooks/useClickOutside.js';
|
|
5
|
-
import '../../hooks/useFocusVisible.js';
|
|
6
|
-
import 'uid/secure';
|
|
7
|
-
import 'lodash.throttle';
|
|
8
|
-
import { ReactComponent as CrossIcon } from '../../icons/design-system/components/CrossIcon.js';
|
|
9
|
-
|
|
10
|
-
const VideoModal = ({ id, youtubeVideoId, showVideoModal, handleCloseClick, }) => {
|
|
11
|
-
const ref = useClickOutside(showVideoModal, handleCloseClick);
|
|
12
|
-
return (React__default.createElement(Popup, { shouldShow: showVideoModal, className: `${id}-video` },
|
|
13
|
-
React__default.createElement(PopupContent, { "data-testid": "video-modal_popup-content", className: `video-modal--${showVideoModal ? 'visible' : 'hidden'}` },
|
|
14
|
-
React__default.createElement(VideoWrapper, { ref: ref },
|
|
15
|
-
React__default.createElement("iframe", { title: `${id}-video`, src: `https://www.youtube.com/embed/${youtubeVideoId}`, frameBorder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture", allowFullScreen: true }),
|
|
16
|
-
React__default.createElement(ButtonSC, { variant: "flat", onClick: handleCloseClick, "data-testid": "video-modal--close", iconSlot: React__default.createElement(CrossIcon, { color: "white" }) })))));
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { VideoModal };
|
|
20
|
-
//# sourceMappingURL=VideoModal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VideoModal.js","sources":["../../../src/components/VideoModal/VideoModal.tsx"],"sourcesContent":["import React from 'react';\nimport { Popup } from './components/Popup';\nimport { VideoModalProps } from './types';\nimport { PopupContent, VideoWrapper, ButtonSC } from './styled';\nimport { useClickOutside } from '../../hooks';\nimport { CrossIcon } from '../../icons';\n\nexport const VideoModal = ({\n id,\n youtubeVideoId,\n showVideoModal,\n handleCloseClick,\n}: VideoModalProps) => {\n const ref = useClickOutside(showVideoModal, handleCloseClick);\n\n return (\n <Popup shouldShow={showVideoModal} className={`${id}-video`}>\n <PopupContent\n data-testid=\"video-modal_popup-content\"\n className={`video-modal--${showVideoModal ? 'visible' : 'hidden'}`}\n >\n <VideoWrapper ref={ref}>\n <iframe\n title={`${id}-video`}\n src={`https://www.youtube.com/embed/${youtubeVideoId}`}\n frameBorder=\"0\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n <ButtonSC\n variant=\"flat\"\n onClick={handleCloseClick}\n data-testid=\"video-modal--close\"\n iconSlot={<CrossIcon color=\"white\" />}\n />\n </VideoWrapper>\n </PopupContent>\n </Popup>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;;;AAOO,MAAM,UAAU,GAAG,CAAC,EACzB,EAAE,EACF,cAAc,EACd,cAAc,EACd,gBAAgB,GACA,KAAI;IACpB,MAAM,GAAG,GAAG,eAAe,CAAC,cAAc,EAAE,gBAAgB,CAAC;AAE7D,IAAA,QACEA,cAAA,CAAA,aAAA,CAAC,KAAK,EAAA,EAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,CAAA,EAAG,EAAE,CAAA,MAAA,CAAQ,EAAA;AACzD,QAAAA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAA,aAAA,EACC,2BAA2B,EACvC,SAAS,EAAE,CAAA,aAAA,EAAgB,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAA,CAAE,EAAA;AAElE,YAAAA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA;gBACpBA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACE,KAAK,EAAE,CAAA,EAAG,EAAE,QAAQ,EACpB,GAAG,EAAE,CAAA,8BAAA,EAAiC,cAAc,EAAE,EACtD,WAAW,EAAC,GAAG,EACf,KAAK,EAAC,0FAA0F,EAChG,eAAe,EAAA,IAAA,EAAA,CACf;gBACFA,cAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,gBAAgB,EAAA,aAAA,EACb,oBAAoB,EAChC,QAAQ,EAAEA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EAAC,KAAK,EAAC,OAAO,EAAA,CAAG,EAAA,CACrC,CACW,CACF,CACT;AAEZ;;;;"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var React = require('react');
|
|
4
|
-
var ScrollLock = require('react-scrolllock-configurable');
|
|
5
|
-
var Portal = require('../../Portal/Portal.cjs');
|
|
6
|
-
var styled = require('./styled.cjs');
|
|
7
|
-
var buildClassnames = require('../../../utils/buildClassnames.cjs');
|
|
8
|
-
|
|
9
|
-
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
|
-
|
|
11
|
-
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
12
|
-
var ScrollLock__default = /*#__PURE__*/_interopDefaultCompat(ScrollLock);
|
|
13
|
-
|
|
14
|
-
const WithPortal = ({ usePortal, children }) => (
|
|
15
|
-
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
16
|
-
React__default.default.createElement(React__default.default.Fragment, null, usePortal ? React__default.default.createElement(Portal.Portal, null, children) : children));
|
|
17
|
-
const Popup = ({ className, children = null, shouldShow = false, usePortal = true, }) => (React__default.default.createElement(WithPortal, { usePortal: usePortal },
|
|
18
|
-
React__default.default.createElement(styled.Container, { className: buildClassnames.buildClassnames([`${className}-container`, className]), shouldShow: shouldShow },
|
|
19
|
-
React__default.default.createElement(styled.Shadow, null),
|
|
20
|
-
React__default.default.createElement(ScrollLock__default.default, { isActive: shouldShow },
|
|
21
|
-
React__default.default.createElement(styled.Wrap, { className: buildClassnames.buildClassnames([`${className}-wrap`, className]) }, children)))));
|
|
22
|
-
|
|
23
|
-
exports.Popup = Popup;
|
|
24
|
-
//# sourceMappingURL=Popup.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.cjs","sources":["../../../../src/components/VideoModal/components/Popup.tsx"],"sourcesContent":["import React, { ReactNode, FC } from 'react';\n\n// @ts-ignore\nimport ScrollLock from 'react-scrolllock-configurable';\nimport { Portal } from '../../Portal';\n\nimport { Container, Shadow, Wrap } from './styled';\nimport { buildClassnames } from '../../../utils/buildClassnames';\n\ninterface WithPortalProps {\n usePortal?: boolean;\n children: ReactNode;\n}\n\nconst WithPortal = ({ usePortal, children }: WithPortalProps) => (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{usePortal ? <Portal>{children}</Portal> : children}</>\n);\n\nexport interface PopupProps {\n children: ReactNode;\n shouldShow: boolean;\n usePortal?: boolean;\n className?: string;\n}\n\nexport const Popup: FC<PopupProps> = ({\n className,\n children = null,\n shouldShow = false,\n usePortal = true,\n}: PopupProps) => (\n <WithPortal usePortal={usePortal}>\n <Container\n className={buildClassnames([`${className}-container`, className])}\n shouldShow={shouldShow}\n >\n <Shadow />\n <ScrollLock isActive={shouldShow}>\n <Wrap className={buildClassnames([`${className}-wrap`, className])}>{children}</Wrap>\n </ScrollLock>\n </Container>\n </WithPortal>\n);\n"],"names":["React","Portal","Container","buildClassnames","Shadow","ScrollLock","Wrap"],"mappings":";;;;;;;;;;;;;AAcA,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAmB;AAC1D;AACAA,sBAAA,CAAA,aAAA,CAAAA,sBAAA,CAAA,QAAA,EAAA,IAAA,EAAG,SAAS,GAAGA,qCAACC,aAAM,EAAA,IAAA,EAAE,QAAQ,CAAU,GAAG,QAAQ,CAAI,CAC1D;AASM,MAAM,KAAK,GAAmB,CAAC,EACpC,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,IAAI,GACL,MACXD,sBAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA;AAC9B,IAAAA,sBAAA,CAAA,aAAA,CAACE,gBAAS,EAAA,EACR,SAAS,EAAEC,+BAAe,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY,EAAE,SAAS,CAAC,CAAC,EACjE,UAAU,EAAE,UAAU,EAAA;AAEtB,QAAAH,sBAAA,CAAA,aAAA,CAACI,aAAM,EAAA,IAAA,CAAG;AACV,QAAAJ,sBAAA,CAAA,aAAA,CAACK,2BAAU,EAAA,EAAC,QAAQ,EAAE,UAAU,EAAA;YAC9BL,sBAAA,CAAA,aAAA,CAACM,WAAI,IAAC,SAAS,EAAEH,+BAAe,CAAC,CAAC,GAAG,SAAS,CAAA,KAAA,CAAO,EAAE,SAAS,CAAC,CAAC,EAAA,EAAG,QAAQ,CAAQ,CAC1E,CACH,CACD;;;;"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React__default from 'react';
|
|
2
|
-
import ScrollLock from 'react-scrolllock-configurable';
|
|
3
|
-
import { Portal } from '../../Portal/Portal.js';
|
|
4
|
-
import { Container, Shadow, Wrap } from './styled.js';
|
|
5
|
-
import { buildClassnames } from '../../../utils/buildClassnames.js';
|
|
6
|
-
|
|
7
|
-
const WithPortal = ({ usePortal, children }) => (
|
|
8
|
-
// eslint-disable-next-line react/jsx-no-useless-fragment
|
|
9
|
-
React__default.createElement(React__default.Fragment, null, usePortal ? React__default.createElement(Portal, null, children) : children));
|
|
10
|
-
const Popup = ({ className, children = null, shouldShow = false, usePortal = true, }) => (React__default.createElement(WithPortal, { usePortal: usePortal },
|
|
11
|
-
React__default.createElement(Container, { className: buildClassnames([`${className}-container`, className]), shouldShow: shouldShow },
|
|
12
|
-
React__default.createElement(Shadow, null),
|
|
13
|
-
React__default.createElement(ScrollLock, { isActive: shouldShow },
|
|
14
|
-
React__default.createElement(Wrap, { className: buildClassnames([`${className}-wrap`, className]) }, children)))));
|
|
15
|
-
|
|
16
|
-
export { Popup };
|
|
17
|
-
//# sourceMappingURL=Popup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Popup.js","sources":["../../../../src/components/VideoModal/components/Popup.tsx"],"sourcesContent":["import React, { ReactNode, FC } from 'react';\n\n// @ts-ignore\nimport ScrollLock from 'react-scrolllock-configurable';\nimport { Portal } from '../../Portal';\n\nimport { Container, Shadow, Wrap } from './styled';\nimport { buildClassnames } from '../../../utils/buildClassnames';\n\ninterface WithPortalProps {\n usePortal?: boolean;\n children: ReactNode;\n}\n\nconst WithPortal = ({ usePortal, children }: WithPortalProps) => (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>{usePortal ? <Portal>{children}</Portal> : children}</>\n);\n\nexport interface PopupProps {\n children: ReactNode;\n shouldShow: boolean;\n usePortal?: boolean;\n className?: string;\n}\n\nexport const Popup: FC<PopupProps> = ({\n className,\n children = null,\n shouldShow = false,\n usePortal = true,\n}: PopupProps) => (\n <WithPortal usePortal={usePortal}>\n <Container\n className={buildClassnames([`${className}-container`, className])}\n shouldShow={shouldShow}\n >\n <Shadow />\n <ScrollLock isActive={shouldShow}>\n <Wrap className={buildClassnames([`${className}-wrap`, className])}>{children}</Wrap>\n </ScrollLock>\n </Container>\n </WithPortal>\n);\n"],"names":["React"],"mappings":";;;;;;AAcA,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAmB;AAC1D;AACAA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAG,SAAS,GAAGA,6BAAC,MAAM,EAAA,IAAA,EAAE,QAAQ,CAAU,GAAG,QAAQ,CAAI,CAC1D;AASM,MAAM,KAAK,GAAmB,CAAC,EACpC,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,UAAU,GAAG,KAAK,EAClB,SAAS,GAAG,IAAI,GACL,MACXA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,SAAS,EAAA;AAC9B,IAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EACR,SAAS,EAAE,eAAe,CAAC,CAAC,CAAA,EAAG,SAAS,CAAA,UAAA,CAAY,EAAE,SAAS,CAAC,CAAC,EACjE,UAAU,EAAE,UAAU,EAAA;AAEtB,QAAAA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,IAAA,CAAG;AACV,QAAAA,cAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EAAC,QAAQ,EAAE,UAAU,EAAA;YAC9BA,cAAA,CAAA,aAAA,CAAC,IAAI,IAAC,SAAS,EAAE,eAAe,CAAC,CAAC,GAAG,SAAS,CAAA,KAAA,CAAO,EAAE,SAAS,CAAC,CAAC,EAAA,EAAG,QAAQ,CAAQ,CAC1E,CACH,CACD;;;;"}
|