@idevs/corelib 0.0.58 → 0.0.60

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.
@@ -56,9 +56,10 @@ export declare function updateDateQuickFilterProxyValue(name: string, dateValue:
56
56
  export declare function toSqlDateString(date: Date): string;
57
57
  export declare enum AggregateType {
58
58
  LABEL = 0,
59
- AVERAGE = 1,
60
- COUNT = 2,
61
- SUM = 3
59
+ GROUP = 1,
60
+ AVERAGE = 2,
61
+ COUNT = 3,
62
+ SUM = 4
62
63
  }
63
64
  export type AggreateColumn = {
64
65
  title?: string;
@@ -1,4 +1,5 @@
1
- import { Modal } from 'bootstrap';
1
+ import { isEmptyOrNull } from '@serenity-is/corelib/q';
2
+ import { Modal } from 'bootstrap';
2
3
  Date.prototype.toSqlDate = function () {
3
4
  const date = this.valueOf();
4
5
  return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString();
@@ -212,7 +213,7 @@ export function addDateQuickFilterProxy(name, width) {
212
213
  */
213
214
  export function updateDateQuickFilterProxyValue(name, dateValue, locale) {
214
215
  const target = document.querySelector(`#${name}-2`);
215
- target.value = new Date(dateValue).toLocaleString(locale, dateStringOption());
216
+ target.value = isEmptyOrNull(dateValue) ? '' : new Date(dateValue).toLocaleString(locale, dateStringOption());
216
217
  }
217
218
  export function toSqlDateString(date) {
218
219
  const offset = date.getTimezoneOffset();
@@ -222,9 +223,10 @@ export function toSqlDateString(date) {
222
223
  export var AggregateType;
223
224
  (function (AggregateType) {
224
225
  AggregateType[AggregateType["LABEL"] = 0] = "LABEL";
225
- AggregateType[AggregateType["AVERAGE"] = 1] = "AVERAGE";
226
- AggregateType[AggregateType["COUNT"] = 2] = "COUNT";
227
- AggregateType[AggregateType["SUM"] = 3] = "SUM";
226
+ AggregateType[AggregateType["GROUP"] = 1] = "GROUP";
227
+ AggregateType[AggregateType["AVERAGE"] = 2] = "AVERAGE";
228
+ AggregateType[AggregateType["COUNT"] = 3] = "COUNT";
229
+ AggregateType[AggregateType["SUM"] = 4] = "SUM";
228
230
  })(AggregateType || (AggregateType = {}));
229
231
  export function createExportToolButton(options) {
230
232
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/globals/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataGrid, ListRequest, ToolButton } from '@serenity-is/corelib'\nimport { Modal } from 'bootstrap'\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Number {\n toDecimal(precision?: number): string\n toTimeString(): string\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface String {\n truncate(maxLength?: number): string\n toNumber(): number\n toMethodRound(method?: number): number\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Date {\n toSqlDate(): string\n toNumber(): number\n }\n\n type IModalOptions = {\n events?: IEvent[]\n }\n\n type IEvent = {\n event: string\n callback: (e: Event) => Promise<unknown>\n }\n}\n\nDate.prototype.toSqlDate = function (): string {\n const date = this.valueOf()\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString()\n}\n\nDate.prototype.toNumber = function (): number {\n const date = this.valueOf()\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const seconds = date.getSeconds()\n return hours * 60 + minutes + seconds / 60\n}\n\nNumber.prototype.toTimeString = function (): string {\n const value = this.valueOf()\n const hours = `0${Math.floor(value / 60)}`.slice(-2)\n const minutes = `0${value % 60}`.slice(-2)\n return `${hours}:${minutes}`\n}\n\nNumber.prototype.toDecimal = function (precision?: number): string {\n const numb = precision || 0\n const options = {\n style: 'decimal',\n minimumFractionDigits: numb,\n maximumFractionDigits: numb,\n }\n let value = Intl.NumberFormat('en-US', options).format(this.valueOf())\n value = parseFloat(value.replace(/,/g, '')).toString()\n return Intl.NumberFormat('en-US', options).format(parseFloat(value))\n}\n\nString.prototype.truncate = function (maxLength: number) {\n const str = String(this)\n return str.length > maxLength ? str.substring(0, maxLength - 1) + '&hellip;' : str\n}\n\nString.prototype.toNumber = function () {\n return this.valueOf() ? parseFloat(this.valueOf().replace(/,/g, '')) : 0\n}\n\nString.prototype.toMethodRound = function (method: number): number {\n const input = parseFloat(this.valueOf())\n let value = isNaN(input) ? 0 : input\n if (value == 0) return 0\n\n const r = parseFloat(value.toFixed(2))\n switch (method) {\n case 1:\n value = r - (parseFloat(((r % 1) * 100).toFixed(2)) % 25) / 100\n break\n\n case 2:\n value = r - (parseFloat(((r % 1) * 100).toFixed(2)) % 50) / 100\n break\n\n case 3:\n value = Math.floor(r)\n break\n\n case 4:\n value = Math.floor(r) + (Math.floor((r % 1) * 100) + (25 - (Math.floor((r % 1) * 100) % 25))) / 100\n break\n\n case 5:\n value = Math.floor(r) + (Math.floor((r % 1) * 100) + (50 - (Math.floor((r % 1) * 100) % 50))) / 100\n break\n\n case 6:\n value = Math.ceil(r)\n break\n\n case 7:\n value = Math.floor(r) + (parseFloat((parseFloat(((r % 1) * 100).toString()) / 25).toFixed(0)) * 25) / 100\n break\n\n case 8:\n value = Math.floor(r) + (parseFloat((parseFloat(((r % 1) * 100).toString()) / 50).toFixed(0)) * 50) / 100\n break\n\n case 9:\n value = parseFloat(r.toFixed(0))\n break\n\n default:\n value = r\n break\n }\n\n return value\n}\n\nexport function ToTimeString(value: number): string {\n const hours = `0${Math.floor(value / 60)}`.slice(-2)\n const minutes = `0${value % 60}`.slice(-2)\n return `${hours}:${minutes}`\n}\n\nexport function ToNumber(date: Date): number {\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const seconds = date.getSeconds()\n return hours * 60 + minutes * 60 + seconds\n}\n\nexport function GetElementWidth(element?: HTMLElement): number {\n if (element) {\n return element.clientWidth\n }\n\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth\n}\n\nexport function GetElementHeight(element?: HTMLElement): number {\n if (element) {\n return element.clientHeight\n }\n\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n}\n\nexport function RemoveChildren(parent?: HTMLElement): void {\n if (!parent) {\n return\n }\n\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild)\n }\n}\n\nexport function IsOverflow(el: HTMLElement): boolean {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth\n}\n\nexport function IsOverflowY(el: HTMLElement): boolean {\n return el.scrollHeight > el.clientHeight\n}\n\nexport function IsOverflowX(el: HTMLElement): boolean {\n return el.scrollWidth > el.clientWidth\n}\n\nexport function InnerDimensions(el: HTMLElement | null): [number, number] {\n if (!el) {\n return [0, 0]\n }\n\n const style = getComputedStyle(el)\n let width = el.clientWidth\n let height = el.clientHeight\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom)\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight)\n\n return [height, width]\n}\n\nexport function neededTarget(el: HTMLElement, target: string): HTMLElement {\n if (target.slice(0, 1) == '.') {\n if (el.classList.contains(target.slice(1)) === false) {\n el = el.closest(target) as HTMLElement\n }\n } else {\n if (el.tagName.toLowerCase() !== target.toLowerCase()) {\n el = el.closest(target) as HTMLElement\n }\n }\n return el\n}\n\nexport function dateStringOption(): Intl.DateTimeFormatOptions {\n return {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n }\n}\n\nexport function toDateString(date: Date): string {\n return date.toLocaleString('en-GB', dateStringOption())\n}\n\nexport function GetModal(name: string, options?: IModalOptions): Modal {\n const el = document.querySelector(name) as HTMLElement\n if (options?.events?.length) {\n options.events.forEach(callback => {\n el.addEventListener(\n callback.event,\n (e: Event) => {\n callback.callback(e)\n },\n { once: true },\n )\n })\n }\n\n return Modal.getOrCreateInstance(el, { backdrop: 'static' })\n}\n\nexport const setCookie = (name: string, value: string, expires?: number): void => {\n let cookie = `${name}=${value}`\n if (expires) {\n const date = new Date()\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000)\n const exp = `expires=${date.toUTCString()}`\n cookie = `${cookie}; ${exp}`\n }\n document.cookie = `${cookie}; path=/`\n}\n\nexport function doProxyInput(name: string): HTMLInputElement {\n const input: HTMLInputElement = document.querySelector(`input[name=\"${name}\"]`)\n const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement\n cloneInput.setAttribute('name', `${name}-2`)\n cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)\n cloneInput.classList.remove('customValidate')\n cloneInput.classList.remove('dateQ')\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n\n return cloneInput\n}\n\n/**\n * addDateQuickFilterProxy\n *\n * @export\n * @param {string} name\n * @param {number} width\n */\nexport function addDateQuickFilterProxy(name: string, width: number): void {\n const input: HTMLInputElement = document.querySelector(`input[name=\"${name}\"]`)\n const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement\n cloneInput.setAttribute('name', `${name}-2`)\n cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)\n cloneInput.setAttribute('readonly', 'readonly')\n cloneInput.classList.remove('customValidate')\n cloneInput.classList.remove('s-DateEditor')\n cloneInput.classList.remove('s-Serenity-DateEditor')\n cloneInput.classList.remove('dateQ')\n cloneInput.classList.remove('hasDatepicker')\n cloneInput.style.width = `${width}px`\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n}\n\n/**\n * updateDateQuickFilterProxyValue\n *\n * @export\n * @param {string} name of source element\n * @param {string} locale\n */\nexport function updateDateQuickFilterProxyValue(name: string, dateValue: string, locale: string): void {\n const target = document.querySelector(`#${name}-2`) as HTMLInputElement\n target.value = new Date(dateValue).toLocaleString(locale, dateStringOption())\n}\n\nexport function toSqlDateString(date: Date): string {\n const offset = date.getTimezoneOffset()\n date = new Date(date.getTime() - offset * 60 * 1000)\n return date.toISOString().split('T')[0]\n}\n\nexport enum AggregateType {\n LABEL = 0,\n AVERAGE = 1,\n COUNT = 2,\n SUM = 3,\n}\n\nexport type AggreateColumn = {\n title?: string\n columnName?: string\n aggregateType: AggregateType\n}\n\nexport type IdevsExportRequest = ListRequest & {\n viewName?: string\n companyName?: string\n reportName?: string\n selectionRange?: string\n logo?: string\n entity?: unknown\n aggregateColumns?: AggreateColumn[]\n}\n\nexport type IdevsExportOptions = IdevsExportRequest & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n grid: DataGrid<any, any>\n service: string\n}\n\nexport type ExportOptions = IdevsExportOptions & {\n title?: string\n hint?: string\n separator?: boolean\n exportType: 'PDF' | 'XLSX'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?: (e: any) => void\n}\n\nexport function createExportToolButton(options: ExportOptions): ToolButton {\n return {\n hint: options.hint || options.exportType,\n title: options.title || '',\n cssClass: `export-${options.exportType.toLowerCase()}-button`,\n onClick: options.onClick,\n separator: options.separator,\n }\n}\n\nexport class globals {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public static load() { }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/globals/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { DataGrid, ListRequest, ToolButton } from '@serenity-is/corelib'\nimport { isEmptyOrNull } from '@serenity-is/corelib/q'\nimport { Modal } from 'bootstrap'\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Number {\n toDecimal(precision?: number): string\n toTimeString(): string\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface String {\n truncate(maxLength?: number): string\n toNumber(): number\n toMethodRound(method?: number): number\n }\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Date {\n toSqlDate(): string\n toNumber(): number\n }\n\n type IModalOptions = {\n events?: IEvent[]\n }\n\n type IEvent = {\n event: string\n callback: (e: Event) => Promise<unknown>\n }\n}\n\nDate.prototype.toSqlDate = function (): string {\n const date = this.valueOf()\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString()\n}\n\nDate.prototype.toNumber = function (): number {\n const date = this.valueOf()\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const seconds = date.getSeconds()\n return hours * 60 + minutes + seconds / 60\n}\n\nNumber.prototype.toTimeString = function (): string {\n const value = this.valueOf()\n const hours = `0${Math.floor(value / 60)}`.slice(-2)\n const minutes = `0${value % 60}`.slice(-2)\n return `${hours}:${minutes}`\n}\n\nNumber.prototype.toDecimal = function (precision?: number): string {\n const numb = precision || 0\n const options = {\n style: 'decimal',\n minimumFractionDigits: numb,\n maximumFractionDigits: numb,\n }\n let value = Intl.NumberFormat('en-US', options).format(this.valueOf())\n value = parseFloat(value.replace(/,/g, '')).toString()\n return Intl.NumberFormat('en-US', options).format(parseFloat(value))\n}\n\nString.prototype.truncate = function (maxLength: number) {\n const str = String(this)\n return str.length > maxLength ? str.substring(0, maxLength - 1) + '&hellip;' : str\n}\n\nString.prototype.toNumber = function () {\n return this.valueOf() ? parseFloat(this.valueOf().replace(/,/g, '')) : 0\n}\n\nString.prototype.toMethodRound = function (method: number): number {\n const input = parseFloat(this.valueOf())\n let value = isNaN(input) ? 0 : input\n if (value == 0) return 0\n\n const r = parseFloat(value.toFixed(2))\n switch (method) {\n case 1:\n value = r - (parseFloat(((r % 1) * 100).toFixed(2)) % 25) / 100\n break\n\n case 2:\n value = r - (parseFloat(((r % 1) * 100).toFixed(2)) % 50) / 100\n break\n\n case 3:\n value = Math.floor(r)\n break\n\n case 4:\n value = Math.floor(r) + (Math.floor((r % 1) * 100) + (25 - (Math.floor((r % 1) * 100) % 25))) / 100\n break\n\n case 5:\n value = Math.floor(r) + (Math.floor((r % 1) * 100) + (50 - (Math.floor((r % 1) * 100) % 50))) / 100\n break\n\n case 6:\n value = Math.ceil(r)\n break\n\n case 7:\n value = Math.floor(r) + (parseFloat((parseFloat(((r % 1) * 100).toString()) / 25).toFixed(0)) * 25) / 100\n break\n\n case 8:\n value = Math.floor(r) + (parseFloat((parseFloat(((r % 1) * 100).toString()) / 50).toFixed(0)) * 50) / 100\n break\n\n case 9:\n value = parseFloat(r.toFixed(0))\n break\n\n default:\n value = r\n break\n }\n\n return value\n}\n\nexport function ToTimeString(value: number): string {\n const hours = `0${Math.floor(value / 60)}`.slice(-2)\n const minutes = `0${value % 60}`.slice(-2)\n return `${hours}:${minutes}`\n}\n\nexport function ToNumber(date: Date): number {\n const hours = date.getHours()\n const minutes = date.getMinutes()\n const seconds = date.getSeconds()\n return hours * 60 + minutes * 60 + seconds\n}\n\nexport function GetElementWidth(element?: HTMLElement): number {\n if (element) {\n return element.clientWidth\n }\n\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth\n}\n\nexport function GetElementHeight(element?: HTMLElement): number {\n if (element) {\n return element.clientHeight\n }\n\n return window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight\n}\n\nexport function RemoveChildren(parent?: HTMLElement): void {\n if (!parent) {\n return\n }\n\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild)\n }\n}\n\nexport function IsOverflow(el: HTMLElement): boolean {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth\n}\n\nexport function IsOverflowY(el: HTMLElement): boolean {\n return el.scrollHeight > el.clientHeight\n}\n\nexport function IsOverflowX(el: HTMLElement): boolean {\n return el.scrollWidth > el.clientWidth\n}\n\nexport function InnerDimensions(el: HTMLElement | null): [number, number] {\n if (!el) {\n return [0, 0]\n }\n\n const style = getComputedStyle(el)\n let width = el.clientWidth\n let height = el.clientHeight\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom)\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight)\n\n return [height, width]\n}\n\nexport function neededTarget(el: HTMLElement, target: string): HTMLElement {\n if (target.slice(0, 1) == '.') {\n if (el.classList.contains(target.slice(1)) === false) {\n el = el.closest(target) as HTMLElement\n }\n } else {\n if (el.tagName.toLowerCase() !== target.toLowerCase()) {\n el = el.closest(target) as HTMLElement\n }\n }\n return el\n}\n\nexport function dateStringOption(): Intl.DateTimeFormatOptions {\n return {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n }\n}\n\nexport function toDateString(date: Date): string {\n return date.toLocaleString('en-GB', dateStringOption())\n}\n\nexport function GetModal(name: string, options?: IModalOptions): Modal {\n const el = document.querySelector(name) as HTMLElement\n if (options?.events?.length) {\n options.events.forEach(callback => {\n el.addEventListener(\n callback.event,\n (e: Event) => {\n callback.callback(e)\n },\n { once: true },\n )\n })\n }\n\n return Modal.getOrCreateInstance(el, { backdrop: 'static' })\n}\n\nexport const setCookie = (name: string, value: string, expires?: number): void => {\n let cookie = `${name}=${value}`\n if (expires) {\n const date = new Date()\n date.setTime(date.getTime() + expires * 24 * 60 * 60 * 1000)\n const exp = `expires=${date.toUTCString()}`\n cookie = `${cookie}; ${exp}`\n }\n document.cookie = `${cookie}; path=/`\n}\n\nexport function doProxyInput(name: string): HTMLInputElement {\n const input: HTMLInputElement = document.querySelector(`input[name=\"${name}\"]`)\n const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement\n cloneInput.setAttribute('name', `${name}-2`)\n cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)\n cloneInput.classList.remove('customValidate')\n cloneInput.classList.remove('dateQ')\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n\n return cloneInput\n}\n\n/**\n * addDateQuickFilterProxy\n *\n * @export\n * @param {string} name\n * @param {number} width\n */\nexport function addDateQuickFilterProxy(name: string, width: number): void {\n const input: HTMLInputElement = document.querySelector(`input[name=\"${name}\"]`)\n const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement\n cloneInput.setAttribute('name', `${name}-2`)\n cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)\n cloneInput.setAttribute('readonly', 'readonly')\n cloneInput.classList.remove('customValidate')\n cloneInput.classList.remove('s-DateEditor')\n cloneInput.classList.remove('s-Serenity-DateEditor')\n cloneInput.classList.remove('dateQ')\n cloneInput.classList.remove('hasDatepicker')\n cloneInput.style.width = `${width}px`\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n}\n\n/**\n * updateDateQuickFilterProxyValue\n *\n * @export\n * @param {string} name of source element\n * @param {string} locale\n */\nexport function updateDateQuickFilterProxyValue(name: string, dateValue: string, locale: string): void {\n const target = document.querySelector(`#${name}-2`) as HTMLInputElement\n target.value = isEmptyOrNull(dateValue) ? '' : new Date(dateValue).toLocaleString(locale, dateStringOption())\n}\n\nexport function toSqlDateString(date: Date): string {\n const offset = date.getTimezoneOffset()\n date = new Date(date.getTime() - offset * 60 * 1000)\n return date.toISOString().split('T')[0]\n}\n\nexport enum AggregateType {\n LABEL = 0,\n GROUP = 1,\n AVERAGE = 2,\n COUNT = 3,\n SUM = 4,\n}\n\nexport type AggreateColumn = {\n title?: string\n columnName?: string\n aggregateType: AggregateType\n}\n\nexport type IdevsExportRequest = ListRequest & {\n viewName?: string\n companyName?: string\n reportName?: string\n selectionRange?: string\n logo?: string\n entity?: unknown\n aggregateColumns?: AggreateColumn[]\n}\n\nexport type IdevsExportOptions = IdevsExportRequest & {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n grid: DataGrid<any, any>\n service: string\n}\n\nexport type ExportOptions = IdevsExportOptions & {\n title?: string\n hint?: string\n separator?: boolean\n exportType: 'PDF' | 'XLSX'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick?: (e: any) => void\n}\n\nexport function createExportToolButton(options: ExportOptions): ToolButton {\n return {\n hint: options.hint || options.exportType,\n title: options.title || '',\n cssClass: `export-${options.exportType.toLowerCase()}-button`,\n onClick: options.onClick,\n separator: options.separator,\n }\n}\n\nexport class globals {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public static load() { }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@idevs/corelib",
3
- "version": "0.0.58",
3
+ "version": "0.0.60",
4
4
  "description": "Extended library for Serenity Framework",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -1,4 +1,5 @@
1
1
  import { DataGrid, ListRequest, ToolButton } from '@serenity-is/corelib'
2
+ import { isEmptyOrNull } from '@serenity-is/corelib/q'
2
3
  import { Modal } from 'bootstrap'
3
4
 
4
5
  declare global {
@@ -289,7 +290,7 @@ export function addDateQuickFilterProxy(name: string, width: number): void {
289
290
  */
290
291
  export function updateDateQuickFilterProxyValue(name: string, dateValue: string, locale: string): void {
291
292
  const target = document.querySelector(`#${name}-2`) as HTMLInputElement
292
- target.value = new Date(dateValue).toLocaleString(locale, dateStringOption())
293
+ target.value = isEmptyOrNull(dateValue) ? '' : new Date(dateValue).toLocaleString(locale, dateStringOption())
293
294
  }
294
295
 
295
296
  export function toSqlDateString(date: Date): string {
@@ -300,9 +301,10 @@ export function toSqlDateString(date: Date): string {
300
301
 
301
302
  export enum AggregateType {
302
303
  LABEL = 0,
303
- AVERAGE = 1,
304
- COUNT = 2,
305
- SUM = 3,
304
+ GROUP = 1,
305
+ AVERAGE = 2,
306
+ COUNT = 3,
307
+ SUM = 4,
306
308
  }
307
309
 
308
310
  export type AggreateColumn = {