@obliczeniowo/elementary
Version:
Library made in Angular version 19
1 lines • 11.7 kB
Source Map (JSON)
{"version":3,"file":"obliczeniowo-elementary-tree.mjs","sources":["../../../../projects/components/tree/components/vertical-arrow/vertical-arrow.component.ts","../../../../projects/components/tree/components/vertical-arrow/vertical-arrow.component.html","../../../../projects/components/tree/components/tree/tree-item/tree-item.component.ts","../../../../projects/components/tree/components/tree/tree-item/tree-item.component.html","../../../../projects/components/tree/components/tree/tree.component.ts","../../../../projects/components/tree/components/tree/tree.component.html","../../../../projects/components/tree/tree.module.ts","../../../../projects/components/tree/interfaces/tree-expand-event.ts","../../../../projects/components/tree/obliczeniowo-elementary-tree.ts"],"sourcesContent":["import { Component, ElementRef, ChangeDetectorRef, AfterViewInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'obl-vertical-arrow',\r\n templateUrl: './vertical-arrow.component.html',\r\n styleUrls: ['./vertical-arrow.component.scss'],\r\n standalone: false\r\n})\r\nexport class VerticalArrowComponent implements AfterViewInit {\r\n private _loaded = false;\r\n\r\n constructor(\r\n protected elementRef: ElementRef<HTMLElement>,\r\n protected change: ChangeDetectorRef\r\n ) { }\r\n\r\n get height(): number {\r\n return this._loaded ? this.elementRef.nativeElement.clientHeight : 0;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this._loaded = true;\r\n this.change.detectChanges();\r\n });\r\n }\r\n\r\n reload(): void {\r\n setTimeout(() => {\r\n this._loaded = false;\r\n this.change.detectChanges();\r\n this.ngAfterViewInit();\r\n });\r\n }\r\n}\r\n","<svg\r\n xmlns:svg=\"http://www.w3.org/2000/svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"10\"\r\n [attr.height]=\"height\"\r\n [attr.viewBox]=\"'0 0 10 ' + height\"\r\n>\r\n <path\r\n style=\"\r\n fill: var(--default-text-color);\r\n stroke-width: 0.8;\r\n stroke-linejoin: round;\r\n \"\r\n [attr.d]=\"\r\n 'M 0,0 5,5 10,0 V ' +\r\n (height - 5) +\r\n 'L 5,' +\r\n height +\r\n ' 0,' +\r\n (height - 5) +\r\n ' Z'\r\n \"\r\n />\r\n</svg>\r\n","import { Component, EventEmitter, input, Output } from '@angular/core';\r\nimport { TreeExpandEvent } from '../../../interfaces/tree-expand-event';\r\nimport { TreeItem } from '../../../interfaces/tree-item';\r\n\r\n@Component({\r\n selector: 'obl-tree-item',\r\n templateUrl: './tree-item.component.html',\r\n styleUrls: ['./tree-item.component.scss'],\r\n standalone: false\r\n})\r\nexport class TreeItemComponent {\r\n protected loading = false;\r\n\r\n item = input.required<TreeItem>();\r\n\r\n itemClicked = input.required<EventEmitter<TreeItem>>();\r\n itemExpand = input.required<EventEmitter<TreeExpandEvent>>();\r\n\r\n @Output() itemNotExpand: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n getLoading(): boolean {\r\n return this.loading;\r\n }\r\n\r\n expand(): void {\r\n this.item().expanded = !this.item().expanded;\r\n if (this.item().expanded) {\r\n this.loading = true;\r\n if (this.itemExpand()) {\r\n this.itemExpand().emit(\r\n {\r\n item: this.item(),\r\n cb: (items: TreeItem[]) => {\r\n this.item().items = items;\r\n this.loading = false;\r\n return items;\r\n }\r\n }\r\n );\r\n }\r\n } else {\r\n this.itemNotExpand.emit();\r\n }\r\n }\r\n}\r\n","@if (item()) {\r\n <div class=\"tree-item-head\">\r\n <div class=\"tree-item-icon-space\">\r\n @if (item().subItems && !getLoading()) {\r\n <button (click)=\"expand()\">\r\n @if (item().expanded) {\r\n <obl-icon\r\n [name]=\"'subtract-box'\"\r\n [width]=\"12\"\r\n ></obl-icon>\r\n } @else {\r\n <obl-icon [name]=\"'add-box'\" [width]=\"12\"></obl-icon>\r\n }\r\n </button>\r\n }\r\n @if (getLoading()) {\r\n <obl-spinner class=\"spinner\"></obl-spinner>\r\n }\r\n </div>\r\n <button\r\n class=\"tree-item-title\"\r\n (click)=\"itemClicked() && itemClicked().emit(item())\"\r\n >\r\n {{ item().title }}\r\n </button>\r\n </div>\r\n\r\n @if (item().subItems && item().items.length && item().expanded) {\r\n <div class=\"tree-childs-container\">\r\n <div class=\"arrow-container\">\r\n <obl-vertical-arrow #arrow></obl-vertical-arrow>\r\n </div>\r\n <div class=\"child-items\" #childItems>\r\n @for ( child of (!getLoading() && item().items) || []; track child.id) {\r\n <obl-tree-item\r\n [item]=\"child\"\r\n [itemClicked]=\"itemClicked()\"\r\n [itemExpand]=\"itemExpand()\"\r\n (itemNotExpand)=\"arrow.reload(); itemNotExpand.emit()\"\r\n ></obl-tree-item>\r\n }\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n","import { TreeExpandEvent } from './../../interfaces/tree-expand-event';\r\nimport { Component, EventEmitter, input, Output } from '@angular/core';\r\nimport { TreeItem } from '../../interfaces/tree-item';\r\n\r\n@Component({\r\n selector: 'obl-tree',\r\n templateUrl: './tree.component.html',\r\n styleUrls: ['./tree.component.scss'],\r\n standalone: false\r\n})\r\nexport class TreeComponent {\r\n items = input<TreeItem[]>();\r\n\r\n @Output() itemClicked: EventEmitter<TreeItem> = new EventEmitter<TreeItem>();\r\n @Output() itemExpand: EventEmitter<TreeExpandEvent> = new EventEmitter<TreeExpandEvent>();\r\n}\r\n","@if (items() && items()?.length) {\r\n @for (item of items(); track item.id) {\r\n <obl-tree-item\r\n [item]=\"item\"\r\n [itemClicked]=\"itemClicked\"\r\n [itemExpand]=\"itemExpand\"\r\n ></obl-tree-item>\r\n }\r\n}\r\n","import { IconsModule } from '@obliczeniowo/elementary/icons';\r\nimport { LoadingModule } from '@obliczeniowo/elementary/loading';\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TreeComponent } from './components/tree/tree.component';\r\nimport { VerticalArrowComponent } from './components/vertical-arrow/vertical-arrow.component';\r\nimport { TreeItemComponent } from './components/tree/tree-item/tree-item.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TreeComponent,\r\n VerticalArrowComponent,\r\n TreeItemComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n LoadingModule,\r\n IconsModule\r\n ],\r\n exports: [\r\n TreeComponent,\r\n VerticalArrowComponent,\r\n ]\r\n})\r\nexport class TreeModule { }\r\n","import { TreeItem } from './tree-item';\r\n\r\nexport interface TreeExpandEvent {\r\n item: TreeItem;\r\n cb: (items: TreeItem[]) => TreeItem[];\r\n};\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.VerticalArrowComponent","i1.TreeItemComponent"],"mappings":"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"}