UNPKG

@cisstech/nge

Version:

NG Essentials is a collection of libraries for Angular developers.

1 lines 22.4 kB
{"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":["import { Component, HostBinding, Input, TemplateRef } from '@angular/core'\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})\nexport class ListItemArticleActionComponent {\n @Input() actionTitle?: string | number | boolean | TemplateRef<any> | null\n\n @Input()\n @HostBinding('class.clickable')\n clickable = false\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=\"actionTitle\" />\n } @else {\n {{actionTitle}}\n }\n</div>\n\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core'\nimport { ListItemTag } from '../list'\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})\nexport class ListItemArticleComponent implements OnInit {\n @Input() articleTitle?: string | TemplateRef<any>\n @Input() articleUrl?: string | any[]\n @Input() articleBannerUrl?: string\n @Input() articleBannerAlt?: string\n @Input() articleIconUrl?: string\n @Input() articleIconAlt?: string\n @Input() articleDescription?: string | TemplateRef<any>\n @Input() articleTags: string[] | ListItemTag[] = []\n\n @Input() articleIconTemplate?: TemplateRef<any>\n @Input() articleTagIconTemplate?: TemplateRef<{ text: string; data?: any }>\n\n @Output() didClickTag = new EventEmitter<string>()\n @Output() didClickTagItem = new EventEmitter<ListItemTag>()\n @Output() didClickTitle = new EventEmitter()\n\n protected isTagsCliclable = false\n\n ngOnInit(): void {\n this.isTagsCliclable = this.didClickTag.observed || this.didClickTagItem.observed\n }\n}\n","<article class=\"mat-elevation-z1\" [class.bordered]=\"!articleBannerUrl\">\n <img class=\"article-banner\" [src]=\"articleBannerUrl\" [alt]=\"articleBannerAlt\" *ngIf=\"articleBannerUrl\">\n <div class=\"article-content-wrapper\">\n <header class=\"article-header\">\n <div class=\"article-image\">\n <ng-container *ngIf=\"articleIconTemplate; else: noImageTemplate\">\n <ng-container *ngTemplateOutlet=\"articleIconTemplate\"></ng-container>\n </ng-container>\n <ng-template #noImageTemplate>\n <img *ngIf=\"articleIconUrl\" [src]=\"articleIconUrl\" [alt]=\"articleIconAlt\">\n </ng-template>\n </div>\n @if (articleTitle|istemplate) {\n <h3\n class=\"article-title\"\n [routerLink]=\"articleUrl\"\n (click)=\"didClickTitle.emit()\">\n <ng-container *ngTemplateOutlet=\"articleTitle\" />\n </h3>\n } @else {\n <div\n class=\"article-title\"\n [routerLink]=\"articleUrl\"\n (click)=\"didClickTitle.emit()\">\n {{articleTitle}}\n </div>\n }\n </header>\n <p class=\"article-description\">\n @if (articleDescription|istemplate) {\n <ng-container *ngTemplateOutlet=\"articleDescription\" />\n } @else {\n {{articleDescription}}\n }\n </p>\n <div class=\"article-tags\" [class.clickable]=\"isTagsCliclable\" *ngIf=\"articleTags?.length\">\n @for (tag of articleTags; track $index) {\n @if(tag|isstring) {\n <div class=\"article-tag\" (click)=\"didClickTag.emit(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 class=\"article-tag\" [style.--article-tag-background-color]=\"tag.color ?? '#5d7092'\" (click)=\"didClickTagItem.emit(tag)\">\n @if (articleTagIconTemplate) {\n <div class=\"article-tag-icon\">\n <ng-container *ngTemplateOutlet=\"articleTagIconTemplate; context: { text: tag.text, data: tag.data }\" />\n </div>\n }\n {{tag.text}}\n </div>\n }\n }\n </div>\n <footer class=\"article-footer\">\n <ng-content></ng-content>\n </footer>\n </div>\n</article>\n","import { Component, ContentChild, TemplateRef, Input } from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\n\n@Component({\n selector: 'ui-list-template',\n template: ``,\n})\nexport class ListTemplateComponent<T> {\n @ContentChild(TemplateRef)\n template?: TemplateRef<ListContext<T>>\n\n @Input()\n slot?: ListTemplateSlots\n\n @Input()\n when?: (context: T | ListContext<T>) => boolean\n}\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n QueryList,\n TemplateRef,\n} from '@angular/core'\nimport { ListContext, ListTemplateSlots } from './list'\nimport { ListTemplateComponent } from './list-template.component'\n\n@Component({\n selector: 'ui-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n})\nexport class ListComponent<T> implements OnChanges, AfterContentInit {\n @ContentChildren(ListTemplateComponent)\n templates!: QueryList<ListTemplateComponent<T>>\n\n @Input()\n idField!: string\n\n @Input()\n items: T[] = []\n\n @Input()\n trackBy?: string\n\n @Input()\n selectable = false\n\n @Input()\n filter?: string\n\n @Input()\n filterBy: string[] = []\n\n @Input()\n selections: T[] = []\n\n @Input()\n containerClass?: string\n\n @Output()\n selectionsChange = new EventEmitter<T[]>()\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 if (!this.containerClass) {\n return {}\n }\n return {\n [this.containerClass]: true,\n }\n }\n\n ngOnChanges() {\n this._empty = !this.items?.length\n setTimeout(() => {\n this.checkSelections()\n }, 300)\n }\n\n ngAfterContentInit() {\n this._noResultTemplate = this.templates.find((e) => e.slot === 'noresult')?.template || null\n this._emptyStateTemplate = this.templates.find((e) => e.slot === 'empty')?.template || null\n }\n\n unselect(item: T) {\n const id = (item as any)[this.idField]\n this.selections = this.selections.filter((e) => e !== item)\n this._selectionStates[id] = false\n this.selectionsChange.emit(this.selections)\n }\n\n _trackBy(index: number, item: any): any {\n if (this.trackBy) {\n return item[this.trackBy] ?? index\n }\n return index\n }\n\n _template(context: T | ListContext<T>, slot: ListTemplateSlots): TemplateRef<any> | null {\n return (\n this.templates.find((e) => {\n if (e.slot === slot && e.when) {\n return e.when(context)\n }\n return false\n })?.template ||\n this.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 for (let i = 0; i < this.selections.length; i++) {\n if (this.equals(this.selections[i], item)) {\n this.selections.splice(i, 1)\n this.selectionsChange.emit(this.selections)\n return\n }\n }\n this.selections.push(item)\n this.selectionsChange.emit(this.selections)\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 = 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 this.selectionsChange.emit(this.selections)\n }\n}\n","<ng-container *ngIf=\"selectable\">\n <ng-container *ngFor=\"let item of selections; trackBy: _trackBy.bind(this)\">\n <ng-container *ngTemplateOutlet=\"_template(item, 'selection'); context: {item: item}\"></ng-container>\n </ng-container>\n</ng-container>\n\n<!-- TEMPLATE FOR EMPTY STATE -->\n<ng-template #emptyStateTemplate>\n <!-- SHOW EMPTY STATE TEMPLATE IF FILTER IS DEFINED -->\n <ng-container *ngIf=\"!filter?.trim(); else: noResult\">\n <ng-container *ngTemplateOutlet=\"_emptyStateTemplate\"></ng-container>\n </ng-container>\n <!-- SHOW NO RESULT TEMPLATE IF FILTER IS DEFINED -->\n <ng-template #noResult>\n <ng-container *ngTemplateOutlet=\"_noResultTemplate; context: { $implicit: filter }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<!-- APPLY CURRENT FILTER TO ITEMS IF NEEDED AND STORE THE RESULT TO A VARIABLE `filtered` -->\n<ng-container *ngIf=\"(filter ? (items | filterBy: filterBy: filter) : items) as filtered\">\n <!-- SHOW EMPTY STATE IF NO ITEM ELSE SHOW ROWS -->\n <ng-container *ngIf=\"filtered.length; else: emptyStateTemplate\">\n <ul class=\"ui-list-container\" [ngClass]=\"classes\">\n <ng-container *ngFor=\"let item of filtered; trackBy: _trackBy.bind(this) let index=index; let first=first; let last=last; let even=even; let odd=odd\">\n <ng-container *ngIf=\"{item: item, items: filtered, odd: odd, last: last, even: even, index: index, first: first} as context\">\n <div class=\"ui-list-item\">\n <!-- HEADER -->\n <ng-container *ngIf=\"_template(context, 'header') as header\">\n <li class=\"ui-list-item-header\">\n <ng-container *ngTemplateOutlet=\"header; context: context\"></ng-container>\n </li>\n </ng-container>\n <!-- ROW -->\n <ng-container *ngIf=\"_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 <!-- CHECKBOX -->\n <label class=\"ui-list-label\" *ngIf=\"selectable\">\n <input\n class=\"ui-list-label__checkbox\"\n type=\"checkbox\"\n [(ngModel)]=\"_selectionStates[$any(item)[idField]]\"\n (ngModelChange)=\"_toggleSelection(item)\"/>\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 </li>\n </ng-container>\n </div>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n</ng-container>\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: [CommonModule, FormsModule, RouterModule, ScrollingModule, IsTemplatePipe, IsStringPipe, NgArrayPipesModule],\n exports: [ListComponent, ListTemplateComponent, ListItemArticleComponent, ListItemArticleActionComponent],\n declarations: [ListComponent, ListTemplateComponent, ListItemArticleComponent, ListItemArticleActionComponent],\n})\nexport class NgeUiListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3"],"mappings":"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"}