UNPKG

houser-js-utils

Version:

A comprehensive collection of TypeScript utility functions for common development tasks including array manipulation, string processing, date handling, random number generation, validation, and much more.

1 lines 4.76 kB
{"version":3,"file":"AGGridUtils.mjs","sources":["../src/AGGridUtils.ts"],"sourcesContent":["/**\n * @module AGGridUtils\n * @description A collection of utility functions for AG Grid configuration, data manipulation, and grid management.\n * @example\n * ```typescript\n * import { AGGridUtils } from 'houser-js-utils';\n *\n * // Create column definitions\n * const columns = AGGridUtils.createColumnDefs(data);\n *\n * // Export grid data\n * AGGridUtils.exportToCsv(gridApi, 'data.csv');\n *\n * // Apply custom styling\n * AGGridUtils.applyCustomTheme(gridOptions);\n * ```\n */\n\nimport { ValueSetterParams } from \"@ag-grid-community/core\";\n\n/**\n * Collection of utility functions for AG Grid integration\n */\nexport const AGGridUtils = {\n /**\n * Collection of value parsers for AG Grid\n */\n parsers: {\n /**\n * Parses a string value to a number\n * @param params - Object containing the new value to parse\n * @returns Parsed number or null if invalid\n * @example\n * ```typescript\n * const value = AGGridUtils.parsers.number({ newValue: '123.45' });\n * // Returns: 123.45\n * ```\n */\n number: (params: { newValue: string }): number | null => {\n if (\n typeof params.newValue === \"string\" &&\n params.newValue.trim() === \"\"\n ) {\n return null;\n }\n const parsedValue = Number(params.newValue);\n return isNaN(parsedValue) ? null : parsedValue;\n },\n\n /**\n * Trims a string value\n * @param params - Object containing the new value to trim\n * @returns Trimmed string or null if empty\n * @example\n * ```typescript\n * const value = AGGridUtils.parsers.string({ newValue: ' hello ' });\n * // Returns: 'hello'\n * ```\n */\n string: (params: { newValue: string }): string | null =>\n String(params.newValue).trim(),\n },\n\n /**\n * Collection of value setters for AG Grid\n */\n setters: {\n /**\n * Creates a setter that rounds numbers up to the nearest integer\n * @param field - The field name to set the value on\n * @returns A value setter function\n * @example\n * ```typescript\n * const setter = AGGridUtils.setters.numberCeil('price');\n * setter({ data: {}, newValue: 123.45 });\n * // Sets data.price to 124\n * ```\n */\n numberCeil:\n (field: string) =>\n (params: ValueSetterParams): boolean => {\n params.data[field] = Math.ceil(params.newValue);\n return true;\n },\n\n /**\n * Creates a setter that rounds numbers down to the nearest integer\n * @param field - The field name to set the value on\n * @returns A value setter function\n * @example\n * ```typescript\n * const setter = AGGridUtils.setters.numberFloor('price');\n * setter({ data: {}, newValue: 123.45 });\n * // Sets data.price to 123\n * ```\n */\n numberFloor:\n (field: string) =>\n (params: ValueSetterParams): boolean => {\n params.data[field] = Math.floor(params.newValue);\n return true;\n },\n\n /**\n * Creates a setter that formats numbers to one decimal place if they're integers\n * @param field - The field name to set the value on\n * @returns A value setter function\n * @example\n * ```typescript\n * const setter = AGGridUtils.setters.numberFloat('price');\n * setter({ data: {}, newValue: 123 });\n * // Sets data.price to '123.0'\n * ```\n */\n numberFloat:\n (field: string) =>\n (params: ValueSetterParams): boolean => {\n const num = Number(params.newValue);\n params.data[field] = Number.isInteger(num) ? num.toFixed(1) : num;\n return true;\n },\n },\n};\n"],"names":[],"mappings":"AAuBO,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA,EAIzB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWP,QAAQ,CAAC,WAAgD;AACvD,UACE,OAAO,OAAO,aAAa,YAC3B,OAAO,SAAS,KAAA,MAAW,IAC3B;AACA,eAAO;AAAA,MACT;AACA,YAAM,cAAc,OAAO,OAAO,QAAQ;AAC1C,aAAO,MAAM,WAAW,IAAI,OAAO;AAAA,IACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,QAAQ,CAAC,WACP,OAAO,OAAO,QAAQ,EAAE,KAAA;AAAA,EAAK;AAAA;AAAA;AAAA;AAAA,EAMjC,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYP,YACE,CAAC,UACD,CAAC,WAAuC;AACtC,aAAO,KAAK,KAAK,IAAI,KAAK,KAAK,OAAO,QAAQ;AAC9C,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaF,aACE,CAAC,UACD,CAAC,WAAuC;AACtC,aAAO,KAAK,KAAK,IAAI,KAAK,MAAM,OAAO,QAAQ;AAC/C,aAAO;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaF,aACE,CAAC,UACD,CAAC,WAAuC;AACtC,YAAM,MAAM,OAAO,OAAO,QAAQ;AAClC,aAAO,KAAK,KAAK,IAAI,OAAO,UAAU,GAAG,IAAI,IAAI,QAAQ,CAAC,IAAI;AAC9D,aAAO;AAAA,IACT;AAAA,EAAA;AAEN;"}