@qrvey/utils 1.5.0 → 1.6.0-0-to-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.
Files changed (83) hide show
  1. package/dist/cjs/column_format/helpers/columnTypeByChart.d.ts +1 -1
  2. package/dist/cjs/column_format/helpers/defineTableChartFormat.js +2 -2
  3. package/dist/cjs/column_format/helpers/defineXYChartFormat.js +9 -2
  4. package/dist/cjs/column_format/interfaces/IChartColumn.d.ts +2 -0
  5. package/dist/cjs/columns/constants/COLUMN.d.ts +1 -0
  6. package/dist/cjs/columns/constants/COLUMN.js +1 -0
  7. package/dist/cjs/columns/constants/COLUMNS.js +1 -0
  8. package/dist/cjs/columns/constants/COLUMN_INFO.js +7 -0
  9. package/dist/cjs/columns/constants/COLUMN_INFO_LIST.js +1 -0
  10. package/dist/cjs/columns/constants/COLUMN_LABEL.d.ts +1 -0
  11. package/dist/cjs/columns/constants/COLUMN_LABEL.js +1 -1
  12. package/dist/cjs/columns/constants/COLUMN_PROPERTY_INFO.js +1 -1
  13. package/dist/cjs/columns/constants/COLUMN_PROPERTY_LABEL.d.ts +4 -0
  14. package/dist/cjs/columns/constants/COLUMN_PROPERTY_LABEL.js +2 -1
  15. package/dist/cjs/columns/interfaces/IColumnTimeGroupSettings.d.ts +7 -0
  16. package/dist/cjs/columns/interfaces/IColumnTimeGroupSettings.js +2 -0
  17. package/dist/cjs/dates/adapters/hmsToDate.d.ts +7 -0
  18. package/dist/cjs/dates/adapters/hmsToDate.js +24 -0
  19. package/dist/cjs/dates/adapters/index.d.ts +1 -0
  20. package/dist/cjs/dates/adapters/index.js +1 -0
  21. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_INFO.d.ts +5 -0
  22. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_INFO.js +31 -0
  23. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_INFO_LIST.d.ts +2 -0
  24. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_INFO_LIST.js +10 -0
  25. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_LABEL.d.ts +5 -0
  26. package/dist/cjs/dates/constants/TIME_GROUPING_PROPERTY_LABEL.js +9 -0
  27. package/dist/cjs/dates/constants/index.d.ts +3 -0
  28. package/dist/cjs/dates/constants/index.js +3 -0
  29. package/dist/cjs/filters/helpers/backend/getBackendGroupValue.js +3 -1
  30. package/dist/cjs/filters/helpers/backend/getBackendProperty.js +2 -1
  31. package/dist/cjs/filters/services/UChartApi.js +6 -2
  32. package/dist/cjs/filters/services/UChartPaginationApi.js +6 -2
  33. package/dist/cjs/format/definition.d.ts +1 -0
  34. package/dist/cjs/format/definition.js +2 -1
  35. package/dist/cjs/format/format.d.ts +12 -0
  36. package/dist/cjs/format/format.js +32 -4
  37. package/dist/cjs/globalization/interfaces/common/II18nColumnProperties.d.ts +3 -0
  38. package/dist/cjs/globalization/labels/common/I18N_COLUMN_LABEL.d.ts +1 -0
  39. package/dist/cjs/globalization/labels/common/I18N_COLUMN_LABEL.js +1 -0
  40. package/dist/cjs/globalization/labels/common/I18N_COLUMN_PROPERTY_LABEL.js +3 -0
  41. package/dist/cjs/qrvey/helpers/transformValue.js +5 -0
  42. package/dist/column_format/helpers/columnTypeByChart.d.ts +1 -1
  43. package/dist/column_format/helpers/defineTableChartFormat.js +2 -2
  44. package/dist/column_format/helpers/defineXYChartFormat.js +9 -2
  45. package/dist/column_format/interfaces/IChartColumn.d.ts +2 -0
  46. package/dist/columns/constants/COLUMN.d.ts +1 -0
  47. package/dist/columns/constants/COLUMN.js +1 -0
  48. package/dist/columns/constants/COLUMNS.js +1 -0
  49. package/dist/columns/constants/COLUMN_INFO.js +7 -0
  50. package/dist/columns/constants/COLUMN_INFO_LIST.js +1 -0
  51. package/dist/columns/constants/COLUMN_LABEL.d.ts +1 -0
  52. package/dist/columns/constants/COLUMN_LABEL.js +1 -1
  53. package/dist/columns/constants/COLUMN_PROPERTY_INFO.js +1 -1
  54. package/dist/columns/constants/COLUMN_PROPERTY_LABEL.d.ts +4 -0
  55. package/dist/columns/constants/COLUMN_PROPERTY_LABEL.js +2 -1
  56. package/dist/columns/interfaces/IColumnTimeGroupSettings.d.ts +7 -0
  57. package/dist/columns/interfaces/IColumnTimeGroupSettings.js +1 -0
  58. package/dist/dates/adapters/hmsToDate.d.ts +7 -0
  59. package/dist/dates/adapters/hmsToDate.js +20 -0
  60. package/dist/dates/adapters/index.d.ts +1 -0
  61. package/dist/dates/adapters/index.js +1 -0
  62. package/dist/dates/constants/TIME_GROUPING_PROPERTY_INFO.d.ts +5 -0
  63. package/dist/dates/constants/TIME_GROUPING_PROPERTY_INFO.js +28 -0
  64. package/dist/dates/constants/TIME_GROUPING_PROPERTY_INFO_LIST.d.ts +2 -0
  65. package/dist/dates/constants/TIME_GROUPING_PROPERTY_INFO_LIST.js +7 -0
  66. package/dist/dates/constants/TIME_GROUPING_PROPERTY_LABEL.d.ts +5 -0
  67. package/dist/dates/constants/TIME_GROUPING_PROPERTY_LABEL.js +6 -0
  68. package/dist/dates/constants/index.d.ts +3 -0
  69. package/dist/dates/constants/index.js +3 -0
  70. package/dist/filters/helpers/backend/getBackendGroupValue.js +3 -1
  71. package/dist/filters/helpers/backend/getBackendProperty.js +2 -1
  72. package/dist/filters/services/UChartApi.js +6 -2
  73. package/dist/filters/services/UChartPaginationApi.js +6 -2
  74. package/dist/format/definition.d.ts +1 -0
  75. package/dist/format/definition.js +1 -0
  76. package/dist/format/format.d.ts +12 -0
  77. package/dist/format/format.js +30 -4
  78. package/dist/globalization/interfaces/common/II18nColumnProperties.d.ts +3 -0
  79. package/dist/globalization/labels/common/I18N_COLUMN_LABEL.d.ts +1 -0
  80. package/dist/globalization/labels/common/I18N_COLUMN_LABEL.js +1 -0
  81. package/dist/globalization/labels/common/I18N_COLUMN_PROPERTY_LABEL.js +3 -0
  82. package/dist/qrvey/helpers/transformValue.js +5 -0
  83. package/package.json +1 -1
@@ -13,4 +13,4 @@ import { IChartShelfType } from "../interfaces/IChartShelfType";
13
13
  * grouped.
14
14
  * @returns The column type of the column.
15
15
  */
16
- export declare const columnTypeByChart: (column: IChartColumn, shelfType: IChartShelfType, chartGroup: IChartGroupType, isGroupedTable?: boolean) => import("../..").COMPLEX_COLUMN | import("../..").COMPOUND_COLUMN | NUMERICAL_COLUMN | COLUMN.SINGLE_CHOICE | COLUMN.MULTIPLE_CHOICE | COLUMN.YES_NO | COLUMN.RANKING | COLUMN.DATE | COLUMN.SIGNATURE | COLUMN.DROPDOWN | COLUMN.IMAGE | COLUMN.EMAIL_FORM | COLUMN.PHONE | COLUMN.PASSWORD | COLUMN.CHECKLIST | COLUMN.NPS_SCORE | COLUMN.NPS_FEEDBACK | COLUMN.TEXT_LABEL | COLUMN.TEXT_CATEGORY | COLUMN.LOOKUP | COLUMN.HEADLINE | COLUMN.SECTION | COLUMN.AGGREGATED_FORMULA | COLUMN.BUCKET | COLUMN.SLIDEBAR | COLUMN.NUMERIC | COLUMN.NUMERICC | COLUMN.NUMERICP | COLUMN.NUMERICG | COLUMN.RATING | COLUMN.TEXTFIELD | COLUMN.LONGTEXT | COLUMN.IMAGEUPLOAD | COLUMN.FILEUPLOAD | COLUMN.EXPRESSION | COLUMN.NAME | COLUMN.USADDRESS | COLUMN.ADDRESS | "DATE" | "NUMERIC" | "TEXT_LABEL";
16
+ export declare const columnTypeByChart: (column: IChartColumn, shelfType: IChartShelfType, chartGroup: IChartGroupType, isGroupedTable?: boolean) => import("../..").COMPLEX_COLUMN | import("../..").COMPOUND_COLUMN | NUMERICAL_COLUMN | COLUMN.SINGLE_CHOICE | COLUMN.MULTIPLE_CHOICE | COLUMN.YES_NO | COLUMN.RANKING | COLUMN.DATE | COLUMN.TIME | COLUMN.SIGNATURE | COLUMN.DROPDOWN | COLUMN.IMAGE | COLUMN.EMAIL_FORM | COLUMN.PHONE | COLUMN.PASSWORD | COLUMN.CHECKLIST | COLUMN.NPS_SCORE | COLUMN.NPS_FEEDBACK | COLUMN.TEXT_LABEL | COLUMN.TEXT_CATEGORY | COLUMN.LOOKUP | COLUMN.HEADLINE | COLUMN.SECTION | COLUMN.AGGREGATED_FORMULA | COLUMN.BUCKET | COLUMN.SLIDEBAR | COLUMN.NUMERIC | COLUMN.NUMERICC | COLUMN.NUMERICP | COLUMN.NUMERICG | COLUMN.RATING | COLUMN.TEXTFIELD | COLUMN.LONGTEXT | COLUMN.IMAGEUPLOAD | COLUMN.FILEUPLOAD | COLUMN.EXPRESSION | COLUMN.NAME | COLUMN.USADDRESS | COLUMN.ADDRESS | "DATE" | "NUMERIC" | "TEXT_LABEL";
@@ -49,13 +49,13 @@ const defineTableChartFormat = (column, settings) => {
49
49
  if (noFormatSupported) {
50
50
  return STRING_FORMAT_1.STRING_FORMAT.NONE;
51
51
  }
52
+ if (selectedFormat)
53
+ return selectedFormat;
52
54
  if (hasDefaultFormat) {
53
55
  const columnDefaultFormat = defaultFormat ||
54
56
  outputFormat || { type: "DATE", format: "MM/DD/YYYY" };
55
57
  return Object.assign(Object.assign({}, defaultFormat), { format: defaultText, originalFormat: Object.assign({}, columnDefaultFormat), type: "DATE" });
56
58
  }
57
- if (selectedFormat)
58
- return selectedFormat;
59
59
  return;
60
60
  }
61
61
  case COLUMN_1.COLUMN.NUMERIC:
@@ -6,6 +6,7 @@ const COLUMN_1 = require("../../columns/constants/COLUMN");
6
6
  const definition_1 = require("../../format/definition");
7
7
  const isEmpty_1 = require("../../general/mix/isEmpty");
8
8
  const CALCULATION_LABEL_1 = require("../../qrvey/constants/CALCULATION_LABEL");
9
+ const constants_1 = require("../constants");
9
10
  const CHART_GROUP_1 = require("../constants/CHART_GROUP");
10
11
  const DATEGROUP_UNSUPPORT_FORMAT_1 = require("../constants/DATEGROUP_UNSUPPORT_FORMAT");
11
12
  const STRING_FORMAT_1 = require("../constants/STRING_FORMAT");
@@ -18,7 +19,7 @@ const columnTypeByChart_1 = require("./columnTypeByChart");
18
19
  * @param {IColumnFormatSettings} settings - IColumnFormatSettings
19
20
  */
20
21
  const defineXYChartFormat = (column, settings) => {
21
- const { aggregate, type, defaultFormat, outputFormat, selectedFormat, dateGroup, calculation, } = column;
22
+ const { aggregate, type, defaultFormat, outputFormat, selectedFormat, dateGroup, timeGroup, calculation, } = column;
22
23
  const { shelfType, withoutFormat } = settings;
23
24
  const columnDefaultFormat = defaultFormat || outputFormat;
24
25
  //Defaults
@@ -30,7 +31,7 @@ const defineXYChartFormat = (column, settings) => {
30
31
  format: "Percentage" /* LOCALE_FORMATS.PERCENTAGE */,
31
32
  };
32
33
  const columnType = (0, columnTypeByChart_1.columnTypeByChart)(column, shelfType, CHART_GROUP_1.CHART_GROUPS.XY);
33
- const noFormatSupported = DATEGROUP_UNSUPPORT_FORMAT_1.DATEGROUP_UNSUPPORT_FORMAT.some((gp) => gp === (dateGroup === null || dateGroup === void 0 ? void 0 : dateGroup.label));
34
+ const noFormatSupported = DATEGROUP_UNSUPPORT_FORMAT_1.DATEGROUP_UNSUPPORT_FORMAT.some((gp) => gp === (dateGroup === null || dateGroup === void 0 ? void 0 : dateGroup.label) || gp === (timeGroup === null || timeGroup === void 0 ? void 0 : timeGroup.label));
34
35
  const isUsedAsNumericColumn = type !== columnType;
35
36
  const columnCurrentFormat = isUsedAsNumericColumn
36
37
  ? selectedFormat
@@ -50,6 +51,7 @@ const defineXYChartFormat = (column, settings) => {
50
51
  case COLUMN_1.COLUMN.IMAGE:
51
52
  case COLUMN_1.COLUMN.TEXT_LABEL:
52
53
  return STRING_FORMAT_1.STRING_FORMAT.NONE;
54
+ case COLUMN_1.COLUMN.TIME:
53
55
  case COLUMN_1.COLUMN.DATE: {
54
56
  if (noFormatSupported) {
55
57
  return STRING_FORMAT_1.STRING_FORMAT.NONE;
@@ -57,6 +59,11 @@ const defineXYChartFormat = (column, settings) => {
57
59
  else if (hasDefaultFormat) {
58
60
  return Object.assign(Object.assign({}, columnDefaultFormat), { format: defaultText, originalFormat: Object.assign({}, outputFormat) });
59
61
  }
62
+ else if (columnType === COLUMN_1.COLUMN.TIME &&
63
+ shelfType === constants_1.SHELF_TYPE.SERIES &&
64
+ (selectedFormat === null || selectedFormat === void 0 ? void 0 : selectedFormat.type) !== COLUMN_1.COLUMN.TIME) {
65
+ return outputFormat;
66
+ }
60
67
  return selectedFormat;
61
68
  }
62
69
  case COLUMN_1.COLUMN.NUMERIC:
@@ -2,12 +2,14 @@ import { IColumnSortingSettings, IColumnType, IFormatOutputFormat, IFormulaType
2
2
  import { IColumnAggregate } from "../../columns/interfaces/IColumnAggregate";
3
3
  import { IColumnDateGroupSettings } from "../../columns/interfaces/IColumnDateGroupSettings";
4
4
  import { IColumnScale } from "../../columns/interfaces/IColumnScale";
5
+ import { IColumnTimeGroupSettings } from "../../columns/interfaces/IColumnTimeGroupSettings";
5
6
  import { IColumnCalculation } from "../../columns/interfaces/IColunmCalculation";
6
7
  import { IFormatDefaultFormat } from "../../interfaces/format/IFormatDefaultFormat";
7
8
  export interface IChartColumn {
8
9
  aggregate: IColumnAggregate;
9
10
  colIndex: number;
10
11
  dateGroup?: IColumnDateGroupSettings;
12
+ timeGroup?: IColumnTimeGroupSettings;
11
13
  defaultFormat: IFormatDefaultFormat;
12
14
  format?: string;
13
15
  formulaType?: IFormulaType;
@@ -4,6 +4,7 @@ export declare enum COLUMN {
4
4
  YES_NO = "YES_NO",
5
5
  RANKING = "RANKING",
6
6
  DATE = "DATE",
7
+ TIME = "TIME",
7
8
  SIGNATURE = "SIGNATURE",
8
9
  DROPDOWN = "DROPDOWN",
9
10
  IMAGE = "IMAGE",
@@ -9,6 +9,7 @@ var COLUMN;
9
9
  COLUMN["YES_NO"] = "YES_NO";
10
10
  COLUMN["RANKING"] = "RANKING";
11
11
  COLUMN["DATE"] = "DATE";
12
+ COLUMN["TIME"] = "TIME";
12
13
  COLUMN["SIGNATURE"] = "SIGNATURE";
13
14
  COLUMN["DROPDOWN"] = "DROPDOWN";
14
15
  COLUMN["IMAGE"] = "IMAGE";
@@ -14,6 +14,7 @@ exports.COLUMNS = [
14
14
  COLUMN_1.COLUMN.YES_NO,
15
15
  COLUMN_1.COLUMN.RANKING,
16
16
  COLUMN_1.COLUMN.DATE,
17
+ COLUMN_1.COLUMN.TIME,
17
18
  COLUMN_1.COLUMN.SLIDEBAR,
18
19
  COLUMN_1.COLUMN.SIGNATURE,
19
20
  COLUMN_1.COLUMN.DROPDOWN,
@@ -44,6 +44,13 @@ exports.COLUMN_INFO = Object.assign(Object.assign(Object.assign({ [COLUMN_1.COLU
44
44
  value: COLUMN_1.COLUMN.DATE,
45
45
  displayed: true,
46
46
  i18nLabelPath: "common.column_types.date_label",
47
+ }, [COLUMN_1.COLUMN.TIME]: {
48
+ label: COLUMN_LABEL_1.COLUMN_LABEL.TIME,
49
+ shortLabel: "Time",
50
+ abbrLabel: "TI",
51
+ value: COLUMN_1.COLUMN.TIME,
52
+ displayed: true,
53
+ i18nLabelPath: "common.column_types.time_label",
47
54
  }, [COLUMN_1.COLUMN.SIGNATURE]: {
48
55
  label: COLUMN_LABEL_1.COLUMN_LABEL.SIGNATURE,
49
56
  shortLabel: "Signature",
@@ -12,6 +12,7 @@ exports.COLUMN_INFO_LIST = [
12
12
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.YES_NO],
13
13
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.RANKING],
14
14
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.DATE],
15
+ COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.TIME],
15
16
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.SIGNATURE],
16
17
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.DROPDOWN],
17
18
  COLUMN_INFO_1.COLUMN_INFO[COLUMN_1.COLUMN.IMAGE],
@@ -21,6 +21,7 @@ export declare const COLUMN_LABEL: {
21
21
  YES_NO: string;
22
22
  RANKING: string;
23
23
  DATE: string;
24
+ TIME: string;
24
25
  SIGNATURE: string;
25
26
  DROPDOWN: string;
26
27
  IMAGE: string;
@@ -4,4 +4,4 @@ exports.COLUMN_LABEL = void 0;
4
4
  const COMPLEX_COLUMN_LABEL_1 = require("./COMPLEX_COLUMN_LABEL");
5
5
  const COMPOUND_COLUMN_LABEL_1 = require("./COMPOUND_COLUMN_LABEL");
6
6
  const NUMERICAL_COLUMN_LABEL_1 = require("./NUMERICAL_COLUMN_LABEL");
7
- exports.COLUMN_LABEL = Object.assign(Object.assign(Object.assign({ SINGLE_CHOICE: "Single Choice", MULTIPLE_CHOICE: "Multiple Choice", YES_NO: "Yes No", RANKING: "Ranking", DATE: "Date", SIGNATURE: "Signature", DROPDOWN: "Dropdown", IMAGE: "Image", EMAIL_FORM: "Email Form", PHONE: "Phone", PASSWORD: "Password", CHECKLIST: "Check List", NPS_SCORE: "NPS Score", NPS_FEEDBACK: "NPS Feedback", TEXT: "Text", TEXT_LABEL: "Text Label", TEXT_CATEGORY: "Text Category", LOOKUP: "Lookup", HEADLINE: "Headline", SECTION: "Section", FORMULA: "Formula", AGGREGATED_FORMULA: "Aggregated Formula", BUCKET: "Bucket", STRING: "String" }, NUMERICAL_COLUMN_LABEL_1.NUMERICAL_COLUMN_LABEL), COMPOUND_COLUMN_LABEL_1.COMPOUND_COLUMN_LABEL), COMPLEX_COLUMN_LABEL_1.COMPLEX_COLUMN_LABEL);
7
+ exports.COLUMN_LABEL = Object.assign(Object.assign(Object.assign({ SINGLE_CHOICE: "Single Choice", MULTIPLE_CHOICE: "Multiple Choice", YES_NO: "Yes No", RANKING: "Ranking", DATE: "Date", TIME: "Time", SIGNATURE: "Signature", DROPDOWN: "Dropdown", IMAGE: "Image", EMAIL_FORM: "Email Form", PHONE: "Phone", PASSWORD: "Password", CHECKLIST: "Check List", NPS_SCORE: "NPS Score", NPS_FEEDBACK: "NPS Feedback", TEXT: "Text", TEXT_LABEL: "Text Label", TEXT_CATEGORY: "Text Category", LOOKUP: "Lookup", HEADLINE: "Headline", SECTION: "Section", FORMULA: "Formula", AGGREGATED_FORMULA: "Aggregated Formula", BUCKET: "Bucket", STRING: "String" }, NUMERICAL_COLUMN_LABEL_1.NUMERICAL_COLUMN_LABEL), COMPOUND_COLUMN_LABEL_1.COMPOUND_COLUMN_LABEL), COMPLEX_COLUMN_LABEL_1.COMPLEX_COLUMN_LABEL);
@@ -31,4 +31,4 @@ exports.COLUMN_PROPERTY_INFO = Object.assign(Object.assign({ [COLUMN_1.COLUMN.LO
31
31
  ...DATE_GROUPING_TIME_PROPERTY_INFO_LIST_1.DATE_GROUPING_TIME_PROPERTY_INFO_LIST,
32
32
  ...DATE_DISTINCT_PROPERTY_INFO_LIST_1.DATE_DISTINCT_PROPERTY_INFO_LIST,
33
33
  ...DATE_DISTINCT_TIME_PROPERTY_INFO_LIST_1.DATE_DISTINCT_TIME_PROPERTY_INFO_LIST,
34
- ] }, COMPOUND_COLUMN_PROPERTY_INFO_1.COMPOUND_COLUMN_PROPERTY_INFO), COMPLEX_COLUMN_PROPERTY_INFO_1.COMPLEX_COLUMN_PROPERTY_INFO);
34
+ ], [COLUMN_1.COLUMN.TIME]: [...DATE_GROUPING_TIME_PROPERTY_INFO_LIST_1.DATE_GROUPING_TIME_PROPERTY_INFO_LIST] }, COMPOUND_COLUMN_PROPERTY_INFO_1.COMPOUND_COLUMN_PROPERTY_INFO), COMPLEX_COLUMN_PROPERTY_INFO_1.COMPLEX_COLUMN_PROPERTY_INFO);
@@ -4,6 +4,7 @@ import { DATE_DISTINCT_PROPERTY_LABEL } from "../../dates/constants/DATE_DISTINC
4
4
  import { DATE_DISTINCT_TIME_PROPERTY_LABEL } from "../../dates/constants/DATE_DISTINCT_TIME_PROPERTY_LABEL";
5
5
  import { COMPLEX_COLUMN_PROPERTY_LABEL } from "./COMPLEX_COLUMN_PROPERTY_LABEL";
6
6
  import { COMPOUND_COLUMN_PROPERTY_LABEL } from "./COMPOUND_COLUMN_PROPERTY_LABEL";
7
+ import { TIME_GROUPING_PROPERTY_LABEL } from "../../dates/constants/TIME_GROUPING_PROPERTY_LABEL";
7
8
  export declare const COLUMN_PROPERTY_LABEL: {
8
9
  NAME_FIRST: COMPOUND_COLUMN_PROPERTY_LABEL.NAME_FIRST;
9
10
  NAME_LAST: COMPOUND_COLUMN_PROPERTY_LABEL.NAME_LAST;
@@ -39,6 +40,9 @@ export declare const COLUMN_PROPERTY_LABEL: {
39
40
  YEAR_QUARTER: DATE_DISTINCT_PROPERTY_LABEL.YEAR_QUARTER;
40
41
  YEAR_MONTH: DATE_DISTINCT_PROPERTY_LABEL.YEAR_MONTH;
41
42
  MONTH_DAY: DATE_DISTINCT_PROPERTY_LABEL.MONTH_DAY;
43
+ TIME_HOUR: TIME_GROUPING_PROPERTY_LABEL.TIME_HOUR;
44
+ TIME_MINUTE: TIME_GROUPING_PROPERTY_LABEL.TIME_MINUTE;
45
+ TIME_SECOND: TIME_GROUPING_PROPERTY_LABEL.TIME_SECOND;
42
46
  HOUR: DATE_GROUPING_TIME_PROPERTY_LABEL.HOUR;
43
47
  MINUTE: DATE_GROUPING_TIME_PROPERTY_LABEL.MINUTE;
44
48
  SECOND: DATE_GROUPING_TIME_PROPERTY_LABEL.SECOND;
@@ -7,4 +7,5 @@ const DATE_DISTINCT_PROPERTY_LABEL_1 = require("../../dates/constants/DATE_DISTI
7
7
  const DATE_DISTINCT_TIME_PROPERTY_LABEL_1 = require("../../dates/constants/DATE_DISTINCT_TIME_PROPERTY_LABEL");
8
8
  const COMPLEX_COLUMN_PROPERTY_LABEL_1 = require("./COMPLEX_COLUMN_PROPERTY_LABEL");
9
9
  const COMPOUND_COLUMN_PROPERTY_LABEL_1 = require("./COMPOUND_COLUMN_PROPERTY_LABEL");
10
- exports.COLUMN_PROPERTY_LABEL = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ IMAGE_ANSWER_ID: "answer_id", LOOKUP_DISPLAY: "display", LOOKUP_VALUE: "value" }, DATE_GROUPING_PROPERTY_LABEL_1.DATE_GROUPING_PROPERTY_LABEL), DATE_GROUPING_TIME_PROPERTY_LABEL_1.DATE_GROUPING_TIME_PROPERTY_LABEL), DATE_DISTINCT_PROPERTY_LABEL_1.DATE_DISTINCT_PROPERTY_LABEL), DATE_DISTINCT_TIME_PROPERTY_LABEL_1.DATE_DISTINCT_TIME_PROPERTY_LABEL), COMPLEX_COLUMN_PROPERTY_LABEL_1.COMPLEX_COLUMN_PROPERTY_LABEL), COMPOUND_COLUMN_PROPERTY_LABEL_1.COMPOUND_COLUMN_PROPERTY_LABEL);
10
+ const TIME_GROUPING_PROPERTY_LABEL_1 = require("../../dates/constants/TIME_GROUPING_PROPERTY_LABEL");
11
+ exports.COLUMN_PROPERTY_LABEL = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ IMAGE_ANSWER_ID: "answer_id", LOOKUP_DISPLAY: "display", LOOKUP_VALUE: "value" }, DATE_GROUPING_PROPERTY_LABEL_1.DATE_GROUPING_PROPERTY_LABEL), DATE_GROUPING_TIME_PROPERTY_LABEL_1.DATE_GROUPING_TIME_PROPERTY_LABEL), TIME_GROUPING_PROPERTY_LABEL_1.TIME_GROUPING_PROPERTY_LABEL), DATE_DISTINCT_PROPERTY_LABEL_1.DATE_DISTINCT_PROPERTY_LABEL), DATE_DISTINCT_TIME_PROPERTY_LABEL_1.DATE_DISTINCT_TIME_PROPERTY_LABEL), COMPLEX_COLUMN_PROPERTY_LABEL_1.COMPLEX_COLUMN_PROPERTY_LABEL), COMPOUND_COLUMN_PROPERTY_LABEL_1.COMPOUND_COLUMN_PROPERTY_LABEL);
@@ -0,0 +1,7 @@
1
+ export interface IColumnTimeGroupSettings {
2
+ default: boolean;
3
+ format: string;
4
+ label: string;
5
+ secondatyText: string;
6
+ text: string;
7
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transforms String time from a [H:m:s] format to Date object.
3
+ * @param monthYearDate String of [H:m:s] time
4
+ * @param time Flag to parse the object date to milliseconds.
5
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected time, the function will return the same value
6
+ */
7
+ export declare function hmsToDate(hmsDate: string, time?: boolean): string | Date | number;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hmsToDate = void 0;
4
+ const isEmpty_1 = require("../../general/mix/isEmpty");
5
+ const isTokenLabel_1 = require("../../tokens/isTokenLabel");
6
+ const DATE_FORMAT_1 = require("../constants/DATE_FORMAT");
7
+ const validateDate_1 = require("../helpers/validateDate");
8
+ /**
9
+ * Transforms String time from a [H:m:s] format to Date object.
10
+ * @param monthYearDate String of [H:m:s] time
11
+ * @param time Flag to parse the object date to milliseconds.
12
+ * @returns The date object or the date in milliseconds. If the argument is an unexpected time, the function will return the same value
13
+ */
14
+ function hmsToDate(hmsDate, time = false) {
15
+ if ((0, isEmpty_1.isEmpty)(hmsDate) ||
16
+ (0, isTokenLabel_1.isTokenLabel)(hmsDate) ||
17
+ typeof hmsDate !== "string" ||
18
+ !(0, validateDate_1.validateDate)(hmsDate, DATE_FORMAT_1.DATE_FORMAT.DAY_TIME))
19
+ return hmsDate;
20
+ const [hour, minute, second] = hmsDate.split(":");
21
+ const start = new Date(0, 0, 0, +hour, +minute, +second);
22
+ return time ? +start : start;
23
+ }
24
+ exports.hmsToDate = hmsToDate;
@@ -4,6 +4,7 @@ export * from "./dateToMonthYear";
4
4
  export * from "./dateToQuarterYear";
5
5
  export * from "./dateToWeekYear";
6
6
  export * from "./dateToYear";
7
+ export * from "./hmsToDate";
7
8
  export * from "./mdyDateToDate";
8
9
  export * from "./monthYearToDate";
9
10
  export * from "./quarterYearToDate";
@@ -20,6 +20,7 @@ __exportStar(require("./dateToMonthYear"), exports);
20
20
  __exportStar(require("./dateToQuarterYear"), exports);
21
21
  __exportStar(require("./dateToWeekYear"), exports);
22
22
  __exportStar(require("./dateToYear"), exports);
23
+ __exportStar(require("./hmsToDate"), exports);
23
24
  __exportStar(require("./mdyDateToDate"), exports);
24
25
  __exportStar(require("./monthYearToDate"), exports);
25
26
  __exportStar(require("./quarterYearToDate"), exports);
@@ -0,0 +1,5 @@
1
+ import { IColumnPropertyInfo } from "../../columns/interfaces/IColumnPropertyInfo";
2
+ import { IColumnPropertyType } from "../../columns/interfaces/IColumnPropertyType";
3
+ export declare const TIME_GROUPING_PROPERTY_INFO: {
4
+ [key in IColumnPropertyType]?: IColumnPropertyInfo;
5
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TIME_GROUPING_PROPERTY_INFO = void 0;
4
+ const DATE_GROUPING_TIME_PROPERTY_1 = require("./DATE_GROUPING_TIME_PROPERTY");
5
+ const TIME_GROUPING_PROPERTY_LABEL_1 = require("./TIME_GROUPING_PROPERTY_LABEL");
6
+ exports.TIME_GROUPING_PROPERTY_INFO = {
7
+ [DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.HOUR]: {
8
+ label: TIME_GROUPING_PROPERTY_LABEL_1.TIME_GROUPING_PROPERTY_LABEL.TIME_HOUR,
9
+ shortLabel: "Full Hour",
10
+ abbrLabel: "F-H",
11
+ value: DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.HOUR,
12
+ displayed: true,
13
+ i18nLabelPath: "common.properties.time_hour_label",
14
+ },
15
+ [DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.MINUTE]: {
16
+ label: TIME_GROUPING_PROPERTY_LABEL_1.TIME_GROUPING_PROPERTY_LABEL.TIME_MINUTE,
17
+ shortLabel: "Full Minute",
18
+ abbrLabel: "F-M",
19
+ value: DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.MINUTE,
20
+ displayed: true,
21
+ i18nLabelPath: "common.properties.time_minute_label",
22
+ },
23
+ [DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.SECOND]: {
24
+ label: TIME_GROUPING_PROPERTY_LABEL_1.TIME_GROUPING_PROPERTY_LABEL.TIME_SECOND,
25
+ shortLabel: "Full Second",
26
+ abbrLabel: "F-S",
27
+ value: DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.SECOND,
28
+ displayed: true,
29
+ i18nLabelPath: "common.properties.time_second_label",
30
+ },
31
+ };
@@ -0,0 +1,2 @@
1
+ import { IColumnPropertyInfo } from "../../columns/interfaces/IColumnPropertyInfo";
2
+ export declare const TIME_GROUPING_PROPERTY_INFO_LIST: IColumnPropertyInfo[];
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TIME_GROUPING_PROPERTY_INFO_LIST = void 0;
4
+ const TIME_GROUPING_PROPERTY_INFO_1 = require("./TIME_GROUPING_PROPERTY_INFO");
5
+ const DATE_GROUPING_TIME_PROPERTY_1 = require("./DATE_GROUPING_TIME_PROPERTY");
6
+ exports.TIME_GROUPING_PROPERTY_INFO_LIST = [
7
+ TIME_GROUPING_PROPERTY_INFO_1.TIME_GROUPING_PROPERTY_INFO[DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.HOUR],
8
+ TIME_GROUPING_PROPERTY_INFO_1.TIME_GROUPING_PROPERTY_INFO[DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.MINUTE],
9
+ TIME_GROUPING_PROPERTY_INFO_1.TIME_GROUPING_PROPERTY_INFO[DATE_GROUPING_TIME_PROPERTY_1.DATE_GROUPING_TIME_PROPERTY.SECOND],
10
+ ];
@@ -0,0 +1,5 @@
1
+ export declare enum TIME_GROUPING_PROPERTY_LABEL {
2
+ TIME_HOUR = "Full Hour",
3
+ TIME_MINUTE = "Full Minute",
4
+ TIME_SECOND = "Full Second"
5
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TIME_GROUPING_PROPERTY_LABEL = void 0;
4
+ var TIME_GROUPING_PROPERTY_LABEL;
5
+ (function (TIME_GROUPING_PROPERTY_LABEL) {
6
+ TIME_GROUPING_PROPERTY_LABEL["TIME_HOUR"] = "Full Hour";
7
+ TIME_GROUPING_PROPERTY_LABEL["TIME_MINUTE"] = "Full Minute";
8
+ TIME_GROUPING_PROPERTY_LABEL["TIME_SECOND"] = "Full Second";
9
+ })(TIME_GROUPING_PROPERTY_LABEL = exports.TIME_GROUPING_PROPERTY_LABEL || (exports.TIME_GROUPING_PROPERTY_LABEL = {}));
@@ -38,3 +38,6 @@ export * from "./DATE_YEAR_MONTHS_MMMM";
38
38
  export * from "./DATE_YEAR_QUARTERS";
39
39
  export * from "./DATE_YEAR_QUARTERS_RANGE";
40
40
  export * from "./DATETIME_COLUMN_FORMAT";
41
+ export * from "./TIME_GROUPING_PROPERTY_INFO_LIST";
42
+ export * from "./TIME_GROUPING_PROPERTY_INFO";
43
+ export * from "./TIME_GROUPING_PROPERTY_LABEL";
@@ -54,3 +54,6 @@ __exportStar(require("./DATE_YEAR_MONTHS_MMMM"), exports);
54
54
  __exportStar(require("./DATE_YEAR_QUARTERS"), exports);
55
55
  __exportStar(require("./DATE_YEAR_QUARTERS_RANGE"), exports);
56
56
  __exportStar(require("./DATETIME_COLUMN_FORMAT"), exports);
57
+ __exportStar(require("./TIME_GROUPING_PROPERTY_INFO_LIST"), exports);
58
+ __exportStar(require("./TIME_GROUPING_PROPERTY_INFO"), exports);
59
+ __exportStar(require("./TIME_GROUPING_PROPERTY_LABEL"), exports);
@@ -4,6 +4,7 @@ exports.getBackendGroupValue = void 0;
4
4
  const adaptDateGroupingProperty_1 = require("../../adapters/adaptDateGroupingProperty");
5
5
  const isDateColumn_1 = require("../../../columns/helpers/isDateColumn");
6
6
  const isEmpty_1 = require("../../../general/mix/isEmpty");
7
+ const COLUMN_1 = require("../../../columns/constants/COLUMN");
7
8
  /**
8
9
  * Gets a group value for the backend logic structure
9
10
  * @param filter The filter
@@ -11,7 +12,8 @@ const isEmpty_1 = require("../../../general/mix/isEmpty");
11
12
  */
12
13
  function getBackendGroupValue(filter) {
13
14
  if ((0, isEmpty_1.isEmpty)(filter.column.aggregate) &&
14
- (0, isDateColumn_1.isDateColumn)(filter.column) &&
15
+ ((0, isDateColumn_1.isDateColumn)(filter.column) ||
16
+ filter.column.type === COLUMN_1.COLUMN.TIME) &&
15
17
  filter.property != null) {
16
18
  return (0, adaptDateGroupingProperty_1.adaptDateGroupingProperty)(filter.property);
17
19
  }
@@ -14,7 +14,8 @@ const isNullValidator_1 = require("../common/isNullValidator");
14
14
  function getBackendProperty(filter) {
15
15
  if ((0, isEmpty_1.isEmpty)(filter.column.aggregate)) {
16
16
  if ((0, isNullValidator_1.isNullValidator)(filter.validator) ||
17
- (0, isDateColumn_1.isDateColumn)(filter.column)) {
17
+ (0, isDateColumn_1.isDateColumn)(filter.column) ||
18
+ filter.column.type === COLUMN_1.COLUMN.TIME) {
18
19
  return undefined;
19
20
  }
20
21
  else if (filter.column.type === COLUMN_1.COLUMN.EXPRESSION &&
@@ -219,7 +219,9 @@ UChartApi._getSummariesBody = (uFilter) => {
219
219
  const summary = {
220
220
  aggregate: (0, get_1._get)(column, "aggregate.label", AGGREGATE_1.AGGREGATE.COUNT),
221
221
  questionid: column.id,
222
- property: !(0, isDateColumn_1.isDateColumn)(uFilter.column) ? uFilter.property : undefined,
222
+ property: !(0, isDateColumn_1.isDateColumn)(uFilter.column) && uFilter.column.type !== COLUMN_1.COLUMN.TIME
223
+ ? uFilter.property
224
+ : undefined,
223
225
  type: column.type,
224
226
  };
225
227
  let summaries = [summary];
@@ -241,7 +243,8 @@ UChartApi._refineBodies = (bodies, uFilter) => {
241
243
  const _bodies = (0, cloneDeep_1.cloneDeep)(bodies);
242
244
  if (uFilter.property != null) {
243
245
  _bodies.forEach((body) => {
244
- if ((0, isDateColumn_1.isDateColumn)(uFilter.column)) {
246
+ if ((0, isDateColumn_1.isDateColumn)(uFilter.column) ||
247
+ uFilter.column.type === COLUMN_1.COLUMN.TIME) {
245
248
  body.groupType = "DATE";
246
249
  body.groupValue = uFilter.property.toUpperCase();
247
250
  }
@@ -261,6 +264,7 @@ UChartApi._refineBodies = (bodies, uFilter) => {
261
264
  UChartApi._getValidationType = (column, validator) => {
262
265
  if ((0, isDateColumn_1.isDateColumn)(column) ||
263
266
  column.type === COLUMN_1.COLUMN.BUCKET ||
267
+ column.type === COLUMN_1.COLUMN.TIME ||
264
268
  (0, isNumericalColumn_1.isNumericalColumn)(column)) {
265
269
  return FILTER_VALIDATOR_1.FILTER_VALIDATOR.EQUALS;
266
270
  }
@@ -233,7 +233,9 @@ UChartPaginationApi._getSummariesBody = (uFilter) => {
233
233
  const summary = {
234
234
  aggregate: (0, get_1._get)(column, "aggregate.label", AGGREGATE_1.AGGREGATE.COUNT),
235
235
  questionid: column.id,
236
- property: !(0, isDateColumn_1.isDateColumn)(uFilter.column) ? uFilter.property : undefined,
236
+ property: !(0, isDateColumn_1.isDateColumn)(uFilter.column) && uFilter.column.type !== COLUMN_1.COLUMN.TIME
237
+ ? uFilter.property
238
+ : undefined,
237
239
  type: column.type,
238
240
  };
239
241
  let summaries = [summary];
@@ -255,7 +257,8 @@ UChartPaginationApi._refineBodies = (bodies, uFilter) => {
255
257
  const _bodies = (0, cloneDeep_1.cloneDeep)(bodies);
256
258
  if (uFilter.property != null) {
257
259
  _bodies.forEach((body) => {
258
- if ((0, isDateColumn_1.isDateColumn)(uFilter.column)) {
260
+ if ((0, isDateColumn_1.isDateColumn)(uFilter.column) ||
261
+ uFilter.column.type === COLUMN_1.COLUMN.TIME) {
259
262
  body.groupType = "DATE";
260
263
  body.groupValue = uFilter.property.toUpperCase();
261
264
  }
@@ -275,6 +278,7 @@ UChartPaginationApi._refineBodies = (bodies, uFilter) => {
275
278
  UChartPaginationApi._getValidationType = (column, validator) => {
276
279
  if ((0, isDateColumn_1.isDateColumn)(column) ||
277
280
  column.type === COLUMN_1.COLUMN.BUCKET ||
281
+ column.type === COLUMN_1.COLUMN.TIME ||
278
282
  (0, isNumericalColumn_1.isNumericalColumn)(column)) {
279
283
  return FILTER_VALIDATOR_1.FILTER_VALIDATOR.EQUALS;
280
284
  }
@@ -105,3 +105,4 @@ export declare const DEFAULT_OPTIONS: {
105
105
  locale: string;
106
106
  fractionDigits: number;
107
107
  };
108
+ export declare const DEFAULT_DATE = "1/1/1970";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_OPTIONS = exports.DURATION_PARTS = exports.PARTS_REGEX = exports.DATETIME_OPTIONS = exports.CURRENCY_DEFAULT = exports.LANG_DEFAULT = exports.STANDARD_NUMERIC_FORMATS = exports.currencyISO = exports.isTextColumn = exports.supportNumericFormatting = exports.hasfileSizeProperty = exports.appliesFormatting = exports.DATEGROUP_FORMATTING_UNSUPPORT = exports.QUESTION_FORMAT_SUPPORT = exports.numericalFields = exports.complexFields = exports.textFields = void 0;
3
+ exports.DEFAULT_DATE = exports.DEFAULT_OPTIONS = exports.DURATION_PARTS = exports.PARTS_REGEX = exports.DATETIME_OPTIONS = exports.CURRENCY_DEFAULT = exports.LANG_DEFAULT = exports.STANDARD_NUMERIC_FORMATS = exports.currencyISO = exports.isTextColumn = exports.supportNumericFormatting = exports.hasfileSizeProperty = exports.appliesFormatting = exports.DATEGROUP_FORMATTING_UNSUPPORT = exports.QUESTION_FORMAT_SUPPORT = exports.numericalFields = exports.complexFields = exports.textFields = void 0;
4
4
  const isComplexColumn_1 = require("../columns/helpers/isComplexColumn");
5
5
  const COLUMN_1 = require("../columns/constants/COLUMN");
6
6
  const Charts_Const_1 = require("../constants/Charts.Const");
@@ -140,3 +140,4 @@ exports.DEFAULT_OPTIONS = {
140
140
  locale: "en-EN",
141
141
  fractionDigits: 0,
142
142
  };
143
+ exports.DEFAULT_DATE = "1/1/1970";
@@ -6,6 +6,18 @@ export declare function formatAbbreviated(num: any, decimals: any): any;
6
6
  * @param bytes type number
7
7
  */
8
8
  export declare function formatFileSize(bytes: number): string;
9
+ /**
10
+ * It returns true if the given string is a valid time string, and false otherwise
11
+ * @param {string} [timeString] - The time string to validate.
12
+ * @returns A boolean value.
13
+ */
14
+ export declare function isValidTimeString(timeString?: string): boolean;
15
+ /**
16
+ * It takes a time string and a format string and returns a formatted time string
17
+ * @param {any} timeString - The time string to be formatted.
18
+ * @param {string} format - The format of the time string.
19
+ */
20
+ export declare function formatTime(timeString: any, format: string): any;
9
21
  export declare const addFormat: (value: any, outputFormat?: any, config?: IFormatConfig) => any;
10
22
  export declare const parseFormulaType: (type: string) => "DATE" | "NUMERIC" | "TEXT_LABEL";
11
23
  export declare const validateColumnType: (column: any) => any;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.defineFormat = exports.validateColumnType = exports.parseFormulaType = exports.addFormat = exports.formatFileSize = exports.formatAbbreviated = exports.formatDate = void 0;
6
+ exports.defineFormat = exports.validateColumnType = exports.parseFormulaType = exports.addFormat = exports.formatTime = exports.isValidTimeString = exports.formatFileSize = exports.formatAbbreviated = exports.formatDate = void 0;
7
7
  const d3_1 = require("d3");
8
8
  const dayjs_1 = __importDefault(require("dayjs"));
9
9
  const definition_1 = require("./definition");
@@ -105,18 +105,46 @@ function formatFileSize(bytes) {
105
105
  : `${Math.round(megaBytes)} MB`;
106
106
  }
107
107
  exports.formatFileSize = formatFileSize;
108
+ /**
109
+ * It returns true if the given string is a valid time string, and false otherwise
110
+ * @param {string} [timeString] - The time string to validate.
111
+ * @returns A boolean value.
112
+ */
113
+ function isValidTimeString(timeString = "") {
114
+ const regex = new RegExp("^(?:[01]\\d|2[0-3]):(?:[0-5]\\d):(?:[0-5]\\d)$", "g");
115
+ return regex.test(timeString);
116
+ }
117
+ exports.isValidTimeString = isValidTimeString;
118
+ /**
119
+ * It takes a time string and a format string and returns a formatted time string
120
+ * @param {any} timeString - The time string to be formatted.
121
+ * @param {string} format - The format of the time string.
122
+ */
123
+ function formatTime(timeString, format) {
124
+ if (!format || (0, isEmpty_1.isEmpty)(timeString) || !isNaN(timeString))
125
+ return timeString;
126
+ if (!isValidTimeString(timeString))
127
+ return timeString;
128
+ return (0, dayjs_1.default)(`${definition_1.DEFAULT_DATE} ${timeString}`).format(format.replace("HH24", "HH").replace("MI", "mm").replace("SS", "ss"));
129
+ }
130
+ exports.formatTime = formatTime;
108
131
  const addFormat = (value, outputFormat = "None", config) => {
109
- var _a, _b;
132
+ var _a, _b, _c, _d;
110
133
  if ((0, isEmpty_1.isEmpty)(value) || (typeof value === "object" && (0, isEmpty_1.isEmpty)(value[0])))
111
134
  return value;
112
135
  switch (outputFormat.type) {
136
+ case "TIME":
137
+ return formatTime(value, (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Default" &&
138
+ ((_a = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _a === void 0 ? void 0 : _a.format)
139
+ ? (_b = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _b === void 0 ? void 0 : _b.format
140
+ : outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format);
113
141
  case "DATE":
114
142
  case "DATETIME":
115
143
  return (config === null || config === void 0 ? void 0 : config.lang) && outputFormat.format === "Default"
116
144
  ? (0, localization_1.formatWithLocale)(value, outputFormat, config)
117
145
  : formatDate(value, (outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format) === "Default" &&
118
- ((_a = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _a === void 0 ? void 0 : _a.format)
119
- ? (_b = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _b === void 0 ? void 0 : _b.format
146
+ ((_c = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _c === void 0 ? void 0 : _c.format)
147
+ ? (_d = outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.originalFormat) === null || _d === void 0 ? void 0 : _d.format
120
148
  : outputFormat === null || outputFormat === void 0 ? void 0 : outputFormat.format);
121
149
  case "NUMERIC": {
122
150
  const parse = parseFloat(value);
@@ -10,6 +10,9 @@ export interface II18nColumnProperties {
10
10
  date_hour_label: string;
11
11
  date_minute_label: string;
12
12
  date_second_label: string;
13
+ time_hour_label: string;
14
+ time_minute_label: string;
15
+ time_second_label: string;
13
16
  date_quarter_only_label: string;
14
17
  date_month_only_label: string;
15
18
  date_day_only_label: string;
@@ -5,6 +5,7 @@ export declare const I18N_COLUMN_LABEL: {
5
5
  yes_no_label: string;
6
6
  ranking_label: string;
7
7
  date_label: string;
8
+ time_label: string;
8
9
  slidebar_label: import("../../..").NUMERICAL_COLUMN_LABEL;
9
10
  signature_label: string;
10
11
  dropdown_label: string;
@@ -9,6 +9,7 @@ exports.I18N_COLUMN_LABEL = {
9
9
  yes_no_label: COLUMN_LABEL_1.COLUMN_LABEL.YES_NO,
10
10
  ranking_label: COLUMN_LABEL_1.COLUMN_LABEL.RANKING,
11
11
  date_label: COLUMN_LABEL_1.COLUMN_LABEL.DATE,
12
+ time_label: COLUMN_LABEL_1.COLUMN_LABEL.TIME,
12
13
  slidebar_label: COLUMN_LABEL_1.COLUMN_LABEL.SLIDEBAR,
13
14
  signature_label: COLUMN_LABEL_1.COLUMN_LABEL.SIGNATURE,
14
15
  dropdown_label: COLUMN_LABEL_1.COLUMN_LABEL.DROPDOWN,
@@ -14,6 +14,9 @@ exports.I18N_COLUMN_PROPERTY_LABEL = {
14
14
  date_hour_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.HOUR,
15
15
  date_minute_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.MINUTE,
16
16
  date_second_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.SECOND,
17
+ time_hour_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.TIME_HOUR,
18
+ time_minute_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.TIME_MINUTE,
19
+ time_second_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.TIME_SECOND,
17
20
  date_quarter_only_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.YEAR_QUARTER,
18
21
  date_month_only_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.YEAR_MONTH,
19
22
  date_day_only_label: COLUMN_PROPERTY_LABEL_1.COLUMN_PROPERTY_LABEL.MONTH_DAY,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.transformValue = void 0;
4
+ const COLUMN_1 = require("../../columns/constants/COLUMN");
4
5
  const isDateColumn_1 = require("../../columns/helpers/isDateColumn");
5
6
  const isNumericalColumn_1 = require("../../columns/helpers/isNumericalColumn");
6
7
  const DATE_GROUPING_PROPERTY_1 = require("../../dates/constants/DATE_GROUPING_PROPERTY");
@@ -43,6 +44,10 @@ function getOutputFormat(settings) {
43
44
  type = "DATE";
44
45
  format = "Default";
45
46
  }
47
+ else if (settings.column.type === COLUMN_1.COLUMN.TIME) {
48
+ type = "TIME";
49
+ format = "Default";
50
+ }
46
51
  else if ((0, isNumericalColumn_1.isNumericalColumn)(settings.column)) {
47
52
  type = "NUMERIC";
48
53
  }
@@ -13,4 +13,4 @@ import { IChartShelfType } from "../interfaces/IChartShelfType";
13
13
  * grouped.
14
14
  * @returns The column type of the column.
15
15
  */
16
- export declare const columnTypeByChart: (column: IChartColumn, shelfType: IChartShelfType, chartGroup: IChartGroupType, isGroupedTable?: boolean) => import("../..").COMPLEX_COLUMN | import("../..").COMPOUND_COLUMN | NUMERICAL_COLUMN | COLUMN.SINGLE_CHOICE | COLUMN.MULTIPLE_CHOICE | COLUMN.YES_NO | COLUMN.RANKING | COLUMN.DATE | COLUMN.SIGNATURE | COLUMN.DROPDOWN | COLUMN.IMAGE | COLUMN.EMAIL_FORM | COLUMN.PHONE | COLUMN.PASSWORD | COLUMN.CHECKLIST | COLUMN.NPS_SCORE | COLUMN.NPS_FEEDBACK | COLUMN.TEXT_LABEL | COLUMN.TEXT_CATEGORY | COLUMN.LOOKUP | COLUMN.HEADLINE | COLUMN.SECTION | COLUMN.AGGREGATED_FORMULA | COLUMN.BUCKET | COLUMN.SLIDEBAR | COLUMN.NUMERIC | COLUMN.NUMERICC | COLUMN.NUMERICP | COLUMN.NUMERICG | COLUMN.RATING | COLUMN.TEXTFIELD | COLUMN.LONGTEXT | COLUMN.IMAGEUPLOAD | COLUMN.FILEUPLOAD | COLUMN.EXPRESSION | COLUMN.NAME | COLUMN.USADDRESS | COLUMN.ADDRESS | "DATE" | "NUMERIC" | "TEXT_LABEL";
16
+ export declare const columnTypeByChart: (column: IChartColumn, shelfType: IChartShelfType, chartGroup: IChartGroupType, isGroupedTable?: boolean) => import("../..").COMPLEX_COLUMN | import("../..").COMPOUND_COLUMN | NUMERICAL_COLUMN | COLUMN.SINGLE_CHOICE | COLUMN.MULTIPLE_CHOICE | COLUMN.YES_NO | COLUMN.RANKING | COLUMN.DATE | COLUMN.TIME | COLUMN.SIGNATURE | COLUMN.DROPDOWN | COLUMN.IMAGE | COLUMN.EMAIL_FORM | COLUMN.PHONE | COLUMN.PASSWORD | COLUMN.CHECKLIST | COLUMN.NPS_SCORE | COLUMN.NPS_FEEDBACK | COLUMN.TEXT_LABEL | COLUMN.TEXT_CATEGORY | COLUMN.LOOKUP | COLUMN.HEADLINE | COLUMN.SECTION | COLUMN.AGGREGATED_FORMULA | COLUMN.BUCKET | COLUMN.SLIDEBAR | COLUMN.NUMERIC | COLUMN.NUMERICC | COLUMN.NUMERICP | COLUMN.NUMERICG | COLUMN.RATING | COLUMN.TEXTFIELD | COLUMN.LONGTEXT | COLUMN.IMAGEUPLOAD | COLUMN.FILEUPLOAD | COLUMN.EXPRESSION | COLUMN.NAME | COLUMN.USADDRESS | COLUMN.ADDRESS | "DATE" | "NUMERIC" | "TEXT_LABEL";