@bigbinary/neeto-molecules 3.7.14 → 3.7.16
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/CalendarView.js +19 -6
- package/dist/CalendarView.js.map +1 -1
- package/dist/Insights.js +4 -1
- package/dist/Insights.js.map +1 -1
- package/dist/Schedule.js +38 -26
- package/dist/Schedule.js.map +1 -1
- package/dist/cjs/CalendarView.js +18 -5
- package/dist/cjs/CalendarView.js.map +1 -1
- package/dist/cjs/Insights.js +3 -0
- package/dist/cjs/Insights.js.map +1 -1
- package/dist/cjs/Schedule.js +39 -28
- package/dist/cjs/Schedule.js.map +1 -1
- package/package.json +1 -1
- package/types/CalendarView.d.ts +1 -0
- package/types/Schedule.d.ts +1 -0
package/dist/cjs/Insights.js
CHANGED
|
@@ -229,6 +229,7 @@ var MetricItem = function MetricItem(_ref) {
|
|
|
229
229
|
};
|
|
230
230
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
231
231
|
className: "nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4",
|
|
232
|
+
"data-cy": "".concat(neetoCist.hyphenate(metric), "-metric"),
|
|
232
233
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
233
234
|
className: "flex items-center gap-2",
|
|
234
235
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -284,6 +285,7 @@ var Insights = function Insights(_ref) {
|
|
|
284
285
|
}
|
|
285
286
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
286
287
|
className: classnames__default["default"]("mx-auto pt-10", className),
|
|
288
|
+
"data-cy": "insights",
|
|
287
289
|
"data-testid": "insights",
|
|
288
290
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
289
291
|
className: "mb-10 flex w-full items-center",
|
|
@@ -299,6 +301,7 @@ var Insights = function Insights(_ref) {
|
|
|
299
301
|
className: "ml-3",
|
|
300
302
|
children: /*#__PURE__*/jsxRuntime.jsx(Warning__default["default"], {
|
|
301
303
|
className: "neeto-ui-text-warning-500",
|
|
304
|
+
"data-cy": "insights-warning",
|
|
302
305
|
"data-testid": "insights-warning",
|
|
303
306
|
size: 20
|
|
304
307
|
})
|
package/dist/cjs/Insights.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Insights.js","sources":["../../src/components/Insights/constants.js","../../src/components/Insights/MetaInfo/PercentageBar.jsx","../../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../../src/components/Insights/MetaInfo/DataDistribution.jsx","../../src/components/Insights/utils.js","../../src/components/Insights/MetaInfo/index.jsx","../../src/components/Insights/TimeItem.jsx","../../src/components/Insights/MetricItem.jsx","../../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value !== 0 && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value ? `${value}%` : 0}</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-2\"\n style=\"body2\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-end gap-x-1\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"insights-count\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body3\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import classNames from \"classnames\";\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n className,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"mx-auto pt-10\", className)}\n data-testid=\"insights\"\n >\n <div className=\"mb-10 flex w-full items-center\">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n /**\n * To provide additional classes.\n */\n className: PropTypes.string,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","_jsxs","_Fragment","children","_jsx","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","_createElement","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","Spinner","classNames","touch","Warning","size","DateRangeFilter","timeSuffix"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,eAAe,GAAG,CAC7B;AACEC,EAAAA,KAAK,EAAEC,SAAC,CAAC,gDAAgD,CAAC;AAC1DC,EAAAA,KAAK,EAAE,SAAA;AACT,CAAC,EACD;AACEF,EAAAA,KAAK,EAAEC,SAAC,CAAC,+CAA+C,CAAC;AACzDC,EAAAA,KAAK,EAAE,YAAA;AACT,CAAC,CACF,CAAA;AAEM,IAAMC,UAAU,GAAG,CACxB;AAAEH,EAAAA,KAAK,EAAEC,SAAC,CAAC,yCAAyC,CAAC;AAAEC,EAAAA,KAAK,EAAE,KAAA;AAAM,CAAC,EACrE;AACEF,EAAAA,KAAK,EAAEC,SAAC,CAAC,2CAA2C,CAAC;AACrDC,EAAAA,KAAK,EAAE,SAAA;AACT,CAAC,CACF,CAAA;AAEM,IAAME,gBAAgB,GAAG,CAC9B;AACEJ,EAAAA,KAAK,EAAEC,SAAC,CAAC,gDAAgD,CAAC;AAC1DC,EAAAA,KAAK,EAAE,QAAA;AACT,CAAC,EACD;AACEF,EAAAA,KAAK,EAAEC,SAAC,CAAC,gDAAgD,CAAC;AAC1DC,EAAAA,KAAK,EAAE,QAAA;AACT,CAAC,CACF,CAAA;CAEwC;AACvCF,EAAAA,KAAK,EAAEC,SAAC,CAAC,wCAAwC,CAAC;AAClDC,EAAAA,KAAK,EAAE;AAAEG,IAAAA,SAAS,EAAE,IAAI;AAAEC,IAAAA,OAAO,EAAE,IAAI;AAAEC,IAAAA,SAAS,EAAE,KAAA;AAAM,GAAA;AAC5D;;AC/BA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMP,KAAK,GAAAO,IAAA,CAALP,KAAK,CAAA;EAAA,oBAC5BQ,eAAA,CAAAC,mBAAA,EAAA;AAAAC,IAAAA,QAAA,EACGV,CAAAA,KAAK,KAAK,CAAC,iBACVW,cAAA,CAAA,KAAA,EAAA;AACEC,MAAAA,SAAS,EAAC,gDAAgD;AAC1DC,MAAAA,KAAK,EAAE;QAAEC,KAAK,EAAA,EAAA,CAAAC,MAAA,CAAKf,KAAK,EAAA,GAAA,CAAA;AAAI,OAAA;AAAE,KAC/B,CACF,eACDW,cAAA,CAACK,8BAAU,EAAA;AAACH,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAAEV,KAAK,GAAA,EAAA,CAAAe,MAAA,CAAMf,KAAK,EAAM,GAAA,CAAA,GAAA,CAAA;AAAC,KAAa,CAAC,CAAA;AAAA,GAChE,CAAC,CAAA;AAAA,CACJ,CAAA;AAED,sBAAeiB,aAAAA,UAAI,CAACX,aAAa,CAAC;;ACVlC,IAAMY,YAAY,GAAG,SAAfA,YAAYA,CAAAX,IAAA,EAAA;AAAA,EAAA,IAAMY,IAAI,GAAAZ,IAAA,CAAJY,IAAI;IAAEnB,KAAK,GAAAO,IAAA,CAALP,KAAK,CAAA;EAAA,oBACjCQ,eAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,EAAA,cACEC,cAAA,CAACK,8BAAU,EAAA;AAACH,MAAAA,KAAK,EAAC,OAAO;AAACO,MAAAA,aAAa,EAAC,YAAY;AAAAV,MAAAA,QAAA,EACjDS,IAAAA;KACS,CAAC,eACbR,cAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,oCAAoC;MAAAF,QAAA,eACjDC,cAAA,CAACL,eAAa,EAAA;AAAON,QAAAA,KAAK,EAALA,KAAAA;OAAU,CAAA;AAAC,KAC7B,CAAC,CAAA;AAAA,GACN,CAAC,CAAA;AAAA,CACJ,CAAA;AAED,qBAAeiB,aAAAA,UAAI,CAACC,YAAY,CAAC;;ACfjC,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAd,IAAA,EAAA;AAAA,EAAA,IAAMe,IAAI,GAAAf,IAAA,CAAJe,IAAI,CAAA;AAAA,EAAA,oBAC9BX,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wBAAwB;AAAAF,IAAAA,QAAA,EACpCY,IAAI,CAACC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAGL,IAAI,GAAAK,KAAA,CAAJL,IAAI;QAAEnB,KAAK,GAAAwB,KAAA,CAALxB,KAAK,CAAA;MAAA,oBACtByB,mBAAA,CAACP,cAAY,EAAA;AAAOC,QAAAA,IAAI,EAAJA,IAAI;AAAEnB,QAAAA,KAAK,EAALA,KAAK;AAAI0B,QAAAA,GAAG,EAAEP,IAAAA;AAAK,OAAE,CAAC,CAAA;KACjD,CAAA;AAAC,GACC,CAAC,CAAA;AAAA,CACP;;ACND,IAAMQ,MAAM,GAAG,SAATA,MAAMA,CAAIL,IAAI,EAAEM,SAAS,EAAK;EAClC,IAAIC,GAAG,GAAG,CAAC,CAAA;AACX,EAAA,KAAK,IAAMH,GAAG,IAAIJ,IAAI,EAAE;AACtB,IAAA,IAAII,GAAG,CAACI,QAAQ,CAACF,SAAS,CAAC,EAAEC,GAAG,IAAIP,IAAI,CAACI,GAAG,CAAC,CAAA;AAC/C,GAAA;AAEA,EAAA,OAAOG,GAAG,CAAA;AACZ,CAAC,CAAA;AAEM,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIT,IAAI,EAAEU,YAAY,EAAK;AACvD,EAAA,IAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACb,IAAI,CAAC,CACjCc,MAAM,CAAC,UAAAV,GAAG,EAAA;IAAA,OAAI,CAACW,kBAAQ,CAAC;AAAErC,MAAAA,KAAK,EAAE0B,GAAAA;KAAK,EAAEM,YAAY,CAAC,CAAA;AAAA,GAAA,CAAC,CACtDT,GAAG,CAAC,UAAAG,GAAG,EAAA;IAAA,OAAK;AAAEP,MAAAA,IAAI,EAAEO,GAAG;MAAE1B,KAAK,EAAEsB,IAAI,CAACI,GAAG,CAAA;KAAG,CAAA;AAAA,GAAC,CAAC,CAAA;AAEhD,EAAA,IAAMY,WAAW,GAAGN,YAAY,CAACT,GAAG,CAAC,UAAAhB,IAAA,EAAA;AAAA,IAAA,IAAGT,KAAK,GAAAS,IAAA,CAALT,KAAK;MAAEE,KAAK,GAAAO,IAAA,CAALP,KAAK,CAAA;IAAA,OAAQ;AAC1DmB,MAAAA,IAAI,EAAErB,KAAK;AACXE,MAAAA,KAAK,EAAE2B,MAAM,CAACL,IAAI,EAAEtB,KAAK,CAAC,IAAI,CAAA;KAC/B,CAAA;AAAA,GAAC,CAAC,CAAA;EAEH,OAAO;AAAEsC,IAAAA,WAAW,EAAXA,WAAW;AAAEL,IAAAA,UAAU,EAAVA,UAAAA;GAAY,CAAA;AACpC,CAAC;;ACXD,IAAMM,QAAQ,GAAG,SAAXA,QAAQA,CAAAhC,IAAA,EAAqC;AAAA,EAAA,IAA/BiC,IAAI,GAAAjC,IAAA,CAAJiC,IAAI;IAAElB,IAAI,GAAAf,IAAA,CAAJe,IAAI;IAAEU,YAAY,GAAAzB,IAAA,CAAZyB,YAAY,CAAA;AAC1C,EAAA,IAAAS,eAAA,GAAcC,2BAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC,CAAA;AACT,EAAA,IAAA4C,kBAAA,GAAoCZ,iBAAiB,CAACT,IAAI,EAAEU,YAAY,CAAC;IAAjEM,WAAW,GAAAK,kBAAA,CAAXL,WAAW;IAAEL,UAAU,GAAAU,kBAAA,CAAVV,UAAU,CAAA;AAE/B,EAAA,IAAMW,SAAS,GAAGf,SAAG,CAACgB,YAAM,CAACC,WAAK,CAAC,OAAO,EAAEb,UAAU,CAAC,CAAC,CAAC,CAAA;AAEzD,EAAA,oBACEzB,eAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,2CAA2C;IAAAF,QAAA,EAAA,cACxDC,cAAA,CAACK,8BAAU,EAAA;AACTJ,MAAAA,SAAS,EAAC,MAAM;AAChBC,MAAAA,KAAK,EAAC,OAAO;AACbO,MAAAA,aAAa,EAAC,WAAW;AACzB2B,MAAAA,MAAM,EAAC,MAAM;AAAArC,MAAAA,QAAA,EAEZ8B,IAAAA;AAAI,KACK,CAAC,eACb7B,cAAA,CAACU,gBAAgB,EAAA;AAACC,MAAAA,IAAI,EAAEgB,WAAAA;AAAY,KAAE,CAAC,eACvC3B,cAAA,CAACqC,2BAAO,EAAA;MACNC,OAAO,eAAEtC,cAAA,CAACU,gBAAgB,EAAA;AAACC,QAAAA,IAAI,EAAEW,UAAAA;AAAW,OAAE,CAAE;MAChDiB,QAAQ,EAAE,CAACN,SAAU;AACrBO,MAAAA,QAAQ,EAAC,QAAQ;AAAAzC,MAAAA,QAAA,eAEjBC,cAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,SAAS,EAAC,6BAA6B;QAAAF,QAAA,eAC1CC,cAAA,CAACO,cAAY,EAAA;AACXC,UAAAA,IAAI,EAAEpB,CAAC,CAAC,gCAAgC,CAAE;AAC1CC,UAAAA,KAAK,EAAE4C,SAAAA;SACR,CAAA;OACE,CAAA;AAAC,KACC,CAAC,CAAA;AAAA,GACP,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,iBAAe3B,aAAAA,UAAI,CAACsB,QAAQ,CAAC;;ACxC7B,IAAMa,QAAQ,GAAG,SAAXA,QAAQA,CAAA7C,IAAA,EAAA;AAAA,EAAA,IAAMP,KAAK,GAAAO,IAAA,CAALP,KAAK;IAAEqD,MAAM,GAAA9C,IAAA,CAAN8C,MAAM,CAAA;AAAA,EAAA,oBAC/B7C,eAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,gBAAgB;AAAC,IAAA,aAAA,EAAY,WAAW;IAAAF,QAAA,EAAA,cACrDC,cAAA,CAACK,8BAAU,EAAA;AAACJ,MAAAA,SAAS,EAAC,MAAM;AAACC,MAAAA,KAAK,EAAC,IAAI;AAACkC,MAAAA,MAAM,EAAC,UAAU;AAAArC,MAAAA,QAAA,EACtDV,KAAAA;AAAK,KACI,CAAC,eACbW,cAAA,CAACK,8BAAU,EAAA;AAACsC,MAAAA,UAAU,EAAC,OAAO;AAACzC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EACzC2C,MAAAA;AAAM,KACG,CAAC,CAAA;AAAA,GACV,CAAC,CAAA;AAAA,CACP,CAAA;AAED,iBAAepC,aAAAA,UAAI,CAACmC,QAAQ,CAAC;;ACP7B,IAAMG,UAAU,GAAG,SAAbA,UAAUA,CAAAhD,IAAA,EAA0D;AAAA,EAAA,IAApDiD,MAAM,GAAAjD,IAAA,CAANiD,MAAM;IAAExD,KAAK,GAAAO,IAAA,CAALP,KAAK;IAAEyD,QAAQ,GAAAlD,IAAA,CAARkD,QAAQ;IAAEC,MAAM,GAAAnD,IAAA,CAANmD,MAAM;IAAEC,YAAY,GAAApD,IAAA,CAAZoD,YAAY,CAAA;AACjE,EAAA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAG5D,KAAK,EAAI;AAC1B,IAAA,IAAW6D,KAAK,GAA6B7D,KAAK,CAA1C8D,CAAC;MAAYC,OAAO,GAAiB/D,KAAK,CAAhCgE,CAAC;MAAcC,OAAO,GAAKjE,KAAK,CAApBkE,CAAC,CAAA;AAC/B,IAAA,IAAMC,WAAW,GAAG,CAACN,KAAK,IAAI,CAACE,OAAO,CAAA;AAEtC,IAAA,oBACEvD,eAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,YAAY;AAAAF,MAAAA,QAAA,GACxB,CAAC,CAACmD,KAAK,iBAAIlD,cAAA,CAACyC,UAAQ,EAAA;AAACC,QAAAA,MAAM,EAAC,GAAG;AAACrD,QAAAA,KAAK,EAAE6D,KAAAA;OAAQ,CAAC,EAChD,CAAC,CAACE,OAAO,iBAAIpD,cAAA,CAACyC,UAAQ,EAAA;AAACC,QAAAA,MAAM,EAAC,GAAG;AAACrD,QAAAA,KAAK,EAAE+D,OAAAA;OAAU,CAAC,EACpD,CAAC,CAAC,CAACE,OAAO,IAAIE,WAAW,kBAAKxD,cAAA,CAACyC,UAAQ,EAAA;AAACC,QAAAA,MAAM,EAAC,GAAG;AAACrD,QAAAA,KAAK,EAAEiE,OAAAA;AAAQ,OAAE,CAAC,CAAA;AAAA,KACnE,CAAC,CAAA;GAET,CAAA;AAED,EAAA,oBACEzD,eAAA,CAAA,KAAA,EAAA;AAAKI,IAAAA,SAAS,EAAC,iEAAiE;AAAAF,IAAAA,QAAA,gBAC9EF,eAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,yBAAyB;AAAAF,MAAAA,QAAA,gBACtCC,cAAA,CAAA,KAAA,EAAA;AAAKC,QAAAA,SAAS,EAAC,wBAAwB;QAAAF,QAAA,EACpCgD,MAAM,GACLE,UAAU,CAAC5D,KAAK,CAAC,gBAEjBQ,eAAA,CAACQ,8BAAU,EAAA;AACTJ,UAAAA,SAAS,EAAC,wBAAwB;AAClC,UAAA,SAAA,EAAQ,gBAAgB;AACxB,UAAA,aAAA,EAAY,gBAAgB;AAC5BC,UAAAA,KAAK,EAAC,IAAI;AACVkC,UAAAA,MAAM,EAAC,UAAU;UAAArC,QAAA,EAAA,CAEhBV,KAAK,IAAI,CAAC,EACV2D,YAAY,GAAG,GAAG,GAAG,EAAE,CAAA;SACd,CAAA;AACb,OACE,CAAC,EACLF,QAAQ,iBACP9C,cAAA,CAAA,KAAA,EAAA;QAAAD,QAAA,eACEC,cAAA,CAACyD,WAAW,EAAA;AAACC,UAAAA,WAAW,EAAEZ,QAAAA;SAAW,CAAA;AAAC,OACnC,CACN,CAAA;AAAA,KACE,CAAC,eACN9C,cAAA,CAACK,8BAAU,EAAA;AACTJ,MAAAA,SAAS,EAAC,wBAAwB;AAClC,MAAA,SAAA,EAAQ,eAAe;AACvBC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAEZ8C,MAAAA;AAAM,KACG,CAAC,CAAA;AAAA,GACV,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,mBAAevC,aAAAA,UAAI,CAACsC,UAAU,CAAC;;AC9C/B,IAAMe,QAAQ,GAAG,SAAXA,QAAQA,CAAA/D,IAAA,EAQR;AAAA,EAAA,IAPJgE,YAAY,GAAAhE,IAAA,CAAZgE,YAAY;IACZC,SAAS,GAAAjE,IAAA,CAATiE,SAAS;IACTC,UAAU,GAAAlE,IAAA,CAAVkE,UAAU;IACVC,aAAa,GAAAnE,IAAA,CAAbmE,aAAa;IAAAC,cAAA,GAAApE,IAAA,CACbqE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,qBAAA,GAAAtE,IAAA,CACduE,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAC1BjE,SAAS,GAAAL,IAAA,CAATK,SAAS,CAAA;AAET,EAAA,IAAA6B,eAAA,GAAcC,2BAAc,EAAE;IAAtB3C,CAAC,GAAA0C,eAAA,CAAD1C,CAAC,CAAA;AAET,EAAA,IACEgF,UAAU,GAQRR,YAAY,CARdQ,UAAU;IACVC,UAAU,GAORT,YAAY,CAPdS,UAAU;IACVC,eAAe,GAMbV,YAAY,CANdU,eAAe;IACfC,cAAc,GAKZX,YAAY,CALdW,cAAc;IACdC,qBAAqB,GAInBZ,YAAY,CAJdY,qBAAqB;IACrBC,OAAO,GAGLb,YAAY,CAHda,OAAO;IACPC,gBAAgB,GAEdd,YAAY,CAFdc,gBAAgB;IAChBC,QAAQ,GACNf,YAAY,CADde,QAAQ,CAAA;AAGV,EAAA,IAAId,SAAS,EAAE;AACb,IAAA,oBACE7D,cAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,gDAAgD;AAAAF,MAAAA,QAAA,eAC7DC,cAAA,CAAC4E,2BAAO,EAAE,EAAA,CAAA;AAAC,KACR,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACE/E,eAAA,CAAA,KAAA,EAAA;AACEI,IAAAA,SAAS,EAAE4E,8BAAU,CAAC,eAAe,EAAE5E,SAAS,CAAE;AAClD,IAAA,aAAA,EAAY,UAAU;AAAAF,IAAAA,QAAA,gBAEtBF,eAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,gCAAgC;MAAAF,QAAA,EAAA,cAC7CC,cAAA,CAACK,8BAAU,EAAA;AAAC,QAAA,SAAA,EAAQ,4BAA4B;AAACH,QAAAA,KAAK,EAAC,IAAI;QAAAH,QAAA,EACxDX,CAAC,CAAC,+BAA+B,CAAA;AAAC,OACzB,CAAC,EACZ+E,kBAAkB,iBACjBnE,cAAA,CAACqC,2BAAO,EAAA;AACNC,QAAAA,OAAO,EAAElD,CAAC,CAAC,+CAA+C,CAAE;AAC5DoD,QAAAA,QAAQ,EAAC,QAAQ;AACjBsC,QAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,CAAE;AAAA/E,QAAAA,QAAA,eAErBC,cAAA,CAAA,MAAA,EAAA;AAAMC,UAAAA,SAAS,EAAC,MAAM;UAAAF,QAAA,eACpBC,cAAA,CAAC+E,2BAAO,EAAA;AACN9E,YAAAA,SAAS,EAAC,2BAA2B;AACrC,YAAA,aAAA,EAAY,kBAAkB;AAC9B+E,YAAAA,IAAI,EAAE,EAAA;WACP,CAAA;SACG,CAAA;OACC,CACV,eACDhF,cAAA,CAAA,MAAA,EAAA;AAAMC,QAAAA,SAAS,EAAC,SAAS;QAAAF,QAAA,eACvBC,cAAA,CAACiF,eAAe,EAAA;AAAOlB,UAAAA,aAAa,EAAbA,aAAa;AAAED,UAAAA,UAAU,EAAVA,UAAAA;SAAe,CAAA;AAAC,OAClD,CAAC,CAAA;KACJ,CAAC,eACNjE,eAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,8FAA8F;MAAAF,QAAA,EAAA,cAC3GC,cAAA,CAAC4C,YAAU,EAAA;AACTE,QAAAA,QAAQ,EAAEmB,SAAS,CAAC,YAAY,CAAE;AAClCpB,QAAAA,MAAM,EAAEzD,CAAC,CAAC,wCAAwC,CAAE;AACpDC,QAAAA,KAAK,EAAE+E,UAAAA;AAAW,OACnB,CAAC,eACFpE,cAAA,CAAC4C,YAAU,EAAA;AACTE,QAAAA,QAAQ,EAAEmB,SAAS,CAAC,YAAY,CAAE;AAClCpB,QAAAA,MAAM,EAAEzD,CAAC,CAAC,wCAAwC,CAAE;AACpDC,QAAAA,KAAK,EAAEgF,UAAAA;AAAW,OACnB,CAAC,eACFrE,cAAA,CAAC4C,YAAU,EAAA;AACTE,QAAAA,QAAQ,EAAEmB,SAAS,CAAC,aAAa,CAAE;AACnCpB,QAAAA,MAAM,EAAEzD,CAAC,CAAC,6CAA6C,CAAE;AACzDC,QAAAA,KAAK,EAAEiF,eAAAA;AAAgB,OACxB,CAAC,eACFtE,cAAA,CAAC4C,YAAU,EAAA;QACTI,YAAY,EAAA,IAAA;AACZF,QAAAA,QAAQ,EAAEmB,SAAS,CAAC,gBAAgB,CAAE;AACtCpB,QAAAA,MAAM,EAAEzD,CAAC,CAAC,gDAAgD,CAAE;AAC5DC,QAAAA,KAAK,EAAEkF,cAAAA;AAAe,OACvB,CAAC,eACFvE,cAAA,CAAC4C,YAAU,EAAA;QACTG,MAAM,EAAA,IAAA;AACND,QAAAA,QAAQ,EAAEmB,SAAS,CAAC,uBAAuB,CAAE;AAC7CpB,QAAAA,MAAM,EAAEzD,CAAC,CAAC,mDAAmD,CAAE;AAC/D8F,QAAAA,UAAU,EAAE9F,CAAC,CAAC,8BAA8B,CAAE;AAC9CC,QAAAA,KAAK,EAAEmF,qBAAAA;AAAsB,OAC9B,CAAC,CAAA;KACC,CAAC,eACN3E,eAAA,CAAA,KAAA,EAAA;AAAKI,MAAAA,SAAS,EAAC,sDAAsD;MAAAF,QAAA,EAAA,cACnEC,cAAA,CAAC4B,UAAQ,EAAA;AACPjB,QAAAA,IAAI,EAAE8D,OAAQ;AACdpD,QAAAA,YAAY,EAAEnC,eAAgB;QAC9B2C,IAAI,EAAEzC,CAAC,CAAC,iCAAiC,CAAA;AAAE,OAC5C,CAAC,eACFY,cAAA,CAAC4B,UAAQ,EAAA;AACPjB,QAAAA,IAAI,EAAE+D,gBAAiB;AACvBrD,QAAAA,YAAY,EAAE/B,UAAW;QACzBuC,IAAI,EAAEzC,CAAC,CAAC,4BAA4B,CAAA;AAAE,OACvC,CAAC,eACFY,cAAA,CAAC4B,UAAQ,EAAA;AACPjB,QAAAA,IAAI,EAAEgE,QAAS;AACftD,QAAAA,YAAY,EAAE9B,gBAAiB;QAC/BsC,IAAI,EAAEzC,CAAC,CAAC,kCAAkC,CAAA;AAAE,OAC7C,CAAC,CAAA;AAAA,KACC,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEV;;;;"}
|
|
1
|
+
{"version":3,"file":"Insights.js","sources":["../../src/components/Insights/constants.js","../../src/components/Insights/MetaInfo/PercentageBar.jsx","../../src/components/Insights/MetaInfo/MetaInfoItem.jsx","../../src/components/Insights/MetaInfo/DataDistribution.jsx","../../src/components/Insights/utils.js","../../src/components/Insights/MetaInfo/index.jsx","../../src/components/Insights/TimeItem.jsx","../../src/components/Insights/MetricItem.jsx","../../src/components/Insights/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DEFAULT_DEVICES = [\n {\n label: t(\"neetoMolecules.insights.labels.devices.desktop\"),\n value: \"desktop\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.devices.mobile\"),\n value: \"smartphone\",\n },\n];\n\nexport const DEFAULT_OS = [\n { label: t(\"neetoMolecules.insights.labels.os.macos\"), value: \"mac\" },\n {\n label: t(\"neetoMolecules.insights.labels.os.windows\"),\n value: \"windows\",\n },\n];\n\nexport const DEFAULT_BROWSERS = [\n {\n label: t(\"neetoMolecules.insights.labels.browsers.chrome\"),\n value: \"chrome\",\n },\n {\n label: t(\"neetoMolecules.insights.labels.browsers.safari\"),\n value: \"safari\",\n },\n];\n\nexport const INITIAL_TIME_PERIOD_VALUE = {\n label: t(\"neetoMolecules.insights.labels.allTime\"),\n value: { startDate: null, endDate: null, rangeType: \"all\" },\n};\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst PercentageBar = ({ value }) => (\n <>\n {value !== 0 && (\n <div\n className=\"neeto-ui-bg-gray-300 neeto-ui-rounded-full h-2\"\n style={{ width: `${value}%` }}\n />\n )}\n <Typography style=\"body3\">{value ? `${value}%` : 0}</Typography>\n </>\n);\n\nexport default memo(PercentageBar);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nimport PercentageBar from \"./PercentageBar\";\n\nconst MetaInfoItem = ({ name, value }) => (\n <>\n <Typography style=\"body2\" textTransform=\"capitalize\">\n {name}\n </Typography>\n <div className=\"col-span-3 flex items-center gap-2\">\n <PercentageBar {...{ value }} />\n </div>\n </>\n);\n\nexport default memo(MetaInfoItem);\n","import MetaInfoItem from \"./MetaInfoItem\";\n\nconst DataDistribution = ({ data }) => (\n <div className=\"grid grid-cols-4 gap-2\">\n {data.map(({ name, value }) => (\n <MetaInfoItem {...{ name, value }} key={name} />\n ))}\n </div>\n);\n\nexport default DataDistribution;\n","import { existsBy } from \"neetocist\";\n\nconst getSum = (data, searchKey) => {\n let sum = 0;\n for (const key in data) {\n if (key.includes(searchKey)) sum += data[key];\n }\n\n return sum;\n};\n\nexport const transformInsights = (data, defaultItems) => {\n const othersData = Object.keys(data)\n .filter(key => !existsBy({ value: key }, defaultItems))\n .map(key => ({ name: key, value: data[key] }));\n\n const defaultData = defaultItems.map(({ label, value }) => ({\n name: label,\n value: getSum(data, value) || 0,\n }));\n\n return { defaultData, othersData };\n};\n","import { memo } from \"react\";\n\nimport { Tooltip, Typography } from \"neetoui\";\nimport { pluck, sum, values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DataDistribution from \"./DataDistribution\";\nimport MetaInfoItem from \"./MetaInfoItem\";\n\nimport { transformInsights } from \"../utils\";\n\nconst MetaInfo = ({ type, data, defaultItems }) => {\n const { t } = useTranslation();\n const { defaultData, othersData } = transformInsights(data, defaultItems);\n\n const othersSum = sum(values(pluck(\"value\", othersData)));\n\n return (\n <div className=\"neeto-ui-bg-gray-100 neeto-ui-rounded p-4\">\n <Typography\n className=\"mb-2\"\n style=\"body2\"\n textTransform=\"uppercase\"\n weight=\"bold\"\n >\n {type}\n </Typography>\n <DataDistribution data={defaultData} />\n <Tooltip\n content={<DataDistribution data={othersData} />}\n disabled={!othersSum}\n position=\"bottom\"\n >\n <div className=\"mt-2 grid grid-cols-4 gap-2\">\n <MetaInfoItem\n name={t(\"neetoMolecules.insights.others\")}\n value={othersSum}\n />\n </div>\n </Tooltip>\n </div>\n );\n};\n\nexport default memo(MetaInfo);\n","import { memo } from \"react\";\n\nimport { Typography } from \"neetoui\";\n\nconst TimeItem = ({ value, suffix }) => (\n <div className=\"flex items-end\" data-testid=\"time-item\">\n <Typography className=\"mr-1\" style=\"h1\" weight=\"semibold\">\n {value}\n </Typography>\n <Typography lineHeight=\"loose\" style=\"body2\">\n {suffix}\n </Typography>\n </div>\n);\n\nexport default memo(TimeItem);\n","import { memo } from \"react\";\n\nimport { hyphenate } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nimport HelpPopover from \"components/HelpPopover\";\n\nimport TimeItem from \"./TimeItem\";\n\nconst MetricItem = ({ metric, value, helpText, isTime, isPercentage }) => {\n const renderTime = value => {\n const { h: hours, m: minutes, s: seconds } = value;\n const showSeconds = !hours && !minutes;\n\n return (\n <div className=\"flex gap-2\">\n {!!hours && <TimeItem suffix=\"H\" value={hours} />}\n {!!minutes && <TimeItem suffix=\"M\" value={minutes} />}\n {(!!seconds || showSeconds) && <TimeItem suffix=\"S\" value={seconds} />}\n </div>\n );\n };\n\n return (\n <div\n className=\"nf-insights__metric-item neeto-ui-border-gray-200 border-b pb-4\"\n data-cy={`${hyphenate(metric)}-metric`}\n >\n <div className=\"flex items-center gap-2\">\n <div className=\"flex items-end gap-x-1\">\n {isTime ? (\n renderTime(value)\n ) : (\n <Typography\n className=\"neeto-ui-text-gray-800\"\n data-cy=\"insights-count\"\n data-testid=\"insights-count\"\n style=\"h1\"\n weight=\"semibold\"\n >\n {value || 0}\n {isPercentage ? \"%\" : \"\"}\n </Typography>\n )}\n </div>\n {helpText && (\n <div>\n <HelpPopover description={helpText} />\n </div>\n )}\n </div>\n <Typography\n className=\"neeto-ui-text-gray-700\"\n data-cy=\"insights-type\"\n style=\"body3\"\n >\n {metric}\n </Typography>\n </div>\n );\n};\n\nexport default memo(MetricItem);\n","import classNames from \"classnames\";\nimport { Warning } from \"neetoicons\";\nimport { Tooltip, Typography, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DateRangeFilter from \"components/DateRangeFilter\";\n\nimport { DEFAULT_DEVICES, DEFAULT_BROWSERS, DEFAULT_OS } from \"./constants\";\nimport MetaInfo from \"./MetaInfo\";\nimport MetricItem from \"./MetricItem\";\n\nconst Insights = ({\n insightsData,\n isLoading,\n timePeriod,\n setTimePeriod,\n helpTexts = {},\n showWarningMessage = false,\n className,\n}) => {\n const { t } = useTranslation();\n\n const {\n visitCount,\n startCount,\n submissionCount,\n completionRate,\n averageSubmissionTime,\n devices,\n operatingSystems,\n browsers,\n } = insightsData;\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div\n className={classNames(\"mx-auto pt-10\", className)}\n data-cy=\"insights\"\n data-testid=\"insights\"\n >\n <div className=\"mb-10 flex w-full items-center\">\n <Typography data-cy=\"submissions-insights-title\" style=\"h2\">\n {t(\"neetoMolecules.insights.title\")}\n </Typography>\n {showWarningMessage && (\n <Tooltip\n content={t(\"neetoMolecules.insights.dataInaccuracyWarning\")}\n position=\"bottom\"\n touch={[\"hold\", 500]}\n >\n <span className=\"ml-3\">\n <Warning\n className=\"neeto-ui-text-warning-500\"\n data-cy=\"insights-warning\"\n data-testid=\"insights-warning\"\n size={20}\n />\n </span>\n </Tooltip>\n )}\n <span className=\"ml-auto\">\n <DateRangeFilter {...{ setTimePeriod, timePeriod }} />\n </span>\n </div>\n <div className=\"mb-6 grid grid-cols-1 gap-x-9 gap-y-6 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-5 lg:gap-0\">\n <MetricItem\n helpText={helpTexts[\"visitCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.visits\")}\n value={visitCount}\n />\n <MetricItem\n helpText={helpTexts[\"startCount\"]}\n metric={t(\"neetoMolecules.insights.metrics.starts\")}\n value={startCount}\n />\n <MetricItem\n helpText={helpTexts[\"submissions\"]}\n metric={t(\"neetoMolecules.insights.metrics.submissions\")}\n value={submissionCount}\n />\n <MetricItem\n isPercentage\n helpText={helpTexts[\"completionRate\"]}\n metric={t(\"neetoMolecules.insights.metrics.completionRate\")}\n value={completionRate}\n />\n <MetricItem\n isTime\n helpText={helpTexts[\"averageSubmissionTime\"]}\n metric={t(\"neetoMolecules.insights.metrics.avgTimeToComplete\")}\n timeSuffix={t(\"neetoMolecules.insights.mins\")}\n value={averageSubmissionTime}\n />\n </div>\n <div className=\"grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3\">\n <MetaInfo\n data={devices}\n defaultItems={DEFAULT_DEVICES}\n type={t(\"neetoMolecules.insights.devices\")}\n />\n <MetaInfo\n data={operatingSystems}\n defaultItems={DEFAULT_OS}\n type={t(\"neetoMolecules.insights.os\")}\n />\n <MetaInfo\n data={browsers}\n defaultItems={DEFAULT_BROWSERS}\n type={t(\"neetoMolecules.insights.browsers\")}\n />\n </div>\n </div>\n );\n};\n\nInsights.propTypes = {\n /**\n * Object containing metrics and statistics for insights\n */\n insightsData: PropTypes.shape({\n visitCount: PropTypes.number,\n startCount: PropTypes.number,\n submissionCount: PropTypes.number,\n completionRate: PropTypes.number,\n averageSubmissionTime: PropTypes.shape({\n h: PropTypes.number,\n m: PropTypes.number,\n s: PropTypes.number,\n }),\n devices: PropTypes.shape({\n desktop: PropTypes.number,\n smartphone: PropTypes.number,\n }),\n operatingSystems: PropTypes.shape({\n mac: PropTypes.number,\n windows: PropTypes.number,\n }),\n browsers: PropTypes.shape({\n chrome: PropTypes.number,\n safari: PropTypes.number,\n }),\n }),\n /**\n * Indicates whether insights data is currently being fetched from an API\n */\n isLoading: PropTypes.bool,\n /**\n * The state corresponding to the currently selected date range.\n */\n timePeriod: PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.object,\n }),\n /**\n * The setter method for `timePeriod` state.\n */\n setTimePeriod: PropTypes.func,\n /**\n * Object containing explanatory text for each metric, providing additional context that can help users understand the significance of the metrics displayed.\n */\n helpTexts: PropTypes.shape({\n visitCount: PropTypes.string,\n startCount: PropTypes.string,\n submissions: PropTypes.string,\n completionRate: PropTypes.string,\n averageSubmissionTime: PropTypes.string,\n }),\n /**\n * Displays a warning to indicate that the insights may not be accurate, as the insights integration occurred after the record's creation.\n */\n showWarningMessage: PropTypes.bool,\n /**\n * To provide additional classes.\n */\n className: PropTypes.string,\n};\n\nexport default Insights;\n"],"names":["DEFAULT_DEVICES","label","t","value","DEFAULT_OS","DEFAULT_BROWSERS","startDate","endDate","rangeType","PercentageBar","_ref","_jsxs","_Fragment","children","_jsx","className","style","width","concat","Typography","memo","MetaInfoItem","name","textTransform","DataDistribution","data","map","_ref2","_createElement","key","getSum","searchKey","sum","includes","transformInsights","defaultItems","othersData","Object","keys","filter","existsBy","defaultData","MetaInfo","type","_useTranslation","useTranslation","_transformInsights","othersSum","values","pluck","weight","Tooltip","content","disabled","position","TimeItem","suffix","lineHeight","MetricItem","metric","helpText","isTime","isPercentage","renderTime","hours","h","minutes","m","seconds","s","showSeconds","hyphenate","HelpPopover","description","Insights","insightsData","isLoading","timePeriod","setTimePeriod","_ref$helpTexts","helpTexts","_ref$showWarningMessa","showWarningMessage","visitCount","startCount","submissionCount","completionRate","averageSubmissionTime","devices","operatingSystems","browsers","Spinner","classNames","touch","Warning","size","DateRangeFilter","timeSuffix"],"mappings":"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"}
|
package/dist/cjs/Schedule.js
CHANGED
|
@@ -4,10 +4,11 @@ var React = require('react');
|
|
|
4
4
|
var formik = require('formik');
|
|
5
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
6
|
var ramda = require('ramda');
|
|
7
|
-
var withT = require('@bigbinary/neeto-commons-frontend/react-utils/withT');
|
|
8
7
|
var general = require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
9
8
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
9
|
+
var reactI18next = require('react-i18next');
|
|
10
10
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
11
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
12
|
var neetoTimeZones = require('@bigbinary/neeto-time-zones');
|
|
12
13
|
var i18next = require('i18next');
|
|
13
14
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
@@ -24,12 +25,10 @@ var Button = require('@bigbinary/neetoui/Button');
|
|
|
24
25
|
var Label = require('@bigbinary/neetoui/Label');
|
|
25
26
|
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
26
27
|
var Switch = require('@bigbinary/neetoui/formik/Switch');
|
|
27
|
-
var reactI18next = require('react-i18next');
|
|
28
28
|
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
29
29
|
var Plus = require('@bigbinary/neeto-icons/Plus');
|
|
30
30
|
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
31
31
|
var Select = require('@bigbinary/neetoui/formik/Select');
|
|
32
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
33
32
|
var neetoTeamMembersFrontend = require('@bigbinary/neeto-team-members-frontend');
|
|
34
33
|
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
35
34
|
var MoreDropdown = require('./MoreDropdown.js');
|
|
@@ -58,9 +57,9 @@ function _interopNamespace(e) {
|
|
|
58
57
|
return Object.freeze(n);
|
|
59
58
|
}
|
|
60
59
|
|
|
61
|
-
var withT__default = /*#__PURE__*/_interopDefaultLegacy(withT);
|
|
62
60
|
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
63
61
|
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
62
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
64
63
|
var i18next__default = /*#__PURE__*/_interopDefaultLegacy(i18next);
|
|
65
64
|
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
66
65
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
@@ -77,10 +76,16 @@ var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
|
|
|
77
76
|
var Plus__default = /*#__PURE__*/_interopDefaultLegacy(Plus);
|
|
78
77
|
var Delete__default = /*#__PURE__*/_interopDefaultLegacy(Delete);
|
|
79
78
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
80
|
-
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
81
79
|
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
|
|
82
|
+
// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
|
|
83
|
+
var ScheduleContext = /*#__PURE__*/React.createContext({
|
|
84
|
+
allowAddPeriod: true,
|
|
85
|
+
firstDay: 0
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
var DAYS = ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"];
|
|
84
89
|
var DEFAULT_SLOT_INTERVAL = 30;
|
|
85
90
|
|
|
86
91
|
var INTERVALS = ["year", "quarter", "month", "week", "day", "hour", "minute", "second"];
|
|
@@ -210,6 +215,10 @@ var isFromAndToSame = function isFromAndToSame(startTime, endTime) {
|
|
|
210
215
|
if (!startTime || !endTime) return true;
|
|
211
216
|
return utils.dayjs(startTime, SLOT_TIME_FORMAT).isSame(utils.dayjs(endTime, SLOT_TIME_FORMAT));
|
|
212
217
|
};
|
|
218
|
+
var sortDays = function sortDays(chosenIndex) {
|
|
219
|
+
if (chosenIndex < 0 || chosenIndex >= 7) return DAYS;
|
|
220
|
+
return [].concat(_toConsumableArray__default["default"](DAYS.slice(chosenIndex)), _toConsumableArray__default["default"](DAYS.slice(0, chosenIndex)));
|
|
221
|
+
};
|
|
213
222
|
var getScheduleValidationSchema = function getScheduleValidationSchema() {
|
|
214
223
|
return yup__namespace.object().shape({
|
|
215
224
|
wdays: yup__namespace.array().of(yup__namespace.object().shape({
|
|
@@ -316,12 +325,15 @@ var findIndicesOfOverlappingRangesInPeriods = function findIndicesOfOverlappingR
|
|
|
316
325
|
};
|
|
317
326
|
};
|
|
318
327
|
|
|
319
|
-
var DisplayAvailability =
|
|
320
|
-
var
|
|
321
|
-
|
|
328
|
+
var DisplayAvailability = function DisplayAvailability(_ref) {
|
|
329
|
+
var periods = _ref.periods;
|
|
330
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
331
|
+
t = _useTranslation.t;
|
|
332
|
+
var _useContext = React.useContext(ScheduleContext),
|
|
333
|
+
firstDay = _useContext.firstDay;
|
|
322
334
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
323
335
|
className: "w-full space-y-4",
|
|
324
|
-
children:
|
|
336
|
+
children: sortDays(firstDay).map(function (day) {
|
|
325
337
|
var _sortPeriodsByKey;
|
|
326
338
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
327
339
|
className: "neeto-ui-rounded-md neeto-ui-shadow-xs neeto-ui-border-gray-200 neeto-ui-bg-white flex w-full flex-wrap items-center justify-center gap-2 border px-6 py-4 sm:items-start sm:justify-start",
|
|
@@ -371,7 +383,7 @@ var DisplayAvailability = withT__default["default"](function (_ref) {
|
|
|
371
383
|
}, day);
|
|
372
384
|
})
|
|
373
385
|
});
|
|
374
|
-
}
|
|
386
|
+
};
|
|
375
387
|
|
|
376
388
|
var buildSlotIntervals = function buildSlotIntervals(_ref) {
|
|
377
389
|
var interval = _ref.interval,
|
|
@@ -430,12 +442,6 @@ var addDefaultPeriod = function addDefaultPeriod(wday) {
|
|
|
430
442
|
};
|
|
431
443
|
};
|
|
432
444
|
|
|
433
|
-
// To avoid prop drilling `allowAddPeriod` to `ScheduleRow` component
|
|
434
|
-
// eslint-disable-next-line @bigbinary/neeto/use-zustand-for-global-state-management
|
|
435
|
-
var ScheduleContext = /*#__PURE__*/React.createContext({
|
|
436
|
-
allowAddPeriod: true
|
|
437
|
-
});
|
|
438
|
-
|
|
439
445
|
var ScheduleRow = function ScheduleRow(_ref) {
|
|
440
446
|
var values = _ref.values,
|
|
441
447
|
setFieldValue = _ref.setFieldValue,
|
|
@@ -568,6 +574,8 @@ var Form = function Form(_ref) {
|
|
|
568
574
|
setWdaysToCopy = _useState4[1];
|
|
569
575
|
var _useTranslation = reactI18next.useTranslation(),
|
|
570
576
|
t = _useTranslation.t;
|
|
577
|
+
var _useContext = React.useContext(ScheduleContext),
|
|
578
|
+
firstDay = _useContext.firstDay;
|
|
571
579
|
var restoreDeletedPeriods = function restoreDeletedPeriods(setFieldValue) {
|
|
572
580
|
setFieldValue("wdays[".concat(index, "].periods"), deletedPeriods);
|
|
573
581
|
};
|
|
@@ -664,7 +672,7 @@ var Form = function Form(_ref) {
|
|
|
664
672
|
style: "h5",
|
|
665
673
|
children: t("neetoMolecules.schedule.copySchedule")
|
|
666
674
|
})
|
|
667
|
-
}),
|
|
675
|
+
}), sortDays(firstDay).filter(function (copyDay) {
|
|
668
676
|
return copyDay !== day;
|
|
669
677
|
}).map(function (day) {
|
|
670
678
|
return /*#__PURE__*/jsxRuntime.jsx("li", {
|
|
@@ -853,7 +861,9 @@ var Schedule = /*#__PURE__*/React.forwardRef(function (_ref, scheduleRef) {
|
|
|
853
861
|
_ref$isEditable = _ref.isEditable,
|
|
854
862
|
isEditable = _ref$isEditable === void 0 ? true : _ref$isEditable,
|
|
855
863
|
_ref$isCreating = _ref.isCreating,
|
|
856
|
-
isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating
|
|
864
|
+
isCreating = _ref$isCreating === void 0 ? false : _ref$isCreating,
|
|
865
|
+
_ref$firstDay = _ref.firstDay,
|
|
866
|
+
firstDay = _ref$firstDay === void 0 ? 1 : _ref$firstDay;
|
|
857
867
|
var handleCopy = function handleCopy(_ref2) {
|
|
858
868
|
var _values$wdays$index$p;
|
|
859
869
|
var values = _ref2.values,
|
|
@@ -862,7 +872,7 @@ var Schedule = /*#__PURE__*/React.forwardRef(function (_ref, scheduleRef) {
|
|
|
862
872
|
wdaysToCopy = _ref2.wdaysToCopy;
|
|
863
873
|
var newPeriods = (_values$wdays$index$p = values.wdays[index].periods) === null || _values$wdays$index$p === void 0 ? void 0 : _values$wdays$index$p.map(ramda.pick(["startTime", "endTime"]));
|
|
864
874
|
wdaysToCopy.forEach(function (wday) {
|
|
865
|
-
var dayIndex =
|
|
875
|
+
var dayIndex = sortDays(firstDay).indexOf(wday);
|
|
866
876
|
setFieldValue("wdays[".concat(dayIndex, "].available"), neetoCist.isPresent(values.wdays[index].periods));
|
|
867
877
|
setFieldValue("wdays[".concat(dayIndex, "].periods"), newPeriods.map(function (period) {
|
|
868
878
|
return ramda.assoc("wday", wday, period);
|
|
@@ -870,7 +880,7 @@ var Schedule = /*#__PURE__*/React.forwardRef(function (_ref, scheduleRef) {
|
|
|
870
880
|
});
|
|
871
881
|
};
|
|
872
882
|
var getInitialFormValues = function getInitialFormValues() {
|
|
873
|
-
return
|
|
883
|
+
return sortDays(firstDay).map(function (wday) {
|
|
874
884
|
var _periods$wday;
|
|
875
885
|
return {
|
|
876
886
|
periods: sortPeriodsByKey({
|
|
@@ -900,19 +910,20 @@ var Schedule = /*#__PURE__*/React.forwardRef(function (_ref, scheduleRef) {
|
|
|
900
910
|
isEditable: isEditable,
|
|
901
911
|
isEditing: isEditing,
|
|
902
912
|
setIsEditing: setIsEditing
|
|
903
|
-
}),
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
913
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ScheduleContext.Provider, {
|
|
914
|
+
value: {
|
|
915
|
+
allowAddPeriod: allowAddPeriod,
|
|
916
|
+
firstDay: firstDay
|
|
917
|
+
},
|
|
918
|
+
children: isEditing || !showHeader ? /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
|
|
908
919
|
children: /*#__PURE__*/jsxRuntime.jsx(Fields, {
|
|
909
920
|
handleCopy: handleCopy,
|
|
910
921
|
handleValuesChanged: handleValuesChanged,
|
|
911
922
|
scheduleRef: scheduleRef
|
|
912
923
|
})
|
|
924
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(DisplayAvailability, {
|
|
925
|
+
periods: periods
|
|
913
926
|
})
|
|
914
|
-
}) : /*#__PURE__*/jsxRuntime.jsx(DisplayAvailability, {
|
|
915
|
-
periods: periods
|
|
916
927
|
})]
|
|
917
928
|
})
|
|
918
929
|
})
|