{"version":3,"file":"fiscal-io-ds-components-grid.mjs","sources":["../../../../projects/fiscal-io/ds-components/src/lib/components/ds-grid/ds-grid.directive.ts","../../../../projects/fiscal-io/ds-components/src/fiscal-io-ds-components-grid.ts"],"sourcesContent":["import { Directive, inject, NgModule, signal } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n  AggregateService,\r\n  ColumnChooserService,\r\n  ColumnMenuService,\r\n  CommandColumnService,\r\n  ContextMenuService,\r\n  DetailRowService,\r\n  EditService,\r\n  ExcelExportService,\r\n  FilterService,\r\n  ForeignKeyService,\r\n  FreezeService,\r\n  GridComponent,\r\n  GridModel,\r\n  GridModule,\r\n  GroupService,\r\n  InfiniteScrollService,\r\n  LazyLoadGroupService,\r\n  PageService,\r\n  PdfExportService,\r\n  ReorderService,\r\n  ResizeService,\r\n  RowDDService,\r\n  SearchService,\r\n  SelectionService,\r\n  SortService,\r\n  ToolbarService,\r\n  VirtualScrollService,\r\n} from '@syncfusion/ej2-angular-grids';\r\n\r\n/**\r\n * Defaults históricos do Design System.\r\n *\r\n * A diretiva os aplica antes de o Angular processar os bindings do `ejs-grid`.\r\n * Portanto, qualquer valor informado pelo consumidor continua tendo precedência,\r\n * exatamente como em um Grid EJ2 comum.\r\n */\r\nexport const DS_GRID_DEFAULTS = Object.freeze({\r\n  allowFiltering: true,\r\n  allowSorting: true,\r\n  allowMultiSorting: true,\r\n  allowResizing: true,\r\n  allowPaging: true,\r\n  allowGrouping: false,\r\n  allowReordering: false,\r\n  allowSelection: true,\r\n  allowTextWrap: false,\r\n  allowKeyboard: true,\r\n  allowExcelExport: false,\r\n  allowPdfExport: false,\r\n  enableVirtualization: false,\r\n  enableInfiniteScrolling: false,\r\n  showColumnChooser: false,\r\n  showColumnMenu: false,\r\n  allowRowDragAndDrop: false,\r\n  enableStickyHeader: false,\r\n  enableImmutableMode: false,\r\n  enableAltRow: true,\r\n  enableHtmlSanitizer: false,\r\n  enableVirtualMaskRow: true,\r\n  enableColumnVirtualization: false,\r\n  enableHover: true,\r\n  enablePersistence: false,\r\n} satisfies Partial<GridModel>);\r\n\r\n/**\r\n * Enhancement não-invasivo para o Grid EJ2 nativo.\r\n *\r\n * Use `<ejs-grid dsGrid>`. Todos os inputs, outputs, métodos, diretivas de\r\n * coluna e templates continuam pertencendo ao próprio `GridComponent` da\r\n * Syncfusion; esta diretiva só aplica os defaults DS e observa a seleção.\r\n *\r\n * Barras de ação e contadores devem usar a toolbar nativa do EJ2\r\n * (`[toolbar]` ou `#toolbarTemplate`). O contador pode ser lido via\r\n * `#ds=\"dsGrid\"` e `ds.selectedCount()`.\r\n */\r\n@Directive({\r\n  selector: 'ejs-grid[dsGrid]',\r\n  standalone: true,\r\n  exportAs: 'dsGrid',\r\n  providers: [\r\n    PageService,\r\n    SortService,\r\n    FilterService,\r\n    ResizeService,\r\n    SelectionService,\r\n    EditService,\r\n    ToolbarService,\r\n    ExcelExportService,\r\n    PdfExportService,\r\n    GroupService,\r\n    SearchService,\r\n    FreezeService,\r\n    ReorderService,\r\n    AggregateService,\r\n    DetailRowService,\r\n    ContextMenuService,\r\n    ColumnChooserService,\r\n    ColumnMenuService,\r\n    CommandColumnService,\r\n    ForeignKeyService,\r\n    InfiniteScrollService,\r\n    LazyLoadGroupService,\r\n    VirtualScrollService,\r\n    RowDDService,\r\n  ],\r\n})\r\nexport class DsGridDirective {\r\n  /** A própria instância nativa, disponível também pelo `#grid` do ejs-grid. */\r\n  readonly grid = inject(GridComponent, { self: true });\r\n\r\n  /** Contagem de linhas selecionadas na página atual, para uso em toolbars. */\r\n  readonly selectedCount = signal(0);\r\n\r\n  constructor() {\r\n    // Bindings nativos do consumidor são aplicados depois do construtor e vencem estes defaults.\r\n    this.grid.setProperties(DS_GRID_DEFAULTS, true);\r\n\r\n    this.grid.created\r\n      .pipe(takeUntilDestroyed())\r\n      .subscribe(() => this.synchronizeSelection());\r\n    this.grid.dataBound\r\n      .pipe(takeUntilDestroyed())\r\n      .subscribe(() => this.synchronizeSelection());\r\n    this.grid.rowSelected\r\n      .pipe(takeUntilDestroyed())\r\n      .subscribe(() => this.synchronizeSelection());\r\n    this.grid.rowDeselected\r\n      .pipe(takeUntilDestroyed())\r\n      .subscribe(() => this.synchronizeSelection());\r\n  }\r\n\r\n  private synchronizeSelection(): void {\r\n    this.selectedCount.set(this.grid.getSelectedRecords().length);\r\n  }\r\n}\r\n\r\n/** Um único import habilita o DSL completo do EJ2 e a diretiva DS. */\r\n@NgModule({\r\n  imports: [GridModule, DsGridDirective],\r\n  exports: [GridModule, DsGridDirective],\r\n})\r\nexport class DsGridModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './grid';\n"],"names":[],"mappings":"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"}