@idevs/corelib 0.0.69 → 0.0.71

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.
@@ -36,24 +36,13 @@ export declare function dateStringOption(): Intl.DateTimeFormatOptions;
36
36
  export declare function toDateString(date: Date): string;
37
37
  export declare function GetModal(name: string, options?: IModalOptions): Modal;
38
38
  export declare const setCookie: (name: string, value: string, expires?: number) => void;
39
- export declare function addDateProxyInput(name: string, readOnly?: boolean): HTMLInputElement;
40
- export declare function updateDateProxyValue(name: string, dateValue: string | Date, locale: string): void;
41
- /**
42
- * addDateQuickFilterProxy
43
- *
44
- * @export
45
- * @param {string} name
46
- * @param {number} width
47
- */
48
- export declare function addDateQuickFilterProxy(name: string, width: number): void;
49
- /**
50
- * updateDateQuickFilterProxyValue
51
- *
52
- * @export
53
- * @param {string} name of source element
54
- * @param {string} locale
55
- */
56
- export declare function updateDateQuickFilterProxyValue(name: string, dateValue: string, locale: string): void;
39
+ export type dateProxyInputOption = {
40
+ name: string;
41
+ readOnly?: boolean;
42
+ width?: number;
43
+ };
44
+ export declare function addDateProxyInput(opt: dateProxyInputOption): HTMLInputElement;
45
+ export declare function updateDateProxyValue(name: string, dateValue: string | Date | null, locale?: string): void;
57
46
  export declare function toSqlDateString(date: Date): string;
58
47
  export declare enum TableTheme {
59
48
  None = 0,
@@ -171,10 +171,10 @@ export const setCookie = (name, value, expires) => {
171
171
  }
172
172
  document.cookie = `${cookie}; path=/`;
173
173
  };
174
- export function addDateProxyInput(name, readOnly) {
175
- const input = document.querySelector(`input[name="${name}"]`);
174
+ export function addDateProxyInput(opt) {
175
+ const input = document.querySelector(`input[name="${opt.name}"]`);
176
176
  const cloneInput = input.cloneNode(true);
177
- cloneInput.setAttribute('name', `${name}-2`);
177
+ cloneInput.setAttribute('name', `${opt.name}-2`);
178
178
  cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`);
179
179
  cloneInput.setAttribute('readonly', 'readonly');
180
180
  cloneInput.classList.remove('customValidate');
@@ -182,12 +182,15 @@ export function addDateProxyInput(name, readOnly) {
182
182
  cloneInput.classList.remove('s-Serenity-DateEditor');
183
183
  cloneInput.classList.remove('dateQ');
184
184
  cloneInput.classList.remove('hasDatepicker');
185
- if (readOnly) {
185
+ if (opt.readOnly) {
186
186
  cloneInput.style.backgroundColor = 'rgba(var(--s-bright-rgb), 0.02)';
187
187
  }
188
188
  else {
189
189
  cloneInput.style.backgroundColor = 'white';
190
190
  }
191
+ if (opt.width) {
192
+ cloneInput.style.width = `${opt.width}px`;
193
+ }
191
194
  input.parentNode.insertBefore(cloneInput, input.nextSibling);
192
195
  input.classList.add('d-none');
193
196
  return cloneInput;
@@ -201,41 +204,12 @@ export function updateDateProxyValue(name, dateValue, locale) {
201
204
  target.value = '';
202
205
  }
203
206
  else {
207
+ if (!locale) {
208
+ locale = 'en-GB';
209
+ }
204
210
  target.value = (dateValue.constructor == Date ? dateValue : new Date(dateValue)).toLocaleString(locale, dateStringOption());
205
211
  }
206
212
  }
207
- /**
208
- * addDateQuickFilterProxy
209
- *
210
- * @export
211
- * @param {string} name
212
- * @param {number} width
213
- */
214
- export function addDateQuickFilterProxy(name, width) {
215
- const input = document.querySelector(`input[name="${name}"]`);
216
- const cloneInput = input.cloneNode(true);
217
- cloneInput.setAttribute('name', `${name}-2`);
218
- cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`);
219
- cloneInput.setAttribute('readonly', 'readonly');
220
- cloneInput.classList.remove('customValidate');
221
- cloneInput.classList.remove('s-DateEditor');
222
- cloneInput.classList.remove('s-Serenity-DateEditor');
223
- cloneInput.classList.remove('dateQ');
224
- cloneInput.classList.remove('hasDatepicker');
225
- cloneInput.style.width = `${width}px`;
226
- input.parentNode.insertBefore(cloneInput, input.nextSibling);
227
- input.classList.add('d-none');
228
- }
229
- /**
230
- * updateDateQuickFilterProxyValue
231
- *
232
- * @export
233
- * @param {string} name of source element
234
- * @param {string} locale
235
- */
236
- export function updateDateQuickFilterProxyValue(name, dateValue, locale) {
237
- updateDateProxyValue(name, dateValue, locale);
238
- }
239
213
  export function toSqlDateString(date) {
240
214
  const offset = date.getTimezoneOffset();
241
215
  date = new Date(date.getTime() - offset * 60 * 1000);
@@ -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 { 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 addDateProxyInput(name: string, readOnly?: boolean): 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.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 if (readOnly) {\n cloneInput.style.backgroundColor = 'rgba(var(--s-bright-rgb), 0.02)'\n } else {\n cloneInput.style.backgroundColor = 'white'\n }\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n\n return cloneInput\n}\n\nexport function updateDateProxyValue(name: string, dateValue: string | Date, locale: string): void {\n let target = document.querySelector(`#${name}-2`) as HTMLInputElement\n if (!target) {\n target = document.querySelector(`input[name=${name}-2]`) as HTMLInputElement\n }\n if (isEmptyOrNull(dateValue.toString())) {\n target.value = ''\n } else {\n target.value = (dateValue.constructor == Date ? dateValue : new Date(dateValue)).toLocaleString(\n locale,\n dateStringOption(),\n )\n }\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 updateDateProxyValue(name, dateValue, locale)\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 TableTheme {\n None = 0,\n TableStyleDark1 = 201,\n TableStyleDark2 = 202,\n TableStyleDark3 = 203,\n TableStyleDark4 = 204,\n TableStyleDark5 = 205,\n TableStyleDark6 = 206,\n TableStyleDark7 = 207,\n TableStyleDark8 = 208,\n TableStyleDark9 = 209,\n TableStyleDark10 = 210,\n TableStyleDark11 = 211,\n TableStyleLight1 = 1,\n TableStyleLight2 = 2,\n TableStyleLight3 = 3,\n TableStyleLight4 = 4,\n TableStyleLight5 = 5,\n TableStyleLight6 = 6,\n TableStyleLight7 = 7,\n TableStyleLight8 = 8,\n TableStyleLight9 = 9,\n TableStyleLight10 = 10,\n TableStyleLight11 = 11,\n TableStyleLight12 = 12,\n TableStyleLight13 = 13,\n TableStyleLight14 = 14,\n TableStyleLight15 = 15,\n TableStyleLight16 = 16,\n TableStyleLight17 = 17,\n TableStyleLight18 = 18,\n TableStyleLight19 = 19,\n TableStyleLight20 = 20,\n TableStyleLight21 = 21,\n TableStyleMedium1 = 101,\n TableStyleMedium2 = 102,\n TableStyleMedium3 = 103,\n TableStyleMedium4 = 104,\n TableStyleMedium5 = 105,\n TableStyleMedium6 = 106,\n TableStyleMedium7 = 107,\n TableStyleMedium8 = 108,\n TableStyleMedium9 = 109,\n TableStyleMedium10 = 110,\n TableStyleMedium11 = 111,\n TableStyleMedium12 = 112,\n TableStyleMedium13 = 113,\n TableStyleMedium14 = 114,\n TableStyleMedium15 = 115,\n TableStyleMedium16 = 116,\n TableStyleMedium17 = 117,\n TableStyleMedium18 = 118,\n TableStyleMedium19 = 119,\n TableStyleMedium20 = 120,\n TableStyleMedium21 = 121,\n TableStyleMedium22 = 122,\n TableStyleMedium23 = 123,\n TableStyleMedium24 = 124,\n TableStyleMedium25 = 125,\n TableStyleMedium26 = 126,\n TableStyleMedium27 = 127,\n TableStyleMedium28 = 128,\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 conditionRange?: string\n logo?: string\n entity?: unknown\n tableTheme?: TableTheme\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 function toBeginMonth(date: string): string {\n if (isEmptyOrNull(date)) {\n return date\n }\n\n return `${date.substring(0, 8)}01`\n}\n\nexport function toEndMonth(date: string): string {\n if (isEmptyOrNull(date)) {\n return date\n }\n\n const dateArr = date.split('-')\n const d = new Date(parseInt(dateArr[0]), parseInt(dateArr[1]), 0)\n\n return `${date.substring(0, 8)}${d.getDate()}`\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 type dateProxyInputOption = {\n name: string\n readOnly?: boolean\n width?: number\n}\n\nexport function addDateProxyInput(opt: dateProxyInputOption): HTMLInputElement {\n const input: HTMLInputElement = document.querySelector(`input[name=\"${opt.name}\"]`)\n const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement\n cloneInput.setAttribute('name', `${opt.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 if (opt.readOnly) {\n cloneInput.style.backgroundColor = 'rgba(var(--s-bright-rgb), 0.02)'\n } else {\n cloneInput.style.backgroundColor = 'white'\n }\n if (opt.width) {\n cloneInput.style.width = `${opt.width}px`\n }\n\n input.parentNode.insertBefore(cloneInput, input.nextSibling)\n input.classList.add('d-none')\n\n return cloneInput\n}\n\nexport function updateDateProxyValue(name: string, dateValue: string | Date | null, locale?: string): void {\n let target = document.querySelector(`#${name}-2`) as HTMLInputElement\n if (!target) {\n target = document.querySelector(`input[name=${name}-2]`) as HTMLInputElement\n }\n if (isEmptyOrNull(dateValue.toString())) {\n target.value = ''\n } else {\n if (!locale) {\n locale = 'en-GB'\n }\n target.value = (dateValue.constructor == Date ? dateValue : new Date(dateValue)).toLocaleString(\n locale,\n dateStringOption(),\n )\n }\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 TableTheme {\n None = 0,\n TableStyleDark1 = 201,\n TableStyleDark2 = 202,\n TableStyleDark3 = 203,\n TableStyleDark4 = 204,\n TableStyleDark5 = 205,\n TableStyleDark6 = 206,\n TableStyleDark7 = 207,\n TableStyleDark8 = 208,\n TableStyleDark9 = 209,\n TableStyleDark10 = 210,\n TableStyleDark11 = 211,\n TableStyleLight1 = 1,\n TableStyleLight2 = 2,\n TableStyleLight3 = 3,\n TableStyleLight4 = 4,\n TableStyleLight5 = 5,\n TableStyleLight6 = 6,\n TableStyleLight7 = 7,\n TableStyleLight8 = 8,\n TableStyleLight9 = 9,\n TableStyleLight10 = 10,\n TableStyleLight11 = 11,\n TableStyleLight12 = 12,\n TableStyleLight13 = 13,\n TableStyleLight14 = 14,\n TableStyleLight15 = 15,\n TableStyleLight16 = 16,\n TableStyleLight17 = 17,\n TableStyleLight18 = 18,\n TableStyleLight19 = 19,\n TableStyleLight20 = 20,\n TableStyleLight21 = 21,\n TableStyleMedium1 = 101,\n TableStyleMedium2 = 102,\n TableStyleMedium3 = 103,\n TableStyleMedium4 = 104,\n TableStyleMedium5 = 105,\n TableStyleMedium6 = 106,\n TableStyleMedium7 = 107,\n TableStyleMedium8 = 108,\n TableStyleMedium9 = 109,\n TableStyleMedium10 = 110,\n TableStyleMedium11 = 111,\n TableStyleMedium12 = 112,\n TableStyleMedium13 = 113,\n TableStyleMedium14 = 114,\n TableStyleMedium15 = 115,\n TableStyleMedium16 = 116,\n TableStyleMedium17 = 117,\n TableStyleMedium18 = 118,\n TableStyleMedium19 = 119,\n TableStyleMedium20 = 120,\n TableStyleMedium21 = 121,\n TableStyleMedium22 = 122,\n TableStyleMedium23 = 123,\n TableStyleMedium24 = 124,\n TableStyleMedium25 = 125,\n TableStyleMedium26 = 126,\n TableStyleMedium27 = 127,\n TableStyleMedium28 = 128,\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 conditionRange?: string\n logo?: string\n entity?: unknown\n tableTheme?: TableTheme\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 function toBeginMonth(date: string): string {\n if (isEmptyOrNull(date)) {\n return date\n }\n\n return `${date.substring(0, 8)}01`\n}\n\nexport function toEndMonth(date: string): string {\n if (isEmptyOrNull(date)) {\n return date\n }\n\n const dateArr = date.split('-')\n const d = new Date(parseInt(dateArr[0]), parseInt(dateArr[1]), 0)\n\n return `${date.substring(0, 8)}${d.getDate()}`\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.69",
3
+ "version": "0.0.71",
4
4
  "description": "Extended library for Serenity Framework",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -243,10 +243,16 @@ export const setCookie = (name: string, value: string, expires?: number): void =
243
243
  document.cookie = `${cookie}; path=/`
244
244
  }
245
245
 
246
- export function addDateProxyInput(name: string, readOnly?: boolean): HTMLInputElement {
247
- const input: HTMLInputElement = document.querySelector(`input[name="${name}"]`)
246
+ export type dateProxyInputOption = {
247
+ name: string
248
+ readOnly?: boolean
249
+ width?: number
250
+ }
251
+
252
+ export function addDateProxyInput(opt: dateProxyInputOption): HTMLInputElement {
253
+ const input: HTMLInputElement = document.querySelector(`input[name="${opt.name}"]`)
248
254
  const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement
249
- cloneInput.setAttribute('name', `${name}-2`)
255
+ cloneInput.setAttribute('name', `${opt.name}-2`)
250
256
  cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)
251
257
  cloneInput.setAttribute('readonly', 'readonly')
252
258
  cloneInput.classList.remove('customValidate')
@@ -254,11 +260,14 @@ export function addDateProxyInput(name: string, readOnly?: boolean): HTMLInputEl
254
260
  cloneInput.classList.remove('s-Serenity-DateEditor')
255
261
  cloneInput.classList.remove('dateQ')
256
262
  cloneInput.classList.remove('hasDatepicker')
257
- if (readOnly) {
263
+ if (opt.readOnly) {
258
264
  cloneInput.style.backgroundColor = 'rgba(var(--s-bright-rgb), 0.02)'
259
265
  } else {
260
266
  cloneInput.style.backgroundColor = 'white'
261
267
  }
268
+ if (opt.width) {
269
+ cloneInput.style.width = `${opt.width}px`
270
+ }
262
271
 
263
272
  input.parentNode.insertBefore(cloneInput, input.nextSibling)
264
273
  input.classList.add('d-none')
@@ -266,7 +275,7 @@ export function addDateProxyInput(name: string, readOnly?: boolean): HTMLInputEl
266
275
  return cloneInput
267
276
  }
268
277
 
269
- export function updateDateProxyValue(name: string, dateValue: string | Date, locale: string): void {
278
+ export function updateDateProxyValue(name: string, dateValue: string | Date | null, locale?: string): void {
270
279
  let target = document.querySelector(`#${name}-2`) as HTMLInputElement
271
280
  if (!target) {
272
281
  target = document.querySelector(`input[name=${name}-2]`) as HTMLInputElement
@@ -274,6 +283,9 @@ export function updateDateProxyValue(name: string, dateValue: string | Date, loc
274
283
  if (isEmptyOrNull(dateValue.toString())) {
275
284
  target.value = ''
276
285
  } else {
286
+ if (!locale) {
287
+ locale = 'en-GB'
288
+ }
277
289
  target.value = (dateValue.constructor == Date ? dateValue : new Date(dateValue)).toLocaleString(
278
290
  locale,
279
291
  dateStringOption(),
@@ -281,41 +293,6 @@ export function updateDateProxyValue(name: string, dateValue: string | Date, loc
281
293
  }
282
294
  }
283
295
 
284
- /**
285
- * addDateQuickFilterProxy
286
- *
287
- * @export
288
- * @param {string} name
289
- * @param {number} width
290
- */
291
- export function addDateQuickFilterProxy(name: string, width: number): void {
292
- const input: HTMLInputElement = document.querySelector(`input[name="${name}"]`)
293
- const cloneInput: HTMLInputElement = input.cloneNode(true) as HTMLInputElement
294
- cloneInput.setAttribute('name', `${name}-2`)
295
- cloneInput.setAttribute('id', `${input.getAttribute('id')}-2`)
296
- cloneInput.setAttribute('readonly', 'readonly')
297
- cloneInput.classList.remove('customValidate')
298
- cloneInput.classList.remove('s-DateEditor')
299
- cloneInput.classList.remove('s-Serenity-DateEditor')
300
- cloneInput.classList.remove('dateQ')
301
- cloneInput.classList.remove('hasDatepicker')
302
- cloneInput.style.width = `${width}px`
303
-
304
- input.parentNode.insertBefore(cloneInput, input.nextSibling)
305
- input.classList.add('d-none')
306
- }
307
-
308
- /**
309
- * updateDateQuickFilterProxyValue
310
- *
311
- * @export
312
- * @param {string} name of source element
313
- * @param {string} locale
314
- */
315
- export function updateDateQuickFilterProxyValue(name: string, dateValue: string, locale: string): void {
316
- updateDateProxyValue(name, dateValue, locale)
317
- }
318
-
319
296
  export function toSqlDateString(date: Date): string {
320
297
  const offset = date.getTimezoneOffset()
321
298
  date = new Date(date.getTime() - offset * 60 * 1000)