{"version":3,"file":"onepoint-yap-dashboard-widgets-widget-table.mjs","sources":["../../../../projects/onepoint-yap/dashboard/widgets/widget-table/resizable/resizable.directive.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/resizable/resizable.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/resizable/resizable.component.html","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/style/css.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/expand-value/format-number.pipe.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/expand-value/expand-value.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/expand-value/expand-value.component.html","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/expand-value/detach-row.directive.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/get-value/get-value.pipe.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/component/widget-table.component.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/component/widget-table.component.html","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/i18n/en.translations.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/i18n/fr.translations.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/widget-table.module.ts","../../../../projects/onepoint-yap/dashboard/widgets/widget-table/onepoint-yap-dashboard-widgets-widget-table.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Output } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n@Directive({\n  selector: '[resizable]'\n})\nexport class ResizableDirective {\n  @Output()\n  readonly resizable = fromEvent<MouseEvent>(this.elementRef.nativeElement, 'mousedown').pipe(\n    tap((e) => e.preventDefault()),\n    switchMap(() => {\n      const domRect = this.elementRef.nativeElement.closest('th')?.getBoundingClientRect();\n      const width = domRect?.width ?? 0;\n      const right = domRect?.right ?? 0;\n\n      return fromEvent<MouseEvent>(this.documentRef, 'mousemove').pipe(\n        map(({ clientX }) => width + clientX - right),\n        distinctUntilChanged(),\n        takeUntil(fromEvent(this.documentRef, 'mouseup'))\n      );\n    })\n  );\n\n  constructor(\n    @Inject(DOCUMENT) private readonly documentRef: Document,\n    @Inject(ElementRef)\n    private readonly elementRef: ElementRef<HTMLElement>\n  ) {}\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n  selector: 'th[resizable]',\n  templateUrl: './resizable.component.html'\n})\nexport class ResizableComponent {\n  @HostBinding('style.width.px')\n  width: number | null = null;\n\n  onResize(width: number) {\n    this.width = width;\n  }\n}\n","<div class=\"wrapper\">\n  <div class=\"content\">\n    <ng-content></ng-content>\n  </div>\n  <div class=\"bar\" (resizable)=\"onResize($event)\"></div>\n</div>\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n  selector: 'yap-widget-table-css',\n  template: '',\n  styleUrls: ['./_o-widget-table.scss'],\n  encapsulation: ViewEncapsulation.None\n})\nexport class YapWidgetTableCssComponent {}\n","import { DecimalPipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { ValueType, YapI18nService } from '@onepoint-yap/dashboard';\n\n@Pipe({ name: 'formatNumber' })\nexport class FormatNumberPipe implements PipeTransform {\n  constructor(private decimalPipe: DecimalPipe, private i18nService: YapI18nService) {}\n\n  transform(toDisplay?: ValueType | ValueType[] | null, ...args: any[]): any {\n    const result = { isNumber: false, text: `${!toDisplay ? '' : toDisplay}` };\n    if (typeof toDisplay === 'number') {\n      result.isNumber = true;\n      result.text =\n        this.decimalPipe\n          .transform(toDisplay, '1.0-0')\n          ?.replace(/,/g, this.i18nService.instant('@yap.format.thousands'))\n          ?.replace(/\\./g, this.i18nService.instant('@yap.format.decimal')) || `${toDisplay}`;\n    }\n    return result;\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { MultiMultipointValue, MultipointValue, PointValue, ValueType } from '@onepoint-yap/dashboard';\n\n@Component({\n  selector: 'yap-expand-value',\n  templateUrl: './expand-value.component.html'\n})\nexport class ExpandValueComponent {\n  isArray: boolean = false;\n  firstValue?: string | number | PointValue | MultipointValue | MultiMultipointValue | ValueType[] | null | undefined;\n  rest: (string | number | PointValue | MultipointValue | MultiMultipointValue | ValueType[] | null | undefined)[] = [];\n  @Input() set value(toDisplay: ValueType | ValueType[] | null) {\n    if (Array.isArray(toDisplay) && toDisplay.length > 1) {\n      this.isArray = true;\n      const [firstValue, ...rest] = toDisplay;\n      this.firstValue = firstValue;\n      this.rest = rest;\n    } else {\n      this.isArray = false;\n      this.firstValue = toDisplay;\n      this.rest = [];\n    }\n  }\n}\n","<div class=\"a-expandable-value\" [class.-right]=\"(firstValue | formatNumber).isNumber\">\n  <span class=\"a-expandable-value__initial\">{{ (firstValue | formatNumber).text }}{{ isArray ? ' (*)' : '' }}</span>\n  <div class=\"a-expandable-value__expanded\" *ngIf=\"isArray\">\n    <div *ngFor=\"let value of rest\">\n      {{ (value | formatNumber).text }}\n    </div>\n  </div>\n</div>\n","import {\n  AfterViewChecked,\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  HostListener,\n  Output\n} from '@angular/core';\n\n@Directive({\n  selector: '[detachRow]'\n})\nexport class DetachRowDirective implements AfterViewChecked {\n  @HostListener('click', ['$event']) clickEvt($event: MouseEvent): any {\n    this.cdr.reattach();\n    this.selectedValue.emit($event);\n  }\n\n  @Output() selectedValue: EventEmitter<MouseEvent> = new EventEmitter();\n\n  constructor(private el: ElementRef, private cdr: ChangeDetectorRef) {}\n\n  ngAfterViewChecked() {\n    this.cdr.detach();\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { ClassSelectors, FieldSelectors, FieldType, Item, ItemUtils } from '@onepoint-yap/dashboard';\nimport { combineLatestWith } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\n@Pipe({ name: 'getValue' })\nexport class GetValuePipe implements PipeTransform {\n  constructor(private store: Store<any>) {}\n\n  transform(value: Item, ...args: any[]): any {\n    return this.store.select(ClassSelectors.classes).pipe(\n      combineLatestWith(this.store.select(FieldSelectors.fields)),\n      filter(([classes, fields]) => !!classes && classes.length > 0),\n      map(([classes, fields]) => {\n        const oClass = classes.find((cl) => cl.id === value.oClass);\n        const attribute = oClass?.attributes.find((attr) => attr.name === args[0]);\n        if (!!attribute) {\n          const field = fields.find((f) => f.id === attribute.field);\n          if (\n            field &&\n            [\n              FieldType.POINT,\n              FieldType.MULTIPOINT,\n              FieldType.LINE,\n              FieldType.MULTILINE,\n              FieldType.MULTILINE,\n              FieldType.POLYGON,\n              FieldType.MULTIPOLYGON\n            ].includes(field.type)\n          ) {\n            // @ts-ignore\n            const coordinates = JSON.stringify(ItemUtils.getAttributeCalculatedValue(value, attribute)?.coordinates);\n            return coordinates.length > 40 ? `${coordinates.substring(0, 40)}...` : coordinates;\n          }\n          return ItemUtils.getAttributeCalculatedValue(value, attribute);\n        }\n        return ItemUtils.getAttributeCalculatedValue(value, args[0]);\n      })\n    );\n  }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n  baseItemProperties,\n  Class,\n  ClassActions,\n  ClassSelectors,\n  ColumnDefinition,\n  ConfigSelectors,\n  ContextMenuActions,\n  ContextMenuSelectors,\n  DashboardActions,\n  DashboardSelectors,\n  DataWidgetComponent,\n  Field,\n  FieldSelectors,\n  FieldType,\n  Item,\n  ItemUtils,\n  OrderValue,\n  ResultOrder,\n  SearchSelectors,\n  TableWidgetOptions,\n  WIDGET_HEADER_HEIGHT\n} from '@onepoint-yap/dashboard';\nimport equal from 'fast-deep-equal/es6';\nimport { combineLatest, delay, Observable, take } from 'rxjs';\nimport { filter, map, tap, withLatestFrom } from 'rxjs/operators';\n\n@Component({\n  selector: 'yap-widget-table',\n  templateUrl: './widget-table.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WidgetTableComponent extends DataWidgetComponent {\n  options$: Observable<TableWidgetOptions>;\n  columns$: Observable<ColumnDefinition[]>;\n  optionsCopy?: TableWidgetOptions;\n  fields$: Observable<Field[]>;\n  selectedIds$: Observable<string[]>;\n  Array = Array;\n  currentClasses: string[] = [];\n  selectedIds: string[] = [];\n  WIDGET_HEADER_HEIGHT = WIDGET_HEADER_HEIGHT;\n  private classes$: Observable<Class[]>;\n  properties$: Observable<string[]>;\n  isLoading$: Observable<boolean>;\n  allSelected$: Observable<boolean>;\n  areAllSelected: boolean = false;\n  allIds: string[] = [];\n  contextMenuClickedId: string = '';\n  isContextMenuOpened$: Observable<boolean>;\n  quickOrder$: Observable<ResultOrder | undefined>;\n\n  constructor(store: Store<any>, el: ElementRef, private cdr: ChangeDetectorRef) {\n    super(store, el);\n    this.options$ = this.manifest$.pipe(map((manifest) => manifest.options as TableWidgetOptions));\n\n    this.subscriptions.add(\n      this.options$.pipe(filter((opt) => !!opt)).subscribe((options) => {\n        this.optionsCopy = { ...(JSON.parse(JSON.stringify(options)) as TableWidgetOptions) };\n      })\n    );\n\n    this.subscriptions.add(this.allItems$.subscribe((allObjects) => (this.allIds = allObjects.map((obj) => obj.id))));\n\n    this.isLoading$ = combineLatest([store.select(SearchSelectors.searchLoading), this.datasourceIds$]).pipe(\n      map(([searchLoading, datasourceIds]) => {\n        return (searchLoading ?? []).filter((id) => (datasourceIds ?? []).includes(id))?.length > 0;\n      })\n    );\n\n    this.isContextMenuOpened$ = this.store.select(ContextMenuSelectors.opened);\n\n    this.subscriptions.add(\n      this.resultSet$\n        .pipe(\n          filter((rs) => !!rs),\n          map((rs) => Object.keys(rs.items))\n        )\n        .subscribe((classes) => {\n          if (this.currentClasses.length > 0 && !equal(this.currentClasses, classes)) {\n            if (!this.optionsCopy) {\n              this.optionsCopy = {};\n            }\n            this.optionsCopy.columns = undefined;\n            this.emitManifest();\n          }\n          this.currentClasses = classes;\n        })\n    );\n\n    this.classes$ = this.store.select(ClassSelectors.classes);\n\n    this.fields$ = combineLatest([this.resultSet$, this.classes$, this.store.select(FieldSelectors.fields)]).pipe(\n      map(\n        ([resultSet, classes, fields]) =>\n          [\n            ...ItemUtils.getFieldsFromAvailabilityInResultSet(resultSet, classes, fields),\n            ...baseItemProperties.map((p) => ({ name: p, id: p } as Field))\n          ] as Field[]\n      ),\n      map((fields) => fields.filter((field) => field.type !== FieldType.RAW))\n    );\n\n    this.selectedIds$ = this.store.select(DashboardSelectors.selectedItemIds);\n\n    this.subscriptions.add(this.selectedIds$.subscribe((selectedIds) => this.selectedIds === selectedIds));\n\n    this.store.dispatch(ClassActions.load());\n\n    this.properties$ = this.resultSet$.pipe(\n      map((rs) => [...ItemUtils.getAttributesFromAvailabilityInResultSet(rs)]),\n      map((props) => {\n        const sortedProps = [...props];\n        sortedProps.sort((pA, pB) => pA.toLocaleLowerCase().localeCompare(pB.toLocaleLowerCase()));\n        return sortedProps;\n      })\n    );\n\n    this.columns$ = combineLatest([\n      this.options$,\n      this.resultSet$,\n      this.fields$,\n      this.classes$,\n      this.store.select(ConfigSelectors.tableDefaultAttributesDefinitions)\n    ]).pipe(\n      map(([options, resultSet, fields, classes, defs]) => {\n        if (!!options?.columns) {\n          return options.columns;\n        }\n\n        // Make unique set of all columns\n        const attributes = ItemUtils.getAttributesFromRs(resultSet, classes, fields, defs);\n        const uniqueProps = [...new Set(attributes.map((attr) => attr.name))];\n\n        return uniqueProps.map((property) => ({\n          property: property,\n          label: property,\n          attributeId: attributes.find((attr) => attr.name === property)?.id\n        })) as ColumnDefinition[];\n      })\n    );\n\n    this.subscriptions.add(\n      this.columns$.subscribe((columns) => {\n        this.optionsCopy = { columns: JSON.parse(JSON.stringify([...columns])) };\n      })\n    );\n\n    this.allSelected$ = combineLatest([this.selectedIds$, this.allItems$]).pipe(\n      map(([selectedIds, allObjects]) => {\n        const allIds = allObjects.map((object) => object.id);\n        return !allIds.find((id) => !selectedIds.includes(id));\n      }),\n      tap((allSelected) => (this.areAllSelected = allSelected))\n    );\n\n    this.quickOrder$ = combineLatest([this.store.select(DashboardSelectors.quickOrder), this.datasourceIds$]).pipe(\n      map(([order, nqs]) => (nqs.length === 1 ? order[nqs[0]] : undefined))\n    );\n\n    this.subscriptions.add(this.properties$.pipe(delay(10)).subscribe(() => this.cdr.detectChanges()));\n  }\n\n  emitManifest() {\n    this.manifestModified.emit({\n      widgetIndex: this.widgetIndex,\n      manifest: { ...this.manifest, options: this.optionsCopy }\n    });\n  }\n\n  addColumn() {\n    if (!this.optionsCopy?.columns) {\n      this.optionsCopy = { columns: [] };\n    }\n    this.optionsCopy.columns?.push({ label: '', property: '' });\n  }\n\n  changePropertyName($event: any, columnDef: ColumnDefinition) {\n    columnDef.property = $event;\n    setTimeout(() => {\n      this.cdr.detectChanges();\n    }, 100);\n  }\n\n  changeLabel($event: Event, columnDef: ColumnDefinition) {\n    // @ts-ignore\n    columnDef.label = $event.currentTarget.value;\n    setTimeout(() => {\n      this.cdr.detectChanges();\n    }, 100);\n  }\n\n  deleteColumn(i: number) {\n    this.optionsCopy?.columns?.splice(i, 1);\n    setTimeout(() => {\n      this.cdr.detectChanges();\n    }, 100);\n  }\n\n  selection($event: MouseEvent, item: Item) {\n    this.store.dispatch(DashboardActions.select({ id: item.id, cumulative: !$event.shiftKey }));\n    $event.preventDefault();\n    $event.stopPropagation();\n  }\n\n  contextMenu($event: MouseEvent, item: Item) {\n    if (this.manifest.contextMenu !== false) {\n      $event.stopPropagation();\n      $event.preventDefault();\n      this.store.dispatch(\n        ContextMenuActions.open({\n          itemId: item.id,\n          clientX: $event.clientX,\n          clientY: $event.clientY,\n          resultSet: Array.isArray(this.manifest.datasource) ? this.manifest.datasource[0] : this.manifest.datasource,\n          from: 'table'\n        })\n      );\n      this.contextMenuClickedId = item.id;\n    }\n  }\n\n  invertLayers(idx: number, idxWith: number) {\n    if (!!this.optionsCopy && !!this.optionsCopy.columns) {\n      const tmp = this.optionsCopy.columns[idxWith];\n      this.optionsCopy.columns[idxWith] = this.optionsCopy.columns[idx];\n      this.optionsCopy.columns[idx] = tmp;\n      setTimeout(() => {\n        this.cdr.detectChanges();\n      }, 100);\n    }\n  }\n\n  selectAll($event: any) {\n    if ($event) {\n      this.store.dispatch(DashboardActions.selectMany({ ids: this.allIds }));\n    } else {\n      this.store.dispatch(DashboardActions.selectMany({ ids: [] }));\n    }\n  }\n\n  setOrder(column: ColumnDefinition) {\n    this.datasourceIds$\n      .pipe(\n        take(1),\n        filter((nqs) => nqs.length === 1),\n        withLatestFrom(this.quickOrder$)\n      )\n      .subscribe(([nqs, actualOrder]) => {\n        this.store.dispatch(\n          DashboardActions.quickOrder({\n            datasourceId: nqs[0],\n            attribute: column.attributeId ?? '',\n            asc: this.nextOrder(column, actualOrder)\n          })\n        );\n      });\n  }\n\n  private nextOrder(column: ColumnDefinition, actualOrder: ResultOrder | undefined): OrderValue {\n    if (!actualOrder || actualOrder.attribute !== column.attributeId) {\n      return 'asc';\n    }\n    return actualOrder.asc === 'asc' ? 'desc' : actualOrder.asc === 'desc' ? undefined : 'asc';\n  }\n\n  trackObjects(index: number, item: Item) {\n    return item.id;\n  }\n}\n","<yap-widget-table-css></yap-widget-table-css>\n<div class=\"o-widget o-widget--table\">\n  <yap-widget-header\n    [datasourceIds$]=\"datasourceIds$\"\n    *ngIf=\"displayHeader$ | async\"\n    [widgetIndex]=\"widgetIndex\"\n    [manifest]=\"manifest\"\n    (manifestModified)=\"manifestModified.emit($event)\"\n    #header\n    [headerOptions]=\"(displayHeader$ | async) ?? {}\"\n  >\n    <yap-settings\n      (saveTriggered)=\"emitManifest()\"\n      [headerPresent]=\"displayHeader$ | async\"\n      [widgetIndex]=\"widgetIndex\"\n      [header]=\"header\"\n      [open$]=\"open$\"\n      class=\"o-settings\"\n    >\n      <div class=\"o-settings__popup__content__actions\">\n        <button type=\"button\" class=\"a-btn a-btn--icon-text -link-like\" (click)=\"addColumn()\">\n          <yap-icon iconSvg=\"post_add\"></yap-icon>\n          {{ '@yap.widget.table.addColumn' | i18n }}\n        </button>\n      </div>\n\n      <div *ngFor=\"let columnDef of optionsCopy?.columns; let i = index\" class=\"o-settings__popup__content__fields\">\n        <div class=\"o-settings__popup__content__fields__head\">\n          <div class=\"m-btn-group\">\n            <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"invertLayers(i, i - 1)\" *ngIf=\"i > 0\">\n              <yap-icon iconSvg=\"fleche_haut\"></yap-icon>\n              <span class=\"u-visually-hidden\">{{ '@yap.action.moveUp' | i18n }}</span>\n            </button>\n            <button\n              type=\"button\"\n              class=\"a-btn a-btn--icon-only\"\n              (click)=\"invertLayers(i, i + 1)\"\n              *ngIf=\"i < (optionsCopy?.columns?.length ?? 0) - 1\"\n            >\n              <yap-icon iconSvg=\"fleche_bas\"></yap-icon>\n              <span class=\"u-visually-hidden\">{{ '@yap.action.moveDown' | i18n }}</span>\n            </button>\n          </div>\n        </div>\n\n        <div class=\"o-settings__popup__content__fields__content\">\n          <div class=\"m-form-label-field\">\n            <label class=\"a-label\" for=\"table_property\">{{ '@yap.widget.table.property' | i18n }}</label>\n            <yap-select\n              (ngModelChange)=\"changePropertyName($event, columnDef)\"\n              [itemsAsOption]=\"false\"\n              [items]=\"properties$ | async\"\n              [ngModel]=\"columnDef.property\"\n              class=\"a-yap-select\"\n              id=\"table_property\"\n            ></yap-select>\n          </div>\n\n          <div class=\"m-form-label-field\">\n            <label class=\"a-label\" for=\"table_label\">{{ '@yap.widget.table.label' | i18n }}</label>\n            <input\n              id=\"table_label\"\n              class=\"a-form-field\"\n              type=\"text\"\n              (input)=\"changeLabel($event, columnDef)\"\n              [value]=\"columnDef.label\"\n            />\n          </div>\n        </div>\n        <button\n          (click)=\"deleteColumn(i)\"\n          aria-label=\"delete\"\n          type=\"button\"\n          class=\"a-btn a-btn--icon-text -link-like\"\n          data-func=\"delete\"\n        >\n          <yap-icon iconSvg=\"delete\" [width]=\"19\" [height]=\"19\"></yap-icon>\n          <span>{{ '@yap.widget.table.deleteColumn' | i18n }}</span>\n        </button>\n      </div>\n    </yap-settings>\n  </yap-widget-header>\n\n  <div class=\"a-table-wrapper\">\n    <div class=\"a-table-loading\" *ngIf=\"isLoading$ | async; else noLoading\">\n      <span class=\"a-table-loading__loader\"></span>\n    </div>\n    <ng-template #noLoading>\n      <ng-container *ngIf=\"(allItems$ | async) ?? [] as allObjects\">\n        <div class=\"no-result\" *ngIf=\"allObjects.length === 0\">\n          <img\n            class=\"no-result__search\"\n            src=\"../../../assets/svgs/yap_recherche_pas_de_resultat.svg\"\n            alt=\"{{ '@yap.widget.table.empty' | i18n }}\"\n            aria-hidden=\"true\"\n          />\n          <span class=\"no-result__text\">{{ '@yap.widget.table.empty' | i18n }}</span>\n        </div>\n\n        <ng-container *ngIf=\"(selectedIds$ | async) ?? [] as selectedIds\">\n          <ng-container *ngIf=\"(columns$ | async) ?? [] as columns\">\n            <table class=\"a-table\" [attr.aria-label]=\"'@yap.widget.table.description' | i18n\">\n              <thead>\n                <tr>\n                  <th *ngIf=\"allObjects?.length ?? 0 > 0\">\n                    <yap-checkbox [ngModel]=\"areAllSelected\" (ngModelChange)=\"selectAll($event)\"></yap-checkbox>\n                  </th>\n                  <th *ngFor=\"let column of columns; let i = index\" resizable (click)=\"setOrder(column)\">\n                    <span>{{ column.label }}</span>\n                    <ng-container *ngIf=\"quickOrder$ | async as quickOrder\">\n                      <ng-container *ngIf=\"quickOrder.attribute === column.attributeId\">\n                        <yap-icon\n                          [iconSvg]=\"quickOrder.asc ? 'chevron_top' : 'chevron_bottom'\"\n                          [height]=\"12\"\n                          [width]=\"12\"\n                        ></yap-icon>\n                      </ng-container>\n                    </ng-container>\n                  </th>\n                </tr>\n              </thead>\n              <tbody>\n                <tr\n                  *ngFor=\"let item of allObjects; trackBy: trackObjects\"\n                  [class.is-selected]=\"selectedIds.includes(item.id)\"\n                  [class.context-menu-selected]=\"contextMenuClickedId === item.id && (isContextMenuOpened$ | async)\"\n                  (contextmenu)=\"contextMenu($event, item)\"\n                  detachRow\n                  (selectedValue)=\"selection($event, item)\"\n                >\n                  <td class=\"checkbox-wrapper\">\n                    <yap-checkbox [ngModel]=\"selectedIds.includes(item.id)\"></yap-checkbox>\n                  </td>\n                  <td *ngFor=\"let column of columns\" class=\"u-ellipsis\">\n                    <ng-container *ngIf=\"column.property === 'metadata'\">\n                      <yap-metadata [item]=\"item\"></yap-metadata>\n                    </ng-container>\n                    <ng-container *ngIf=\"column.property === 'oClass'\">\n                      <p class=\"content-img\">\n                        <img\n                          [height]=\"25\"\n                          [width]=\"25\"\n                          [src]=\"item | translateItemToSymbol | async\"\n                          [alt]=\"item.oClass | translateId : { type: 'class', output: 'name' } | async\"\n                        />\n                      </p>\n                    </ng-container>\n                    <ng-container *ngIf=\"!['metadata', 'oClass'].includes(column.property)\">\n                      <yap-expand-value [value]=\"item | getValue : column.property | async\"></yap-expand-value>\n                    </ng-container>\n                  </td>\n                </tr>\n              </tbody>\n            </table>\n          </ng-container>\n        </ng-container>\n      </ng-container>\n    </ng-template>\n  </div>\n</div>\n","export const enTranslations = {\n  '@yap': {\n    widget: {\n      table: {\n        addColumn: 'Add column',\n        deleteColumn: 'Delete',\n        property: 'Property to display',\n        label: 'Column label',\n        empty: 'No data to display',\n        description: 'Dataset elements'\n      }\n    }\n  }\n};\n","export const frTranslations = {\n  '@yap': {\n    widget: {\n      table: {\n        addColumn: 'Ajouter une colonne',\n        deleteColumn: 'Supprimer',\n        property: 'Propriété à afficher',\n        label: 'Libellé de la colonne',\n        empty: 'Aucune donnée à afficher',\n        description: 'Eléments du jeu de données'\n      }\n    }\n  }\n};\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n  BaseWidgetComponent,\n  BaseWidgetModule,\n  YapCoreModule,\n  YapDashboardModule,\n  YapI18nModule,\n  YapI18nService,\n  YapIconModule,\n  YapSelectModule,\n  YapToggleModule\n} from '@onepoint-yap/dashboard';\nimport { YapCheckboxModule } from '@onepoint-yap/dashboard/components/checkbox';\nimport { WidgetTableComponent } from './component/widget-table.component';\nimport { DetachRowDirective } from './expand-value/detach-row.directive';\nimport { ExpandValueComponent } from './expand-value/expand-value.component';\nimport { FormatNumberPipe } from './expand-value/format-number.pipe';\nimport { GetValuePipe } from './get-value/get-value.pipe';\nimport { enTranslations } from './i18n/en.translations';\nimport { frTranslations } from './i18n/fr.translations';\nimport { ResizableComponent } from './resizable/resizable.component';\nimport { ResizableDirective } from './resizable/resizable.directive';\nimport { YapWidgetTableCssComponent } from './style/css.component';\n\n@NgModule({\n  declarations: [\n    WidgetTableComponent,\n    GetValuePipe,\n    ResizableComponent,\n    ResizableDirective,\n    YapWidgetTableCssComponent,\n    ExpandValueComponent,\n    FormatNumberPipe,\n    DetachRowDirective\n  ],\n  imports: [\n    CommonModule,\n    FormsModule,\n    OverlayModule,\n    YapCoreModule,\n    YapDashboardModule,\n    YapSelectModule,\n    YapIconModule,\n    YapCheckboxModule,\n    YapToggleModule,\n    YapI18nModule\n  ],\n  exports: [WidgetTableComponent]\n})\nexport class WidgetTableModule extends BaseWidgetModule {\n  constructor(private yapTranslateService: YapI18nService) {\n    super();\n    this.yapTranslateService.addLangObject('fr', 'widget-table', frTranslations);\n    this.yapTranslateService.addLangObject('en', 'widget-table', enTranslations);\n  }\n\n  override getComponent() {\n    return WidgetTableComponent as Type<BaseWidgetComponent>;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ResizableDirective","i2","i2.FormatNumberPipe","i1","i6.ResizableComponent","i7.ResizableDirective","i8.YapWidgetTableCssComponent","i9.ExpandValueComponent","i10.DetachRowDirective","i11.GetValuePipe"],"mappings":"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"}