@platox/pivot-table 0.0.67 → 0.0.69

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.
Files changed (35) hide show
  1. package/es/dashboard-workbench/components/InputWrapper/index.d.ts +6 -0
  2. package/es/dashboard-workbench/components/InputWrapper/index.js +22 -0
  3. package/es/dashboard-workbench/components/InputWrapper/index.js.map +1 -0
  4. package/es/dashboard-workbench/components/SelectWrapper/index.d.ts +12 -0
  5. package/es/dashboard-workbench/components/SelectWrapper/index.js +20 -0
  6. package/es/dashboard-workbench/components/SelectWrapper/index.js.map +1 -0
  7. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js +6 -5
  8. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js.map +1 -1
  9. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/GroupFieldConfigPicker.js +3 -2
  10. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/components/GroupFieldConfigPicker.js.map +1 -1
  11. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js +10 -9
  12. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map +1 -1
  13. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-data.js +6 -5
  14. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-data.js.map +1 -1
  15. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js +2 -1
  16. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js.map +1 -1
  17. package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/EnumSelect.js +4 -3
  18. package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/EnumSelect.js.map +1 -1
  19. package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/index.js +9 -7
  20. package/es/dashboard-workbench/components/add-module-modal/components/condition-modal/index.js.map +1 -1
  21. package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js +7 -5
  22. package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js.map +1 -1
  23. package/es/dashboard-workbench/components/global-filter-condition/FieldPicker.js +3 -2
  24. package/es/dashboard-workbench/components/global-filter-condition/FieldPicker.js.map +1 -1
  25. package/es/dashboard-workbench/components/global-filter-condition/index.js +3 -2
  26. package/es/dashboard-workbench/components/global-filter-condition/index.js.map +1 -1
  27. package/es/dashboard-workbench/components/module-content/calendar-module/index.js +4 -2
  28. package/es/dashboard-workbench/components/module-content/calendar-module/index.js.map +1 -1
  29. package/es/dashboard-workbench/components/module-header/index.js +3 -2
  30. package/es/dashboard-workbench/components/module-header/index.js.map +1 -1
  31. package/es/dashboard-workbench/utils/index.d.ts +2 -1
  32. package/es/dashboard-workbench/utils/index.js +3 -2
  33. package/es/dashboard-workbench/utils/index.js.map +1 -1
  34. package/package.json +1 -1
  35. package/umd/pivot-table.umd.cjs +46 -46
@@ -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 { 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 // 筛选\n let conditionBlockList = []\n if ((matchGlobalFilterCondition?.conditionList?.length ?? 0) > 0) {\n conditionBlockList.push(matchGlobalFilterCondition)\n }\n if ((customData?.conditionData?.conditionList?.length ?? 0) > 0) {\n conditionBlockList.push(customData?.conditionData)\n }\n if (conditionBlockList.length > 0) {\n let DSLStr = mapConditionsToPostgrest(conditionBlockList as ConditionBlock[])\n queryString += !!DSLStr ? `&${DSLStr}` : ''\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
+ {"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 // 筛选\n let conditionBlockList = []\n if ((matchGlobalFilterCondition?.conditionList?.length ?? 0) > 0) {\n conditionBlockList.push(matchGlobalFilterCondition)\n }\n if ((customData?.conditionData?.conditionList?.length ?? 0) > 0) {\n conditionBlockList.push(customData?.conditionData)\n }\n if (conditionBlockList.length > 0) {\n let DSLStr = mapConditionsToPostgrest(conditionBlockList as ConditionBlock[])\n queryString += !!DSLStr ? `&${DSLStr}` : ''\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 let ret = globalData?.sourceData?.find(item => item.value === customData?.dataSourceId)?.fields\n return ret\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 showNill: false,\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,9 +1,10 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import React, { useState, useRef, useEffect } from "react";
3
- import { Input, Dropdown } from "antd";
3
+ import { Dropdown } from "antd";
4
4
  import { useTranslation } from "react-i18next";
5
5
  import IconDrag from "../../icon/icon-drag.js";
6
6
  import IconMove from "../../icon/icon-move.js";
7
+ import { InputWrapper } from "../InputWrapper/index.js";
7
8
  import useDebounce from "../module-content/text-module/editor/useDebounce.js";
8
9
  const ModuleHeader = ({
9
10
  defaultValue,
@@ -58,7 +59,7 @@ const ModuleHeader = ({
58
59
  }, 100);
59
60
  },
60
61
  children: isEdit ? /* @__PURE__ */ jsx(
61
- Input,
62
+ InputWrapper,
62
63
  {
63
64
  defaultValue,
64
65
  onBlur: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/module-header/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useEffect, useRef, useState } from 'react'\nimport { Dropdown, Input } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport IconDrag from '../../icon/icon-drag'\nimport IconMove from '../../icon/icon-move'\nimport { ModuleData } from '../module-content'\nimport useDebounce from '../module-content/text-module/editor/useDebounce'\n\ninterface ModuleHeaderProps {\n defaultValue: string\n onChange?: (val: string) => void\n module: ModuleData\n onDropdownItem?: (key: string) => void\n onMouseDown?: () => void\n onMouseUp?: () => void\n}\n\nconst ModuleHeader: FC<ModuleHeaderProps> = ({\n defaultValue,\n onChange,\n module,\n onDropdownItem,\n onMouseDown,\n onMouseUp,\n}) => {\n const [isEdit, setIsEdit] = useState<boolean>(false)\n const [title, setTitle] = useState<string>('')\n const inputRef = useRef<any>(null)\n const debouncedOnChange = useDebounce(val => {\n onChange?.(val)\n }, 300) // 300 毫秒的延迟\n const { t } = useTranslation()\n\n useEffect(() => {\n setTitle(title)\n }, [defaultValue])\n\n const handleDblClick = () => {\n // 获取input DOM元素\n const inputElement = inputRef.current?.input\n // 双击事件发生在input元素上时,触发全选\n inputElement.select()\n }\n\n const handleEnterPress = (event: { key: string }) => {\n if (event.key === 'Enter') {\n setIsEdit(false)\n }\n }\n\n return (\n <div\n className={`layout-item-head isCanDrag`}\n onMouseDown={() => {\n onMouseDown?.()\n }}\n onMouseUp={() => {\n onMouseUp?.()\n }}\n >\n <div className=\"head-inner\">\n <span className=\"title\">\n <span\n className=\"title-child\"\n onDoubleClick={e => {\n e.stopPropagation()\n setIsEdit(true)\n setTimeout(() => {\n inputRef.current?.focus()\n }, 100)\n }}\n >\n {isEdit ? (\n <Input\n defaultValue={defaultValue}\n onBlur={() => {\n setIsEdit(false)\n }}\n ref={inputRef}\n onKeyDown={handleEnterPress}\n onDoubleClick={handleDblClick}\n onChange={e => {\n setTitle(e.target.value)\n debouncedOnChange(e.target.value)\n }}\n />\n ) : (\n defaultValue\n )}\n </span>\n </span>\n\n <div className=\"menu-slot isNoCanDrag\">\n <Dropdown\n trigger={['click']}\n menu={{\n items: [\n module.type !== 'text'\n ? {\n label: t('configuration'),\n key: 'edit',\n }\n : null,\n {\n label: t('copy'),\n key: 'copy',\n },\n {\n key: 'delete',\n danger: true,\n label: t('delete'),\n },\n ],\n onClick: ({ key }) => {\n onDropdownItem?.(key)\n },\n }}\n >\n <button type=\"button\" className=\"dashboard-grid-menu-button\">\n <span className=\"universe-icon\">\n <IconMove />\n </span>\n </button>\n </Dropdown>\n </div>\n </div>\n <div className={`drag isCanDrag`}>\n <span className=\"universe-icon drag-icon\">\n <IconDrag />\n </span>\n </div>\n </div>\n )\n}\n\nexport default React.memo(ModuleHeader)\n"],"names":[],"mappings":";;;;;;;AAkBA,MAAM,eAAsC,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,KAAK;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,EAAE;AACvC,QAAA,WAAW,OAAY,IAAI;AAC3B,QAAA,oBAAoB,YAAY,CAAO,QAAA;AAC3C,yCAAW;AAAA,KACV,GAAG;AACA,QAAA,EAAE,EAAE,IAAI,eAAe;AAE7B,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAAA,GACb,CAAC,YAAY,CAAC;AAEjB,QAAM,iBAAiB,MAAM;;AAErB,UAAA,gBAAe,cAAS,YAAT,mBAAkB;AAEvC,iBAAa,OAAO;AAAA,EACtB;AAEM,QAAA,mBAAmB,CAAC,UAA2B;AAC/C,QAAA,MAAM,QAAQ,SAAS;AACzB,gBAAU,KAAK;AAAA,IAAA;AAAA,EAEnB;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,aAAa,MAAM;AACH;AAAA,MAChB;AAAA,MACA,WAAW,MAAM;AACH;AAAA,MACd;AAAA,MAEA,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,UAAC,oBAAA,QAAA,EAAK,WAAU,SACd,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,eAAe,CAAK,MAAA;AAClB,kBAAE,gBAAgB;AAClB,0BAAU,IAAI;AACd,2BAAW,MAAM;;AACf,iCAAS,YAAT,mBAAkB;AAAA,mBACjB,GAAG;AAAA,cACR;AAAA,cAEC,UACC,SAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC;AAAA,kBACA,QAAQ,MAAM;AACZ,8BAAU,KAAK;AAAA,kBACjB;AAAA,kBACA,KAAK;AAAA,kBACL,WAAW;AAAA,kBACX,eAAe;AAAA,kBACf,UAAU,CAAK,MAAA;AACJ,6BAAA,EAAE,OAAO,KAAK;AACL,sCAAA,EAAE,OAAO,KAAK;AAAA,kBAAA;AAAA,gBAClC;AAAA,cAAA,IAGF;AAAA,YAAA;AAAA,UAAA,GAGN;AAAA,UAEA,oBAAC,OAAI,EAAA,WAAU,yBACb,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS,CAAC,OAAO;AAAA,cACjB,MAAM;AAAA,gBACJ,OAAO;AAAA,kBACL,OAAO,SAAS,SACZ;AAAA,oBACE,OAAO,EAAE,eAAe;AAAA,oBACxB,KAAK;AAAA,kBAAA,IAEP;AAAA,kBACJ;AAAA,oBACE,OAAO,EAAE,MAAM;AAAA,oBACf,KAAK;AAAA,kBACP;AAAA,kBACA;AAAA,oBACE,KAAK;AAAA,oBACL,QAAQ;AAAA,oBACR,OAAO,EAAE,QAAQ;AAAA,kBAAA;AAAA,gBAErB;AAAA,gBACA,SAAS,CAAC,EAAE,UAAU;AACpB,mEAAiB;AAAA,gBAAG;AAAA,cAExB;AAAA,cAEA,UAAC,oBAAA,UAAA,EAAO,MAAK,UAAS,WAAU,8BAC9B,UAAC,oBAAA,QAAA,EAAK,WAAU,iBACd,UAAC,oBAAA,UAAA,CAAA,CAAS,GACZ,EACF,CAAA;AAAA,YAAA;AAAA,UAAA,EAEJ,CAAA;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,EAAA,WAAW,kBACd,UAAA,oBAAC,QAAK,EAAA,WAAU,2BACd,UAAA,oBAAC,UAAS,CAAA,CAAA,EAAA,CACZ,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA,MAAA,iBAAe,MAAM,KAAK,YAAY;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/dashboard-workbench/components/module-header/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { FC, useEffect, useRef, useState } from 'react'\nimport { Dropdown, Input } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport IconDrag from '../../icon/icon-drag'\nimport IconMove from '../../icon/icon-move'\nimport InputWrapper from '../InputWrapper'\nimport { ModuleData } from '../module-content'\nimport useDebounce from '../module-content/text-module/editor/useDebounce'\n\ninterface ModuleHeaderProps {\n defaultValue: string\n onChange?: (val: string) => void\n module: ModuleData\n onDropdownItem?: (key: string) => void\n onMouseDown?: () => void\n onMouseUp?: () => void\n}\n\nconst ModuleHeader: FC<ModuleHeaderProps> = ({\n defaultValue,\n onChange,\n module,\n onDropdownItem,\n onMouseDown,\n onMouseUp,\n}) => {\n const [isEdit, setIsEdit] = useState<boolean>(false)\n const [title, setTitle] = useState<string>('')\n const inputRef = useRef<any>(null)\n const debouncedOnChange = useDebounce(val => {\n onChange?.(val)\n }, 300) // 300 毫秒的延迟\n const { t } = useTranslation()\n\n useEffect(() => {\n setTitle(title)\n }, [defaultValue])\n\n const handleDblClick = () => {\n // 获取input DOM元素\n const inputElement = inputRef.current?.input\n // 双击事件发生在input元素上时,触发全选\n inputElement.select()\n }\n\n const handleEnterPress = (event: { key: string }) => {\n if (event.key === 'Enter') {\n setIsEdit(false)\n }\n }\n\n return (\n <div\n className={`layout-item-head isCanDrag`}\n onMouseDown={() => {\n onMouseDown?.()\n }}\n onMouseUp={() => {\n onMouseUp?.()\n }}\n >\n <div className=\"head-inner\">\n <span className=\"title\">\n <span\n className=\"title-child\"\n onDoubleClick={e => {\n e.stopPropagation()\n setIsEdit(true)\n setTimeout(() => {\n inputRef.current?.focus()\n }, 100)\n }}\n >\n {isEdit ? (\n <InputWrapper\n defaultValue={defaultValue}\n onBlur={() => {\n setIsEdit(false)\n }}\n ref={inputRef}\n onKeyDown={handleEnterPress}\n onDoubleClick={handleDblClick}\n onChange={e => {\n setTitle(e.target.value)\n debouncedOnChange(e.target.value)\n }}\n />\n ) : (\n defaultValue\n )}\n </span>\n </span>\n\n <div className=\"menu-slot isNoCanDrag\">\n <Dropdown\n trigger={['click']}\n menu={{\n items: [\n module.type !== 'text'\n ? {\n label: t('configuration'),\n key: 'edit',\n }\n : null,\n {\n label: t('copy'),\n key: 'copy',\n },\n {\n key: 'delete',\n danger: true,\n label: t('delete'),\n },\n ],\n onClick: ({ key }) => {\n onDropdownItem?.(key)\n },\n }}\n >\n <button type=\"button\" className=\"dashboard-grid-menu-button\">\n <span className=\"universe-icon\">\n <IconMove />\n </span>\n </button>\n </Dropdown>\n </div>\n </div>\n <div className={`drag isCanDrag`}>\n <span className=\"universe-icon drag-icon\">\n <IconDrag />\n </span>\n </div>\n </div>\n )\n}\n\nexport default React.memo(ModuleHeader)\n"],"names":[],"mappings":";;;;;;;;AAmBA,MAAM,eAAsC,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,KAAK;AACnD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,EAAE;AACvC,QAAA,WAAW,OAAY,IAAI;AAC3B,QAAA,oBAAoB,YAAY,CAAO,QAAA;AAC3C,yCAAW;AAAA,KACV,GAAG;AACA,QAAA,EAAE,EAAE,IAAI,eAAe;AAE7B,YAAU,MAAM;AACd,aAAS,KAAK;AAAA,EAAA,GACb,CAAC,YAAY,CAAC;AAEjB,QAAM,iBAAiB,MAAM;;AAErB,UAAA,gBAAe,cAAS,YAAT,mBAAkB;AAEvC,iBAAa,OAAO;AAAA,EACtB;AAEM,QAAA,mBAAmB,CAAC,UAA2B;AAC/C,QAAA,MAAM,QAAQ,SAAS;AACzB,gBAAU,KAAK;AAAA,IAAA;AAAA,EAEnB;AAGE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,aAAa,MAAM;AACH;AAAA,MAChB;AAAA,MACA,WAAW,MAAM;AACH;AAAA,MACd;AAAA,MAEA,UAAA;AAAA,QAAC,qBAAA,OAAA,EAAI,WAAU,cACb,UAAA;AAAA,UAAC,oBAAA,QAAA,EAAK,WAAU,SACd,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,eAAe,CAAK,MAAA;AAClB,kBAAE,gBAAgB;AAClB,0BAAU,IAAI;AACd,2BAAW,MAAM;;AACf,iCAAS,YAAT,mBAAkB;AAAA,mBACjB,GAAG;AAAA,cACR;AAAA,cAEC,UACC,SAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC;AAAA,kBACA,QAAQ,MAAM;AACZ,8BAAU,KAAK;AAAA,kBACjB;AAAA,kBACA,KAAK;AAAA,kBACL,WAAW;AAAA,kBACX,eAAe;AAAA,kBACf,UAAU,CAAK,MAAA;AACJ,6BAAA,EAAE,OAAO,KAAK;AACL,sCAAA,EAAE,OAAO,KAAK;AAAA,kBAAA;AAAA,gBAClC;AAAA,cAAA,IAGF;AAAA,YAAA;AAAA,UAAA,GAGN;AAAA,UAEA,oBAAC,OAAI,EAAA,WAAU,yBACb,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,SAAS,CAAC,OAAO;AAAA,cACjB,MAAM;AAAA,gBACJ,OAAO;AAAA,kBACL,OAAO,SAAS,SACZ;AAAA,oBACE,OAAO,EAAE,eAAe;AAAA,oBACxB,KAAK;AAAA,kBAAA,IAEP;AAAA,kBACJ;AAAA,oBACE,OAAO,EAAE,MAAM;AAAA,oBACf,KAAK;AAAA,kBACP;AAAA,kBACA;AAAA,oBACE,KAAK;AAAA,oBACL,QAAQ;AAAA,oBACR,OAAO,EAAE,QAAQ;AAAA,kBAAA;AAAA,gBAErB;AAAA,gBACA,SAAS,CAAC,EAAE,UAAU;AACpB,mEAAiB;AAAA,gBAAG;AAAA,cAExB;AAAA,cAEA,UAAC,oBAAA,UAAA,EAAO,MAAK,UAAS,WAAU,8BAC9B,UAAC,oBAAA,QAAA,EAAK,WAAU,iBACd,UAAC,oBAAA,UAAA,CAAA,CAAS,GACZ,EACF,CAAA;AAAA,YAAA;AAAA,UAAA,EAEJ,CAAA;AAAA,QAAA,GACF;AAAA,QACA,oBAAC,OAAI,EAAA,WAAW,kBACd,UAAA,oBAAC,QAAK,EAAA,WAAU,2BACd,UAAA,oBAAC,UAAS,CAAA,CAAA,EAAA,CACZ,EACF,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA,MAAA,iBAAe,MAAM,KAAK,YAAY;"}
@@ -1,11 +1,12 @@
1
1
  import { Layout } from 'react-grid-layout';
2
2
  import { TimeGroupInterval } from '../components/add-module-modal/add-chart-modal/interface';
3
3
  import { FieldItem } from '../types';
4
- export declare const getTransformValue: ({ val, field, fieldOptions, fieldMap, timeGroupInterval, }: {
4
+ export declare const getTransformValue: ({ val, field, fieldOptions, fieldMap, timeGroupInterval, showNill, }: {
5
5
  val: any;
6
6
  field: any;
7
7
  fieldOptions?: FieldItem[];
8
8
  fieldMap?: Record<string, string>;
9
9
  timeGroupInterval?: TimeGroupInterval;
10
+ showNill?: boolean;
10
11
  }) => any;
11
12
  export declare const findChangedItems: (newLayout: Layout[], oldLayout: Layout[]) => Layout[];
@@ -5,7 +5,8 @@ const getTransformValue = ({
5
5
  field,
6
6
  fieldOptions,
7
7
  fieldMap,
8
- timeGroupInterval
8
+ timeGroupInterval,
9
+ showNill = true
9
10
  }) => {
10
11
  var _a, _b, _c;
11
12
  const fieldData = fieldOptions == null ? void 0 : fieldOptions.find((item) => item.value === field);
@@ -41,7 +42,7 @@ const getTransformValue = ({
41
42
  }
42
43
  }
43
44
  newVal = Array.isArray(newVal) ? newVal.join(",") : newVal;
44
- if (isNil(newVal)) {
45
+ if (showNill && isNil(newVal)) {
45
46
  newVal = `Null`;
46
47
  }
47
48
  return newVal;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/dashboard-workbench/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Layout } from 'react-grid-layout'\nimport dayjs from 'dayjs'\nimport { isNil } from 'lodash-es'\nimport { TimeGroupInterval } from '../components/add-module-modal/add-chart-modal/interface'\nimport { FieldItem } from '../types'\n\nexport const getTransformValue = ({\n val,\n field,\n fieldOptions,\n fieldMap,\n timeGroupInterval,\n}: {\n val: any\n field: any\n fieldOptions?: FieldItem[]\n fieldMap?: Record<string, string> //枚举的翻译\n timeGroupInterval?: TimeGroupInterval // 时间汇总 xAxis 是time的时候有效\n}) => {\n const fieldData = fieldOptions?.find(item => item.value === field)\n let newVal = val\n if (fieldData?.type === 'enum' && fieldData?.enum && fieldData?.enum?.length > 0) {\n const label = fieldData?.enum?.find(enumItem => enumItem.value === val)?.label\n newVal = label ? fieldMap?.[label] || label : val\n }\n if (fieldData?.type === 'timestamp') {\n let format = 'YYYY-MM-DD'\n switch (timeGroupInterval) {\n case 'day':\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'week':\n const startDate = val ? dayjs(val).startOf('week').format('YYYY-MM-DD') : ''\n const endDate = val ? dayjs(val).endOf('week').format('YYYY-MM-DD') : ''\n newVal = val ? `${startDate}~${endDate}` : ''\n break\n case 'month':\n format = 'YYYY-MM'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'year':\n format = 'YYYY'\n newVal = val ? dayjs(val).format(format) : ''\n break\n default:\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n }\n }\n\n //这玩意好像还会是数组\n newVal = Array.isArray(newVal) ? newVal.join(',') : newVal\n\n // https://applink.larksuite.com/client/todo/detail?guid=b5c44575-b66c-4c77-85eb-514a42a18330&suite_entity_num=t106725\n if (isNil(newVal)) {\n newVal = `Null`\n }\n\n return newVal\n}\n\nexport const findChangedItems = (newLayout: Layout[], oldLayout: Layout[]) => {\n return newLayout.filter(newItem => {\n const oldItem = oldLayout.find(item => item.i === newItem.i)\n return (\n oldItem &&\n (oldItem.x !== newItem.x ||\n oldItem.y !== newItem.y ||\n oldItem.w !== newItem.w ||\n oldItem.h !== newItem.h)\n )\n })\n}\n"],"names":[],"mappings":";;AAOO,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAMM;;AACJ,QAAM,YAAY,6CAAc,KAAK,CAAQ,SAAA,KAAK,UAAU;AAC5D,MAAI,SAAS;AACT,OAAA,uCAAW,UAAS,WAAU,uCAAW,WAAQ,4CAAW,SAAX,mBAAiB,UAAS,GAAG;AAC1E,UAAA,SAAQ,kDAAW,SAAX,mBAAiB,KAAK,cAAY,SAAS,UAAU,SAArD,mBAA2D;AACzE,aAAS,SAAQ,qCAAW,WAAU,QAAQ;AAAA,EAAA;AAE5C,OAAA,uCAAW,UAAS,aAAa;AACnC,QAAI,SAAS;AACb,YAAQ,mBAAmB;AAAA,MACzB,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACG,cAAA,YAAY,MAAM,MAAM,GAAG,EAAE,QAAQ,MAAM,EAAE,OAAO,YAAY,IAAI;AACpE,cAAA,UAAU,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,YAAY,IAAI;AACtE,iBAAS,MAAM,GAAG,SAAS,IAAI,OAAO,KAAK;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF;AACW,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,IAAA;AAAA,EACJ;AAIF,WAAS,MAAM,QAAQ,MAAM,IAAI,OAAO,KAAK,GAAG,IAAI;AAGhD,MAAA,MAAM,MAAM,GAAG;AACR,aAAA;AAAA,EAAA;AAGJ,SAAA;AACT;AAEa,MAAA,mBAAmB,CAAC,WAAqB,cAAwB;AACrE,SAAA,UAAU,OAAO,CAAW,YAAA;AACjC,UAAM,UAAU,UAAU,KAAK,UAAQ,KAAK,MAAM,QAAQ,CAAC;AAC3D,WACE,YACC,QAAQ,MAAM,QAAQ,KACrB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ;AAAA,EAAA,CAE3B;AACH;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/dashboard-workbench/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Layout } from 'react-grid-layout'\nimport dayjs from 'dayjs'\nimport { isNil } from 'lodash-es'\nimport { TimeGroupInterval } from '../components/add-module-modal/add-chart-modal/interface'\nimport { FieldItem } from '../types'\n\nexport const getTransformValue = ({\n val,\n field,\n fieldOptions,\n fieldMap,\n timeGroupInterval,\n showNill = true,\n}: {\n val: any\n field: any\n fieldOptions?: FieldItem[]\n fieldMap?: Record<string, string> //枚举的翻译\n timeGroupInterval?: TimeGroupInterval // 时间汇总 xAxis 是time的时候有效\n showNill?: boolean\n}) => {\n const fieldData = fieldOptions?.find(item => item.value === field)\n let newVal = val\n if (fieldData?.type === 'enum' && fieldData?.enum && fieldData?.enum?.length > 0) {\n const label = fieldData?.enum?.find(enumItem => enumItem.value === val)?.label\n newVal = label ? fieldMap?.[label] || label : val\n }\n if (fieldData?.type === 'timestamp') {\n let format = 'YYYY-MM-DD'\n switch (timeGroupInterval) {\n case 'day':\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'week':\n const startDate = val ? dayjs(val).startOf('week').format('YYYY-MM-DD') : ''\n const endDate = val ? dayjs(val).endOf('week').format('YYYY-MM-DD') : ''\n newVal = val ? `${startDate}~${endDate}` : ''\n break\n case 'month':\n format = 'YYYY-MM'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'year':\n format = 'YYYY'\n newVal = val ? dayjs(val).format(format) : ''\n break\n default:\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n }\n }\n\n //这玩意好像还会是数组\n newVal = Array.isArray(newVal) ? newVal.join(',') : newVal\n\n // https://applink.larksuite.com/client/todo/detail?guid=b5c44575-b66c-4c77-85eb-514a42a18330&suite_entity_num=t106725\n if (showNill && isNil(newVal)) {\n newVal = `Null`\n }\n\n return newVal\n}\n\nexport const findChangedItems = (newLayout: Layout[], oldLayout: Layout[]) => {\n return newLayout.filter(newItem => {\n const oldItem = oldLayout.find(item => item.i === newItem.i)\n return (\n oldItem &&\n (oldItem.x !== newItem.x ||\n oldItem.y !== newItem.y ||\n oldItem.w !== newItem.w ||\n oldItem.h !== newItem.h)\n )\n })\n}\n"],"names":[],"mappings":";;AAOO,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AACb,MAOM;;AACJ,QAAM,YAAY,6CAAc,KAAK,CAAQ,SAAA,KAAK,UAAU;AAC5D,MAAI,SAAS;AACT,OAAA,uCAAW,UAAS,WAAU,uCAAW,WAAQ,4CAAW,SAAX,mBAAiB,UAAS,GAAG;AAC1E,UAAA,SAAQ,kDAAW,SAAX,mBAAiB,KAAK,cAAY,SAAS,UAAU,SAArD,mBAA2D;AACzE,aAAS,SAAQ,qCAAW,WAAU,QAAQ;AAAA,EAAA;AAE5C,OAAA,uCAAW,UAAS,aAAa;AACnC,QAAI,SAAS;AACb,YAAQ,mBAAmB;AAAA,MACzB,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACG,cAAA,YAAY,MAAM,MAAM,GAAG,EAAE,QAAQ,MAAM,EAAE,OAAO,YAAY,IAAI;AACpE,cAAA,UAAU,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,YAAY,IAAI;AACtE,iBAAS,MAAM,GAAG,SAAS,IAAI,OAAO,KAAK;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF;AACW,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,IAAA;AAAA,EACJ;AAIF,WAAS,MAAM,QAAQ,MAAM,IAAI,OAAO,KAAK,GAAG,IAAI;AAGhD,MAAA,YAAY,MAAM,MAAM,GAAG;AACpB,aAAA;AAAA,EAAA;AAGJ,SAAA;AACT;AAEa,MAAA,mBAAmB,CAAC,WAAqB,cAAwB;AACrE,SAAA,UAAU,OAAO,CAAW,YAAA;AACjC,UAAM,UAAU,UAAU,KAAK,UAAQ,KAAK,MAAM,QAAQ,CAAC;AAC3D,WACE,YACC,QAAQ,MAAM,QAAQ,KACrB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ;AAAA,EAAA,CAE3B;AACH;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platox/pivot-table",
3
- "version": "0.0.67",
3
+ "version": "0.0.69",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {