@cognite/aura 1.46840.0 → 1.46884.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,30 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
import { getDateTimeDisplayFormat } from "../date-time-pickers/utils/format-utils.js";
|
|
1
3
|
const PINNED_COLUMN_Z_INDEX = 10;
|
|
4
|
+
// Only pulls the year/month/day for the calendar check below, plus whether a `T`
|
|
5
|
+
// time section is present at all — everything inside that section (seconds, offset,
|
|
6
|
+
// shape) is validated by `Date` itself instead of being re-modeled here.
|
|
7
|
+
const ISO_DATE_PATTERN = /^(\d{4})-(\d{2})-(\d{2})(T.*)?$/;
|
|
8
|
+
const DATE_DISPLAY_FORMAT = 'DD/MM/YYYY';
|
|
9
|
+
/** Built with a placeholder year (2000) then `setFullYear`, since `Date(year, ...)`
|
|
10
|
+
* remaps any year 0-99 into 1900-1999 (e.g. "0029" → 1929). */ function isRealCalendarDate(year, month, day) {
|
|
11
|
+
const date = new Date(2000, month - 1, day);
|
|
12
|
+
date.setFullYear(year);
|
|
13
|
+
return date.getMonth() === month - 1 && date.getDate() === day;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* API responses serialize dates as ISO strings; without this, cells would show
|
|
17
|
+
* "2026-04-11T14:30:00Z" verbatim.
|
|
18
|
+
*/ function formatIsoDateString(value) {
|
|
19
|
+
const match = ISO_DATE_PATTERN.exec(value);
|
|
20
|
+
if (match === null) return undefined;
|
|
21
|
+
const [, year, month, day, time] = match;
|
|
22
|
+
if (!isRealCalendarDate(Number(year), Number(month), Number(day))) return undefined;
|
|
23
|
+
// `Date`'s own ISO 8601 parser rejects a bad time, offset, or shape — the
|
|
24
|
+
// regex above only needs to isolate the date-only vs. datetime distinction.
|
|
25
|
+
if (Number.isNaN(new Date(value).getTime())) return undefined;
|
|
26
|
+
return dayjs(value).format(time ? getDateTimeDisplayFormat() : DATE_DISPLAY_FORMAT);
|
|
27
|
+
}
|
|
2
28
|
function getAriaSort(sortDirection, canSort) {
|
|
3
29
|
if (sortDirection === 'asc') return 'ascending';
|
|
4
30
|
if (sortDirection === 'desc') return 'descending';
|
|
@@ -7,6 +33,7 @@ function getAriaSort(sortDirection, canSort) {
|
|
|
7
33
|
function getTextValue(value) {
|
|
8
34
|
if (value === null || value === undefined) return undefined;
|
|
9
35
|
if (value instanceof Date) return value.toLocaleString();
|
|
36
|
+
if (typeof value === 'string') return formatIsoDateString(value) ?? value;
|
|
10
37
|
if (typeof value === 'object' || typeof value === 'function') return undefined;
|
|
11
38
|
return String(value);
|
|
12
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid.utils.ts"],"sourcesContent":["import type { ColumnDef } from '@tanstack/react-table';\n\nconst PINNED_COLUMN_Z_INDEX = 10;\n\nfunction getAriaSort(\n sortDirection: false | 'asc' | 'desc',\n canSort: boolean\n): 'ascending' | 'descending' | 'none' | undefined {\n if (sortDirection === 'asc') return 'ascending';\n if (sortDirection === 'desc') return 'descending';\n return canSort ? 'none' : undefined;\n}\n\nfunction getTextValue(value: unknown): string | undefined {\n if (value === null || value === undefined) return undefined;\n if (value instanceof Date) return value.toLocaleString();\n if (typeof value === 'object' || typeof value === 'function')\n return undefined;\n return String(value);\n}\n\nfunction isAccessorColumn<TData>(def: ColumnDef<TData>): boolean {\n const hasAccessorKey = 'accessorKey' in def && def.accessorKey !== undefined;\n const hasAccessorFn = 'accessorFn' in def && def.accessorFn !== undefined;\n return hasAccessorKey || hasAccessorFn;\n}\n\nfunction isFromIgnoredCellTarget(target?: EventTarget | null): boolean {\n return target instanceof Element\n ? Boolean(target.closest('[data-row-activation=\"ignore\"]'))\n : false;\n}\n\nfunction isFromExpandToggleTarget(target?: EventTarget | null): boolean {\n return target instanceof Element\n ? Boolean(target.closest('[data-row-expand-toggle=\"true\"]'))\n : false;\n}\n\nexport {\n PINNED_COLUMN_Z_INDEX,\n getAriaSort,\n getTextValue,\n isAccessorColumn,\n isFromExpandToggleTarget,\n isFromIgnoredCellTarget,\n};\n"],"names":["PINNED_COLUMN_Z_INDEX","
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/ui/core/data-grid/data-grid.utils.ts"],"sourcesContent":["import type { ColumnDef } from '@tanstack/react-table';\nimport dayjs from 'dayjs';\n\nimport { getDateTimeDisplayFormat } from '../date-time-pickers/utils/format-utils';\n\nconst PINNED_COLUMN_Z_INDEX = 10;\n\n// Only pulls the year/month/day for the calendar check below, plus whether a `T`\n// time section is present at all — everything inside that section (seconds, offset,\n// shape) is validated by `Date` itself instead of being re-modeled here.\nconst ISO_DATE_PATTERN = /^(\\d{4})-(\\d{2})-(\\d{2})(T.*)?$/;\n\nconst DATE_DISPLAY_FORMAT = 'DD/MM/YYYY';\n\n/** Built with a placeholder year (2000) then `setFullYear`, since `Date(year, ...)`\n * remaps any year 0-99 into 1900-1999 (e.g. \"0029\" → 1929). */\nfunction isRealCalendarDate(year: number, month: number, day: number): boolean {\n const date = new Date(2000, month - 1, day);\n date.setFullYear(year);\n return date.getMonth() === month - 1 && date.getDate() === day;\n}\n\n/**\n * API responses serialize dates as ISO strings; without this, cells would show\n * \"2026-04-11T14:30:00Z\" verbatim.\n */\nfunction formatIsoDateString(value: string): string | undefined {\n const match = ISO_DATE_PATTERN.exec(value);\n if (match === null) return undefined;\n\n const [, year, month, day, time] = match;\n if (!isRealCalendarDate(Number(year), Number(month), Number(day)))\n return undefined;\n // `Date`'s own ISO 8601 parser rejects a bad time, offset, or shape — the\n // regex above only needs to isolate the date-only vs. datetime distinction.\n if (Number.isNaN(new Date(value).getTime())) return undefined;\n\n return dayjs(value).format(\n time ? getDateTimeDisplayFormat() : DATE_DISPLAY_FORMAT\n );\n}\n\nfunction getAriaSort(\n sortDirection: false | 'asc' | 'desc',\n canSort: boolean\n): 'ascending' | 'descending' | 'none' | undefined {\n if (sortDirection === 'asc') return 'ascending';\n if (sortDirection === 'desc') return 'descending';\n return canSort ? 'none' : undefined;\n}\n\nfunction getTextValue(value: unknown): string | undefined {\n if (value === null || value === undefined) return undefined;\n if (value instanceof Date) return value.toLocaleString();\n if (typeof value === 'string') return formatIsoDateString(value) ?? value;\n if (typeof value === 'object' || typeof value === 'function')\n return undefined;\n return String(value);\n}\n\nfunction isAccessorColumn<TData>(def: ColumnDef<TData>): boolean {\n const hasAccessorKey = 'accessorKey' in def && def.accessorKey !== undefined;\n const hasAccessorFn = 'accessorFn' in def && def.accessorFn !== undefined;\n return hasAccessorKey || hasAccessorFn;\n}\n\nfunction isFromIgnoredCellTarget(target?: EventTarget | null): boolean {\n return target instanceof Element\n ? Boolean(target.closest('[data-row-activation=\"ignore\"]'))\n : false;\n}\n\nfunction isFromExpandToggleTarget(target?: EventTarget | null): boolean {\n return target instanceof Element\n ? Boolean(target.closest('[data-row-expand-toggle=\"true\"]'))\n : false;\n}\n\nexport {\n PINNED_COLUMN_Z_INDEX,\n getAriaSort,\n getTextValue,\n isAccessorColumn,\n isFromExpandToggleTarget,\n isFromIgnoredCellTarget,\n};\n"],"names":["dayjs","getDateTimeDisplayFormat","PINNED_COLUMN_Z_INDEX","ISO_DATE_PATTERN","DATE_DISPLAY_FORMAT","isRealCalendarDate","year","month","day","date","Date","setFullYear","getMonth","getDate","formatIsoDateString","value","match","exec","undefined","time","Number","isNaN","getTime","format","getAriaSort","sortDirection","canSort","getTextValue","toLocaleString","String","isAccessorColumn","def","hasAccessorKey","accessorKey","hasAccessorFn","accessorFn","isFromIgnoredCellTarget","target","Element","Boolean","closest","isFromExpandToggleTarget"],"mappings":"AACA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,wBAAwB,QAAQ,6CAA0C;AAEnF,MAAMC,wBAAwB;AAE9B,iFAAiF;AACjF,oFAAoF;AACpF,yEAAyE;AACzE,MAAMC,mBAAmB;AAEzB,MAAMC,sBAAsB;AAE5B;8DAC8D,GAC9D,SAASC,mBAAmBC,IAAY,EAAEC,KAAa,EAAEC,GAAW;IAClE,MAAMC,OAAO,IAAIC,KAAK,MAAMH,QAAQ,GAAGC;IACvCC,KAAKE,WAAW,CAACL;IACjB,OAAOG,KAAKG,QAAQ,OAAOL,QAAQ,KAAKE,KAAKI,OAAO,OAAOL;AAC7D;AAEA;;;CAGC,GACD,SAASM,oBAAoBC,KAAa;IACxC,MAAMC,QAAQb,iBAAiBc,IAAI,CAACF;IACpC,IAAIC,UAAU,MAAM,OAAOE;IAE3B,MAAM,GAAGZ,MAAMC,OAAOC,KAAKW,KAAK,GAAGH;IACnC,IAAI,CAACX,mBAAmBe,OAAOd,OAAOc,OAAOb,QAAQa,OAAOZ,OAC1D,OAAOU;IACT,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAIE,OAAOC,KAAK,CAAC,IAAIX,KAAKK,OAAOO,OAAO,KAAK,OAAOJ;IAEpD,OAAOlB,MAAMe,OAAOQ,MAAM,CACxBJ,OAAOlB,6BAA6BG;AAExC;AAEA,SAASoB,YACPC,aAAqC,EACrCC,OAAgB;IAEhB,IAAID,kBAAkB,OAAO,OAAO;IACpC,IAAIA,kBAAkB,QAAQ,OAAO;IACrC,OAAOC,UAAU,SAASR;AAC5B;AAEA,SAASS,aAAaZ,KAAc;IAClC,IAAIA,UAAU,QAAQA,UAAUG,WAAW,OAAOA;IAClD,IAAIH,iBAAiBL,MAAM,OAAOK,MAAMa,cAAc;IACtD,IAAI,OAAOb,UAAU,UAAU,OAAOD,oBAAoBC,UAAUA;IACpE,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,YAChD,OAAOG;IACT,OAAOW,OAAOd;AAChB;AAEA,SAASe,iBAAwBC,GAAqB;IACpD,MAAMC,iBAAiB,iBAAiBD,OAAOA,IAAIE,WAAW,KAAKf;IACnE,MAAMgB,gBAAgB,gBAAgBH,OAAOA,IAAII,UAAU,KAAKjB;IAChE,OAAOc,kBAAkBE;AAC3B;AAEA,SAASE,wBAAwBC,MAA2B;IAC1D,OAAOA,kBAAkBC,UACrBC,QAAQF,OAAOG,OAAO,CAAC,qCACvB;AACN;AAEA,SAASC,yBAAyBJ,MAA2B;IAC3D,OAAOA,kBAAkBC,UACrBC,QAAQF,OAAOG,OAAO,CAAC,sCACvB;AACN;AAEA,SACEtC,qBAAqB,EACrBsB,WAAW,EACXG,YAAY,EACZG,gBAAgB,EAChBW,wBAAwB,EACxBL,uBAAuB,GACvB"}
|