{"version":3,"file":"mosaic-design-infosec-components-external-ag-grid-utils.mjs","sources":["../../../libs/external/ag-grid/utils/src/lib/clipboard.ts","../../../libs/external/ag-grid/utils/src/lib/columns.ts","../../../libs/external/ag-grid/utils/src/lib/common.ts","../../../libs/external/ag-grid/utils/src/lib/events.ts","../../../libs/external/ag-grid/utils/src/lib/state.ts","../../../libs/external/ag-grid/utils/mosaic-design-infosec-components-external-ag-grid-utils.ts"],"sourcesContent":["import { GridApi, CsvExportParams } from 'ag-grid-community';\n\nimport { defaultGridCopyParams } from '@mosaic-design/infosec-components/external/ag-grid/constants';\n\nexport function formatSelectedRowsForClipboard(api: GridApi, delimiterOrParams?: string | CsvExportParams): string {\n    let params: CsvExportParams = { ...defaultGridCopyParams };\n\n    if (delimiterOrParams) {\n        if (typeof delimiterOrParams === 'string') {\n            params.columnSeparator = delimiterOrParams;\n        } else {\n            params = {\n                ...params,\n                ...delimiterOrParams\n            };\n        }\n    }\n\n    return api.getDataAsCsv(params) || '';\n}\n","import { ColDef } from 'ag-grid-community';\n\nimport { defaultColumnDefinition } from '@mosaic-design/infosec-components/external/ag-grid/constants';\n\nexport function createGridColumn(columnDef: Partial<ColDef>): ColDef {\n    return {\n        ...defaultColumnDefinition,\n        ...columnDef\n    };\n}\n","import { AgGridAngular } from 'ag-grid-angular';\n\nimport { GridOptionsWithName } from '@mosaic-design/infosec-components/external/ag-grid/types';\n\nexport function getGridName(grid: AgGridAngular): string {\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    // eslint-disable-next-line no-underscore-dangle\n    const { id, name } = grid._nativeElement as Element;\n    const nameFromElement = (name as string) || id;\n\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    return (grid.gridOptions as GridOptionsWithName).name || nameFromElement;\n}\n\nexport const defaultComparator = (valueA: string, valueB: string): number =>\n    valueA.toLowerCase().localeCompare(valueB.toLowerCase());\n","import { AgGridEvent, GridApi } from 'ag-grid-community';\nimport { Observable } from 'rxjs';\n\nexport function gridEvent$<T extends AgGridEvent>(api: GridApi, eventType: string): Observable<T> | undefined {\n    return new Observable<T>((observer) => {\n        const listener = (event: T): void => {\n            observer.next(event);\n        };\n\n        api.addEventListener(eventType, listener);\n\n        return {\n            unsubscribe: () => {\n                api.removeEventListener(eventType, listener);\n            }\n        };\n    });\n}\n","import { AgGridAngular } from 'ag-grid-angular';\nimport { Events } from 'ag-grid-community';\nimport { Observable, merge, debounceTime, takeUntil } from 'rxjs';\n\nimport { AG_GRID_FOCUSED_CLASS } from '@mosaic-design/infosec-components/external/ag-grid/constants';\nimport { GridState } from '@mosaic-design/infosec-components/external/ag-grid/types';\n\nimport { getGridName } from './common';\nimport { gridEvent$ } from './events';\n\nfunction getState(grid: AgGridAngular): GridState {\n    const identityKey = getGridName(grid);\n    const localStorageItem = localStorage.getItem(identityKey) || '';\n\n    return localStorageItem ? (JSON.parse(localStorageItem) as GridState) : ({} as GridState);\n}\n\nfunction setState(grid: AgGridAngular, state: GridState): void {\n    const identityKey = getGridName(grid);\n    localStorage.setItem(identityKey, JSON.stringify(state));\n}\n\nexport function manageAgGridColumnState(\n    host: AgGridAngular,\n    destroyed$: Observable<unknown>,\n    columnStateStoreTimeout = 200\n): void {\n    let state = getState(host);\n\n    if (!host.gridOptions) {\n        return;\n    }\n\n    if (state.columnState) {\n        host.gridOptions.columnApi?.applyColumnState({ state: state.columnState, applyOrder: true });\n    }\n\n    const { api, columnApi } = host.gridOptions;\n\n    if (!api || !columnApi) {\n        return;\n    }\n\n    const eventsToObserve = [\n        Events.EVENT_SORT_CHANGED,\n        Events.EVENT_COLUMN_RESIZED,\n        Events.EVENT_DISPLAYED_COLUMNS_CHANGED,\n        Events.EVENT_COLUMN_MOVED,\n        Events.EVENT_COLUMN_PINNED,\n        Events.EVENT_COLUMN_VISIBLE\n    ];\n\n    const events = eventsToObserve.map((event) => gridEvent$(api, event));\n\n    merge(...events)\n        .pipe(debounceTime(columnStateStoreTimeout), takeUntil(destroyed$))\n        .subscribe(() => {\n            state = {\n                columnState: columnApi.getColumnState()\n            };\n\n            setState(host, state);\n        });\n}\n\n// вызывает стандартный метод sizeColumnsToFit(), если нет сохраненного состояния (те. ранее не меняли вручную размеры столбцов)\nexport function sizeColumnsToFitByDefault(grid: AgGridAngular): void {\n    const state = getState(grid);\n\n    if (!state.columnState) {\n        grid.api.sizeColumnsToFit();\n    }\n}\n\nexport function isGridFocused(grid: AgGridAngular): boolean {\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    // eslint-disable-next-line no-underscore-dangle\n    const element = grid._nativeElement as Element | undefined;\n\n    return element?.classList.contains(AG_GRID_FOCUSED_CLASS) || false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}