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