@corva/ui 3.75.0-22 → 3.75.0-23
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/cjs-bundle/components/InfiniteList/index.js +1 -1
- package/cjs-bundle/components/InfiniteList/index.js.map +1 -1
- package/components/InfiniteList/__tests__/InfiniteList.test.d.ts +2 -0
- package/components/InfiniteList/__tests__/InfiniteList.test.d.ts.map +1 -0
- package/components/InfiniteList/index.d.ts +4 -60
- package/components/InfiniteList/index.d.ts.map +1 -1
- package/components/InfiniteList/index.js +1 -1
- package/components/InfiniteList/index.js.map +1 -1
- package/mcp-server/server.mjs +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("@babel/runtime/helpers/
|
|
1
|
+
"use strict";var e=require("@babel/runtime/helpers/defineProperty"),r=require("@babel/runtime/helpers/toConsumableArray"),t=require("@babel/runtime/helpers/asyncToGenerator"),a=require("@babel/runtime/helpers/slicedToArray"),n=require("@babel/runtime/regenerator"),i=require("react"),s=require("prop-types"),o=require("moment"),d=require("classnames"),u=require("lodash"),l=require("react-infinite-scroller"),c=require("@material-ui/core/colors/grey"),f=require("./styles.css.js"),h=require("../LoadingIndicator/LoadingIndicator.js"),y=require("react/jsx-runtime");function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var b=m(e),p=m(r),g=m(t),v=m(a),T=m(n),q=m(s),I=m(o),L=m(d),A=m(l),w=m(c).default[700],x={newerThan12Hours:"Last 12 hours",olderThan12Hours:"Last 24 hours",olderThan1Days:"Earlier this week",olderThan7Days:"Older than 7 days",olderThan14Days:"Older than 14 days",olderThan30Days:"Older than 30 days"},D=function(){return{hoursAgo12:I.default().subtract(12,"hours"),daysAgo1:I.default().subtract(1,"days"),daysAgo7:I.default().subtract(7,"days"),daysAgo14:I.default().subtract(14,"days"),daysAgo30:I.default().subtract(30,"days")}};function j(e){var r=e.infiniteClassName,t=void 0===r?null:r,a=e.useWindow,n=void 0!==a&&a,s=e.headerComponent,o=void 0===s?null:s,d=e.items,l=e.showNoItemsFound,c=e.noItemsFoundLabel,m=e.infiniteContainerHeight,q=void 0===m?null:m,j=e.moreItemsMayExist,C=e.pathToCreatedAt,H=e.renderItem,_=e.loadItems,N=e.threshold,O=void 0===N?3e3:N,R=e.initialLoad,E=void 0===R||R,k=e.divideByPeriods,F=void 0===k||k,M=i.useState(!1),P=v.default(M,2),W=P[0],B=P[1],S=i.useState(D),G=v.default(S,2),z=G[0],J=G[1];i.useEffect((function(){var e=setInterval((function(){return J(D())}),216e5);return function(){return clearInterval(e)}}),[]);var K,Q=(K=g.default(T.default.mark((function e(){return T.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!W){e.next=2;break}return e.abrupt("return");case 2:return B(!0),e.next=5,_();case 5:B(!1);case 6:case"end":return e.stop()}}),e)}))),function(){return K.apply(this,arguments)});return y.jsxs("div",{className:L.default(f.cInfiniteList,t,b.default({},f.cInfiniteListOverflow,!n)),style:{height:q},children:[y.jsx(A.default,{loadMore:Q,hasMore:j&&!l,threshold:O,loader:y.jsx(h,{fullscreen:!1},"c-infinite-scroll__loader"),useWindow:n,initialLoad:E,children:function(){if(!F)return d.map((function(e){return H(e)})).unshift(o);var e=z.hoursAgo12,r=z.daysAgo1,t=z.daysAgo7,a=z.daysAgo14,n=z.daysAgo30,i=d.reduce((function(i,s,o){var d,l=H(s,o),c=u.get(s,C),f=I.default(c);return f>=e?d="newerThan12Hours":f<e&&f>=r?d="olderThan12Hours":f<r&&f>=t?d="olderThan1Days":f<t&&f>=a?d="olderThan7Days":f<a&&f>=n?d="olderThan14Days":f<n&&(d="olderThan30Days"),u.set(i,[d,i[d].length],l)}),{newerThan12Hours:[],olderThan12Hours:[],olderThan1Days:[],olderThan7Days:[],olderThan14Days:[],olderThan30Days:[]}),s=Object.keys(i).reduce((function(e,r){return 0===i[r].length?e.concat(i[r]):e.concat([(t=r,y.jsx("div",{"data-testid":"".concat("generic_infiniteList","_periodLabel"),className:f.cInfiniteListPeriod,style:{color:w},children:x[t]},t))].concat(p.default(i[r])));var t}),[]);return[o].concat(p.default(s))}()}),l&&y.jsx("div",{"data-testid":"".concat("generic_infiniteList","_noItems"),className:f.cInfiniteListEmpty,children:c},"c-infinite-list__empty")]})}j.propTypes={infiniteClassName:q.default.string,useWindow:q.default.bool,headerComponent:q.default.node,items:q.default.arrayOf(q.default.shape()).isRequired,showNoItemsFound:q.default.bool.isRequired,noItemsFoundLabel:q.default.string.isRequired,infiniteContainerHeight:q.default.number,moreItemsMayExist:q.default.bool.isRequired,pathToCreatedAt:q.default.arrayOf(q.default.string).isRequired,renderItem:q.default.func.isRequired,loadItems:q.default.func.isRequired,threshold:q.default.number,initialLoad:q.default.bool,divideByPeriods:q.default.bool};var C=i.memo(j);module.exports=C;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/InfiniteList/index.js"],"sourcesContent":["import { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { get, set } from 'lodash';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport grey from '@material-ui/core/colors/grey';\n\nimport styles from './styles.css';\n\nimport LoadingIndicator from '~components/LoadingIndicator';\n\nconst PAGE_NAME = 'generic_infiniteList';\n\nconst grey700 = grey['700'];\n\nconst INTERVAL_6_HOURS = 6 * 60 * 60 * 1000;\nconst PERIOD_LABELS = {\n newerThan12Hours: 'Last 12 hours',\n olderThan12Hours: 'Last 24 hours',\n olderThan1Days: 'Earlier this week',\n olderThan7Days: 'Older than 7 days',\n olderThan14Days: 'Older than 14 days',\n olderThan30Days: 'Older than 30 days',\n};\n\n/** @extends {PureComponent<any, any, any>} */\nclass InfiniteList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n isLoadingByScroll: false,\n\n periodDates: this.periodDates,\n };\n\n this.updatePeriodsIntervalId = null;\n }\n\n componentDidMount() {\n this.updatePeriodsIntervalId = setInterval(\n () => this.setState({ periodDates: this.periodDates }),\n INTERVAL_6_HOURS\n );\n }\n\n componentWillUnmount() {\n if (this.updatePeriodsIntervalId) {\n clearInterval(this.updatePeriodsIntervalId);\n }\n }\n\n get periodDates() {\n return {\n hoursAgo12: moment().subtract(12, 'hours'),\n daysAgo1: moment().subtract(1, 'days'),\n daysAgo7: moment().subtract(7, 'days'),\n daysAgo14: moment().subtract(14, 'days'),\n daysAgo30: moment().subtract(30, 'days'),\n };\n }\n\n // NOTE: 'react-infinite-scroller' has a bug that when scroll reaches threshold area, it starts\n // to fire loadMore on every scroll event - bottom, up. As a result multiple same request fired.\n //\n // We fix this preventing request that was fired by scroll before previous is finished.\n //\n // Issues:\n // https://github.com/CassetteRocks/react-infinite-scroller/issues/143\n loadItems = async () => {\n if (this.state.isLoadingByScroll) {\n return;\n }\n\n this.setState({ isLoadingByScroll: true });\n\n await this.props.loadItems();\n\n this.setState({ isLoadingByScroll: false });\n };\n\n renderNoItemsLabel() {\n return (\n <div\n data-testid={`${PAGE_NAME}_noItems`}\n key=\"c-infinite-list__empty\"\n className={styles.cInfiniteListEmpty}\n >\n {this.props.noItemsFoundLabel}\n </div>\n );\n }\n\n renderPeriodSeparator(periodKey) {\n return (\n <div\n data-testid={`${PAGE_NAME}_periodLabel`}\n key={periodKey}\n className={styles.cInfiniteListPeriod}\n style={{ color: grey700 }}\n >\n {PERIOD_LABELS[periodKey]}\n </div>\n );\n }\n\n renderItems() {\n if (!this.props.divideByPeriods) {\n return this.props.items\n .map(item => this.props.renderItem(item))\n .unshift(this.props.headerComponent);\n }\n\n const { hoursAgo12, daysAgo1, daysAgo7, daysAgo14, daysAgo30 } = this.state.periodDates;\n\n const itemElsByPeriod = this.props.items.reduce(\n (result, item, index) => {\n let periodKey;\n const itemEl = this.props.renderItem(item, index);\n // NOTE: Backward compatibility for immutable objects in list\n const pathToCreatedAt = get(item, this.props.pathToCreatedAt);\n const itemAt = moment(pathToCreatedAt);\n\n if (itemAt >= hoursAgo12) {\n periodKey = 'newerThan12Hours';\n } else if (itemAt < hoursAgo12 && itemAt >= daysAgo1) {\n periodKey = 'olderThan12Hours';\n } else if (itemAt < daysAgo1 && itemAt >= daysAgo7) {\n periodKey = 'olderThan1Days';\n } else if (itemAt < daysAgo7 && itemAt >= daysAgo14) {\n periodKey = 'olderThan7Days';\n } else if (itemAt < daysAgo14 && itemAt >= daysAgo30) {\n periodKey = 'olderThan14Days';\n } else if (itemAt < daysAgo30) {\n periodKey = 'olderThan30Days';\n }\n\n return set(result, [periodKey, result[periodKey].length], itemEl);\n },\n {\n newerThan12Hours: [],\n olderThan12Hours: [],\n olderThan1Days: [],\n olderThan7Days: [],\n olderThan14Days: [],\n olderThan30Days: [],\n }\n );\n\n const itemElsWithPeriodEls = Object.keys(itemElsByPeriod).reduce((result, periodEls) => {\n if (itemElsByPeriod[periodEls].length === 0) return result.concat(itemElsByPeriod[periodEls]);\n\n return result.concat([this.renderPeriodSeparator(periodEls), ...itemElsByPeriod[periodEls]]);\n }, []);\n\n const itemElsWithPeriodElsWithHeaderEl = [this.props.headerComponent, ...itemElsWithPeriodEls];\n\n return itemElsWithPeriodElsWithHeaderEl;\n }\n\n render() {\n return (\n <div\n className={classNames(styles.cInfiniteList, this.props.infiniteClassName, {\n [styles.cInfiniteListOverflow]: !this.props.useWindow,\n })}\n style={{ height: this.props.infiniteContainerHeight }}\n >\n <InfiniteScroll\n loadMore={this.loadItems}\n hasMore={this.props.moreItemsMayExist && !this.props.showNoItemsFound}\n threshold={this.props.threshold} // NOTE: We should load infinite scroll next page before user get to bottom\n loader={<LoadingIndicator key=\"c-infinite-scroll__loader\" fullscreen={false} />}\n useWindow={this.props.useWindow}\n initialLoad={this.props.initialLoad}\n >\n {this.renderItems()}\n </InfiniteScroll>\n\n {this.props.showNoItemsFound && this.renderNoItemsLabel()}\n </div>\n );\n }\n}\n\nInfiniteList.propTypes = {\n infiniteClassName: PropTypes.string,\n useWindow: PropTypes.bool,\n headerComponent: PropTypes.node,\n // NOTE: Backward compatibility with immutable;\n // Remove when get rid of immutablejs\n items: PropTypes.arrayOf(PropTypes.shape()).isRequired,\n showNoItemsFound: PropTypes.bool.isRequired,\n noItemsFoundLabel: PropTypes.string.isRequired,\n infiniteContainerHeight: PropTypes.number,\n moreItemsMayExist: PropTypes.bool.isRequired,\n pathToCreatedAt: PropTypes.arrayOf(PropTypes.string).isRequired,\n renderItem: PropTypes.func.isRequired,\n loadItems: PropTypes.func.isRequired,\n threshold: PropTypes.number,\n initialLoad: PropTypes.bool,\n divideByPeriods: PropTypes.bool,\n};\n\nInfiniteList.defaultProps = {\n infiniteClassName: null,\n useWindow: false,\n headerComponent: null,\n infiniteContainerHeight: null,\n threshold: 3000,\n initialLoad: true,\n divideByPeriods: true,\n};\n\nexport default InfiniteList;\n"],"names":["grey700","grey","PERIOD_LABELS","newerThan12Hours","olderThan12Hours","olderThan1Days","olderThan7Days","olderThan14Days","olderThan30Days","InfiniteList","_PureComponent","_inherits","_super","_createSuper","props","_this","_classCallCheck","this","call","_defineProperty","_assertThisInitialized","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","state","isLoadingByScroll","abrupt","setState","loadItems","stop","periodDates","updatePeriodsIntervalId","_createClass","key","value","_this2","setInterval","clearInterval","get","hoursAgo12","moment","subtract","daysAgo1","daysAgo7","daysAgo14","daysAgo30","_jsx","concat","className","styles","cInfiniteListEmpty","children","noItemsFoundLabel","periodKey","cInfiniteListPeriod","style","color","_this3","divideByPeriods","items","map","item","renderItem","unshift","headerComponent","_this$state$periodDat","itemElsByPeriod","reduce","result","index","itemEl","pathToCreatedAt","itemAt","set","length","itemElsWithPeriodEls","Object","keys","periodEls","renderPeriodSeparator","_jsxs","classNames","cInfiniteList","infiniteClassName","cInfiniteListOverflow","useWindow","height","infiniteContainerHeight","InfiniteScroll","loadMore","hasMore","moreItemsMayExist","showNoItemsFound","threshold","loader","LoadingIndicator","fullscreen","initialLoad","renderItems","renderNoItemsLabel","PureComponent","propTypes","PropTypes","string","bool","node","arrayOf","shape","isRequired","number","func","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/InfiniteList/index.js"],"sourcesContent":["import { memo, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { get, set } from 'lodash';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport grey from '@material-ui/core/colors/grey';\n\nimport styles from './styles.css';\n\nimport LoadingIndicator from '~components/LoadingIndicator';\n\nconst PAGE_NAME = 'generic_infiniteList';\n\nconst grey700 = grey['700'];\n\nconst INTERVAL_6_HOURS = 6 * 60 * 60 * 1000;\nconst PERIOD_LABELS = {\n newerThan12Hours: 'Last 12 hours',\n olderThan12Hours: 'Last 24 hours',\n olderThan1Days: 'Earlier this week',\n olderThan7Days: 'Older than 7 days',\n olderThan14Days: 'Older than 14 days',\n olderThan30Days: 'Older than 30 days',\n};\n\nconst getPeriodDates = () => ({\n hoursAgo12: moment().subtract(12, 'hours'),\n daysAgo1: moment().subtract(1, 'days'),\n daysAgo7: moment().subtract(7, 'days'),\n daysAgo14: moment().subtract(14, 'days'),\n daysAgo30: moment().subtract(30, 'days'),\n});\n\n/** @param {any} props Preserve the legacy component's permissive public prop type. */\nfunction InfiniteList({\n infiniteClassName = null,\n useWindow = false,\n headerComponent = null,\n items,\n showNoItemsFound,\n noItemsFoundLabel,\n infiniteContainerHeight = null,\n moreItemsMayExist,\n pathToCreatedAt,\n renderItem,\n loadItems,\n threshold = 3000,\n initialLoad = true,\n divideByPeriods = true,\n}) {\n const [isLoadingByScroll, setIsLoadingByScroll] = useState(false);\n const [periodDates, setPeriodDates] = useState(getPeriodDates);\n\n useEffect(() => {\n const intervalId = setInterval(() => setPeriodDates(getPeriodDates()), INTERVAL_6_HOURS);\n return () => clearInterval(intervalId);\n }, []);\n\n // NOTE: 'react-infinite-scroller' has a bug that when scroll reaches threshold area, it starts\n // to fire loadMore on every scroll event - bottom, up. As a result multiple same request fired.\n //\n // We fix this preventing request that was fired by scroll before previous is finished.\n //\n // Issues:\n // https://github.com/CassetteRocks/react-infinite-scroller/issues/143\n const loadMore = async () => {\n if (isLoadingByScroll) {\n return;\n }\n\n setIsLoadingByScroll(true);\n\n await loadItems();\n\n setIsLoadingByScroll(false);\n };\n\n const renderNoItemsLabel = () => {\n return (\n <div\n data-testid={`${PAGE_NAME}_noItems`}\n key=\"c-infinite-list__empty\"\n className={styles.cInfiniteListEmpty}\n >\n {noItemsFoundLabel}\n </div>\n );\n };\n\n const renderPeriodSeparator = periodKey => {\n return (\n <div\n data-testid={`${PAGE_NAME}_periodLabel`}\n key={periodKey}\n className={styles.cInfiniteListPeriod}\n style={{ color: grey700 }}\n >\n {PERIOD_LABELS[periodKey]}\n </div>\n );\n };\n\n const renderItems = () => {\n if (!divideByPeriods) {\n return items.map(item => renderItem(item)).unshift(headerComponent);\n }\n\n const { hoursAgo12, daysAgo1, daysAgo7, daysAgo14, daysAgo30 } = periodDates;\n\n const itemElsByPeriod = items.reduce(\n (result, item, index) => {\n let periodKey;\n const itemEl = renderItem(item, index);\n // NOTE: Backward compatibility for immutable objects in list\n const itemCreatedAt = get(item, pathToCreatedAt);\n const itemAt = moment(itemCreatedAt);\n\n if (itemAt >= hoursAgo12) {\n periodKey = 'newerThan12Hours';\n } else if (itemAt < hoursAgo12 && itemAt >= daysAgo1) {\n periodKey = 'olderThan12Hours';\n } else if (itemAt < daysAgo1 && itemAt >= daysAgo7) {\n periodKey = 'olderThan1Days';\n } else if (itemAt < daysAgo7 && itemAt >= daysAgo14) {\n periodKey = 'olderThan7Days';\n } else if (itemAt < daysAgo14 && itemAt >= daysAgo30) {\n periodKey = 'olderThan14Days';\n } else if (itemAt < daysAgo30) {\n periodKey = 'olderThan30Days';\n }\n\n return set(result, [periodKey, result[periodKey].length], itemEl);\n },\n {\n newerThan12Hours: [],\n olderThan12Hours: [],\n olderThan1Days: [],\n olderThan7Days: [],\n olderThan14Days: [],\n olderThan30Days: [],\n }\n );\n\n const itemElsWithPeriodEls = Object.keys(itemElsByPeriod).reduce((result, periodEls) => {\n if (itemElsByPeriod[periodEls].length === 0) return result.concat(itemElsByPeriod[periodEls]);\n\n return result.concat([renderPeriodSeparator(periodEls), ...itemElsByPeriod[periodEls]]);\n }, []);\n\n const itemElsWithPeriodElsWithHeaderEl = [headerComponent, ...itemElsWithPeriodEls];\n\n return itemElsWithPeriodElsWithHeaderEl;\n };\n\n return (\n <div\n className={classNames(styles.cInfiniteList, infiniteClassName, {\n [styles.cInfiniteListOverflow]: !useWindow,\n })}\n style={{ height: infiniteContainerHeight }}\n >\n <InfiniteScroll\n loadMore={loadMore}\n hasMore={moreItemsMayExist && !showNoItemsFound}\n threshold={threshold} // NOTE: We should load infinite scroll next page before user get to bottom\n loader={<LoadingIndicator key=\"c-infinite-scroll__loader\" fullscreen={false} />}\n useWindow={useWindow}\n initialLoad={initialLoad}\n >\n {renderItems()}\n </InfiniteScroll>\n\n {showNoItemsFound && renderNoItemsLabel()}\n </div>\n );\n}\n\nInfiniteList.propTypes = {\n infiniteClassName: PropTypes.string,\n useWindow: PropTypes.bool,\n headerComponent: PropTypes.node,\n // NOTE: Backward compatibility with immutable;\n // Remove when get rid of immutablejs\n items: PropTypes.arrayOf(PropTypes.shape()).isRequired,\n showNoItemsFound: PropTypes.bool.isRequired,\n noItemsFoundLabel: PropTypes.string.isRequired,\n infiniteContainerHeight: PropTypes.number,\n moreItemsMayExist: PropTypes.bool.isRequired,\n pathToCreatedAt: PropTypes.arrayOf(PropTypes.string).isRequired,\n renderItem: PropTypes.func.isRequired,\n loadItems: PropTypes.func.isRequired,\n threshold: PropTypes.number,\n initialLoad: PropTypes.bool,\n divideByPeriods: PropTypes.bool,\n};\n\nexport default memo(InfiniteList);\n"],"names":["grey700","grey","PERIOD_LABELS","newerThan12Hours","olderThan12Hours","olderThan1Days","olderThan7Days","olderThan14Days","olderThan30Days","getPeriodDates","hoursAgo12","moment","subtract","daysAgo1","daysAgo7","daysAgo14","daysAgo30","InfiniteList","_ref","_ref$infiniteClassNam","infiniteClassName","_ref$useWindow","useWindow","_ref$headerComponent","headerComponent","items","showNoItemsFound","noItemsFoundLabel","_ref$infiniteContaine","infiniteContainerHeight","moreItemsMayExist","pathToCreatedAt","renderItem","loadItems","_ref$threshold","threshold","_ref$initialLoad","initialLoad","_ref$divideByPeriods","divideByPeriods","useState","_useState2","_slicedToArray","_useState","isLoadingByScroll","setIsLoadingByScroll","_useState4","_useState3","periodDates","setPeriodDates","useEffect","intervalId","setInterval","clearInterval","_ref2","loadMore","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","apply","this","arguments","_jsxs","className","classNames","styles","cInfiniteList","_defineProperty","cInfiniteListOverflow","style","height","children","_jsx","InfiniteScroll","hasMore","loader","LoadingIndicator","fullscreen","map","item","unshift","itemElsByPeriod","reduce","result","index","periodKey","itemEl","itemCreatedAt","get","itemAt","set","length","itemElsWithPeriodEls","Object","keys","periodEls","concat","cInfiniteListPeriod","color","_toConsumableArray","renderItems","cInfiniteListEmpty","propTypes","PropTypes","string","bool","node","arrayOf","shape","isRequired","number","func","memo"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InfiniteList.test.d.ts","sourceRoot":"","sources":["../../../../src/components/InfiniteList/__tests__/InfiniteList.test.js"],"names":[],"mappings":""}
|
|
@@ -1,61 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
declare class InfiniteList extends PureComponent<any, any, any> {
|
|
6
|
-
state: {
|
|
7
|
-
isLoadingByScroll: boolean;
|
|
8
|
-
periodDates: {
|
|
9
|
-
hoursAgo12: moment.Moment;
|
|
10
|
-
daysAgo1: moment.Moment;
|
|
11
|
-
daysAgo7: moment.Moment;
|
|
12
|
-
daysAgo14: moment.Moment;
|
|
13
|
-
daysAgo30: moment.Moment;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
updatePeriodsIntervalId: NodeJS.Timer | null;
|
|
17
|
-
constructor(props: any);
|
|
18
|
-
componentDidMount(): void;
|
|
19
|
-
componentWillUnmount(): void;
|
|
20
|
-
get periodDates(): {
|
|
21
|
-
hoursAgo12: moment.Moment;
|
|
22
|
-
daysAgo1: moment.Moment;
|
|
23
|
-
daysAgo7: moment.Moment;
|
|
24
|
-
daysAgo14: moment.Moment;
|
|
25
|
-
daysAgo30: moment.Moment;
|
|
26
|
-
};
|
|
27
|
-
loadItems: () => Promise<void>;
|
|
28
|
-
renderNoItemsLabel(): import("react").JSX.Element;
|
|
29
|
-
renderPeriodSeparator(periodKey: any): import("react").JSX.Element;
|
|
30
|
-
renderItems(): any;
|
|
31
|
-
render(): import("react").JSX.Element;
|
|
32
|
-
}
|
|
33
|
-
declare namespace InfiniteList {
|
|
34
|
-
var propTypes: {
|
|
35
|
-
infiniteClassName: PropTypes.Requireable<string>;
|
|
36
|
-
useWindow: PropTypes.Requireable<boolean>;
|
|
37
|
-
headerComponent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
38
|
-
items: PropTypes.Validator<(PropTypes.InferProps<PropTypes.ValidationMap<any>> | null | undefined)[]>;
|
|
39
|
-
showNoItemsFound: PropTypes.Validator<boolean>;
|
|
40
|
-
noItemsFoundLabel: PropTypes.Validator<string>;
|
|
41
|
-
infiniteContainerHeight: PropTypes.Requireable<number>;
|
|
42
|
-
moreItemsMayExist: PropTypes.Validator<boolean>;
|
|
43
|
-
pathToCreatedAt: PropTypes.Validator<(string | null | undefined)[]>;
|
|
44
|
-
renderItem: PropTypes.Validator<(...args: any[]) => any>;
|
|
45
|
-
loadItems: PropTypes.Validator<(...args: any[]) => any>;
|
|
46
|
-
threshold: PropTypes.Requireable<number>;
|
|
47
|
-
initialLoad: PropTypes.Requireable<boolean>;
|
|
48
|
-
divideByPeriods: PropTypes.Requireable<boolean>;
|
|
49
|
-
};
|
|
50
|
-
var defaultProps: {
|
|
51
|
-
infiniteClassName: null;
|
|
52
|
-
useWindow: boolean;
|
|
53
|
-
headerComponent: null;
|
|
54
|
-
infiniteContainerHeight: null;
|
|
55
|
-
threshold: number;
|
|
56
|
-
initialLoad: boolean;
|
|
57
|
-
divideByPeriods: boolean;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export default InfiniteList;
|
|
1
|
+
/** @param {any} props Preserve the legacy component's permissive public prop type. */
|
|
2
|
+
declare function InfiniteList({ infiniteClassName, useWindow, headerComponent, items, showNoItemsFound, noItemsFoundLabel, infiniteContainerHeight, moreItemsMayExist, pathToCreatedAt, renderItem, loadItems, threshold, initialLoad, divideByPeriods, }: any): import("react").JSX.Element;
|
|
3
|
+
declare const _default: import("react").MemoExoticComponent<typeof InfiniteList>;
|
|
4
|
+
export default _default;
|
|
61
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InfiniteList/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/InfiniteList/index.js"],"names":[],"mappings":"AAkCA,sFAAsF;AACtF,iBAAS,YAAY,CAAC,EACpB,iBAAwB,EACxB,SAAiB,EACjB,eAAsB,EACtB,KAAK,EACL,gBAAgB,EAChB,iBAAiB,EACjB,uBAA8B,EAC9B,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAgB,EAChB,WAAkB,EAClB,eAAsB,GACvB,EAhBW,GAgBX,+BA8HA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"@babel/runtime/helpers/
|
|
1
|
+
import e from"@babel/runtime/helpers/defineProperty";import r from"@babel/runtime/helpers/toConsumableArray";import o from"@babel/runtime/helpers/asyncToGenerator";import t from"@babel/runtime/helpers/slicedToArray";import n from"@babel/runtime/regenerator";import{memo as i,useState as a,useEffect as s}from"react";import d from"prop-types";import l from"moment";import u from"classnames";import{get as c,set as m}from"lodash";import h from"react-infinite-scroller";import f from"@material-ui/core/colors/grey";import y from"./styles.css.js";import p from"../LoadingIndicator/LoadingIndicator.js";import{jsxs as b,jsx as g}from"react/jsx-runtime";var v=f[700],T={newerThan12Hours:"Last 12 hours",olderThan12Hours:"Last 24 hours",olderThan1Days:"Earlier this week",olderThan7Days:"Older than 7 days",olderThan14Days:"Older than 14 days",olderThan30Days:"Older than 30 days"},I=function(){return{hoursAgo12:l().subtract(12,"hours"),daysAgo1:l().subtract(1,"days"),daysAgo7:l().subtract(7,"days"),daysAgo14:l().subtract(14,"days"),daysAgo30:l().subtract(30,"days")}};function L(i){var d=i.infiniteClassName,f=void 0===d?null:d,L=i.useWindow,A=void 0!==L&&L,w=i.headerComponent,D=void 0===w?null:w,C=i.items,H=i.showNoItemsFound,_=i.noItemsFoundLabel,q=i.infiniteContainerHeight,x=void 0===q?null:q,N=i.moreItemsMayExist,O=i.pathToCreatedAt,R=i.renderItem,j=i.loadItems,k=i.threshold,E=void 0===k?3e3:k,F=i.initialLoad,M=void 0===F||F,P=i.divideByPeriods,W=void 0===P||P,B=a(!1),G=t(B,2),z=G[0],J=G[1],K=a(I),Q=t(K,2),S=Q[0],U=Q[1];s((function(){var e=setInterval((function(){return U(I())}),216e5);return function(){return clearInterval(e)}}),[]);var V,X=(V=o(n.mark((function e(){return n.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!z){e.next=2;break}return e.abrupt("return");case 2:return J(!0),e.next=5,j();case 5:J(!1);case 6:case"end":return e.stop()}}),e)}))),function(){return V.apply(this,arguments)});return b("div",{className:u(y.cInfiniteList,f,e({},y.cInfiniteListOverflow,!A)),style:{height:x},children:[g(h,{loadMore:X,hasMore:N&&!H,threshold:E,loader:g(p,{fullscreen:!1},"c-infinite-scroll__loader"),useWindow:A,initialLoad:M,children:function(){if(!W)return C.map((function(e){return R(e)})).unshift(D);var e=S.hoursAgo12,o=S.daysAgo1,t=S.daysAgo7,n=S.daysAgo14,i=S.daysAgo30,a=C.reduce((function(r,a,s){var d,u=R(a,s),h=c(a,O),f=l(h);return f>=e?d="newerThan12Hours":f<e&&f>=o?d="olderThan12Hours":f<o&&f>=t?d="olderThan1Days":f<t&&f>=n?d="olderThan7Days":f<n&&f>=i?d="olderThan14Days":f<i&&(d="olderThan30Days"),m(r,[d,r[d].length],u)}),{newerThan12Hours:[],olderThan12Hours:[],olderThan1Days:[],olderThan7Days:[],olderThan14Days:[],olderThan30Days:[]}),s=Object.keys(a).reduce((function(e,o){return 0===a[o].length?e.concat(a[o]):e.concat([(t=o,g("div",{"data-testid":"".concat("generic_infiniteList","_periodLabel"),className:y.cInfiniteListPeriod,style:{color:v},children:T[t]},t))].concat(r(a[o])));var t}),[]);return[D].concat(r(s))}()}),H&&g("div",{"data-testid":"".concat("generic_infiniteList","_noItems"),className:y.cInfiniteListEmpty,children:_},"c-infinite-list__empty")]})}L.propTypes={infiniteClassName:d.string,useWindow:d.bool,headerComponent:d.node,items:d.arrayOf(d.shape()).isRequired,showNoItemsFound:d.bool.isRequired,noItemsFoundLabel:d.string.isRequired,infiniteContainerHeight:d.number,moreItemsMayExist:d.bool.isRequired,pathToCreatedAt:d.arrayOf(d.string).isRequired,renderItem:d.func.isRequired,loadItems:d.func.isRequired,threshold:d.number,initialLoad:d.bool,divideByPeriods:d.bool};var A=i(L);export{A as default};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/InfiniteList/index.js"],"sourcesContent":["import { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { get, set } from 'lodash';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport grey from '@material-ui/core/colors/grey';\n\nimport styles from './styles.css';\n\nimport LoadingIndicator from '~components/LoadingIndicator';\n\nconst PAGE_NAME = 'generic_infiniteList';\n\nconst grey700 = grey['700'];\n\nconst INTERVAL_6_HOURS = 6 * 60 * 60 * 1000;\nconst PERIOD_LABELS = {\n newerThan12Hours: 'Last 12 hours',\n olderThan12Hours: 'Last 24 hours',\n olderThan1Days: 'Earlier this week',\n olderThan7Days: 'Older than 7 days',\n olderThan14Days: 'Older than 14 days',\n olderThan30Days: 'Older than 30 days',\n};\n\n/** @extends {PureComponent<any, any, any>} */\nclass InfiniteList extends PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n isLoadingByScroll: false,\n\n periodDates: this.periodDates,\n };\n\n this.updatePeriodsIntervalId = null;\n }\n\n componentDidMount() {\n this.updatePeriodsIntervalId = setInterval(\n () => this.setState({ periodDates: this.periodDates }),\n INTERVAL_6_HOURS\n );\n }\n\n componentWillUnmount() {\n if (this.updatePeriodsIntervalId) {\n clearInterval(this.updatePeriodsIntervalId);\n }\n }\n\n get periodDates() {\n return {\n hoursAgo12: moment().subtract(12, 'hours'),\n daysAgo1: moment().subtract(1, 'days'),\n daysAgo7: moment().subtract(7, 'days'),\n daysAgo14: moment().subtract(14, 'days'),\n daysAgo30: moment().subtract(30, 'days'),\n };\n }\n\n // NOTE: 'react-infinite-scroller' has a bug that when scroll reaches threshold area, it starts\n // to fire loadMore on every scroll event - bottom, up. As a result multiple same request fired.\n //\n // We fix this preventing request that was fired by scroll before previous is finished.\n //\n // Issues:\n // https://github.com/CassetteRocks/react-infinite-scroller/issues/143\n loadItems = async () => {\n if (this.state.isLoadingByScroll) {\n return;\n }\n\n this.setState({ isLoadingByScroll: true });\n\n await this.props.loadItems();\n\n this.setState({ isLoadingByScroll: false });\n };\n\n renderNoItemsLabel() {\n return (\n <div\n data-testid={`${PAGE_NAME}_noItems`}\n key=\"c-infinite-list__empty\"\n className={styles.cInfiniteListEmpty}\n >\n {this.props.noItemsFoundLabel}\n </div>\n );\n }\n\n renderPeriodSeparator(periodKey) {\n return (\n <div\n data-testid={`${PAGE_NAME}_periodLabel`}\n key={periodKey}\n className={styles.cInfiniteListPeriod}\n style={{ color: grey700 }}\n >\n {PERIOD_LABELS[periodKey]}\n </div>\n );\n }\n\n renderItems() {\n if (!this.props.divideByPeriods) {\n return this.props.items\n .map(item => this.props.renderItem(item))\n .unshift(this.props.headerComponent);\n }\n\n const { hoursAgo12, daysAgo1, daysAgo7, daysAgo14, daysAgo30 } = this.state.periodDates;\n\n const itemElsByPeriod = this.props.items.reduce(\n (result, item, index) => {\n let periodKey;\n const itemEl = this.props.renderItem(item, index);\n // NOTE: Backward compatibility for immutable objects in list\n const pathToCreatedAt = get(item, this.props.pathToCreatedAt);\n const itemAt = moment(pathToCreatedAt);\n\n if (itemAt >= hoursAgo12) {\n periodKey = 'newerThan12Hours';\n } else if (itemAt < hoursAgo12 && itemAt >= daysAgo1) {\n periodKey = 'olderThan12Hours';\n } else if (itemAt < daysAgo1 && itemAt >= daysAgo7) {\n periodKey = 'olderThan1Days';\n } else if (itemAt < daysAgo7 && itemAt >= daysAgo14) {\n periodKey = 'olderThan7Days';\n } else if (itemAt < daysAgo14 && itemAt >= daysAgo30) {\n periodKey = 'olderThan14Days';\n } else if (itemAt < daysAgo30) {\n periodKey = 'olderThan30Days';\n }\n\n return set(result, [periodKey, result[periodKey].length], itemEl);\n },\n {\n newerThan12Hours: [],\n olderThan12Hours: [],\n olderThan1Days: [],\n olderThan7Days: [],\n olderThan14Days: [],\n olderThan30Days: [],\n }\n );\n\n const itemElsWithPeriodEls = Object.keys(itemElsByPeriod).reduce((result, periodEls) => {\n if (itemElsByPeriod[periodEls].length === 0) return result.concat(itemElsByPeriod[periodEls]);\n\n return result.concat([this.renderPeriodSeparator(periodEls), ...itemElsByPeriod[periodEls]]);\n }, []);\n\n const itemElsWithPeriodElsWithHeaderEl = [this.props.headerComponent, ...itemElsWithPeriodEls];\n\n return itemElsWithPeriodElsWithHeaderEl;\n }\n\n render() {\n return (\n <div\n className={classNames(styles.cInfiniteList, this.props.infiniteClassName, {\n [styles.cInfiniteListOverflow]: !this.props.useWindow,\n })}\n style={{ height: this.props.infiniteContainerHeight }}\n >\n <InfiniteScroll\n loadMore={this.loadItems}\n hasMore={this.props.moreItemsMayExist && !this.props.showNoItemsFound}\n threshold={this.props.threshold} // NOTE: We should load infinite scroll next page before user get to bottom\n loader={<LoadingIndicator key=\"c-infinite-scroll__loader\" fullscreen={false} />}\n useWindow={this.props.useWindow}\n initialLoad={this.props.initialLoad}\n >\n {this.renderItems()}\n </InfiniteScroll>\n\n {this.props.showNoItemsFound && this.renderNoItemsLabel()}\n </div>\n );\n }\n}\n\nInfiniteList.propTypes = {\n infiniteClassName: PropTypes.string,\n useWindow: PropTypes.bool,\n headerComponent: PropTypes.node,\n // NOTE: Backward compatibility with immutable;\n // Remove when get rid of immutablejs\n items: PropTypes.arrayOf(PropTypes.shape()).isRequired,\n showNoItemsFound: PropTypes.bool.isRequired,\n noItemsFoundLabel: PropTypes.string.isRequired,\n infiniteContainerHeight: PropTypes.number,\n moreItemsMayExist: PropTypes.bool.isRequired,\n pathToCreatedAt: PropTypes.arrayOf(PropTypes.string).isRequired,\n renderItem: PropTypes.func.isRequired,\n loadItems: PropTypes.func.isRequired,\n threshold: PropTypes.number,\n initialLoad: PropTypes.bool,\n divideByPeriods: PropTypes.bool,\n};\n\nInfiniteList.defaultProps = {\n infiniteClassName: null,\n useWindow: false,\n headerComponent: null,\n infiniteContainerHeight: null,\n threshold: 3000,\n initialLoad: true,\n divideByPeriods: true,\n};\n\nexport default InfiniteList;\n"],"names":["grey700","grey","PERIOD_LABELS","newerThan12Hours","olderThan12Hours","olderThan1Days","olderThan7Days","olderThan14Days","olderThan30Days","InfiniteList","_PureComponent","_inherits","PureComponent","_super","_createSuper","props","_this","_classCallCheck","this","call","_defineProperty","_assertThisInitialized","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","state","isLoadingByScroll","abrupt","setState","loadItems","stop","periodDates","updatePeriodsIntervalId","_createClass","key","value","_this2","setInterval","clearInterval","get","hoursAgo12","moment","subtract","daysAgo1","daysAgo7","daysAgo14","daysAgo30","_jsx","concat","className","styles","cInfiniteListEmpty","children","noItemsFoundLabel","periodKey","cInfiniteListPeriod","style","color","_this3","divideByPeriods","items","map","item","renderItem","unshift","headerComponent","_this$state$periodDat","itemElsByPeriod","reduce","result","index","itemEl","pathToCreatedAt","itemAt","set","length","itemElsWithPeriodEls","Object","keys","periodEls","renderPeriodSeparator","_jsxs","classNames","cInfiniteList","infiniteClassName","cInfiniteListOverflow","useWindow","height","infiniteContainerHeight","InfiniteScroll","loadMore","hasMore","moreItemsMayExist","showNoItemsFound","threshold","loader","LoadingIndicator","fullscreen","initialLoad","renderItems","renderNoItemsLabel","propTypes","PropTypes","string","bool","node","arrayOf","shape","isRequired","number","func","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/InfiniteList/index.js"],"sourcesContent":["import { memo, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { get, set } from 'lodash';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport grey from '@material-ui/core/colors/grey';\n\nimport styles from './styles.css';\n\nimport LoadingIndicator from '~components/LoadingIndicator';\n\nconst PAGE_NAME = 'generic_infiniteList';\n\nconst grey700 = grey['700'];\n\nconst INTERVAL_6_HOURS = 6 * 60 * 60 * 1000;\nconst PERIOD_LABELS = {\n newerThan12Hours: 'Last 12 hours',\n olderThan12Hours: 'Last 24 hours',\n olderThan1Days: 'Earlier this week',\n olderThan7Days: 'Older than 7 days',\n olderThan14Days: 'Older than 14 days',\n olderThan30Days: 'Older than 30 days',\n};\n\nconst getPeriodDates = () => ({\n hoursAgo12: moment().subtract(12, 'hours'),\n daysAgo1: moment().subtract(1, 'days'),\n daysAgo7: moment().subtract(7, 'days'),\n daysAgo14: moment().subtract(14, 'days'),\n daysAgo30: moment().subtract(30, 'days'),\n});\n\n/** @param {any} props Preserve the legacy component's permissive public prop type. */\nfunction InfiniteList({\n infiniteClassName = null,\n useWindow = false,\n headerComponent = null,\n items,\n showNoItemsFound,\n noItemsFoundLabel,\n infiniteContainerHeight = null,\n moreItemsMayExist,\n pathToCreatedAt,\n renderItem,\n loadItems,\n threshold = 3000,\n initialLoad = true,\n divideByPeriods = true,\n}) {\n const [isLoadingByScroll, setIsLoadingByScroll] = useState(false);\n const [periodDates, setPeriodDates] = useState(getPeriodDates);\n\n useEffect(() => {\n const intervalId = setInterval(() => setPeriodDates(getPeriodDates()), INTERVAL_6_HOURS);\n return () => clearInterval(intervalId);\n }, []);\n\n // NOTE: 'react-infinite-scroller' has a bug that when scroll reaches threshold area, it starts\n // to fire loadMore on every scroll event - bottom, up. As a result multiple same request fired.\n //\n // We fix this preventing request that was fired by scroll before previous is finished.\n //\n // Issues:\n // https://github.com/CassetteRocks/react-infinite-scroller/issues/143\n const loadMore = async () => {\n if (isLoadingByScroll) {\n return;\n }\n\n setIsLoadingByScroll(true);\n\n await loadItems();\n\n setIsLoadingByScroll(false);\n };\n\n const renderNoItemsLabel = () => {\n return (\n <div\n data-testid={`${PAGE_NAME}_noItems`}\n key=\"c-infinite-list__empty\"\n className={styles.cInfiniteListEmpty}\n >\n {noItemsFoundLabel}\n </div>\n );\n };\n\n const renderPeriodSeparator = periodKey => {\n return (\n <div\n data-testid={`${PAGE_NAME}_periodLabel`}\n key={periodKey}\n className={styles.cInfiniteListPeriod}\n style={{ color: grey700 }}\n >\n {PERIOD_LABELS[periodKey]}\n </div>\n );\n };\n\n const renderItems = () => {\n if (!divideByPeriods) {\n return items.map(item => renderItem(item)).unshift(headerComponent);\n }\n\n const { hoursAgo12, daysAgo1, daysAgo7, daysAgo14, daysAgo30 } = periodDates;\n\n const itemElsByPeriod = items.reduce(\n (result, item, index) => {\n let periodKey;\n const itemEl = renderItem(item, index);\n // NOTE: Backward compatibility for immutable objects in list\n const itemCreatedAt = get(item, pathToCreatedAt);\n const itemAt = moment(itemCreatedAt);\n\n if (itemAt >= hoursAgo12) {\n periodKey = 'newerThan12Hours';\n } else if (itemAt < hoursAgo12 && itemAt >= daysAgo1) {\n periodKey = 'olderThan12Hours';\n } else if (itemAt < daysAgo1 && itemAt >= daysAgo7) {\n periodKey = 'olderThan1Days';\n } else if (itemAt < daysAgo7 && itemAt >= daysAgo14) {\n periodKey = 'olderThan7Days';\n } else if (itemAt < daysAgo14 && itemAt >= daysAgo30) {\n periodKey = 'olderThan14Days';\n } else if (itemAt < daysAgo30) {\n periodKey = 'olderThan30Days';\n }\n\n return set(result, [periodKey, result[periodKey].length], itemEl);\n },\n {\n newerThan12Hours: [],\n olderThan12Hours: [],\n olderThan1Days: [],\n olderThan7Days: [],\n olderThan14Days: [],\n olderThan30Days: [],\n }\n );\n\n const itemElsWithPeriodEls = Object.keys(itemElsByPeriod).reduce((result, periodEls) => {\n if (itemElsByPeriod[periodEls].length === 0) return result.concat(itemElsByPeriod[periodEls]);\n\n return result.concat([renderPeriodSeparator(periodEls), ...itemElsByPeriod[periodEls]]);\n }, []);\n\n const itemElsWithPeriodElsWithHeaderEl = [headerComponent, ...itemElsWithPeriodEls];\n\n return itemElsWithPeriodElsWithHeaderEl;\n };\n\n return (\n <div\n className={classNames(styles.cInfiniteList, infiniteClassName, {\n [styles.cInfiniteListOverflow]: !useWindow,\n })}\n style={{ height: infiniteContainerHeight }}\n >\n <InfiniteScroll\n loadMore={loadMore}\n hasMore={moreItemsMayExist && !showNoItemsFound}\n threshold={threshold} // NOTE: We should load infinite scroll next page before user get to bottom\n loader={<LoadingIndicator key=\"c-infinite-scroll__loader\" fullscreen={false} />}\n useWindow={useWindow}\n initialLoad={initialLoad}\n >\n {renderItems()}\n </InfiniteScroll>\n\n {showNoItemsFound && renderNoItemsLabel()}\n </div>\n );\n}\n\nInfiniteList.propTypes = {\n infiniteClassName: PropTypes.string,\n useWindow: PropTypes.bool,\n headerComponent: PropTypes.node,\n // NOTE: Backward compatibility with immutable;\n // Remove when get rid of immutablejs\n items: PropTypes.arrayOf(PropTypes.shape()).isRequired,\n showNoItemsFound: PropTypes.bool.isRequired,\n noItemsFoundLabel: PropTypes.string.isRequired,\n infiniteContainerHeight: PropTypes.number,\n moreItemsMayExist: PropTypes.bool.isRequired,\n pathToCreatedAt: PropTypes.arrayOf(PropTypes.string).isRequired,\n renderItem: PropTypes.func.isRequired,\n loadItems: PropTypes.func.isRequired,\n threshold: PropTypes.number,\n initialLoad: PropTypes.bool,\n divideByPeriods: PropTypes.bool,\n};\n\nexport default memo(InfiniteList);\n"],"names":["grey700","grey","PERIOD_LABELS","newerThan12Hours","olderThan12Hours","olderThan1Days","olderThan7Days","olderThan14Days","olderThan30Days","getPeriodDates","hoursAgo12","moment","subtract","daysAgo1","daysAgo7","daysAgo14","daysAgo30","InfiniteList","_ref","_ref$infiniteClassNam","infiniteClassName","_ref$useWindow","useWindow","_ref$headerComponent","headerComponent","items","showNoItemsFound","noItemsFoundLabel","_ref$infiniteContaine","infiniteContainerHeight","moreItemsMayExist","pathToCreatedAt","renderItem","loadItems","_ref$threshold","threshold","_ref$initialLoad","initialLoad","_ref$divideByPeriods","divideByPeriods","useState","_useState2","_slicedToArray","_useState","isLoadingByScroll","setIsLoadingByScroll","_useState4","_useState3","periodDates","setPeriodDates","useEffect","intervalId","setInterval","clearInterval","_ref2","loadMore","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","stop","apply","this","arguments","_jsxs","className","classNames","styles","cInfiniteList","_defineProperty","cInfiniteListOverflow","style","height","children","_jsx","InfiniteScroll","hasMore","loader","LoadingIndicator","fullscreen","map","item","unshift","itemElsByPeriod","reduce","result","index","periodKey","itemEl","itemCreatedAt","get","itemAt","set","length","itemElsWithPeriodEls","Object","keys","periodEls","concat","cInfiniteListPeriod","color","_toConsumableArray","renderItems","cInfiniteListEmpty","propTypes","PropTypes","string","bool","node","arrayOf","shape","isRequired","number","func","memo"],"mappings":"woBAYA,IAEMA,EAAUC,EAAK,KAGfC,EAAgB,CACpBC,iBAAkB,gBAClBC,iBAAkB,gBAClBC,eAAgB,oBAChBC,eAAgB,oBAChBC,gBAAiB,qBACjBC,gBAAiB,sBAGbC,EAAiB,WAAH,MAAU,CAC5BC,WAAYC,IAASC,SAAS,GAAI,SAClCC,SAAUF,IAASC,SAAS,EAAG,QAC/BE,SAAUH,IAASC,SAAS,EAAG,QAC/BG,UAAWJ,IAASC,SAAS,GAAI,QACjCI,UAAWL,IAASC,SAAS,GAAI,QAClC,EAGD,SAASK,EAeNC,GAAA,IAAAC,EAAAD,EAdDE,kBAAAA,aAAoB,KAAID,EAAAE,EAAAH,EACxBI,UAAAA,cAAiBD,EAAAE,EAAAL,EACjBM,gBAAAA,aAAkB,KAAID,EACtBE,IAAAA,MACAC,IAAAA,iBACAC,IAAAA,kBAAiBC,EAAAV,EACjBW,wBAAAA,aAA0B,KAAID,EAC9BE,IAAAA,kBACAC,IAAAA,gBACAC,IAAAA,WACAC,IAAAA,UAASC,EAAAhB,EACTiB,UAAAA,aAAY,IAAID,EAAAE,EAAAlB,EAChBmB,YAAAA,cAAkBD,EAAAE,EAAApB,EAClBqB,gBAAAA,cAAsBD,EAE4BE,EAAAA,GAAS,GAAMC,EAAAC,EAAAC,EAAA,GAA1DC,EAAiBH,EAAA,GAAEI,EAAoBJ,EAAA,GACRD,EAAAA,EAAS/B,GAAeqC,EAAAJ,EAAAK,EAAA,GAAvDC,EAAWF,EAAA,GAAEG,EAAcH,EAAA,GAElCI,GAAU,WACR,IAAMC,EAAaC,aAAY,WAAA,OAAMH,EAAexC,IAAiB,GAvChD,OAwCrB,OAAO,WAAA,OAAM4C,cAAcF,EAAW,CACvC,GAAE,IASH,IAAiBG,EAAXC,GAAWD,EAAAE,EAAAC,EAAAC,MAAA,SAAAC,IAAA,OAAAF,EAAAG,MAAA,SAAAC,GAAA,OAAA,OAAAA,EAAAC,KAAAD,EAAAE,MAAA,KAAA,EAAA,IACXnB,EAAiB,CAAAiB,EAAAE,KAAA,EAAA,KAAA,CAAA,OAAAF,EAAAG,OAAA,UAAA,KAAA,EAIM,OAA3BnB,GAAqB,GAAMgB,EAAAE,KAAA,EAErB9B,IAAW,KAAA,EAEjBY,GAAqB,GAAO,KAAA,EAAA,IAAA,MAAA,OAAAgB,EAAAI,OAAA,GAAAN,EAC7B,KAAA,WAVa,OAAAL,EAAAY,MAAAC,KAAAC,UAAA,GAyFd,OACEC,EAAA,MAAA,CACEC,UAAWC,EAAWC,EAAOC,cAAerD,EAAiBsD,EAAA,CAAA,EAC1DF,EAAOG,uBAAyBrD,IAEnCsD,MAAO,CAAEC,OAAQhD,GAA0BiD,SAAA,CAE3CC,EAACC,EAAc,CACbzB,SAAUA,EACV0B,QAASnD,IAAsBJ,EAC/BS,UAAWA,EACX+C,OAAQH,EAACI,EAAgB,CAAiCC,YAAY,GAAxC,6BAC9B9D,UAAWA,EACXe,YAAaA,EAAYyC,SAjEX,WAClB,IAAKvC,EACH,OAAOd,EAAM4D,KAAI,SAAAC,GAAI,OAAItD,EAAWsD,EAAK,IAAEC,QAAQ/D,GAGrD,IAAQd,EAAyDsC,EAAzDtC,WAAYG,EAA6CmC,EAA7CnC,SAAUC,EAAmCkC,EAAnClC,SAAUC,EAAyBiC,EAAzBjC,UAAWC,EAAcgC,EAAdhC,UAE7CwE,EAAkB/D,EAAMgE,QAC5B,SAACC,EAAQJ,EAAMK,GACb,IAAIC,EACEC,EAAS7D,EAAWsD,EAAMK,GAE1BG,EAAgBC,EAAIT,EAAMvD,GAC1BiE,EAASrF,EAAOmF,GAgBtB,OAdIE,GAAUtF,EACZkF,EAAY,mBACHI,EAAStF,GAAcsF,GAAUnF,EAC1C+E,EAAY,mBACHI,EAASnF,GAAYmF,GAAUlF,EACxC8E,EAAY,iBACHI,EAASlF,GAAYkF,GAAUjF,EACxC6E,EAAY,iBACHI,EAASjF,GAAaiF,GAAUhF,EACzC4E,EAAY,kBACHI,EAAShF,IAClB4E,EAAY,mBAGPK,EAAIP,EAAQ,CAACE,EAAWF,EAAOE,GAAWM,QAASL,EAC5D,GACA,CACE1F,iBAAkB,GAClBC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBC,gBAAiB,GACjBC,gBAAiB,KAIf2F,EAAuBC,OAAOC,KAAKb,GAAiBC,QAAO,SAACC,EAAQY,GACxE,OAA0C,IAAtCd,EAAgBc,GAAWJ,OAAqBR,EAAOa,OAAOf,EAAgBc,IAE3EZ,EAAOa,OAAM,EAzDMX,EAyDkBU,EAvD5CvB,EAAA,MAAA,CACE,cAAA,GAAAwB,OAjFU,uBAiF8B,gBAExCjC,UAAWE,EAAOgC,oBAClB5B,MAAO,CAAE6B,MAAOzG,GAAU8E,SAEzB5E,EAAc0F,IAJVA,KAqDoDJ,OAAAA,EAAAA,EAAgBc,MAzDjD,IAAAV,CA0D3B,GAAE,IAIH,MAFsC,CAAIpE,GAAe+E,OAAAG,EAAKP,IAoBzDQ,KAGFjF,GA7FDqD,EAAA,MAAA,CACE,cAAA,GAAAwB,OArEU,uBAqE0B,YAEpCjC,UAAWE,EAAOoC,mBAAmB9B,SAEpCnD,GAHG,4BA8FZ,CAEAV,EAAa4F,UAAY,CACvBzF,kBAAmB0F,EAAUC,OAC7BzF,UAAWwF,EAAUE,KACrBxF,gBAAiBsF,EAAUG,KAG3BxF,MAAOqF,EAAUI,QAAQJ,EAAUK,SAASC,WAC5C1F,iBAAkBoF,EAAUE,KAAKI,WACjCzF,kBAAmBmF,EAAUC,OAAOK,WACpCvF,wBAAyBiF,EAAUO,OACnCvF,kBAAmBgF,EAAUE,KAAKI,WAClCrF,gBAAiB+E,EAAUI,QAAQJ,EAAUC,QAAQK,WACrDpF,WAAY8E,EAAUQ,KAAKF,WAC3BnF,UAAW6E,EAAUQ,KAAKF,WAC1BjF,UAAW2E,EAAUO,OACrBhF,YAAayE,EAAUE,KACvBzE,gBAAiBuE,EAAUE,MAG7B,IAAeO,EAAAA,EAAKtG"}
|
package/mcp-server/server.mjs
CHANGED