@platox/pivot-table 0.0.35 → 0.0.37
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/es/dashboard-workbench/components/add-module-btn/index.js +14 -5
- package/es/dashboard-workbench/components/add-module-btn/index.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.d.ts +3 -3
- package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js +3 -3
- package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/index.js +4 -4
- package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/index.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/CombinationChartOptionPicker.d.ts +18 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/CombinationChartOptionPicker.js +103 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/CombinationChartOptionPicker.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/GroupFieldConfigPicker.d.ts +14 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/GroupFieldConfigPicker.js +79 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/GroupFieldConfigPicker.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/index.module.less.js +11 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/index.module.less.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/config.d.ts +14 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/config.js +153 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/config.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.d.ts +1 -21
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js +132 -101
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-styles.d.ts +0 -6
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-styles.js +2 -4
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-styles.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.js +4 -4
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.module.less.js +7 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.module.less.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/interface.d.ts +62 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/interface.js +31 -0
- package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/interface.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-data.d.ts +3 -3
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-data.js +2 -2
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-data.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js +16 -11
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/index.js +4 -4
- package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/index.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/config.d.ts +30 -0
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/config.js +132 -0
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/config.js.map +1 -0
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/debounce-select.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/index.d.ts +4 -12
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/index.js +6 -200
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/index.js.map +1 -1
- package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/interface.d.ts +14 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionRowItem.d.ts +9 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionRowItem.js +90 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionRowItem.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.d.ts +15 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js +218 -0
- package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/FieldPicker.d.ts +13 -0
- package/es/dashboard-workbench/components/global-filter-condition/FieldPicker.js +56 -0
- package/es/dashboard-workbench/components/global-filter-condition/FieldPicker.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/index.d.ts +13 -0
- package/es/dashboard-workbench/components/global-filter-condition/index.js +311 -0
- package/es/dashboard-workbench/components/global-filter-condition/index.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/index.module.less.js +8 -0
- package/es/dashboard-workbench/components/global-filter-condition/index.module.less.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/interface.d.ts +9 -0
- package/es/dashboard-workbench/components/global-filter-condition/useContext.d.ts +13 -0
- package/es/dashboard-workbench/components/global-filter-condition/useContext.js +10 -0
- package/es/dashboard-workbench/components/global-filter-condition/useContext.js.map +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/util.d.ts +1 -0
- package/es/dashboard-workbench/components/global-filter-condition/util.js +7 -0
- package/es/dashboard-workbench/components/global-filter-condition/util.js.map +1 -0
- package/es/dashboard-workbench/components/{ui/modal/editor-header.js → modal-editor-header/index.js} +4 -4
- package/es/dashboard-workbench/components/modal-editor-header/index.js.map +1 -0
- package/es/dashboard-workbench/components/modal-editor-header/index.module.less.js +9 -0
- package/es/dashboard-workbench/components/module-content/calendar-module/index.js +33 -19
- package/es/dashboard-workbench/components/module-content/calendar-module/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/Empty.js +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/Empty.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/base-chart/index.js +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/base-chart/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/index.d.ts +3 -4
- package/es/dashboard-workbench/components/module-content/chart-module/index.js +239 -158
- package/es/dashboard-workbench/components/module-content/chart-module/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/chart-module/utils.d.ts +100 -2
- package/es/dashboard-workbench/components/module-content/chart-module/utils.js +66 -13
- package/es/dashboard-workbench/components/module-content/chart-module/utils.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/index.js +3 -3
- package/es/dashboard-workbench/components/module-content/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/statistics-module/index.d.ts +1 -1
- package/es/dashboard-workbench/components/module-content/statistics-module/index.js +17 -7
- package/es/dashboard-workbench/components/module-content/statistics-module/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/text-module/editor/index.js +5 -5
- package/es/dashboard-workbench/components/module-content/text-module/editor/index.js.map +1 -1
- package/es/dashboard-workbench/components/module-content/utils.d.ts +2 -15
- package/es/dashboard-workbench/components/module-content/utils.js.map +1 -1
- package/es/dashboard-workbench/components/module-header/index.d.ts +1 -1
- package/es/dashboard-workbench/components/module-header/index.js +3 -3
- package/es/dashboard-workbench/components/module-header/index.js.map +1 -1
- package/es/dashboard-workbench/context.d.ts +21 -9
- package/es/dashboard-workbench/context.js +2 -9
- package/es/dashboard-workbench/context.js.map +1 -1
- package/es/dashboard-workbench/icon/icon-chart-combination.d.ts +3 -0
- package/es/dashboard-workbench/icon/icon-chart-combination.js +36 -0
- package/es/dashboard-workbench/icon/icon-chart-combination.js.map +1 -0
- package/es/dashboard-workbench/index.d.ts +2 -2
- package/es/dashboard-workbench/index.js +60 -30
- package/es/dashboard-workbench/index.js.map +1 -1
- package/es/dashboard-workbench/lang/en-US.d.ts +37 -0
- package/es/dashboard-workbench/lang/en-US.js +30 -3
- package/es/dashboard-workbench/lang/en-US.js.map +1 -1
- package/es/dashboard-workbench/lang/index.js +2 -2
- package/es/dashboard-workbench/lang/index.js.map +1 -1
- package/es/dashboard-workbench/lang/zh-CN.d.ts +37 -0
- package/es/dashboard-workbench/lang/zh-CN.js +30 -3
- package/es/dashboard-workbench/lang/zh-CN.js.map +1 -1
- package/es/dashboard-workbench/types.d.ts +18 -5
- package/es/dashboard-workbench/utils/index.d.ts +6 -4
- package/es/dashboard-workbench/utils/index.js +24 -3
- package/es/dashboard-workbench/utils/index.js.map +1 -1
- package/es/style.css +1 -1
- package/package.json +27 -24
- package/umd/pivot-table.umd.cjs +75 -75
- package/umd/style.css +1 -1
- package/es/dashboard-workbench/components/ui/modal/editor-header.js.map +0 -1
- package/es/dashboard-workbench/components/ui/modal/index.module.less.js +0 -9
- /package/es/dashboard-workbench/components/{ui/modal/editor-header.d.ts → modal-editor-header/index.d.ts} +0 -0
- /package/es/dashboard-workbench/components/{ui/modal → modal-editor-header}/index.module.less.js.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/global-filter-condition/index.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from 'react'\nimport clsx from 'clsx'\nimport { Button, MenuProps, Popover, Select, Space } from 'antd'\nimport { FilterOutlined, PlusOutlined } from '@ant-design/icons'\nimport { useTranslation } from 'react-i18next'\nimport { useControllableValue, useMemoizedFn } from 'ahooks'\nimport { cloneDeep, groupBy, isEqual } from 'lodash-es'\nimport { useAppContext } from '@platox/pivot-table/context'\nimport { useConditionTypeOptions } from '../add-module-modal/components/condition-modal/config'\nimport ConditionRowItem from './ConditionRowItem'\nimport { FieldPickerDataSourceItem } from './FieldPicker'\nimport styles from './index.module.less'\nimport { ConditionBlockWrapper, ConditionListItemWrapper } from './interface'\nimport { Context, ContextProps, useContext } from './useContext'\nimport { getMergeId } from './util'\n\nconst componentName = 'global-filter-condition'\n\nconst Empty: unknown[] = []\n\n/* ============================== split =============================== */\n\nexport interface GlobalFilterConditionProps {\n className?: string\n style?: React.CSSProperties\n}\nexport const GlobalFilterCondition: React.FC<GlobalFilterConditionProps> = props => {\n const { className, style } = props\n\n const { t } = useTranslation()\n\n const { globalFilterCondition, setGlobalFilterCondition } = useAppContext()\n\n const [open, setOpen] = useState<boolean>(false)\n\n /* ============================== 整理数据 =============================== */\n const { globalData } = useAppContext()\n const { fieldPickerDataSource, flattenFieldMap } = useMemo(() => {\n let flattenFieldMap: ContextProps['flattenFieldMap'] = new Map()\n\n let fieldPickerDataSource = (globalData?.sourceData || []).map(item => {\n let children = (item?.fields || []).map(v => {\n let mergeId = getMergeId(item?.value, v?.value)\n\n // 记录mergeId对应的field和source\n flattenFieldMap.set(mergeId, {\n field: v,\n source: item,\n mergeId: mergeId,\n })\n\n return {\n key: mergeId,\n label: v?.label,\n // 没有props 可以传到submenu里面 写在这里写死\n style: {\n minWidth: '160px',\n },\n }\n })\n\n return {\n key: item?.value,\n label: item?.label,\n children,\n }\n })\n\n return {\n fieldPickerDataSource: fieldPickerDataSource as unknown as FieldPickerDataSourceItem[],\n flattenFieldMap,\n }\n }, [globalData?.sourceData])\n\n return (\n <Context.Provider\n value={{\n fieldPickerDataSource: fieldPickerDataSource,\n flattenFieldMap: flattenFieldMap,\n }}\n >\n <div className={clsx(styles[`${componentName}`], className)} style={style}>\n <Popover\n content={\n <PopoverContent\n defaultValue={globalFilterCondition}\n onClose={(isOk, data) => {\n if (isOk) {\n setGlobalFilterCondition(data!)\n }\n setOpen(false)\n }}\n />\n }\n destroyTooltipOnHide\n placement=\"bottomRight\"\n trigger=\"click\"\n open={open}\n onOpenChange={setOpen}\n >\n <Button>\n <FilterOutlined />\n {t('filter')}\n {(globalFilterCondition?.length ?? 0) > 0 ? `(${globalFilterCondition?.length})` : ''}\n </Button>\n </Popover>\n </div>\n </Context.Provider>\n )\n}\n\nGlobalFilterCondition.displayName = 'GlobalFilterCondition'\n\nexport default GlobalFilterCondition\n\n/* ============================== split =============================== */\n\nexport type PopoverContentProps = {\n defaultValue?: ConditionBlockWrapper[]\n onClose?: (isOk: boolean, data?: ConditionBlockWrapper[]) => void\n}\n\nexport const PopoverContent = (props: PopoverContentProps) => {\n const { defaultValue } = props\n\n const { t } = useTranslation()\n const fieldPickerDataSource = useContext().fieldPickerDataSource\n const conditionTypeOptions = useConditionTypeOptions()\n\n /* ============================== split =============================== */\n const [value = Empty as ConditionBlockWrapper[], setValue] = useState<ConditionBlockWrapper[]>([])\n\n useEffect(() => {\n if (defaultValue) {\n setValue(cloneDeep(defaultValue))\n }\n }, [defaultValue])\n\n /* ============================== 这是empty =============================== */\n const [emptyBlockList, setEmptyBlockList] = useState<ConditionListItemWrapper[]>([])\n\n const handleEmptyBlockListChange = (newItem: ConditionListItemWrapper) => {\n if (newItem?.field) {\n setValue(prev => {\n let ret = [...prev]\n let match = ret.find(item => item.dataSourceId === newItem.dataSourceId)\n if (match) {\n match.conditionList.push(newItem)\n return [...ret]\n } else {\n // 创建一个\n let newConditionBlockWrapper = {\n dataSourceId: newItem.dataSourceId,\n conditionType: 'all',\n conditionList: [newItem],\n } as ConditionBlockWrapper\n return [...ret, newConditionBlockWrapper]\n }\n })\n }\n }\n\n const handleAddEmptyBlock = () => {\n setEmptyBlockList([...emptyBlockList, {}])\n }\n\n /* ============================== split =============================== */\n const hasChange = useMemo(() => {\n return !isEqual(value, defaultValue)\n }, [value, defaultValue])\n\n const handleSubmit = useMemoizedFn(() => {\n props?.onClose?.(true, value)\n })\n\n return (\n <div className={clsx(styles[`${componentName}__popover`])}>\n <div\n style={{\n marginBottom: '10px',\n }}\n >\n {t('setFilterCondition')}\n </div>\n\n {value.map((item, index) => {\n let conditionList = item?.conditionList\n let dataSourceName = fieldPickerDataSource?.find(v => v.key === item?.dataSourceId)?.label\n\n return (\n <div className={clsx(styles[`${componentName}__block`])} key={item?.dataSourceId}>\n <div\n style={{\n marginBottom: '10px',\n display: 'flex',\n justifyContent: 'space-between',\n }}\n >\n <div>{dataSourceName}</div>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '5px',\n }}\n >\n {t('conformTo')}\n <Select\n style={{ width: '80px' }}\n options={conditionTypeOptions}\n value={item?.conditionType}\n onChange={v => {\n setValue(prev => {\n let ret = [...prev]\n ret[index].conditionType = v\n return ret\n })\n }}\n />\n {t('addCondition')}\n </div>\n </div>\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n }}\n >\n {conditionList.map((v, conditionIndex) => {\n return (\n <ConditionRowItem\n key={conditionIndex}\n value={v}\n onChange={newValue => {\n setValue(prev => {\n let ret = [...prev]\n let prevItem = ret[index].conditionList[conditionIndex]\n if (prevItem?.dataSourceId !== newValue?.dataSourceId) {\n // 数据源变化了 删除原来的\n ret[index].conditionList.splice(conditionIndex, 1)\n if (ret[index].conditionList.length === 0) {\n ret.splice(index, 1)\n }\n // 添加到新的数据源添\n let newItem = newValue\n let match = ret.find(item => item.dataSourceId === newItem.dataSourceId)\n if (match) {\n match.conditionList.push(newItem)\n return [...ret]\n } else {\n let newConditionBlockWrapper = {\n dataSourceId: newItem.dataSourceId,\n conditionType: 'all',\n conditionList: [newItem],\n } as ConditionBlockWrapper\n return [...ret, newConditionBlockWrapper]\n }\n } else {\n ret[index].conditionList[conditionIndex] = {\n ...prevItem,\n ...newValue,\n }\n }\n\n return ret\n })\n }}\n onDelete={() => {\n setValue(prev => {\n let ret = [...prev]\n ret[index].conditionList.splice(conditionIndex, 1)\n\n if (ret[index].conditionList.length === 0) {\n ret.splice(index, 1)\n }\n return ret\n })\n }}\n />\n )\n })}\n </div>\n </div>\n )\n })}\n\n {emptyBlockList.map((item, index) => {\n return (\n <div className={clsx(styles[`${componentName}__block`])} key={index}>\n <ConditionRowItem\n value={item}\n onChange={newValue => {\n handleEmptyBlockListChange(newValue)\n }}\n onDelete={() => {\n setEmptyBlockList(prev => {\n let ret = [...prev]\n ret.splice(index, 1)\n return ret\n })\n }}\n />\n </div>\n )\n })}\n\n <Button\n type=\"dashed\"\n block\n style={{\n marginBottom: '10px',\n }}\n icon={<PlusOutlined />}\n onClick={() => {\n handleAddEmptyBlock()\n }}\n >\n {t('addCondition')}\n </Button>\n\n <div\n style={{\n display: 'flex',\n justifyContent: 'flex-end',\n }}\n >\n <Button\n type=\"primary\"\n disabled={!hasChange}\n onClick={() => {\n handleSubmit()\n }}\n >\n {t('confirm')}\n </Button>\n </div>\n </div>\n )\n}\n"],"names":["flattenFieldMap","fieldPickerDataSource","item"],"mappings":";;;;;;;;;;;;;;AAgBA,MAAM,gBAAgB;AAEtB,MAAM,QAAmB,CAAC;AAQnB,MAAM,wBAA8D,CAAS,UAAA;AAC5E,QAAA,EAAE,WAAW,MAAA,IAAU;AAEvB,QAAA,EAAE,EAAE,IAAI,eAAe;AAE7B,QAAM,EAAE,uBAAuB,yBAAyB,IAAI,cAAc;AAE1E,QAAM,CAAC,MAAM,OAAO,IAAI,SAAkB,KAAK;AAGzC,QAAA,EAAE,WAAW,IAAI,cAAc;AACrC,QAAM,EAAE,uBAAuB,gBAAgB,IAAI,QAAQ,MAAM;AAC3DA,QAAAA,uCAAuD,IAAI;AAE/D,QAAIC,2BAAyB,yCAAY,eAAc,CAAA,GAAI,IAAI,CAAQ,SAAA;AACrE,UAAI,aAAY,6BAAM,WAAU,CAAA,GAAI,IAAI,CAAK,MAAA;AAC3C,YAAI,UAAU,WAAW,6BAAM,OAAO,uBAAG,KAAK;AAG9CD,yBAAgB,IAAI,SAAS;AAAA,UAC3B,OAAO;AAAA,UACP,QAAQ;AAAA,UACR;AAAA,QAAA,CACD;AAEM,eAAA;AAAA,UACL,KAAK;AAAA,UACL,OAAO,uBAAG;AAAA;AAAA,UAEV,OAAO;AAAA,YACL,UAAU;AAAA,UAAA;AAAA,QAEd;AAAA,MAAA,CACD;AAEM,aAAA;AAAA,QACL,KAAK,6BAAM;AAAA,QACX,OAAO,6BAAM;AAAA,QACb;AAAA,MACF;AAAA,IAAA,CACD;AAEM,WAAA;AAAA,MACL,uBAAuBC;AAAAA,MACvB,iBAAAD;AAAAA,IACF;AAAA,EAAA,GACC,CAAC,yCAAY,UAAU,CAAC;AAGzB,SAAA;AAAA,IAAC,QAAQ;AAAA,IAAR;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,MAEA,UAAA,oBAAC,OAAI,EAAA,WAAW,KAAK,OAAO,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,OAC3D,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SACE;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,cAAc;AAAA,cACd,SAAS,CAAC,MAAM,SAAS;AACvB,oBAAI,MAAM;AACR,2CAAyB,IAAK;AAAA,gBAAA;AAEhC,wBAAQ,KAAK;AAAA,cAAA;AAAA,YACf;AAAA,UACF;AAAA,UAEF,sBAAoB;AAAA,UACpB,WAAU;AAAA,UACV,SAAQ;AAAA,UACR;AAAA,UACA,cAAc;AAAA,UAEd,+BAAC,QACC,EAAA,UAAA;AAAA,YAAA,oBAAC,gBAAe,EAAA;AAAA,YACf,EAAE,QAAQ;AAAA,cACT,+DAAuB,WAAU,KAAK,IAAI,IAAI,+DAAuB,MAAM,MAAM;AAAA,UAAA,EACrF,CAAA;AAAA,QAAA;AAAA,MAAA,EAEJ,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA,sBAAsB,cAAc;AAWvB,MAAA,iBAAiB,CAAC,UAA+B;AACtD,QAAA,EAAE,iBAAiB;AAEnB,QAAA,EAAE,EAAE,IAAI,eAAe;AACvB,QAAA,wBAAwB,aAAa;AAC3C,QAAM,uBAAuB,wBAAwB;AAGrD,QAAM,CAAC,QAAQ,OAAkC,QAAQ,IAAI,SAAkC,CAAA,CAAE;AAEjG,YAAU,MAAM;AACd,QAAI,cAAc;AACP,eAAA,UAAU,YAAY,CAAC;AAAA,IAAA;AAAA,EAClC,GACC,CAAC,YAAY,CAAC;AAGjB,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAqC,CAAA,CAAE;AAE7E,QAAA,6BAA6B,CAAC,YAAsC;AACxE,QAAI,mCAAS,OAAO;AAClB,eAAS,CAAQ,SAAA;AACX,YAAA,MAAM,CAAC,GAAG,IAAI;AAClB,YAAI,QAAQ,IAAI,KAAK,UAAQ,KAAK,iBAAiB,QAAQ,YAAY;AACvE,YAAI,OAAO;AACH,gBAAA,cAAc,KAAK,OAAO;AACzB,iBAAA,CAAC,GAAG,GAAG;AAAA,QAAA,OACT;AAEL,cAAI,2BAA2B;AAAA,YAC7B,cAAc,QAAQ;AAAA,YACtB,eAAe;AAAA,YACf,eAAe,CAAC,OAAO;AAAA,UACzB;AACO,iBAAA,CAAC,GAAG,KAAK,wBAAwB;AAAA,QAAA;AAAA,MAC1C,CACD;AAAA,IAAA;AAAA,EAEL;AAEA,QAAM,sBAAsB,MAAM;AAChC,sBAAkB,CAAC,GAAG,gBAAgB,CAAA,CAAE,CAAC;AAAA,EAC3C;AAGM,QAAA,YAAY,QAAQ,MAAM;AACvB,WAAA,CAAC,QAAQ,OAAO,YAAY;AAAA,EAAA,GAClC,CAAC,OAAO,YAAY,CAAC;AAElB,QAAA,eAAe,cAAc,MAAM;;AAChC,yCAAA,YAAA,+BAAU,MAAM;AAAA,EAAK,CAC7B;AAGC,SAAA,qBAAC,SAAI,WAAW,KAAK,OAAO,GAAG,aAAa,WAAW,CAAC,GACtD,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,cAAc;AAAA,QAChB;AAAA,QAEC,YAAE,oBAAoB;AAAA,MAAA;AAAA,IACzB;AAAA,IAEC,MAAM,IAAI,CAAC,MAAM,UAAU;;AAC1B,UAAI,gBAAgB,6BAAM;AACtB,UAAA,kBAAiB,oEAAuB,KAAK,CAAA,MAAK,EAAE,SAAQ,6BAAM,mBAAjD,mBAAgE;AAGnF,aAAA,qBAAC,SAAI,WAAW,KAAK,OAAO,GAAG,aAAa,SAAS,CAAC,GACpD,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,cAAc;AAAA,cACd,SAAS;AAAA,cACT,gBAAgB;AAAA,YAClB;AAAA,YAEA,UAAA;AAAA,cAAA,oBAAC,SAAK,UAAe,eAAA,CAAA;AAAA,cACrB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,OAAO;AAAA,oBACL,SAAS;AAAA,oBACT,YAAY;AAAA,oBACZ,KAAK;AAAA,kBACP;AAAA,kBAEC,UAAA;AAAA,oBAAA,EAAE,WAAW;AAAA,oBACd;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC,OAAO,EAAE,OAAO,OAAO;AAAA,wBACvB,SAAS;AAAA,wBACT,OAAO,6BAAM;AAAA,wBACb,UAAU,CAAK,MAAA;AACb,mCAAS,CAAQ,SAAA;AACX,gCAAA,MAAM,CAAC,GAAG,IAAI;AACd,gCAAA,KAAK,EAAE,gBAAgB;AACpB,mCAAA;AAAA,0BAAA,CACR;AAAA,wBAAA;AAAA,sBACH;AAAA,oBACF;AAAA,oBACC,EAAE,cAAc;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACnB;AAAA,UAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,SAAS;AAAA,cACT,eAAe;AAAA,cACf,KAAK;AAAA,YACP;AAAA,YAEC,UAAc,cAAA,IAAI,CAAC,GAAG,mBAAmB;AAEtC,qBAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,OAAO;AAAA,kBACP,UAAU,CAAY,aAAA;AACpB,6BAAS,CAAQ,SAAA;AACX,0BAAA,MAAM,CAAC,GAAG,IAAI;AAClB,0BAAI,WAAW,IAAI,KAAK,EAAE,cAAc,cAAc;AAClD,2BAAA,qCAAU,mBAAiB,qCAAU,eAAc;AAErD,4BAAI,KAAK,EAAE,cAAc,OAAO,gBAAgB,CAAC;AACjD,4BAAI,IAAI,KAAK,EAAE,cAAc,WAAW,GAAG;AACrC,8BAAA,OAAO,OAAO,CAAC;AAAA,wBAAA;AAGrB,4BAAI,UAAU;AACV,4BAAA,QAAQ,IAAI,KAAK,CAAAE,UAAQA,MAAK,iBAAiB,QAAQ,YAAY;AACvE,4BAAI,OAAO;AACH,gCAAA,cAAc,KAAK,OAAO;AACzB,iCAAA,CAAC,GAAG,GAAG;AAAA,wBAAA,OACT;AACL,8BAAI,2BAA2B;AAAA,4BAC7B,cAAc,QAAQ;AAAA,4BACtB,eAAe;AAAA,4BACf,eAAe,CAAC,OAAO;AAAA,0BACzB;AACO,iCAAA,CAAC,GAAG,KAAK,wBAAwB;AAAA,wBAAA;AAAA,sBAC1C,OACK;AACL,4BAAI,KAAK,EAAE,cAAc,cAAc,IAAI;AAAA,0BACzC,GAAG;AAAA,0BACH,GAAG;AAAA,wBACL;AAAA,sBAAA;AAGK,6BAAA;AAAA,oBAAA,CACR;AAAA,kBACH;AAAA,kBACA,UAAU,MAAM;AACd,6BAAS,CAAQ,SAAA;AACX,0BAAA,MAAM,CAAC,GAAG,IAAI;AAClB,0BAAI,KAAK,EAAE,cAAc,OAAO,gBAAgB,CAAC;AAEjD,0BAAI,IAAI,KAAK,EAAE,cAAc,WAAW,GAAG;AACrC,4BAAA,OAAO,OAAO,CAAC;AAAA,sBAAA;AAEd,6BAAA;AAAA,oBAAA,CACR;AAAA,kBAAA;AAAA,gBACH;AAAA,gBA9CK;AAAA,cA+CP;AAAA,YAEH,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,GA5F4D,6BAAM,YA6FpE;AAAA,IAAA,CAEH;AAAA,IAEA,eAAe,IAAI,CAAC,MAAM,UAAU;AAEjC,aAAA,oBAAC,SAAI,WAAW,KAAK,OAAO,GAAG,aAAa,SAAS,CAAC,GACpD,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,UACP,UAAU,CAAY,aAAA;AACpB,uCAA2B,QAAQ;AAAA,UACrC;AAAA,UACA,UAAU,MAAM;AACd,8BAAkB,CAAQ,SAAA;AACpB,kBAAA,MAAM,CAAC,GAAG,IAAI;AACd,kBAAA,OAAO,OAAO,CAAC;AACZ,qBAAA;AAAA,YAAA,CACR;AAAA,UAAA;AAAA,QACH;AAAA,WAZ0D,KAc9D;AAAA,IAAA,CAEH;AAAA,IAED;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAK;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AAAA,QAChB;AAAA,QACA,0BAAO,cAAa,EAAA;AAAA,QACpB,SAAS,MAAM;AACO,8BAAA;AAAA,QACtB;AAAA,QAEC,YAAE,cAAc;AAAA,MAAA;AAAA,IACnB;AAAA,IAEA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,SAAS;AAAA,UACT,gBAAgB;AAAA,QAClB;AAAA,QAEA,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,UAAU,CAAC;AAAA,YACX,SAAS,MAAM;AACA,2BAAA;AAAA,YACf;AAAA,YAEC,YAAE,SAAS;AAAA,UAAA;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const styles = {
|
|
2
|
+
"global-filter-condition__popover": "_global-filter-condition__popover_7daxk_1",
|
|
3
|
+
"global-filter-condition__block": "_global-filter-condition__block_7daxk_4"
|
|
4
|
+
};
|
|
5
|
+
export {
|
|
6
|
+
styles as default
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=index.module.less.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.module.less.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConditionListItem } from '../add-module-modal/components/condition-modal/interface';
|
|
2
|
+
export type ConditionListItemWrapper = Partial<ConditionListItem> & {
|
|
3
|
+
dataSourceId?: string;
|
|
4
|
+
};
|
|
5
|
+
export interface ConditionBlockWrapper {
|
|
6
|
+
conditionList: ConditionListItemWrapper[];
|
|
7
|
+
conditionType: 'all' | 'any';
|
|
8
|
+
dataSourceId: string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FieldItem, SourceDataItem } from '../../types';
|
|
2
|
+
import { FieldPickerDataSourceItem } from './FieldPicker';
|
|
3
|
+
export type ContextProps = {
|
|
4
|
+
fieldPickerDataSource: FieldPickerDataSourceItem[];
|
|
5
|
+
flattenFieldMap: Map<string, //mergeId
|
|
6
|
+
{
|
|
7
|
+
field: FieldItem;
|
|
8
|
+
source: SourceDataItem;
|
|
9
|
+
mergeId: string;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
export declare const Context: import('react').Context<Partial<ContextProps>>;
|
|
13
|
+
export declare const useContext: () => Partial<ContextProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useContext.js","sources":["../../../../packages/dashboard-workbench/components/global-filter-condition/useContext.tsx"],"sourcesContent":["import { useContext as _useContext, createContext } from 'react'\nimport { FieldItem, SourceDataItem } from '../../types'\nimport { FieldPickerDataSourceItem } from './FieldPicker'\n\nexport type ContextProps = {\n fieldPickerDataSource: FieldPickerDataSourceItem[]\n\n //方便后续查找\n flattenFieldMap: Map<\n string, //mergeId\n {\n field: FieldItem\n source: SourceDataItem\n mergeId: string\n }\n >\n}\n\nexport const Context = createContext<Partial<ContextProps>>({})\n\nexport const useContext = () => {\n return _useContext(Context)\n}\n"],"names":["_useContext"],"mappings":";AAkBa,MAAA,UAAU,cAAqC,CAAE,CAAA;AAEvD,MAAM,aAAa,MAAM;AAC9B,SAAOA,aAAY,OAAO;AAC5B;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getMergeId: (dataSourceId: string, field: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../packages/dashboard-workbench/components/global-filter-condition/util.ts"],"sourcesContent":["export const getMergeId = (dataSourceId: string, field: string) => {\n return `${dataSourceId}-${field}`\n}\n"],"names":[],"mappings":"AAAa,MAAA,aAAa,CAAC,cAAsB,UAAkB;AAC1D,SAAA,GAAG,YAAY,IAAI,KAAK;AACjC;"}
|
package/es/dashboard-workbench/components/{ui/modal/editor-header.js → modal-editor-header/index.js}
RENAMED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useControllableValue } from "ahooks";
|
|
3
|
-
import clsx from "clsx";
|
|
4
2
|
import { useRef, useState, useEffect } from "react";
|
|
3
|
+
import clsx from "clsx";
|
|
5
4
|
import { Input, Button } from "antd";
|
|
6
|
-
import styles from "./index.module.less.js";
|
|
7
5
|
import { EditOutlined } from "@ant-design/icons";
|
|
6
|
+
import { useControllableValue } from "ahooks";
|
|
7
|
+
import styles from "./index.module.less.js";
|
|
8
8
|
const componentName = "editor-header";
|
|
9
9
|
const EditorHeader = (props) => {
|
|
10
10
|
const { style, className } = props;
|
|
@@ -56,4 +56,4 @@ export {
|
|
|
56
56
|
EditorHeader,
|
|
57
57
|
EditorHeader as default
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/modal-editor-header/index.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type CSSProperties } from 'react'\nimport clsx from 'clsx'\nimport { Button, Input, InputRef } from 'antd'\nimport { EditOutlined } from '@ant-design/icons'\nimport { useControllableValue } from 'ahooks'\nimport styles from './index.module.less'\n\nconst componentName = 'editor-header'\n\nexport type EditorHeaderProps = {\n style?: CSSProperties\n className?: string\n\n value?: string\n onChange?: (value: string) => void\n}\n\nexport const EditorHeader = (props: EditorHeaderProps) => {\n const { style, className } = props\n\n /* ============================== split =============================== */\n const [value, setValue] = useControllableValue(props)\n\n const inputRef = useRef<InputRef>(null)\n const [isEdit, setIsEdit] = useState<boolean>(false)\n useEffect(() => {\n if (isEdit) {\n setTimeout(() => {\n inputRef.current?.focus()\n }, 16)\n }\n }, [isEdit])\n\n return (\n <div className={clsx(styles[`${componentName}`], className)} style={style}>\n {isEdit ? (\n <Input\n className={clsx(styles[`${componentName}__input`])}\n ref={inputRef}\n value={value}\n onChange={e => {\n setValue(e.target.value.trim())\n }}\n onBlur={() => {\n setIsEdit(false)\n }}\n onKeyDown={e => {\n if (e.key == 'Enter') {\n setIsEdit(false)\n }\n }}\n />\n ) : (\n <>\n <span>{value}</span>\n <Button\n className={clsx(styles[`${componentName}__edit`])}\n onClick={() => setIsEdit(true)}\n type=\"text\"\n size=\"small\"\n >\n <EditOutlined />\n </Button>\n </>\n )}\n </div>\n )\n}\n\nEditorHeader.displayName = 'EditorHeader'\n\nexport default EditorHeader\n"],"names":[],"mappings":";;;;;;;AAOA,MAAM,gBAAgB;AAUT,MAAA,eAAe,CAAC,UAA6B;AAClD,QAAA,EAAE,OAAO,UAAA,IAAc;AAG7B,QAAM,CAAC,OAAO,QAAQ,IAAI,qBAAqB,KAAK;AAE9C,QAAA,WAAW,OAAiB,IAAI;AACtC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,KAAK;AACnD,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,iBAAW,MAAM;;AACf,uBAAS,YAAT,mBAAkB;AAAA,SACjB,EAAE;AAAA,IAAA;AAAA,EACP,GACC,CAAC,MAAM,CAAC;AAEX,SACG,oBAAA,OAAA,EAAI,WAAW,KAAK,OAAO,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,OAC1D,UACC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,KAAK,OAAO,GAAG,aAAa,SAAS,CAAC;AAAA,MACjD,KAAK;AAAA,MACL;AAAA,MACA,UAAU,CAAK,MAAA;AACb,iBAAS,EAAE,OAAO,MAAM,KAAA,CAAM;AAAA,MAChC;AAAA,MACA,QAAQ,MAAM;AACZ,kBAAU,KAAK;AAAA,MACjB;AAAA,MACA,WAAW,CAAK,MAAA;AACV,YAAA,EAAE,OAAO,SAAS;AACpB,oBAAU,KAAK;AAAA,QAAA;AAAA,MACjB;AAAA,IACF;AAAA,EAAA,IAIA,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,oBAAC,UAAM,UAAM,MAAA,CAAA;AAAA,IACb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,KAAK,OAAO,GAAG,aAAa,QAAQ,CAAC;AAAA,QAChD,SAAS,MAAM,UAAU,IAAI;AAAA,QAC7B,MAAK;AAAA,QACL,MAAK;AAAA,QAEL,8BAAC,cAAa,CAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB,EAAA,CACF,EAEJ,CAAA;AAEJ;AAEA,aAAa,cAAc;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const styles = {
|
|
2
|
+
"editor-header": "_editor-header_198q1_1",
|
|
3
|
+
"editor-header__edit": "_editor-header__edit_198q1_13",
|
|
4
|
+
"editor-header__input": "_editor-header__input_198q1_24"
|
|
5
|
+
};
|
|
6
|
+
export {
|
|
7
|
+
styles as default
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=index.module.less.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import React, { useState,
|
|
3
|
-
import
|
|
2
|
+
import React, { useState, useMemo, useEffect, useRef } from "react";
|
|
3
|
+
import { message, Spin, Modal, Descriptions } from "antd";
|
|
4
|
+
import { useTranslation } from "react-i18next";
|
|
4
5
|
import dayGridPlugin from "@fullcalendar/daygrid";
|
|
6
|
+
import FullCalendar from "@fullcalendar/react";
|
|
7
|
+
import { useMemoizedFn, useSize } from "ahooks";
|
|
5
8
|
import dayjs from "dayjs";
|
|
6
9
|
import isBetween from "dayjs/plugin/isBetween";
|
|
7
10
|
import { useAppContext } from "../../../context.js";
|
|
8
|
-
import { useTranslation } from "react-i18next";
|
|
9
|
-
import { mapConditionsToPostgrest } from "../utils.js";
|
|
10
|
-
import { message, Spin, Modal, Descriptions } from "antd";
|
|
11
11
|
import { getTransformValue } from "../../../utils/index.js";
|
|
12
|
-
import {
|
|
12
|
+
import { mapConditionsToPostgrest } from "../utils.js";
|
|
13
13
|
import MINIMAL_RAW_EN_LOCALE from "./locales/en.js";
|
|
14
14
|
import l77 from "./locales/zh.js";
|
|
15
15
|
dayjs.extend(isBetween);
|
|
16
16
|
const CalendarModule = ({ moduleDataApi, customData }) => {
|
|
17
17
|
const { t, i18n } = useTranslation();
|
|
18
|
-
const { globalData } = useAppContext();
|
|
18
|
+
const { globalData, globalFilterCondition } = useAppContext();
|
|
19
19
|
const [startMonthIntervals, setStartMonthIntervals] = useState(["", ""]);
|
|
20
20
|
const handleDatesSet = (dateInfo) => {
|
|
21
21
|
const currentDate = dayjs(dateInfo.view.currentStart);
|
|
@@ -23,10 +23,16 @@ const CalendarModule = ({ moduleDataApi, customData }) => {
|
|
|
23
23
|
const lastDay = currentDate.endOf("month").format("YYYY-MM-DD");
|
|
24
24
|
setStartMonthIntervals([firstDay, lastDay]);
|
|
25
25
|
};
|
|
26
|
+
let matchGlobalFilterCondition = useMemo(() => {
|
|
27
|
+
let matchGlobalFilterCondition2 = globalFilterCondition == null ? void 0 : globalFilterCondition.find(
|
|
28
|
+
(item) => (item == null ? void 0 : item.dataSourceId) === (customData == null ? void 0 : customData.dataSourceId)
|
|
29
|
+
);
|
|
30
|
+
return matchGlobalFilterCondition2;
|
|
31
|
+
}, [globalFilterCondition, customData == null ? void 0 : customData.dataSourceId]);
|
|
26
32
|
const [isloading, setIsloading] = useState(false);
|
|
27
33
|
const [chartData, setChartData] = useState();
|
|
28
34
|
const fetchChartData = useMemoizedFn(async () => {
|
|
29
|
-
var _a, _b;
|
|
35
|
+
var _a, _b, _c;
|
|
30
36
|
setChartData([]);
|
|
31
37
|
if (customData) {
|
|
32
38
|
setIsloading(true);
|
|
@@ -36,16 +42,19 @@ const CalendarModule = ({ moduleDataApi, customData }) => {
|
|
|
36
42
|
const conditionData = customData.conditionData;
|
|
37
43
|
const FMDay = startMonthIntervals.length > 0 ? startMonthIntervals[0] : firstDayOfMonth;
|
|
38
44
|
const LMDay = startMonthIntervals.length > 0 ? startMonthIntervals[1] : lastDayOfMonth;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
queryString
|
|
45
|
+
let isConditionTimestampExist = ((conditionData == null ? void 0 : conditionData.conditionList) ?? []).some((item) => item.type == "timestamp") || ((matchGlobalFilterCondition == null ? void 0 : matchGlobalFilterCondition.conditionList) ?? []).some((item) => item.type == "timestamp");
|
|
46
|
+
if (!isConditionTimestampExist) {
|
|
47
|
+
queryString = `&added_on=gt.${FMDay}&added_on=lt.${LMDay}`;
|
|
48
|
+
}
|
|
49
|
+
if ((conditionData == null ? void 0 : conditionData.conditionList) && ((_a = conditionData == null ? void 0 : conditionData.conditionList) == null ? void 0 : _a.length) > 0) {
|
|
50
|
+
(_b = conditionData == null ? void 0 : conditionData.conditionList) == null ? void 0 : _b.some((item) => item.type == "timestamp");
|
|
51
|
+
queryString += `&${mapConditionsToPostgrest(conditionData)}`;
|
|
52
|
+
}
|
|
53
|
+
if ((((_c = matchGlobalFilterCondition == null ? void 0 : matchGlobalFilterCondition.conditionList) == null ? void 0 : _c.length) ?? 0) > 0) {
|
|
54
|
+
queryString += `&${mapConditionsToPostgrest(matchGlobalFilterCondition)}`;
|
|
55
|
+
}
|
|
56
|
+
if (queryString.startsWith("&")) {
|
|
57
|
+
queryString = queryString.substring(1);
|
|
49
58
|
}
|
|
50
59
|
if (customData == null ? void 0 : customData.dataSourceId) {
|
|
51
60
|
moduleDataApi == null ? void 0 : moduleDataApi({
|
|
@@ -67,7 +76,12 @@ const CalendarModule = ({ moduleDataApi, customData }) => {
|
|
|
67
76
|
if (customData) {
|
|
68
77
|
fetchChartData();
|
|
69
78
|
}
|
|
70
|
-
}, [
|
|
79
|
+
}, [
|
|
80
|
+
customData == null ? void 0 : customData.dataSourceId,
|
|
81
|
+
customData == null ? void 0 : customData.conditionData,
|
|
82
|
+
startMonthIntervals,
|
|
83
|
+
matchGlobalFilterCondition
|
|
84
|
+
]);
|
|
71
85
|
const fieldOptions = useMemo(() => {
|
|
72
86
|
var _a, _b;
|
|
73
87
|
return (_b = (_a = globalData == null ? void 0 : globalData.sourceData) == null ? void 0 : _a.find((item) => item.value === (customData == null ? void 0 : customData.dataSourceId))) == null ? void 0 : _b.fields;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/dashboard-workbench/components/module-content/calendar-module/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport FullCalendar from '@fullcalendar/react'\nimport dayGridPlugin from '@fullcalendar/daygrid'\nimport dayjs from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport { EventContentArg, EventSourceInput } from '@fullcalendar/core'\nimport { ModuleDataApi, SourceDataFieldsTypes } from '../../../types'\nimport { CalendarCustomeDataTypes } from '../../add-module-modal/add-calendar-modal/custome-data'\nimport { useAppContext } from '../../../context'\nimport { useTranslation } from 'react-i18next'\nimport { mapConditionsToPostgrest } from '../utils'\nimport { Descriptions, message, Modal, Spin } from 'antd'\nimport { getTransformValue } from '../../../utils'\nimport { useMemoizedFn, useSize } from 'ahooks'\nimport en from './locales/en'\nimport zh from './locales/zh'\n// import zh from\n\ndayjs.extend(isBetween)\n\ninterface CalendarModuleProps {\n customData?: CalendarCustomeDataTypes\n onChange?: (val: unknown) => void\n moduleDataApi?: ModuleDataApi\n width?: number\n height?: number\n rowWidth?: number\n rowHeight?: number\n}\n\nconst CalendarModule: React.FC<CalendarModuleProps> = ({ moduleDataApi, customData }) => {\n const { t, i18n } = useTranslation()\n const { globalData } = useAppContext()\n\n /* ============================== split =============================== */\n const [startMonthIntervals, setStartMonthIntervals] = useState<[string, string]>(['', ''])\n const handleDatesSet = (dateInfo: any) => {\n const currentDate = dayjs(dateInfo.view.currentStart)\n const firstDay = currentDate.startOf('month').format('YYYY-MM-DD')\n const lastDay = currentDate.endOf('month').format('YYYY-MM-DD')\n setStartMonthIntervals([firstDay, lastDay])\n }\n /* ============================== split =============================== */\n const [isloading, setIsloading] = useState(false)\n const [chartData, setChartData] = useState<any>()\n const fetchChartData = useMemoizedFn(async () => {\n setChartData([])\n if (customData) {\n setIsloading(true)\n let queryString = ''\n const firstDayOfMonth = dayjs().startOf('month').format('YYYY-MM-DD')\n const lastDayOfMonth = dayjs().endOf('month').format('YYYY-MM-DD')\n const conditionData = customData.conditionData\n const FMDay = startMonthIntervals.length > 0 ? startMonthIntervals[0] : firstDayOfMonth\n const LMDay = startMonthIntervals.length > 0 ? startMonthIntervals[1] : lastDayOfMonth\n\n if (conditionData) {\n if (conditionData?.conditionList?.map(item => item.type)?.includes('timestamp')) {\n queryString += `${mapConditionsToPostgrest(conditionData)}`\n } else {\n queryString += `added_on=gt.${FMDay}&added_on=lt.${LMDay}&${mapConditionsToPostgrest(\n conditionData\n )}`\n }\n } else {\n queryString = `added_on=gt.${FMDay}&added_on=lt.${LMDay}`\n }\n\n if (customData?.dataSourceId) {\n moduleDataApi?.({\n id: customData?.dataSourceId,\n query: queryString,\n })\n .then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n setChartData(res.data)\n })\n .finally(() => {\n setIsloading(false)\n })\n }\n }\n })\n useEffect(() => {\n if (customData) {\n fetchChartData()\n }\n }, [customData?.dataSourceId, customData?.conditionData, startMonthIntervals])\n\n /* ============================== split =============================== */\n const fieldOptions = useMemo(() => {\n return globalData?.sourceData?.find(item => item.value === customData?.dataSourceId)?.fields\n }, [globalData, customData])\n\n const events = useMemo(() => {\n const calendarEvents = chartData?.map((item: any) => {\n const title = getTransformValue({\n fieldOptions,\n val: customData?.titleField ? item?.[customData.titleField] : '',\n field: customData?.titleField,\n fieldMap: globalData?.fieldMap,\n })\n return {\n title: title ?? t('unnamedRecord'),\n start:\n customData?.startDateField && item[customData?.startDateField]\n ? dayjs(item[customData?.startDateField])?.toISOString()\n : '',\n end:\n customData?.endDateField && item[customData?.endDateField]\n ? dayjs(item[customData?.endDateField])?.toISOString()\n : undefined,\n allDay: true,\n ...item,\n originalData: item,\n }\n })\n return calendarEvents\n }, [chartData, customData, fieldOptions])\n\n /* ============================== split =============================== */\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [currData, setCurrData] = useState()\n const currTitle = getTransformValue({\n fieldOptions,\n val: customData?.titleField ? currData?.[customData.titleField] : '',\n field: customData?.titleField,\n fieldMap: globalData?.fieldMap,\n })\n\n const handleEventClick = useMemoizedFn((info: any) => {\n const event = info.event\n setIsModalOpen(true)\n\n setCurrData(event.extendedProps?.originalData)\n })\n\n /* ============================== split =============================== */\n const boxRef = useRef<any>()\n const calendarRef = useRef<any>(null)\n const size = useSize(boxRef)\n useEffect(() => {\n setTimeout(() => {\n calendarRef.current?.getApi()?.updateSize()\n }, 16) //不是一个div 会有延迟\n }, [size])\n\n /* ============================== split =============================== */\n\n return (\n <div\n ref={boxRef}\n style={{\n height: '100%',\n width: '100%',\n boxSizing: 'border-box',\n padding: '12px',\n }}\n >\n <div\n className=\"full-calendar-app\"\n style={{\n height: '100%',\n width: '100%',\n overflowY: 'auto',\n position: 'relative',\n }}\n >\n {isloading ? (\n <Spin\n style={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n background: 'rgba(255,255,255,0.6)',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n }}\n spinning={isloading}\n />\n ) : null}\n\n <FullCalendar\n locale={i18n.language === 'zh-CN' ? zh : en}\n // locale =\n ref={calendarRef} // 设置 FullCalendar 引用\n plugins={[dayGridPlugin]}\n headerToolbar={{\n left: 'title,today,prev,next',\n center: '',\n right: '',\n }}\n initialView=\"dayGridMonth\"\n height=\"auto\" // 自适应高度\n contentHeight=\"auto\" // 自动调整内容高度\n // dayMaxEvents={4} // 如果一天的事件太多则显示更多按钮\n editable={true}\n selectable={true}\n selectMirror={true}\n fixedWeekCount={false}\n datesSet={handleDatesSet}\n timeZone=\"UTC\"\n events={events} // 将筛选后的事件传递给 FullCalendar\n eventContent={(eventInfo: EventContentArg) => {\n return (\n <>\n <i>{eventInfo.event.title}</i>\n </>\n )\n }} // 自定义事件内容渲染\n eventClick={handleEventClick} // 事件点击时调用\n ></FullCalendar>\n <Modal\n title={currTitle ?? t('unnamedRecord')}\n open={isModalOpen}\n onOk={() => {\n setIsModalOpen(false)\n }}\n onCancel={() => {\n setIsModalOpen(false)\n }}\n destroyOnClose\n footer={(_, { OkBtn }) => (\n <>\n <OkBtn />\n </>\n )}\n >\n {(fieldOptions?.length ?? 0) > 0 ? (\n <Descriptions\n className=\"reset-descriptions\"\n layout=\"vertical\"\n column={2}\n items={fieldOptions?.map((field: any, fieldKey) => ({\n key: fieldKey,\n label: field.label,\n children: getTransformValue({\n fieldOptions,\n val: currData?.[field.value],\n field: field.value,\n fieldMap: globalData?.fieldMap,\n }),\n }))}\n />\n ) : null}\n </Modal>\n </div>\n </div>\n )\n}\n\nexport default React.memo(CalendarModule)\n"],"names":["zh","en"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/dashboard-workbench/components/module-content/calendar-module/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { Descriptions, message, Modal, Spin } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { EventContentArg, EventSourceInput } from '@fullcalendar/core'\nimport dayGridPlugin from '@fullcalendar/daygrid'\nimport FullCalendar from '@fullcalendar/react'\nimport { useMemoizedFn, useSize } from 'ahooks'\nimport dayjs from 'dayjs'\nimport isBetween from 'dayjs/plugin/isBetween'\nimport { useAppContext } from '../../../context'\nimport { FieldItem, ModuleDataApi } from '../../../types'\nimport { getTransformValue } from '../../../utils'\nimport { CalendarCustomeDataTypes } from '../../add-module-modal/add-calendar-modal/custome-data'\nimport { ConditionBlock } from '../../add-module-modal/components/condition-modal/interface'\nimport { mapConditionsToPostgrest } from '../utils'\nimport en from './locales/en'\nimport zh from './locales/zh'\n\n// import zh from\n\ndayjs.extend(isBetween)\n\ninterface CalendarModuleProps {\n customData?: CalendarCustomeDataTypes\n onChange?: (val: unknown) => void\n moduleDataApi?: ModuleDataApi\n width?: number\n height?: number\n rowWidth?: number\n rowHeight?: number\n}\n\nconst CalendarModule: React.FC<CalendarModuleProps> = ({ moduleDataApi, customData }) => {\n const { t, i18n } = useTranslation()\n const { globalData, globalFilterCondition } = useAppContext()\n\n /* ============================== split =============================== */\n const [startMonthIntervals, setStartMonthIntervals] = useState<[string, string]>(['', ''])\n const handleDatesSet = (dateInfo: any) => {\n const currentDate = dayjs(dateInfo.view.currentStart)\n const firstDay = currentDate.startOf('month').format('YYYY-MM-DD')\n const lastDay = currentDate.endOf('month').format('YYYY-MM-DD')\n setStartMonthIntervals([firstDay, lastDay])\n }\n /* ============================== split =============================== */\n let matchGlobalFilterCondition = useMemo(() => {\n let matchGlobalFilterCondition = globalFilterCondition?.find(\n item => item?.dataSourceId === customData?.dataSourceId\n )\n return matchGlobalFilterCondition\n }, [globalFilterCondition, customData?.dataSourceId])\n\n const [isloading, setIsloading] = useState(false)\n const [chartData, setChartData] = useState<any>()\n const fetchChartData = useMemoizedFn(async () => {\n setChartData([])\n if (customData) {\n setIsloading(true)\n let queryString = ''\n const firstDayOfMonth = dayjs().startOf('month').format('YYYY-MM-DD')\n const lastDayOfMonth = dayjs().endOf('month').format('YYYY-MM-DD')\n const conditionData = customData.conditionData\n const FMDay = startMonthIntervals.length > 0 ? startMonthIntervals[0] : firstDayOfMonth\n const LMDay = startMonthIntervals.length > 0 ? startMonthIntervals[1] : lastDayOfMonth\n\n let isConditionTimestampExist =\n (conditionData?.conditionList ?? []).some(item => item.type == 'timestamp') ||\n (matchGlobalFilterCondition?.conditionList ?? []).some(item => item.type == 'timestamp')\n\n if (!isConditionTimestampExist) {\n queryString = `&added_on=gt.${FMDay}&added_on=lt.${LMDay}`\n }\n\n if (conditionData?.conditionList && conditionData?.conditionList?.length > 0) {\n conditionData?.conditionList?.some(item => item.type == 'timestamp')\n queryString += `&${mapConditionsToPostgrest(conditionData)}`\n }\n\n if ((matchGlobalFilterCondition?.conditionList?.length ?? 0) > 0) {\n queryString += `&${mapConditionsToPostgrest(matchGlobalFilterCondition as ConditionBlock)}`\n }\n\n //去掉第一个&符号\n if (queryString.startsWith('&')) {\n queryString = queryString.substring(1)\n }\n\n if (customData?.dataSourceId) {\n moduleDataApi?.({\n id: customData?.dataSourceId,\n query: queryString,\n })\n .then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n setChartData(res.data)\n })\n .finally(() => {\n setIsloading(false)\n })\n }\n }\n })\n useEffect(() => {\n if (customData) {\n fetchChartData()\n }\n }, [\n customData?.dataSourceId,\n customData?.conditionData,\n startMonthIntervals,\n matchGlobalFilterCondition,\n ])\n\n /* ============================== split =============================== */\n const fieldOptions = useMemo(() => {\n return globalData?.sourceData?.find(item => item.value === customData?.dataSourceId)?.fields\n }, [globalData, customData])\n\n const events = useMemo(() => {\n const calendarEvents = chartData?.map((item: any) => {\n const title = getTransformValue({\n fieldOptions,\n val: customData?.titleField ? item?.[customData.titleField] : '',\n field: customData?.titleField,\n fieldMap: globalData?.fieldMap,\n })\n return {\n title: title ?? t('unnamedRecord'),\n start:\n customData?.startDateField && item[customData?.startDateField]\n ? dayjs(item[customData?.startDateField])?.toISOString()\n : '',\n end:\n customData?.endDateField && item[customData?.endDateField]\n ? dayjs(item[customData?.endDateField])?.toISOString()\n : undefined,\n allDay: true,\n ...item,\n originalData: item,\n }\n })\n return calendarEvents\n }, [chartData, customData, fieldOptions])\n\n /* ============================== split =============================== */\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [currData, setCurrData] = useState()\n const currTitle = getTransformValue({\n fieldOptions,\n val: customData?.titleField ? currData?.[customData.titleField] : '',\n field: customData?.titleField,\n fieldMap: globalData?.fieldMap,\n })\n\n const handleEventClick = useMemoizedFn((info: any) => {\n const event = info.event\n setIsModalOpen(true)\n\n setCurrData(event.extendedProps?.originalData)\n })\n\n /* ============================== split =============================== */\n const boxRef = useRef<any>()\n const calendarRef = useRef<any>(null)\n const size = useSize(boxRef)\n useEffect(() => {\n setTimeout(() => {\n calendarRef.current?.getApi()?.updateSize()\n }, 16) //不是一个div 会有延迟\n }, [size])\n\n /* ============================== split =============================== */\n\n return (\n <div\n ref={boxRef}\n style={{\n height: '100%',\n width: '100%',\n boxSizing: 'border-box',\n padding: '12px',\n }}\n >\n <div\n className=\"full-calendar-app\"\n style={{\n height: '100%',\n width: '100%',\n overflowY: 'auto',\n position: 'relative',\n }}\n >\n {isloading ? (\n <Spin\n style={{\n width: '100%',\n height: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n position: 'absolute',\n background: 'rgba(255,255,255,0.6)',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n }}\n spinning={isloading}\n />\n ) : null}\n\n <FullCalendar\n locale={i18n.language === 'zh-CN' ? zh : en}\n // locale =\n ref={calendarRef} // 设置 FullCalendar 引用\n plugins={[dayGridPlugin]}\n headerToolbar={{\n left: 'title,today,prev,next',\n center: '',\n right: '',\n }}\n initialView=\"dayGridMonth\"\n height=\"auto\" // 自适应高度\n contentHeight=\"auto\" // 自动调整内容高度\n // dayMaxEvents={4} // 如果一天的事件太多则显示更多按钮\n editable={true}\n selectable={true}\n selectMirror={true}\n fixedWeekCount={false}\n datesSet={handleDatesSet}\n timeZone=\"UTC\"\n events={events} // 将筛选后的事件传递给 FullCalendar\n eventContent={(eventInfo: EventContentArg) => {\n return (\n <>\n <i>{eventInfo.event.title}</i>\n </>\n )\n }} // 自定义事件内容渲染\n eventClick={handleEventClick} // 事件点击时调用\n ></FullCalendar>\n <Modal\n title={currTitle ?? t('unnamedRecord')}\n open={isModalOpen}\n onOk={() => {\n setIsModalOpen(false)\n }}\n onCancel={() => {\n setIsModalOpen(false)\n }}\n destroyOnClose\n footer={(_, { OkBtn }) => (\n <>\n <OkBtn />\n </>\n )}\n >\n {(fieldOptions?.length ?? 0) > 0 ? (\n <Descriptions\n className=\"reset-descriptions\"\n layout=\"vertical\"\n column={2}\n items={fieldOptions?.map((field: any, fieldKey) => ({\n key: fieldKey,\n label: field.label,\n children: getTransformValue({\n fieldOptions,\n val: currData?.[field.value],\n field: field.value,\n fieldMap: globalData?.fieldMap,\n }),\n }))}\n />\n ) : null}\n </Modal>\n </div>\n </div>\n )\n}\n\nexport default React.memo(CalendarModule)\n"],"names":["matchGlobalFilterCondition","zh","en"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import IconEmpty from "../../../icon/icon-empty.js";
|
|
3
2
|
import { useTranslation } from "react-i18next";
|
|
3
|
+
import IconEmpty from "../../../icon/icon-empty.js";
|
|
4
4
|
const Empty = (props) => {
|
|
5
5
|
const { t } = useTranslation();
|
|
6
6
|
return /* @__PURE__ */ jsxs(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Empty.js","sources":["../../../../../packages/dashboard-workbench/components/module-content/chart-module/Empty.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport
|
|
1
|
+
{"version":3,"file":"Empty.js","sources":["../../../../../packages/dashboard-workbench/components/module-content/chart-module/Empty.tsx"],"sourcesContent":["import React, { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport IconEmpty from '@platox/pivot-table/icon/icon-empty'\nimport styles from './index.scss'\n\nconst componentName = 'Empty'\n\nexport interface EmptyProps {}\nexport const Empty: React.FC<EmptyProps> = props => {\n const { t } = useTranslation()\n return (\n <div\n style={{\n color: '#A1A1AA',\n width: '100%',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <IconEmpty />\n <span>{t('empty')}</span>\n </div>\n )\n}\n\nEmpty.displayName = 'Empty'\n\nexport default Empty\n"],"names":[],"mappings":";;;AAQO,MAAM,QAA8B,CAAS,UAAA;AAC5C,QAAA,EAAE,EAAE,IAAI,eAAe;AAE3B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,gBAAgB;AAAA,MAClB;AAAA,MAEA,UAAA;AAAA,QAAA,oBAAC,WAAU,EAAA;AAAA,QACV,oBAAA,QAAA,EAAM,UAAE,EAAA,OAAO,EAAE,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACpB;AAEJ;AAEA,MAAM,cAAc;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useRef, useEffect, useImperativeHandle } from "react";
|
|
3
|
-
import * as echarts from "echarts/core";
|
|
4
3
|
import { BarChart, LineChart, PieChart } from "echarts/charts";
|
|
5
4
|
import { GraphicComponent, LegendComponent, TitleComponent, TooltipComponent, GridComponent, DatasetComponent, TransformComponent } from "echarts/components";
|
|
5
|
+
import * as echarts from "echarts/core";
|
|
6
6
|
import { LabelLayout, UniversalTransition } from "echarts/features";
|
|
7
7
|
import { CanvasRenderer } from "echarts/renderers";
|
|
8
8
|
echarts.use([
|
package/es/dashboard-workbench/components/module-content/chart-module/base-chart/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/dashboard-workbench/components/module-content/chart-module/base-chart/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useImperativeHandle, useRef } from 'react'\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/dashboard-workbench/components/module-content/chart-module/base-chart/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useImperativeHandle, useRef } from 'react'\nimport { EChartsOption } from 'echarts'\nimport { BarChart, LineChart, PieChart } from 'echarts/charts'\nimport {\n DatasetComponent,\n GraphicComponent,\n GridComponent,\n LegendComponent,\n TitleComponent,\n TooltipComponent,\n TransformComponent,\n} from 'echarts/components'\nimport * as echarts from 'echarts/core'\nimport { LabelLayout, UniversalTransition } from 'echarts/features'\nimport { CanvasRenderer } from 'echarts/renderers'\n\necharts.use([\n GraphicComponent,\n LegendComponent,\n TitleComponent,\n TooltipComponent,\n GridComponent,\n DatasetComponent,\n TransformComponent,\n BarChart,\n LineChart,\n PieChart,\n LabelLayout,\n UniversalTransition,\n CanvasRenderer,\n])\n\ninterface ChartProps {\n options?: EChartsOption\n echartRef?: any\n}\n\nconst Chart: React.FC<ChartProps> = React.memo(({ options, echartRef }) => {\n const chartRef = useRef<HTMLDivElement>(null)\n const chartInstanceRef = useRef<echarts.ECharts | null>(null)\n\n useEffect(() => {\n if (chartRef.current) {\n chartInstanceRef.current = echarts.init(chartRef.current)\n //@ts-ignore\n window.__chartInstanceRef = chartInstanceRef\n // chartInstanceRef.current = echarts.init(chartRef.current, 'light223')\n }\n return () => {\n if (chartInstanceRef.current) {\n chartInstanceRef.current.dispose()\n }\n }\n }, [])\n\n useEffect(() => {\n if (chartInstanceRef.current) {\n chartInstanceRef.current.clear()\n if (options && Object.keys(options).length > 0) {\n chartInstanceRef.current.setOption({ ...options })\n }\n }\n }, [options])\n\n useImperativeHandle(echartRef, () => ({\n resize: () => {\n if (chartInstanceRef.current) {\n chartInstanceRef.current.resize()\n }\n },\n getWidth: () => {\n if (chartInstanceRef.current) {\n chartInstanceRef.current.getWidth()\n }\n },\n }))\n\n return <div ref={chartRef} style={{ width: '100%', height: '100%' }} />\n})\n\nexport default Chart\n"],"names":[],"mappings":";;;;;;;AAiBA,QAAQ,IAAI;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAOD,MAAM,QAA8B,MAAM,KAAK,CAAC,EAAE,SAAS,gBAAgB;AACnE,QAAA,WAAW,OAAuB,IAAI;AACtC,QAAA,mBAAmB,OAA+B,IAAI;AAE5D,YAAU,MAAM;AACd,QAAI,SAAS,SAAS;AACpB,uBAAiB,UAAU,QAAQ,KAAK,SAAS,OAAO;AAExD,aAAO,qBAAqB;AAAA,IAAA;AAG9B,WAAO,MAAM;AACX,UAAI,iBAAiB,SAAS;AAC5B,yBAAiB,QAAQ,QAAQ;AAAA,MAAA;AAAA,IAErC;AAAA,EACF,GAAG,EAAE;AAEL,YAAU,MAAM;AACd,QAAI,iBAAiB,SAAS;AAC5B,uBAAiB,QAAQ,MAAM;AAC/B,UAAI,WAAW,OAAO,KAAK,OAAO,EAAE,SAAS,GAAG;AAC9C,yBAAiB,QAAQ,UAAU,EAAE,GAAG,SAAS;AAAA,MAAA;AAAA,IACnD;AAAA,EACF,GACC,CAAC,OAAO,CAAC;AAEZ,sBAAoB,WAAW,OAAO;AAAA,IACpC,QAAQ,MAAM;AACZ,UAAI,iBAAiB,SAAS;AAC5B,yBAAiB,QAAQ,OAAO;AAAA,MAAA;AAAA,IAEpC;AAAA,IACA,UAAU,MAAM;AACd,UAAI,iBAAiB,SAAS;AAC5B,yBAAiB,QAAQ,SAAS;AAAA,MAAA;AAAA,IACpC;AAAA,EACF,EACA;AAEK,SAAA,oBAAC,OAAI,EAAA,KAAK,UAAU,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAU,EAAA,CAAA;AACvE,CAAC;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { ModuleDataApi } from '../../../types';
|
|
2
|
-
import { ChartCustomeDataTypes } from '../../add-module-modal/add-chart-modal/custome-data';
|
|
3
|
-
import { ChartCustomeStylesTypes } from '../../add-module-modal/add-chart-modal/custome-styles';
|
|
4
1
|
import { default as React } from 'react';
|
|
2
|
+
import { ChartCustomDataType, ChartCustomeStylesTypes } from '../../add-module-modal/add-chart-modal/interface';
|
|
3
|
+
import { ModuleDataApi } from '../../../types';
|
|
5
4
|
interface ChartModuleProps {
|
|
6
|
-
customData?:
|
|
5
|
+
customData?: ChartCustomDataType;
|
|
7
6
|
customeStyle?: ChartCustomeStylesTypes;
|
|
8
7
|
onChange?: (val: unknown) => void;
|
|
9
8
|
moduleDataApi?: ModuleDataApi;
|