@wlcm/angular 17.5.13 → 17.5.15

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.
Files changed (73) hide show
  1. package/core/esm2022/index.mjs +7 -4
  2. package/core/esm2022/lib/components/default-loader/default-loader.component.mjs +12 -0
  3. package/core/esm2022/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.mjs +1 -1
  4. package/core/esm2022/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.mjs +1 -1
  5. package/core/esm2022/lib/components/{close-icon → icons/close-icon}/close-icon.component.mjs +1 -1
  6. package/core/esm2022/lib/components/{search-icon → icons/search-icon}/search-icon.component.mjs +1 -1
  7. package/core/esm2022/lib/components/loader/loader.component.mjs +32 -0
  8. package/core/esm2022/lib/constants/icon.contants.mjs +4 -4
  9. package/core/esm2022/lib/constants/loader.constants.mjs +7 -0
  10. package/core/esm2022/lib/directives/icon.directive.mjs +2 -2
  11. package/core/esm2022/lib/utils/paginated-data-emulator.utils.mjs +20 -0
  12. package/core/fesm2022/wlcm-angular-core.mjs +64 -3
  13. package/core/fesm2022/wlcm-angular-core.mjs.map +1 -1
  14. package/core/index.d.ts +6 -3
  15. package/core/lib/components/default-loader/default-loader.component.d.ts +5 -0
  16. package/core/lib/components/loader/loader.component.d.ts +11 -0
  17. package/core/lib/constants/loader.constants.d.ts +2 -0
  18. package/core/lib/utils/paginated-data-emulator.utils.d.ts +10 -0
  19. package/datepicker/esm2022/lib/components/calendar-header/calendar-header.component.mjs +7 -5
  20. package/datepicker/esm2022/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.mjs +39 -5
  21. package/datepicker/esm2022/lib/components/range/date-range-picker/date-range-picker.component.mjs +14 -9
  22. package/datepicker/esm2022/lib/components/single/datepicker-input-container/datepicker-input-container.component.mjs +2 -2
  23. package/datepicker/esm2022/lib/components/single/datepicker-panel/datepicker-panel.component.mjs +15 -9
  24. package/datepicker/esm2022/lib/constants/datepicker.constants.mjs +3 -1
  25. package/datepicker/esm2022/lib/directives/datepicker-input.base.mjs +20 -4
  26. package/datepicker/esm2022/lib/directives/datepicker-trigger.base.mjs +23 -4
  27. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-end.directive.mjs +12 -8
  28. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input-start.directive.mjs +12 -8
  29. package/datepicker/esm2022/lib/directives/ragne/date-range-picker-input.base.mjs +7 -4
  30. package/datepicker/esm2022/lib/directives/ragne/left-calendar.directive.mjs +10 -5
  31. package/datepicker/esm2022/lib/directives/ragne/right-calendar.directive.mjs +10 -5
  32. package/datepicker/esm2022/lib/directives/single/datepicker-input.directive.mjs +2 -2
  33. package/datepicker/esm2022/lib/models/date-picker.models.mjs +3 -1
  34. package/datepicker/esm2022/lib/models/range/data-range-calendar.models.mjs +21 -3
  35. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs +202 -94
  36. package/datepicker/fesm2022/wlcm-angular-datepicker.mjs.map +1 -1
  37. package/datepicker/lib/components/calendar-header/calendar-header.component.d.ts +3 -1
  38. package/datepicker/lib/components/range/date-range-calendar-header/date-range-calendar-header.component.d.ts +8 -2
  39. package/datepicker/lib/components/range/date-range-picker/date-range-picker.component.d.ts +5 -3
  40. package/datepicker/lib/components/single/datepicker-input-container/datepicker-input-container.component.d.ts +3 -3
  41. package/datepicker/lib/components/single/datepicker-panel/datepicker-panel.component.d.ts +10 -6
  42. package/datepicker/lib/constants/datepicker.constants.d.ts +3 -1
  43. package/datepicker/lib/directives/datepicker-input.base.d.ts +5 -1
  44. package/datepicker/lib/directives/datepicker-trigger.base.d.ts +7 -2
  45. package/datepicker/lib/directives/ragne/date-range-picker-input-end.directive.d.ts +4 -2
  46. package/datepicker/lib/directives/ragne/date-range-picker-input-start.directive.d.ts +4 -2
  47. package/datepicker/lib/directives/ragne/date-range-picker-input.base.d.ts +3 -1
  48. package/datepicker/lib/directives/ragne/left-calendar.directive.d.ts +3 -1
  49. package/datepicker/lib/directives/ragne/right-calendar.directive.d.ts +3 -1
  50. package/datepicker/lib/directives/single/datepicker-input.directive.d.ts +5 -5
  51. package/datepicker/lib/models/date-picker.models.d.ts +8 -1
  52. package/datepicker/lib/models/range/data-range-calendar.models.d.ts +6 -1
  53. package/package.json +1 -1
  54. package/search-field/esm2022/lib/components/search-field/search-field.component.mjs +3 -3
  55. package/search-field/fesm2022/wlcm-angular-search-field.mjs +2 -2
  56. package/search-field/fesm2022/wlcm-angular-search-field.mjs.map +1 -1
  57. package/styles/components/calendar/_calendar-header.scss +4 -0
  58. package/styles/components/loader/_loader.scss +168 -0
  59. package/styles/components/loader/index.scss +5 -0
  60. package/styles/core/_all-theme.scss +2 -0
  61. package/table/esm2022/lib/components/table/table.component.mjs +3 -1
  62. package/table/esm2022/lib/components/table-row/table-row.component.mjs +48 -20
  63. package/table/esm2022/lib/components/table-row-actions/table-row-actions.component.mjs +13 -46
  64. package/table/esm2022/lib/directives/scrollable-table-container.directive.mjs +38 -7
  65. package/table/fesm2022/wlcm-angular-table.mjs +86 -61
  66. package/table/fesm2022/wlcm-angular-table.mjs.map +1 -1
  67. package/table/lib/components/table-row/table-row.component.d.ts +9 -4
  68. package/table/lib/components/table-row-actions/table-row-actions.component.d.ts +3 -12
  69. package/table/lib/directives/scrollable-table-container.directive.d.ts +9 -1
  70. /package/core/lib/components/{calendar-icon → icons/calendar-icon}/calendar-icon.component.d.ts +0 -0
  71. /package/core/lib/components/{chevron-down-icon → icons/chevron-down-icon}/chevron-down-icon.component.d.ts +0 -0
  72. /package/core/lib/components/{close-icon → icons/close-icon}/close-icon.component.d.ts +0 -0
  73. /package/core/lib/components/{search-icon → icons/search-icon}/search-icon.component.d.ts +0 -0
@@ -6,6 +6,7 @@ import { WlcmTableRowComponent } from '../table-row/table-row.component';
6
6
  import { WlcmTableRowSpacerComponent } from '../table-row-spacer/table-row-spacer.component';
7
7
  import { RxLet } from '@rx-angular/template/let';
8
8
  import { CommonModule } from '@angular/common';
9
+ import { WlcmLoaderComponent } from '@wlcm/angular/core';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../../models/table-selection-model";
11
12
  import * as i2 from "@angular/common";
@@ -30,7 +31,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
30
31
  WlcmTableRowComponent,
31
32
  WlcmTableRowInjectorPipe,
32
33
  WlcmTableRowSpacerComponent,
34
+ WlcmLoaderComponent,
33
35
  RxLet,
34
36
  ], providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n" }]
35
37
  }], ctorParameters: () => [{ type: i1.WlcmTableSelectionModel }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQTRCLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFrQi9DLE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFBb0IsY0FBdUM7UUFBdkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBVjNELFNBQUksR0FBcUIsS0FBSyxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLGlCQUFZLEdBQW1DLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoRSxnQkFBVyxHQUFxRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakYsYUFBUSxHQUF3QyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakUsYUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdwQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDOzhHQWJVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHVuQkFKbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsQ0FBQywwQkN2QjdGLDZxQkFpQ0EseUREakJJLFlBQVksaU1BR1osd0JBQXdCLDZEQUN4QiwyQkFBMkIsa0VBQzNCLEtBQUs7OzJGQU1JLGtCQUFrQjtrQkFoQjlCLFNBQVM7K0JBQ0UsWUFBWSxRQUNoQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixLQUFLO3FCQUNOLGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0U2lnbmFsLCBUZW1wbGF0ZVJlZiwgZWZmZWN0LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0V2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwsIFdsY21UYWJsZVNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLXNlbGVjdGlvbi1tb2RlbCc7XG5pbXBvcnQgeyBXbGNtVGFibGVSb3dJbmplY3RvclBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy90YWJsZS1yb3ctaW5qZWN0b3IucGlwZSc7XG5pbXBvcnQgeyBXbGNtVGFibGVIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtaGVhZC90YWJsZS1oZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtVGFibGVSb3dDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1yb3cvdGFibGUtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXbGNtVGFibGVSb3dDb250ZXh0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLXJvdy5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbVRhYmxlU2VsZWN0SWRGbiB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS5tb2RlbHMnO1xuaW1wb3J0IHsgV2xjbVRhYmxlUm93U3BhY2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFibGUtcm93LXNwYWNlci90YWJsZS1yb3ctc3BhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSeExldCB9IGZyb20gJ0ByeC1hbmd1bGFyL3RlbXBsYXRlL2xldCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXRhYmxlJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tdGFibGUnIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgV2xjbVRhYmxlSGVhZENvbXBvbmVudCxcbiAgICBXbGNtVGFibGVSb3dDb21wb25lbnQsXG4gICAgV2xjbVRhYmxlUm93SW5qZWN0b3JQaXBlLFxuICAgIFdsY21UYWJsZVJvd1NwYWNlckNvbXBvbmVudCxcbiAgICBSeExldCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCwgdXNlQ2xhc3M6IERlZmF1bHRXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCB9XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVRhYmxlQ29tcG9uZW50PFQgPSB1bmtub3duPiB7XG4gIHJvd3M6IElucHV0U2lnbmFsPFRbXT4gPSBpbnB1dDxUW10+KFtdKTtcblxuICBoZWFkVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPHZvaWQ+PiA9IGlucHV0LnJlcXVpcmVkKCk7XG5cbiAgcm93VGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPFdsY21UYWJsZVJvd0NvbnRleHQ8VD4+PiA9IGlucHV0LnJlcXVpcmVkKCk7XG5cbiAgc2VsZWN0SWQ6IElucHV0U2lnbmFsPFdsY21UYWJsZVNlbGVjdElkRm48VD4+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VsZWN0aW9uTW9kZWw6IFdsY21UYWJsZVNlbGVjdGlvbk1vZGVsKSB7XG4gICAgZWZmZWN0KCgpID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwudXBkYXRlQ29sbGVjdGlvbih0aGlzLnJvd3MoKS5tYXAodGhpcy5zZWxlY3RJZCgpKSkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZFRlbXBsYXRlKCk7IGluamVjdG9yOiBpbmplY3RvclwiXG4+PC9uZy1jb250YWluZXI+XG5cbjx0Ym9keT5cbiAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgcm93OyBsZXQgaW5kZXggPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0XG4gIGxhc3QgPSAkbGFzdCkge1xuICA8d2xjbS10YWJsZS1yb3ctc3BhY2VyPjwvd2xjbS10YWJsZS1yb3ctc3BhY2VyPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqcnhMZXQ9XCJcbiAgICAgIHtcbiAgICAgICAgJGltcGxpY2l0OiByb3csXG4gICAgICAgIHNlbGVjdElkOiBzZWxlY3RJZCgpLFxuICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgIGZpcnN0OiBmaXJzdCxcbiAgICAgICAgbGFzdDogbGFzdCxcbiAgICAgIH07XG4gICAgICBsZXQgY29udGV4dFxuICAgIFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICByb3dUZW1wbGF0ZSgpO1xuICAgICAgICBjb250ZXh0OiBjb250ZXh0O1xuICAgICAgICBpbmplY3RvcjogY29udGV4dCB8IHdsY21UYWJsZVJvd0luamVjdG9yXG4gICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgfVxuPC90Ym9keT5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQTRCLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7QUFtQnpELE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFBb0IsY0FBdUM7UUFBdkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBVjNELFNBQUksR0FBcUIsS0FBSyxDQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLGlCQUFZLEdBQW1DLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoRSxnQkFBVyxHQUFxRCxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakYsYUFBUSxHQUF3QyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakUsYUFBUSxHQUFhLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdwQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDOzhHQWJVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHVuQkFKbEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsOEJBQThCLEVBQUUsQ0FBQywwQkN6QjdGLDZxQkFpQ0EseUREaEJJLFlBQVksaU1BR1osd0JBQXdCLDZEQUN4QiwyQkFBMkIsa0VBRTNCLEtBQUs7OzJGQU1JLGtCQUFrQjtrQkFqQjlCLFNBQVM7K0JBQ0UsWUFBWSxRQUNoQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsY0FDakIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osc0JBQXNCO3dCQUN0QixxQkFBcUI7d0JBQ3JCLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLEtBQUs7cUJBQ04sYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSw4QkFBOEIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXRTaWduYWwsIFRlbXBsYXRlUmVmLCBlZmZlY3QsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlZmF1bHRXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCwgV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0luamVjdG9yUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RhYmxlLXJvdy1pbmplY3Rvci5waXBlJztcbmltcG9ydCB7IFdsY21UYWJsZUhlYWRDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1oZWFkL3RhYmxlLWhlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0NvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50JztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0NvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtVGFibGVTZWxlY3RJZEZuIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtVGFibGVSb3dTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuLi90YWJsZS1yb3ctc3BhY2VyL3RhYmxlLXJvdy1zcGFjZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJ4TGV0IH0gZnJvbSAnQHJ4LWFuZ3VsYXIvdGVtcGxhdGUvbGV0JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBXbGNtTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQHdsY20vYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS10YWJsZScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLXRhYmxlJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFdsY21UYWJsZUhlYWRDb21wb25lbnQsXG4gICAgV2xjbVRhYmxlUm93Q29tcG9uZW50LFxuICAgIFdsY21UYWJsZVJvd0luamVjdG9yUGlwZSxcbiAgICBXbGNtVGFibGVSb3dTcGFjZXJDb21wb25lbnQsXG4gICAgV2xjbUxvYWRlckNvbXBvbmVudCxcbiAgICBSeExldCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCwgdXNlQ2xhc3M6IERlZmF1bHRXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCB9XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVRhYmxlQ29tcG9uZW50PFQgPSB1bmtub3duPiB7XG4gIHJvd3M6IElucHV0U2lnbmFsPFRbXT4gPSBpbnB1dDxUW10+KFtdKTtcblxuICBoZWFkVGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPHZvaWQ+PiA9IGlucHV0LnJlcXVpcmVkKCk7XG5cbiAgcm93VGVtcGxhdGU6IElucHV0U2lnbmFsPFRlbXBsYXRlUmVmPFdsY21UYWJsZVJvd0NvbnRleHQ8VD4+PiA9IGlucHV0LnJlcXVpcmVkKCk7XG5cbiAgc2VsZWN0SWQ6IElucHV0U2lnbmFsPFdsY21UYWJsZVNlbGVjdElkRm48VD4+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBpbmplY3RvcjogSW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2VsZWN0aW9uTW9kZWw6IFdsY21UYWJsZVNlbGVjdGlvbk1vZGVsKSB7XG4gICAgZWZmZWN0KCgpID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwudXBkYXRlQ29sbGVjdGlvbih0aGlzLnJvd3MoKS5tYXAodGhpcy5zZWxlY3RJZCgpKSkpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyXG4gICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZFRlbXBsYXRlKCk7IGluamVjdG9yOiBpbmplY3RvclwiXG4+PC9uZy1jb250YWluZXI+XG5cbjx0Ym9keT5cbiAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgcm93OyBsZXQgaW5kZXggPSAkaW5kZXg7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0XG4gIGxhc3QgPSAkbGFzdCkge1xuICA8d2xjbS10YWJsZS1yb3ctc3BhY2VyPjwvd2xjbS10YWJsZS1yb3ctc3BhY2VyPlxuXG4gIDxuZy1jb250YWluZXJcbiAgICAqcnhMZXQ9XCJcbiAgICAgIHtcbiAgICAgICAgJGltcGxpY2l0OiByb3csXG4gICAgICAgIHNlbGVjdElkOiBzZWxlY3RJZCgpLFxuICAgICAgICBpbmRleDogaW5kZXgsXG4gICAgICAgIGZpcnN0OiBmaXJzdCxcbiAgICAgICAgbGFzdDogbGFzdCxcbiAgICAgIH07XG4gICAgICBsZXQgY29udGV4dFxuICAgIFwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICByb3dUZW1wbGF0ZSgpO1xuICAgICAgICBjb250ZXh0OiBjb250ZXh0O1xuICAgICAgICBpbmplY3RvcjogY29udGV4dCB8IHdsY21UYWJsZVJvd0luamVjdG9yXG4gICAgICBcIlxuICAgID5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgfVxuPC90Ym9keT5cbiJdfQ==
@@ -1,48 +1,76 @@
1
- import { Component, HostBinding, Inject } from '@angular/core';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, ElementRef, HostBinding, Inject, signal } from '@angular/core';
2
3
  import { WlcmTableRowActionsComponent } from '../table-row-actions/table-row-actions.component';
3
4
  import { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';
5
+ import { WlcmTableSelectionModel } from '../../models/table-selection-model';
4
6
  import { WLCM_TABLE_CONFIG } from '../../constants/table.constants';
7
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
5
8
  import { CommonModule } from '@angular/common';
9
+ import { filter, map } from 'rxjs';
6
10
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class WlcmTableRowComponent {
9
- get isSelected() {
10
- return this._isSelected;
11
- }
11
+ import * as i1 from "../../models/table-selection-model";
12
+ import * as i2 from "@angular/common";
13
+ let WlcmTableRowComponent = class WlcmTableRowComponent {
12
14
  get first() {
13
15
  return this.rowContext.first;
14
16
  }
15
17
  get last() {
16
18
  return this.rowContext.last;
17
19
  }
18
- constructor(tableConfig, rowContext) {
20
+ constructor(elementRef, selectionModel, tableConfig, rowContext) {
21
+ this.elementRef = elementRef;
22
+ this.selectionModel = selectionModel;
19
23
  this.tableConfig = tableConfig;
20
24
  this.rowContext = rowContext;
21
- this._isSelected = false;
25
+ this.isSelected = signal(false);
26
+ this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
27
+ this.handleSelectionChanges();
28
+ }
29
+ selectionChanged(isSelected) {
30
+ if (isSelected) {
31
+ return this.selectionModel.selectOne(this.rowId);
32
+ }
33
+ this.selectionModel.deselectOne(this.rowId);
34
+ this.isSelected.set(isSelected);
22
35
  }
23
- handleSelectionChange(isSelected) {
24
- this._isSelected = isSelected;
36
+ handleSelectionChanges() {
37
+ this.selectionModel.selectionChanged
38
+ .pipe(untilDestroyed(this))
39
+ .pipe(map((collection) => collection.has(this.rowId)))
40
+ .pipe(filter((isSelected) => isSelected !== this.isSelected()))
41
+ .subscribe((isSelected) => {
42
+ this.isSelected.set(isSelected);
43
+ if (isSelected) {
44
+ this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
45
+ }
46
+ else {
47
+ this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
48
+ }
49
+ });
25
50
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: WLCM_TABLE_CONFIG }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-selected": "this.isSelected", "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions", outputs: ["selectionChanged"] }] }); }
28
- }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token: i1.WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n [isSelected]=\"isSelected()\"\n (selectionChanged)=\"selectionChanged($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions", inputs: ["isSelected"], outputs: ["selectionChanged"] }] }); }
53
+ };
54
+ WlcmTableRowComponent = __decorate([
55
+ UntilDestroy(),
56
+ __metadata("design:paramtypes", [ElementRef,
57
+ WlcmTableSelectionModel, Object, Object])
58
+ ], WlcmTableRowComponent);
59
+ export { WlcmTableRowComponent };
29
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, decorators: [{
30
61
  type: Component,
31
- args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent], template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
32
- }], ctorParameters: () => [{ type: undefined, decorators: [{
62
+ args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent], template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n [isSelected]=\"isSelected()\"\n (selectionChanged)=\"selectionChanged($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
63
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.WlcmTableSelectionModel }, { type: undefined, decorators: [{
33
64
  type: Inject,
34
65
  args: [WLCM_TABLE_CONFIG]
35
66
  }] }, { type: undefined, decorators: [{
36
67
  type: Inject,
37
68
  args: [WLCM_TABLE_ROW_CONTEXT]
38
- }] }], propDecorators: { isSelected: [{
39
- type: HostBinding,
40
- args: ['class.wlcm-table-row-selected']
41
- }], first: [{
69
+ }] }], propDecorators: { first: [{
42
70
  type: HostBinding,
43
71
  args: ['class.wlcm-table-row-first']
44
72
  }], last: [{
45
73
  type: HostBinding,
46
74
  args: ['class.wlcm-table-row-last']
47
75
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFVL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxJQUFrRCxVQUFVO1FBQzFELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBK0MsS0FBSztRQUNsRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUE4QyxJQUFJO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQ3VDLFdBQTRCLEVBQ3pCLFVBQWtDO1FBRHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUF3QjtRQWhCcEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7SUFpQmxDLENBQUM7SUFFSixxQkFBcUIsQ0FBQyxVQUFtQjtRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDOzhHQXRCVSxxQkFBcUIsa0JBZ0J0QixpQkFBaUIsYUFDakIsc0JBQXNCO2tHQWpCckIscUJBQXFCLGdSQ2hCbEMsK01BTUEseURETVksWUFBWSxtSUFBRSw0QkFBNEI7OzJGQUl6QyxxQkFBcUI7a0JBUmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLFFBQ3BCLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSw0QkFBNEIsQ0FBQzs7MEJBb0JsRCxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsc0JBQXNCO3lDQWRrQixVQUFVO3NCQUEzRCxXQUFXO3VCQUFDLCtCQUErQjtnQkFJRyxLQUFLO3NCQUFuRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFJSyxJQUFJO3NCQUFqRCxXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbVRhYmxlUm93QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLXJvdy1hY3Rpb25zL3RhYmxlLXJvdy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXTENNX1RBQkxFX1JPV19DT05URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3RhYmxlLXJvdy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV0xDTV9UQUJMRV9DT05GSUcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvdGFibGUuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0NvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVscyc7XG5pbXBvcnQgeyBXbGNtVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUubW9kZWxzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tdGFibGUtcm93JyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tdGFibGUtcm93JyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBXbGNtVGFibGVSb3dBY3Rpb25zQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVSb3dDb21wb25lbnQ8VCA9IHVua25vd24+IHtcbiAgcHJpdmF0ZSBfaXNTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS10YWJsZS1yb3ctc2VsZWN0ZWQnKSBnZXQgaXNTZWxlY3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faXNTZWxlY3RlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS10YWJsZS1yb3ctZmlyc3QnKSBnZXQgZmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93Q29udGV4dC5maXJzdDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS10YWJsZS1yb3ctbGFzdCcpIGdldCBsYXN0KCkge1xuICAgIHJldHVybiB0aGlzLnJvd0NvbnRleHQubGFzdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoV0xDTV9UQUJMRV9DT05GSUcpIHByb3RlY3RlZCB0YWJsZUNvbmZpZzogV2xjbVRhYmxlQ29uZmlnLFxuICAgIEBJbmplY3QoV0xDTV9UQUJMRV9ST1dfQ09OVEVYVCkgcHJpdmF0ZSByb3dDb250ZXh0OiBXbGNtVGFibGVSb3dDb250ZXh0PFQ+XG4gICkge31cblxuICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2UoaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2lzU2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICB9XG59XG4iLCI8d2xjbS10YWJsZS1yb3ctYWN0aW9uc1xuICAqbmdJZj1cInRhYmxlQ29uZmlnLnNlbGVjdGFibGVcIlxuICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJoYW5kbGVTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXG4+PC93bGNtLXRhYmxlLXJvdy1hY3Rpb25zPlxuXG48bmctY29udGVudCBzZWxlY3Q9XCJ3bGNtLXRhYmxlLXJvdy1kYXRhXCI+PC9uZy1jb250ZW50PlxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvdGFibGUvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLXJvdy90YWJsZS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93L3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBa0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBVzVCLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXFCO0lBS2hDLElBQStDLEtBQUs7UUFDbEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBOEMsSUFBSTtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUNVLFVBQW1DLEVBQ25DLGNBQXVDLEVBQ1YsV0FBNEIsRUFDekIsVUFBa0M7UUFIbEUsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBQ1YsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQ3pCLGVBQVUsR0FBVixVQUFVLENBQXdCO1FBZDVFLGVBQVUsR0FBNEIsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBZ0JsRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0I7YUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBdUIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBbUIsRUFBRSxFQUFFLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZFLFNBQVMsQ0FBQyxDQUFDLFVBQW1CLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVoQyxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN6RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQzVFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBaERVLHFCQUFxQixtRkFnQnRCLGlCQUFpQixhQUNqQixzQkFBc0I7a0dBakJyQixxQkFBcUIsNE5DcEJsQywyT0FPQSx5RERTWSxZQUFZLG1JQUFFLDRCQUE0Qjs7QUFJekMscUJBQXFCO0lBVGpDLFlBQVksRUFBRTtxQ0F1QlMsVUFBVTtRQUNOLHVCQUF1QjtHQWZ0QyxxQkFBcUIsQ0FpRGpDOzsyRkFqRFkscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGdCQUFnQixRQUNwQixFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsNEJBQTRCLENBQUM7OzBCQW9CbEQsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLHNCQUFzQjt5Q0FaZSxLQUFLO3NCQUFuRCxXQUFXO3VCQUFDLDRCQUE0QjtnQkFJSyxJQUFJO3NCQUFqRCxXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdCwgV3JpdGFibGVTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2xjbVRhYmxlUm93QWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL3RhYmxlLXJvdy1hY3Rpb25zL3RhYmxlLXJvdy1hY3Rpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXTENNX1RBQkxFX1JPV19DT05URVhUIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3RhYmxlLXJvdy5jb25zdGFudHMnO1xuaW1wb3J0IHsgV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7IFdMQ01fVEFCTEVfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3RhYmxlLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXbGNtVGFibGVSb3dDb250ZXh0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLXJvdy5tb2RlbHMnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBXbGNtVGFibGVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUubW9kZWxzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuXG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dsY20tdGFibGUtcm93JyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tdGFibGUtcm93JyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBXbGNtVGFibGVSb3dBY3Rpb25zQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLXJvdy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90YWJsZS1yb3cuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVSb3dDb21wb25lbnQ8VCA9IHVua25vd24+IHtcbiAgcm93SWQhOiBzdHJpbmc7XG5cbiAgaXNTZWxlY3RlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS10YWJsZS1yb3ctZmlyc3QnKSBnZXQgZmlyc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMucm93Q29udGV4dC5maXJzdDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2xjbS10YWJsZS1yb3ctbGFzdCcpIGdldCBsYXN0KCkge1xuICAgIHJldHVybiB0aGlzLnJvd0NvbnRleHQubGFzdDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb25Nb2RlbDogV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwsXG4gICAgQEluamVjdChXTENNX1RBQkxFX0NPTkZJRykgcHJvdGVjdGVkIHRhYmxlQ29uZmlnOiBXbGNtVGFibGVDb25maWcsXG4gICAgQEluamVjdChXTENNX1RBQkxFX1JPV19DT05URVhUKSBwcml2YXRlIHJvd0NvbnRleHQ6IFdsY21UYWJsZVJvd0NvbnRleHQ8VD5cbiAgKSB7XG4gICAgdGhpcy5yb3dJZCA9IHRoaXMucm93Q29udGV4dC5zZWxlY3RJZCh0aGlzLnJvd0NvbnRleHQuJGltcGxpY2l0KTtcblxuICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlcygpO1xuICB9XG5cbiAgc2VsZWN0aW9uQ2hhbmdlZChpc1NlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdE9uZSh0aGlzLnJvd0lkKTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0T25lKHRoaXMucm93SWQpO1xuXG4gICAgdGhpcy5pc1NlbGVjdGVkLnNldChpc1NlbGVjdGVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbkNoYW5nZWRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uOiBTZXQ8c3RyaW5nPikgPT4gY29sbGVjdGlvbi5oYXModGhpcy5yb3dJZCkpKVxuICAgICAgLnBpcGUoZmlsdGVyKChpc1NlbGVjdGVkOiBib29sZWFuKSA9PiBpc1NlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQoKSkpXG4gICAgICAuc3Vic2NyaWJlKChpc1NlbGVjdGVkOiBib29sZWFuKSA9PiB7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZC5zZXQoaXNTZWxlY3RlZCk7XG5cbiAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCd3bGNtLXRhYmxlLXJvdy1zZWxlY3RlZCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3dsY20tdGFibGUtcm93LXNlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iLCI8d2xjbS10YWJsZS1yb3ctYWN0aW9uc1xuICAqbmdJZj1cInRhYmxlQ29uZmlnLnNlbGVjdGFibGVcIlxuICBbaXNTZWxlY3RlZF09XCJpc1NlbGVjdGVkKClcIlxuICAoc2VsZWN0aW9uQ2hhbmdlZCk9XCJzZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuPjwvd2xjbS10YWJsZS1yb3ctYWN0aW9ucz5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwid2xjbS10YWJsZS1yb3ctZGF0YVwiPjwvbmctY29udGVudD5cbiJdfQ==
@@ -1,53 +1,20 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Inject, output } from '@angular/core';
3
- import { WlcmTableSelectionModel } from '../../models/table-selection-model';
4
- import { WLCM_TABLE_ROW_CONTEXT } from '../../constants/table-row.constants';
5
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
6
- import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
1
+ import { Component, input, output } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
7
3
  import { WlcmFormsModule } from '@wlcm/angular/forms';
8
4
  import { CommonModule } from '@angular/common';
9
- import { map } from 'rxjs';
10
5
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../models/table-selection-model";
12
- import * as i2 from "@wlcm/angular/forms";
13
- import * as i3 from "@angular/forms";
14
- let WlcmTableRowActionsComponent = class WlcmTableRowActionsComponent {
15
- constructor(selectionModel, rowContext) {
16
- this.selectionModel = selectionModel;
17
- this.rowContext = rowContext;
18
- this.control = new FormControl(false);
6
+ import * as i1 from "@wlcm/angular/forms";
7
+ import * as i2 from "@angular/forms";
8
+ export class WlcmTableRowActionsComponent {
9
+ constructor() {
10
+ this.isSelected = input.required();
19
11
  this.selectionChanged = output();
20
- this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
21
- this.handleSelectionChange();
22
12
  }
23
- toggle(isChecked) {
24
- if (isChecked) {
25
- return this.selectionModel.selectOne(this.rowId);
26
- }
27
- this.selectionModel.deselectOne(this.rowId);
28
- }
29
- handleSelectionChange() {
30
- this.selectionModel.selectionChanged
31
- .pipe(untilDestroyed(this))
32
- .pipe(map((collection) => collection.has(this.rowId)))
33
- .subscribe((isSelected) => {
34
- this.control.setValue(isSelected);
35
- this.selectionChanged.emit(isSelected);
36
- });
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, deps: [{ token: i1.WlcmTableSelectionModel }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowActionsComponent, isStandalone: true, selector: "wlcm-table-row-actions", outputs: { selectionChanged: "selectionChanged" }, host: { classAttribute: "wlcm-table-row-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
40
- };
41
- WlcmTableRowActionsComponent = __decorate([
42
- UntilDestroy(),
43
- __metadata("design:paramtypes", [WlcmTableSelectionModel, Object])
44
- ], WlcmTableRowActionsComponent);
45
- export { WlcmTableRowActionsComponent };
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: WlcmTableRowActionsComponent, isStandalone: true, selector: "wlcm-table-row-actions", inputs: { isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChanged: "selectionChanged" }, host: { classAttribute: "wlcm-table-row-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged.emit($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i1.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
15
+ }
46
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, decorators: [{
47
17
  type: Component,
48
- args: [{ selector: 'wlcm-table-row-actions', host: { class: 'wlcm-table-row-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule], template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n" }]
49
- }], ctorParameters: () => [{ type: i1.WlcmTableSelectionModel }, { type: undefined, decorators: [{
50
- type: Inject,
51
- args: [WLCM_TABLE_ROW_CONTEXT]
52
- }] }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbnMvdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbnMvdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7OztBQVdwQixJQUFNLDRCQUE0QixHQUFsQyxNQUFNLDRCQUE0QjtJQU92QyxZQUNVLGNBQXVDLEVBQ1AsVUFBa0M7UUFEbEUsbUJBQWMsR0FBZCxjQUFjLENBQXlCO1FBQ1AsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFObkUsWUFBTyxHQUFnQixJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2RCxxQkFBZ0IsR0FBOEIsTUFBTSxFQUFFLENBQUM7UUFNckQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpFLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBa0I7UUFDdkIsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQjthQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUF1QixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2xFLFNBQVMsQ0FBQyxDQUFDLFVBQW1CLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FqQ1UsNEJBQTRCLHlEQVM3QixzQkFBc0I7a0dBVHJCLDRCQUE0Qix5TENuQnpDLGtHQUlBLHlERFdZLFlBQVksOEJBQUUsZUFBZSxzSUFBRSxtQkFBbUI7O0FBSWpELDRCQUE0QjtJQVR4QyxZQUFZLEVBQUU7cUNBaUJhLHVCQUF1QjtHQVJ0Qyw0QkFBNEIsQ0FrQ3hDOzsyRkFsQ1ksNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNFLHdCQUF3QixRQUM1QixFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxjQUM3QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixDQUFDOzswQkFhMUQsTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT3V0cHV0RW1pdHRlclJlZiwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXbGNtVGFibGVTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHsgV0xDTV9UQUJMRV9ST1dfQ09OVEVYVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy90YWJsZS1yb3cuY29uc3RhbnRzJztcbmltcG9ydCB7IFdsY21UYWJsZVJvd0NvbnRleHQgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtcm93Lm1vZGVscyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgV2xjbUZvcm1zTW9kdWxlIH0gZnJvbSAnQHdsY20vYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2xjbS10YWJsZS1yb3ctYWN0aW9ucycsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLXRhYmxlLXJvdy1hY3Rpb25zJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBXbGNtRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVSb3dBY3Rpb25zQ29tcG9uZW50PFQgPSB1bmtub3duPiB7XG4gIHJvd0lkITogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlKTtcblxuICBzZWxlY3Rpb25DaGFuZ2VkOiBPdXRwdXRFbWl0dGVyUmVmPGJvb2xlYW4+ID0gb3V0cHV0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb25Nb2RlbDogV2xjbVRhYmxlU2VsZWN0aW9uTW9kZWwsXG4gICAgQEluamVjdChXTENNX1RBQkxFX1JPV19DT05URVhUKSBwcml2YXRlIHJvd0NvbnRleHQ6IFdsY21UYWJsZVJvd0NvbnRleHQ8VD5cbiAgKSB7XG4gICAgdGhpcy5yb3dJZCA9IHRoaXMucm93Q29udGV4dC5zZWxlY3RJZCh0aGlzLnJvd0NvbnRleHQuJGltcGxpY2l0KTtcblxuICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCk7XG4gIH1cblxuICB0b2dnbGUoaXNDaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0T25lKHRoaXMucm93SWQpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RPbmUodGhpcy5yb3dJZCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbkNoYW5nZWRcbiAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uOiBTZXQ8c3RyaW5nPikgPT4gY29sbGVjdGlvbi5oYXModGhpcy5yb3dJZCkpKVxuICAgICAgLnN1YnNjcmliZSgoaXNTZWxlY3RlZDogYm9vbGVhbikgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaXNTZWxlY3RlZCk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQoaXNTZWxlY3RlZCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPHdsY20tY2hlY2tib3hcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAoY2hhbmdlZCk9XCJ0b2dnbGUoJGV2ZW50KVwiXG4+PC93bGNtLWNoZWNrYm94PlxuIl19
18
+ args: [{ selector: 'wlcm-table-row-actions', host: { class: 'wlcm-table-row-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, FormsModule], template: "<wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged.emit($event)\"\n></wlcm-checkbox>\n" }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbnMvdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtcm93LWFjdGlvbnMvdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVUvQyxNQUFNLE9BQU8sNEJBQTRCO0lBUnpDO1FBU0UsZUFBVSxHQUF5QixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFcEQscUJBQWdCLEdBQThCLE1BQU0sRUFBRSxDQUFDO0tBQ3hEOzhHQUpZLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDJVQ2R6QyxrSEFJQSx5RERNWSxZQUFZLDhCQUFFLGVBQWUsc0lBQUUsV0FBVzs7MkZBSXpDLDRCQUE0QjtrQkFSeEMsU0FBUzsrQkFDRSx3QkFBd0IsUUFDNUIsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsY0FDN0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0U2lnbmFsLCBPdXRwdXRFbWl0dGVyUmVmLCBpbnB1dCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgV2xjbUZvcm1zTW9kdWxlIH0gZnJvbSAnQHdsY20vYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3bGNtLXRhYmxlLXJvdy1hY3Rpb25zJyxcbiAgaG9zdDogeyBjbGFzczogJ3dsY20tdGFibGUtcm93LWFjdGlvbnMnIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFdsY21Gb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGFibGUtcm93LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtVGFibGVSb3dBY3Rpb25zQ29tcG9uZW50PFQgPSB1bmtub3duPiB7XG4gIGlzU2VsZWN0ZWQ6IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQucmVxdWlyZWQoKTtcblxuICBzZWxlY3Rpb25DaGFuZ2VkOiBPdXRwdXRFbWl0dGVyUmVmPGJvb2xlYW4+ID0gb3V0cHV0KCk7XG59XG4iLCI8d2xjbS1jaGVja2JveFxuICBbbmdNb2RlbF09XCJpc1NlbGVjdGVkKClcIlxuICAoY2hhbmdlZCk9XCJzZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4+PC93bGNtLWNoZWNrYm94PlxuIl19
@@ -1,9 +1,40 @@
1
- import { Directive } from '@angular/core';
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ElementRef, NgZone, input, output } from '@angular/core';
3
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
4
+ import { debounceTime, fromEvent } from 'rxjs';
2
5
  import * as i0 from "@angular/core";
3
- export class WlcmScrollableTableContainerDirective {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmScrollableTableContainerDirective, isStandalone: true, selector: "[wlcmScrollableTableContainer]", host: { classAttribute: "wlcm-scrollable-table-container" }, ngImport: i0 }); }
6
- }
6
+ let WlcmScrollableTableContainerDirective = class WlcmScrollableTableContainerDirective {
7
+ constructor(zone, elementRef) {
8
+ this.zone = zone;
9
+ this.elementRef = elementRef;
10
+ this.scrollDownOffsetPercent = input(0.8);
11
+ this.scrolledDown = output();
12
+ this.handleScrolling();
13
+ }
14
+ get element() {
15
+ return this.elementRef.nativeElement;
16
+ }
17
+ handleScrolling() {
18
+ this.zone.runOutsideAngular(() => {
19
+ fromEvent(this.element, 'scroll')
20
+ .pipe(debounceTime(50))
21
+ .pipe(untilDestroyed(this))
22
+ .subscribe(() => {
23
+ if (this.element.scrollHeight * this.scrollDownOffsetPercent() <=
24
+ this.element.scrollTop + this.element.clientHeight) {
25
+ this.zone.run(() => this.scrolledDown.emit());
26
+ }
27
+ });
28
+ });
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.5", type: WlcmScrollableTableContainerDirective, isStandalone: true, selector: "[wlcmScrollableTableContainer]", inputs: { scrollDownOffsetPercent: { classPropertyName: "scrollDownOffsetPercent", publicName: "scrollDownOffsetPercent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrolledDown: "scrolledDown" }, host: { classAttribute: "wlcm-scrollable-table-container" }, ngImport: i0 }); }
32
+ };
33
+ WlcmScrollableTableContainerDirective = __decorate([
34
+ UntilDestroy(),
35
+ __metadata("design:paramtypes", [NgZone, ElementRef])
36
+ ], WlcmScrollableTableContainerDirective);
37
+ export { WlcmScrollableTableContainerDirective };
7
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, decorators: [{
8
39
  type: Directive,
9
40
  args: [{
@@ -11,5 +42,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
11
42
  host: { class: 'wlcm-scrollable-table-container' },
12
43
  standalone: true,
13
44
  }]
14
- }] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS10YWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsYWJsZS10YWJsZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTzFDLE1BQU0sT0FBTyxxQ0FBcUM7OEdBQXJDLHFDQUFxQztrR0FBckMscUNBQXFDOzsyRkFBckMscUNBQXFDO2tCQUxqRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQ0FBZ0M7b0JBQzFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsRUFBRTtvQkFDbEQsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3bGNtU2Nyb2xsYWJsZVRhYmxlQ29udGFpbmVyXScsXG4gIGhvc3Q6IHsgY2xhc3M6ICd3bGNtLXNjcm9sbGFibGUtdGFibGUtY29udGFpbmVyJyB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBXbGNtU2Nyb2xsYWJsZVRhYmxlQ29udGFpbmVyRGlyZWN0aXZlIHt9XG4iXX0=
45
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS10YWJsZS1jb250YWluZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy90YWJsZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2Nyb2xsYWJsZS10YWJsZS1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZSxNQUFNLEVBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFReEMsSUFBTSxxQ0FBcUMsR0FBM0MsTUFBTSxxQ0FBcUM7SUFLaEQsWUFBb0IsSUFBWSxFQUFVLFVBQW1DO1FBQXpELFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUo3RSw0QkFBdUIsR0FBd0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFELGlCQUFZLEdBQTJCLE1BQU0sRUFBRSxDQUFDO1FBRzlDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDO2lCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQ0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixFQUFFO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFDbEQsQ0FBQztvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzQlUscUNBQXFDO2tHQUFyQyxxQ0FBcUM7O0FBQXJDLHFDQUFxQztJQU5qRCxZQUFZLEVBQUU7cUNBV2EsTUFBTSxFQUFzQixVQUFVO0dBTHJELHFDQUFxQyxDQTRCakQ7OzJGQTVCWSxxQ0FBcUM7a0JBTGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLGlDQUFpQyxFQUFFO29CQUNsRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0U2lnbmFsLCBOZ1pvbmUsIE91dHB1dEVtaXR0ZXJSZWYsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcblxuQFVudGlsRGVzdHJveSgpXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbd2xjbVNjcm9sbGFibGVUYWJsZUNvbnRhaW5lcl0nLFxuICBob3N0OiB7IGNsYXNzOiAnd2xjbS1zY3JvbGxhYmxlLXRhYmxlLWNvbnRhaW5lcicgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgV2xjbVNjcm9sbGFibGVUYWJsZUNvbnRhaW5lckRpcmVjdGl2ZSB7XG4gIHNjcm9sbERvd25PZmZzZXRQZXJjZW50OiBJbnB1dFNpZ25hbDxudW1iZXI+ID0gaW5wdXQoMC44KTtcblxuICBzY3JvbGxlZERvd246IE91dHB1dEVtaXR0ZXJSZWY8dm9pZD4gPSBvdXRwdXQoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSwgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMuaGFuZGxlU2Nyb2xsaW5nKCk7XG4gIH1cblxuICBwcml2YXRlIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNjcm9sbGluZygpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudCwgJ3Njcm9sbCcpXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCkpXG4gICAgICAgIC5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICogdGhpcy5zY3JvbGxEb3duT2Zmc2V0UGVyY2VudCgpIDw9XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc2Nyb2xsVG9wICsgdGhpcy5lbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnNjcm9sbGVkRG93bi5lbWl0KCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,15 +1,16 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injector, Pipe, Component, Inject, output, HostBinding, input, effect, Directive, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common';
2
+ import { InjectionToken, inject, Injector, Pipe, Component, Inject, input, output, signal, ElementRef, HostBinding, effect, NgZone, Directive, NgModule } from '@angular/core';
3
+ import * as i2$1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { BehaviorSubject, map } from 'rxjs';
5
+ import { BehaviorSubject, map, filter, fromEvent, debounceTime } from 'rxjs';
6
6
  import { __decorate, __metadata } from 'tslib';
7
7
  import * as i2 from '@wlcm/angular/forms';
8
8
  import { WlcmFormsModule } from '@wlcm/angular/forms';
9
9
  import * as i3 from '@angular/forms';
10
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
10
+ import { FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';
11
11
  import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
12
12
  import { RxLet } from '@rx-angular/template/let';
13
+ import { WlcmLoaderComponent } from '@wlcm/angular/core';
13
14
 
14
15
  class WlcmTableSelectionModel {
15
16
  constructor() {
@@ -116,7 +117,7 @@ class WlcmTableHeadComponent {
116
117
  this.tableConfig = tableConfig;
117
118
  }
118
119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, deps: [{ token: WLCM_TABLE_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableHeadComponent, isStandalone: true, selector: "wlcm-table-head", host: { classAttribute: "wlcm-table-head" }, ngImport: i0, template: "<wlcm-table-head-actions\n *ngIf=\"tableConfig.selectable\"\n></wlcm-table-head-actions>\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableHeadActionsComponent, selector: "wlcm-table-head-actions" }] }); }
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableHeadComponent, isStandalone: true, selector: "wlcm-table-head", host: { classAttribute: "wlcm-table-head" }, ngImport: i0, template: "<wlcm-table-head-actions\n *ngIf=\"tableConfig.selectable\"\n></wlcm-table-head-actions>\n\n<ng-content select=\"wlcm-table-head-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableHeadActionsComponent, selector: "wlcm-table-head-actions" }] }); }
120
121
  }
121
122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableHeadComponent, decorators: [{
122
123
  type: Component,
@@ -126,79 +127,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
126
127
  args: [WLCM_TABLE_CONFIG]
127
128
  }] }] });
128
129
 
129
- let WlcmTableRowActionsComponent = class WlcmTableRowActionsComponent {
130
- constructor(selectionModel, rowContext) {
130
+ class WlcmTableRowActionsComponent {
131
+ constructor() {
132
+ this.isSelected = input.required();
133
+ this.selectionChanged = output();
134
+ }
135
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.5", type: WlcmTableRowActionsComponent, isStandalone: true, selector: "wlcm-table-row-actions", inputs: { isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectionChanged: "selectionChanged" }, host: { classAttribute: "wlcm-table-row-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged.emit($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
137
+ }
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, decorators: [{
139
+ type: Component,
140
+ args: [{ selector: 'wlcm-table-row-actions', host: { class: 'wlcm-table-row-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, FormsModule], template: "<wlcm-checkbox\n [ngModel]=\"isSelected()\"\n (changed)=\"selectionChanged.emit($event)\"\n></wlcm-checkbox>\n" }]
141
+ }] });
142
+
143
+ let WlcmTableRowComponent = class WlcmTableRowComponent {
144
+ get first() {
145
+ return this.rowContext.first;
146
+ }
147
+ get last() {
148
+ return this.rowContext.last;
149
+ }
150
+ constructor(elementRef, selectionModel, tableConfig, rowContext) {
151
+ this.elementRef = elementRef;
131
152
  this.selectionModel = selectionModel;
153
+ this.tableConfig = tableConfig;
132
154
  this.rowContext = rowContext;
133
- this.control = new FormControl(false);
134
- this.selectionChanged = output();
155
+ this.isSelected = signal(false);
135
156
  this.rowId = this.rowContext.selectId(this.rowContext.$implicit);
136
- this.handleSelectionChange();
157
+ this.handleSelectionChanges();
137
158
  }
138
- toggle(isChecked) {
139
- if (isChecked) {
159
+ selectionChanged(isSelected) {
160
+ if (isSelected) {
140
161
  return this.selectionModel.selectOne(this.rowId);
141
162
  }
142
163
  this.selectionModel.deselectOne(this.rowId);
164
+ this.isSelected.set(isSelected);
143
165
  }
144
- handleSelectionChange() {
166
+ handleSelectionChanges() {
145
167
  this.selectionModel.selectionChanged
146
168
  .pipe(untilDestroyed(this))
147
169
  .pipe(map((collection) => collection.has(this.rowId)))
170
+ .pipe(filter((isSelected) => isSelected !== this.isSelected()))
148
171
  .subscribe((isSelected) => {
149
- this.control.setValue(isSelected);
150
- this.selectionChanged.emit(isSelected);
172
+ this.isSelected.set(isSelected);
173
+ if (isSelected) {
174
+ this.elementRef.nativeElement.classList.add('wlcm-table-row-selected');
175
+ }
176
+ else {
177
+ this.elementRef.nativeElement.classList.remove('wlcm-table-row-selected');
178
+ }
151
179
  });
152
180
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, deps: [{ token: WlcmTableSelectionModel }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowActionsComponent, isStandalone: true, selector: "wlcm-table-row-actions", outputs: { selectionChanged: "selectionChanged" }, host: { classAttribute: "wlcm-table-row-actions" }, ngImport: i0, template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: WlcmFormsModule }, { kind: "component", type: i2.WlcmCheckboxComponent, selector: "wlcm-checkbox", outputs: ["changed"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
181
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: i0.ElementRef }, { token: WlcmTableSelectionModel }, { token: WLCM_TABLE_CONFIG }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n [isSelected]=\"isSelected()\"\n (selectionChanged)=\"selectionChanged($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions", inputs: ["isSelected"], outputs: ["selectionChanged"] }] }); }
155
183
  };
156
- WlcmTableRowActionsComponent = __decorate([
184
+ WlcmTableRowComponent = __decorate([
157
185
  UntilDestroy(),
158
- __metadata("design:paramtypes", [WlcmTableSelectionModel, Object])
159
- ], WlcmTableRowActionsComponent);
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowActionsComponent, decorators: [{
161
- type: Component,
162
- args: [{ selector: 'wlcm-table-row-actions', host: { class: 'wlcm-table-row-actions' }, standalone: true, imports: [CommonModule, WlcmFormsModule, ReactiveFormsModule], template: "<wlcm-checkbox\n [formControl]=\"control\"\n (changed)=\"toggle($event)\"\n></wlcm-checkbox>\n" }]
163
- }], ctorParameters: () => [{ type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
164
- type: Inject,
165
- args: [WLCM_TABLE_ROW_CONTEXT]
166
- }] }] });
167
-
168
- class WlcmTableRowComponent {
169
- get isSelected() {
170
- return this._isSelected;
171
- }
172
- get first() {
173
- return this.rowContext.first;
174
- }
175
- get last() {
176
- return this.rowContext.last;
177
- }
178
- constructor(tableConfig, rowContext) {
179
- this.tableConfig = tableConfig;
180
- this.rowContext = rowContext;
181
- this._isSelected = false;
182
- }
183
- handleSelectionChange(isSelected) {
184
- this._isSelected = isSelected;
185
- }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, deps: [{ token: WLCM_TABLE_CONFIG }, { token: WLCM_TABLE_ROW_CONTEXT }], target: i0.ɵɵFactoryTarget.Component }); }
187
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", type: WlcmTableRowComponent, isStandalone: true, selector: "wlcm-table-row", host: { properties: { "class.wlcm-table-row-selected": "this.isSelected", "class.wlcm-table-row-first": "this.first", "class.wlcm-table-row-last": "this.last" }, classAttribute: "wlcm-table-row" }, ngImport: i0, template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WlcmTableRowActionsComponent, selector: "wlcm-table-row-actions", outputs: ["selectionChanged"] }] }); }
188
- }
186
+ __metadata("design:paramtypes", [ElementRef,
187
+ WlcmTableSelectionModel, Object, Object])
188
+ ], WlcmTableRowComponent);
189
189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableRowComponent, decorators: [{
190
190
  type: Component,
191
- args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent], template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n (selectionChanged)=\"handleSelectionChange($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
192
- }], ctorParameters: () => [{ type: undefined, decorators: [{
191
+ args: [{ selector: 'wlcm-table-row', host: { class: 'wlcm-table-row' }, standalone: true, imports: [CommonModule, WlcmTableRowActionsComponent], template: "<wlcm-table-row-actions\n *ngIf=\"tableConfig.selectable\"\n [isSelected]=\"isSelected()\"\n (selectionChanged)=\"selectionChanged($event)\"\n></wlcm-table-row-actions>\n\n<ng-content select=\"wlcm-table-row-data\"></ng-content>\n" }]
192
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: WlcmTableSelectionModel }, { type: undefined, decorators: [{
193
193
  type: Inject,
194
194
  args: [WLCM_TABLE_CONFIG]
195
195
  }] }, { type: undefined, decorators: [{
196
196
  type: Inject,
197
197
  args: [WLCM_TABLE_ROW_CONTEXT]
198
- }] }], propDecorators: { isSelected: [{
199
- type: HostBinding,
200
- args: ['class.wlcm-table-row-selected']
201
- }], first: [{
198
+ }] }], propDecorators: { first: [{
202
199
  type: HostBinding,
203
200
  args: ['class.wlcm-table-row-first']
204
201
  }], last: [{
@@ -226,7 +223,7 @@ class WlcmTableComponent {
226
223
  effect(() => this.selectionModel.updateCollection(this.rows().map(this.selectId())));
227
224
  }
228
225
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, deps: [{ token: WlcmTableSelectionModel }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableComponent, isStandalone: true, selector: "wlcm-table", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, headTemplate: { classPropertyName: "headTemplate", publicName: "headTemplate", isSignal: true, isRequired: true, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "wlcm-table" }, providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: WlcmTableRowInjectorPipe, name: "wlcmTableRowInjector" }, { kind: "component", type: WlcmTableRowSpacerComponent, selector: "wlcm-table-row-spacer" }, { kind: "directive", type: RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }] }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: WlcmTableComponent, isStandalone: true, selector: "wlcm-table", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, headTemplate: { classPropertyName: "headTemplate", publicName: "headTemplate", isSignal: true, isRequired: true, transformFunction: null }, rowTemplate: { classPropertyName: "rowTemplate", publicName: "rowTemplate", isSignal: true, isRequired: true, transformFunction: null }, selectId: { classPropertyName: "selectId", publicName: "selectId", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "wlcm-table" }, providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], ngImport: i0, template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: WlcmTableRowInjectorPipe, name: "wlcmTableRowInjector" }, { kind: "component", type: WlcmTableRowSpacerComponent, selector: "wlcm-table-row-spacer" }, { kind: "directive", type: RxLet, selector: "[rxLet]", inputs: ["rxLet", "rxLetStrategy", "rxLetComplete", "rxLetError", "rxLetSuspense", "rxLetContextTrigger", "rxLetCompleteTrigger", "rxLetErrorTrigger", "rxLetSuspenseTrigger", "rxLetNextTrigger", "rxLetRenderCallback", "rxLetParent", "rxLetPatchZone"], outputs: ["rendered"] }] }); }
230
227
  }
231
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmTableComponent, decorators: [{
232
229
  type: Component,
@@ -236,6 +233,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
236
233
  WlcmTableRowComponent,
237
234
  WlcmTableRowInjectorPipe,
238
235
  WlcmTableRowSpacerComponent,
236
+ WlcmLoaderComponent,
239
237
  RxLet,
240
238
  ], providers: [{ provide: WlcmTableSelectionModel, useClass: DefaultWlcmTableSelectionModel }], template: "<ng-container\n *ngTemplateOutlet=\"headTemplate(); injector: injector\"\n></ng-container>\n\n<tbody>\n @for (row of rows(); track row; let index = $index; let first = $first; let\n last = $last) {\n <wlcm-table-row-spacer></wlcm-table-row-spacer>\n\n <ng-container\n *rxLet=\"\n {\n $implicit: row,\n selectId: selectId(),\n index: index,\n first: first,\n last: last,\n };\n let context\n \"\n >\n <ng-container\n *ngTemplateOutlet=\"\n rowTemplate();\n context: context;\n injector: context | wlcmTableRowInjector\n \"\n >\n </ng-container>\n </ng-container>\n\n }\n</tbody>\n" }]
241
239
  }], ctorParameters: () => [{ type: WlcmTableSelectionModel }] });
@@ -258,10 +256,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
258
256
  args: [{ selector: 'wlcm-table-row-data', host: { class: 'wlcm-table-row-data' }, standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>\n" }]
259
257
  }] });
260
258
 
261
- class WlcmScrollableTableContainerDirective {
262
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
263
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: WlcmScrollableTableContainerDirective, isStandalone: true, selector: "[wlcmScrollableTableContainer]", host: { classAttribute: "wlcm-scrollable-table-container" }, ngImport: i0 }); }
264
- }
259
+ let WlcmScrollableTableContainerDirective = class WlcmScrollableTableContainerDirective {
260
+ constructor(zone, elementRef) {
261
+ this.zone = zone;
262
+ this.elementRef = elementRef;
263
+ this.scrollDownOffsetPercent = input(0.8);
264
+ this.scrolledDown = output();
265
+ this.handleScrolling();
266
+ }
267
+ get element() {
268
+ return this.elementRef.nativeElement;
269
+ }
270
+ handleScrolling() {
271
+ this.zone.runOutsideAngular(() => {
272
+ fromEvent(this.element, 'scroll')
273
+ .pipe(debounceTime(50))
274
+ .pipe(untilDestroyed(this))
275
+ .subscribe(() => {
276
+ if (this.element.scrollHeight * this.scrollDownOffsetPercent() <=
277
+ this.element.scrollTop + this.element.clientHeight) {
278
+ this.zone.run(() => this.scrolledDown.emit());
279
+ }
280
+ });
281
+ });
282
+ }
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
284
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "17.3.5", type: WlcmScrollableTableContainerDirective, isStandalone: true, selector: "[wlcmScrollableTableContainer]", inputs: { scrollDownOffsetPercent: { classPropertyName: "scrollDownOffsetPercent", publicName: "scrollDownOffsetPercent", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { scrolledDown: "scrolledDown" }, host: { classAttribute: "wlcm-scrollable-table-container" }, ngImport: i0 }); }
285
+ };
286
+ WlcmScrollableTableContainerDirective = __decorate([
287
+ UntilDestroy(),
288
+ __metadata("design:paramtypes", [NgZone, ElementRef])
289
+ ], WlcmScrollableTableContainerDirective);
265
290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: WlcmScrollableTableContainerDirective, decorators: [{
266
291
  type: Directive,
267
292
  args: [{
@@ -269,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
269
294
  host: { class: 'wlcm-scrollable-table-container' },
270
295
  standalone: true,
271
296
  }]
272
- }] });
297
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }] });
273
298
 
274
299
  const publicComponents = [
275
300
  WlcmTableComponent,