{"version":3,"file":"cisstech-nge-ui-list.mjs","sources":["../../../projects/nge/ui/list/src/list-item-article-action/list-item-article-action.component.ts","../../../projects/nge/ui/list/src/list-item-article-action/list-item-article-action.component.html","../../../projects/nge/ui/list/src/list-item-article/list-item-article.component.ts","../../../projects/nge/ui/list/src/list-item-article/list-item-article.component.html","../../../projects/nge/ui/list/src/list-template.component.ts","../../../projects/nge/ui/list/src/list.component.ts","../../../projects/nge/ui/list/src/list.component.html","../../../projects/nge/ui/list/src/list.module.ts","../../../projects/nge/ui/list/cisstech-nge-ui-list.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgTemplateOutlet } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, HostListener, TemplateRef, input } from '@angular/core'\nimport { IsTemplatePipe } from '@cisstech/nge/pipes'\n\n@Component({\n  selector: 'ui-list-item-article-action',\n  templateUrl: './list-item-article-action.component.html',\n  styleUrls: ['./list-item-article-action.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet, IsTemplatePipe],\n  host: { '[class.clickable]': 'clickable()' },\n})\nexport class ListItemArticleActionComponent {\n  readonly actionTitle = input<string | number | boolean | TemplateRef<any> | null>()\n\n  readonly clickable = input(false)\n\n  @HostListener('click', ['$event'])\n  protected onClick($event: Event) {\n    // Prevent event propagation to parent clickable elements (like the article item)\n    $event.stopPropagation()\n  }\n}\n","<div class=\"list-item-article-action-icon\">\n  <ng-content></ng-content>\n</div>\n<div class=\"list-item-article-action-title\">\n  @if (actionTitle()|istemplate) {\n    <ng-container *ngTemplateOutlet=\"$any(actionTitle())\" />\n  } @else {\n    {{actionTitle()}}\n  }\n</div>\n\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectionStrategy, Component, OnInit, TemplateRef, input } from '@angular/core'\nimport { outputFromObservable } from '@angular/core/rxjs-interop'\nimport { Subject } from 'rxjs'\nimport { ListItemTag } from '../list'\nimport { NgTemplateOutlet } from '@angular/common'\nimport { RouterLink } from '@angular/router'\nimport { IsTemplatePipe, IsStringPipe } from '@cisstech/nge/pipes'\n\n@Component({\n  selector: 'ui-list-item-article',\n  templateUrl: './list-item-article.component.html',\n  styleUrls: ['./list-item-article.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet, RouterLink, IsTemplatePipe, IsStringPipe],\n})\nexport class ListItemArticleComponent implements OnInit {\n  readonly articleTitle = input<string | TemplateRef<any>>()\n  readonly articleUrl = input<string | any[]>()\n  readonly articleBannerUrl = input<string>()\n  readonly articleBannerAlt = input<string>()\n  readonly articleIconUrl = input<string>()\n  readonly articleIconAlt = input<string>()\n  readonly articleDescription = input<string | TemplateRef<any>>()\n  readonly articleTags = input<string[] | ListItemTag[]>([])\n\n  readonly articleIconTemplate = input<TemplateRef<any>>()\n  readonly articleTagIconTemplate = input<TemplateRef<{ text: string; data?: any }>>()\n\n  private readonly didClick$ = new Subject<void>()\n  readonly didClick = outputFromObservable(this.didClick$)\n\n  private readonly didClickTag$ = new Subject<string>()\n  readonly didClickTag = outputFromObservable(this.didClickTag$)\n\n  private readonly didClickTitle$ = new Subject<void>()\n  readonly didClickTitle = outputFromObservable(this.didClickTitle$)\n\n  private readonly didClickTagItem$ = new Subject<ListItemTag>()\n  readonly didClickTagItem = outputFromObservable(this.didClickTagItem$)\n\n  protected isClickable = false\n  protected isTagsClickable = false\n  protected isTitleClickable = false\n\n  ngOnInit(): void {\n    this.isClickable = this.didClick$.observed\n    this.isTitleClickable = this.didClickTitle$.observed\n    this.isTagsClickable = this.didClickTag$.observed || this.didClickTagItem$.observed\n  }\n\n  protected onClickHost() {\n    this.didClick$.next()\n  }\n\n  protected onClickTitle($event: Event) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTitle$.next()\n  }\n\n  protected onClickTag($event: Event, tag: string) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTag$.next(tag)\n  }\n\n  protected onClickTagItem($event: Event, tag: ListItemTag) {\n    $event.stopPropagation()\n    $event.preventDefault()\n    this.didClickTagItem$.next(tag)\n  }\n}\n","<article\n  [class.bordered]=\"!articleBannerUrl()\"\n  [class.clickable]=\"isClickable\"\n  [class.hoverable]=\"isClickable || isTitleClickable\"\n  (click)=\"onClickHost()\"\n>\n  @if (articleBannerUrl()) {\n    <img class=\"article-banner\" [src]=\"articleBannerUrl()\" [alt]=\"articleBannerAlt()\" />\n  }\n  <div class=\"article-content-wrapper\">\n    <header class=\"article-header\">\n      <div class=\"article-image\">\n        @if (articleIconTemplate()) {\n          <ng-container *ngTemplateOutlet=\"articleIconTemplate()!\"></ng-container>\n        } @else if (articleIconUrl()) {\n          <img [src]=\"articleIconUrl()\" [alt]=\"articleIconAlt()\" />\n        }\n      </div>\n      @if (articleTitle() | istemplate) {\n        <h3\n          class=\"article-title\"\n          [class.clickable]=\"isTitleClickable\"\n          [routerLink]=\"articleUrl()\"\n          (click)=\"onClickTitle($event)\"\n        >\n          <ng-container *ngTemplateOutlet=\"$any(articleTitle())\" />\n        </h3>\n      } @else {\n        <div\n          class=\"article-title\"\n          [class.clickable]=\"isTitleClickable\"\n          [routerLink]=\"articleUrl()\"\n          (click)=\"onClickTitle($event)\"\n        >\n          {{ articleTitle() }}\n        </div>\n      }\n    </header>\n    <p class=\"article-description\">\n      @if (articleDescription() | istemplate) {\n        <ng-container *ngTemplateOutlet=\"$any(articleDescription())\" />\n      } @else {\n        {{ articleDescription() }}\n      }\n    </p>\n    @if (articleTags() && articleTags().length) {\n      <div class=\"article-tags\" [class.clickable]=\"isTagsClickable\">\n        @for (tag of articleTags(); track $index) {\n          @if (tag | isstring) {\n            <div class=\"article-tag\" (click)=\"onClickTag($event, tag)\">\n              @if (articleTagIconTemplate()) {\n                <div class=\"article-tag-icon\">\n                  <ng-container *ngTemplateOutlet=\"articleTagIconTemplate()!; context: { text: tag }\" />\n                </div>\n              }\n              {{ tag }}\n            </div>\n          } @else {\n            <div\n              class=\"article-tag\"\n              [style.--article-tag-background-color]=\"tag.color ?? '#5d7092'\"\n              (click)=\"onClickTagItem($event, tag)\"\n            >\n              @if (articleTagIconTemplate()) {\n                <div class=\"article-tag-icon\">\n                  <ng-container\n                    *ngTemplateOutlet=\"articleTagIconTemplate()!; context: { text: tag.text, data: tag.data }\"\n                  />\n                </div>\n              }\n              {{ tag.text }}\n            </div>\n          }\n        }\n      </div>\n    }\n    <footer class=\"article-footer\">\n      <ng-content></ng-content>\n    </footer>\n  </div>\n</article>\n","import { Component, TemplateRef, ChangeDetectionStrategy, contentChild, input } from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\n\n@Component({\n  selector: 'ui-list-template',\n  template: ``,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ListTemplateComponent<T> {\n  readonly template = contentChild(TemplateRef)\n\n  readonly slot = input<ListTemplateSlots>()\n\n  readonly when = input<(context: T | ListContext<T>) => boolean>()\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n  AfterContentInit,\n  ChangeDetectorRef,\n  Component,\n  TemplateRef,\n  ChangeDetectionStrategy,\n  effect,\n  inject,\n  model,\n  contentChildren,\n  input,\n} from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\nimport { ListTemplateComponent } from './list-template.component'\nimport { NgTemplateOutlet, NgClass } from '@angular/common'\nimport { FormsModule } from '@angular/forms'\nimport { NgArrayPipesModule } from 'ngx-pipes'\n\n@Component({\n  selector: 'ui-list',\n  templateUrl: './list.component.html',\n  styleUrls: ['./list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [NgTemplateOutlet, NgClass, FormsModule, NgArrayPipesModule],\n})\nexport class ListComponent<T> implements AfterContentInit {\n  private readonly changeDetectorRef = inject(ChangeDetectorRef)\n\n  readonly templates = contentChildren(ListTemplateComponent)\n\n  readonly idField = input.required<string>()\n\n  readonly items = input<T[]>([])\n\n  readonly trackBy = input<string>()\n\n  readonly selectable = input(false)\n\n  readonly filter = input<string>()\n\n  readonly filterBy = input<string[]>([])\n\n  readonly selections = model<T[]>([])\n\n  readonly containerClass = input<string>()\n\n  _selectionStates: Record<string, boolean> = {}\n  _noResultTemplate: TemplateRef<any> | null = null\n  _emptyStateTemplate: TemplateRef<any> | null = null\n\n  _empty = false\n\n  get hasSelection() {\n    return !!this.selections().length\n  }\n\n  protected get classes() {\n    const containerClass = this.containerClass()\n    if (!containerClass) {\n      return {}\n    }\n    return {\n      [containerClass]: true,\n    }\n  }\n\n  constructor() {\n    effect(() => {\n      this._empty = !this.items()?.length\n      setTimeout(() => this.checkSelections(), 300)\n    })\n  }\n\n  ngAfterContentInit() {\n    this._noResultTemplate =\n      this.templates()\n        .find((e) => e.slot() === 'noresult')\n        ?.template() || null\n    this._emptyStateTemplate =\n      this.templates()\n        .find((e) => e.slot() === 'empty')\n        ?.template() || null\n  }\n\n  unselect(item: T) {\n    const id = (item as any)[this.idField()]\n    this.selections.set(this.selections().filter((e) => e !== item))\n    this._selectionStates[id] = false\n  }\n\n  _template(context: T | ListContext<T>, slot: ListTemplateSlots): TemplateRef<any> | null {\n    const templates = this.templates()\n    return (\n      templates\n        .find((e) => {\n          const when = e.when()\n          if (e.slot() === slot && when) {\n            return when(context)\n          }\n          return false\n        })\n        ?.template() ||\n      templates.find((e) => e.slot() === slot && !e.when())?.template() ||\n      null\n    )\n  }\n\n  _isSelected(item: T): boolean {\n    return !!this.selections().find((e) => e === item)\n  }\n\n  _toggleSelection(item: T): void {\n    const current = this.selections()\n    const index = current.findIndex((e) => this.equals(e, item))\n    if (index >= 0) {\n      this.selections.set(current.filter((_, i) => i !== index))\n    } else {\n      this.selections.set([...current, item])\n    }\n  }\n\n  private equals(a: any, b: any) {\n    return a[this.idField()] === b[this.idField()]\n  }\n\n  private checkSelections() {\n    this.selections.set(\n      this.selections().filter((selection: any) => {\n        if (this.items().find((item) => this.equals(item, selection))) {\n          return true\n        }\n        delete this._selectionStates[selection[this.idField()]]\n        return false\n      })\n    )\n    this.changeDetectorRef.markForCheck()\n  }\n}\n","@if (selectable()) {\n  @for (item of selections(); track $any(item)[$any(trackBy())] ?? $index; let i = $index) {\n    <ng-container *ngTemplateOutlet=\"_template(item, 'selection'); context: { item: item }\"></ng-container>\n  }\n}\n\n<!-- TEMPLATE FOR EMPTY STATE -->\n<ng-template #emptyStateTemplate>\n  @if (!filter()?.trim()) {\n    <ng-container *ngTemplateOutlet=\"_emptyStateTemplate\"></ng-container>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"_noResultTemplate; context: { $implicit: filter() }\"></ng-container>\n  }\n</ng-template>\n\n@if (filter() ? (items() | filterBy: filterBy() : filter()) : items(); as filtered) {\n  @if (filtered.length) {\n    <ul class=\"ui-list-container\" [ngClass]=\"classes\">\n      @for (\n        item of filtered;\n        track $any(item)[$any(trackBy())] ?? $index;\n        let index = $index;\n        let first = $first;\n        let last = $last;\n        let even = $even;\n        let odd = $odd\n      ) {\n        @let context = { item: item, items: filtered, odd: odd, last: last, even: even, index: index, first: first };\n\n        <div class=\"ui-list-item\">\n          <!-- HEADER -->\n          @if (_template(context, 'header'); as header) {\n            <li class=\"ui-list-item-header\">\n              <ng-container *ngTemplateOutlet=\"header; context: context\"></ng-container>\n            </li>\n          }\n\n          <!-- ROW -->\n          @if (_template(context, 'row'); as row) {\n            <li class=\"ui-list-item-content\" [class.selectable]=\"selectable()\">\n              <ng-container *ngTemplateOutlet=\"row; context: context\"></ng-container>\n\n              <!-- CHECKBOX -->\n              @if (selectable()) {\n                <label class=\"ui-list-label\">\n                  <input\n                    class=\"ui-list-label__checkbox\"\n                    type=\"checkbox\"\n                    [(ngModel)]=\"_selectionStates[$any(item)[idField()]]\"\n                    (ngModelChange)=\"_toggleSelection(item)\"\n                  />\n                  <span class=\"ui-list-label__text\">\n                    <span class=\"ui-list-label__check\">\n                      <span class=\"ui-list-label__icon\">✓</span>\n                    </span>\n                  </span>\n                </label>\n              }\n            </li>\n          }\n        </div>\n      }\n    </ul>\n  } @else {\n    <ng-container *ngTemplateOutlet=\"emptyStateTemplate\"></ng-container>\n  }\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FormsModule } from '@angular/forms'\nimport { RouterModule } from '@angular/router'\n\nimport { ScrollingModule } from '@angular/cdk/scrolling'\n\nimport { NgArrayPipesModule } from 'ngx-pipes'\n\nimport { IsStringPipe, IsTemplatePipe } from '@cisstech/nge/pipes'\nimport { ListItemArticleActionComponent } from './list-item-article-action/list-item-article-action.component'\nimport { ListItemArticleComponent } from './list-item-article/list-item-article.component'\nimport { ListTemplateComponent } from './list-template.component'\nimport { ListComponent } from './list.component'\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    RouterModule,\n    ScrollingModule,\n    IsTemplatePipe,\n    IsStringPipe,\n    NgArrayPipesModule,\n    ListComponent,\n    ListTemplateComponent,\n    ListItemArticleComponent,\n    ListItemArticleActionComponent,\n  ],\n  exports: [ListComponent, ListTemplateComponent, ListItemArticleComponent, ListItemArticleActionComponent],\n})\nexport class NgeUiListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}