{"version":3,"file":"obliczeniowo-elementary-circle-categories-tree.mjs","sources":["../../../../projects/components/circle-categories-tree/models/group.model.ts","../../../../projects/components/circle-categories-tree/components/branch-item/branch-item.component.ts","../../../../projects/components/circle-categories-tree/components/branch-item/branch-item.component.html","../../../../projects/components/circle-categories-tree/components/categories-branch/categories-branch.component.ts","../../../../projects/components/circle-categories-tree/components/categories-branch/categories-branch.component.html","../../../../projects/components/circle-categories-tree/components/circle-categories-tree/circle-categories-tree.component.ts","../../../../projects/components/circle-categories-tree/components/circle-categories-tree/circle-categories-tree.component.html","../../../../projects/components/circle-categories-tree/circle-categories-tree.module.ts","../../../../projects/components/circle-categories-tree/obliczeniowo-elementary-circle-categories-tree.ts"],"sourcesContent":["import { HtmlColor } from '@obliczeniowo/elementary/classes';\r\n\r\nimport { ItemModel } from './item.model';\r\n\r\nexport interface GroupModel {\r\n  color: HtmlColor;\r\n  items: ItemModel[];\r\n  ext?: any;\r\n}\r\n\r\nexport class GroupClass implements GroupModel {\r\n  color!: HtmlColor;\r\n  items!: ItemModel[];\r\n  ext?: any;\r\n\r\n  constructor(group: GroupModel, public dAngle: number, public offset: number, public dCategoryOffset = 0) {\r\n    Object.assign(this, group);\r\n  }\r\n}","import { Component, effect, input } from '@angular/core';\r\nimport { ItemModel } from '../../models/item.model';\r\n\r\n@Component({\r\n    selector: 'g[obl-branch-item]',\r\n    templateUrl: './branch-item.component.html',\r\n    styleUrls: ['./branch-item.component.scss'],\r\n    standalone: false\r\n})\r\nexport class BranchItemComponent {\r\n  //\r\n  ray = input.required<number>();\r\n  //\r\n  angle = input.required<number>();\r\n  //\r\n  textLength = input<number>(100);\r\n  //\r\n  item = input.required<ItemModel>();\r\n\r\n  protected reverse!: boolean;\r\n\r\n  constructor() {\r\n    effect(() => {\r\n      const angle = this.angle();\r\n      this.reverse = angle > 90 && angle < 270;\r\n    })\r\n  }\r\n\r\n  get r() {\r\n    return this.ray() - this.textLength();\r\n  }\r\n}\r\n","<svg:g\r\n  [attr.transform]=\"\r\n    'translate(' +\r\n    ray() +\r\n    ',' +\r\n    ray() +\r\n    ') rotate(' +\r\n    angle() +\r\n    ') translate(' +\r\n    r +\r\n    ', ' +\r\n    (reverse ? -2 : 5) +\r\n    ')' +\r\n    (reverse ? ' rotate(180)' : '')\r\n  \"\r\n>\r\n  <svg:circle\r\n    [attr.cx]=\"reverse ? 10 : -10\"\r\n    [attr.cy]=\"reverse ? -2 : -5\"\r\n    r=\"2\"\r\n  ></svg:circle>\r\n  <svg:text [attr.text-anchor]=\"reverse ? 'end' : 'start'\">\r\n    {{ item().name }}\r\n  </svg:text>\r\n</svg:g>\r\n","import { ItemModel } from './../../models/item.model';\r\nimport { Component, EventEmitter, input, Output } from '@angular/core';\r\nimport { GroupClass } from '../../models/group.model';\r\nimport { ElementaryMath } from '@obliczeniowo/elementary/math';\r\n\r\n@Component({\r\n    selector: 'g[obl-categories-branch]',\r\n    templateUrl: './categories-branch.component.html',\r\n    styleUrls: ['./categories-branch.component.scss'],\r\n    standalone: false\r\n})\r\nexport class CategoriesBranchComponent {\r\n  // Group class as required\r\n  group = input.required<GroupClass>();\r\n  // Ray of branch\r\n  ray = input<number>(400);\r\n  // max text length\r\n  textLength = input<number>(100);\r\n  // emit when user click on item leaf or leaf (category) name\r\n  @Output() clicked = new EventEmitter<ItemModel>();\r\n\r\n  get r() {\r\n    return this.ray() - this.textLength();\r\n  }\r\n\r\n  endAngle(index: number) {\r\n    const group = this.group();\r\n    return ElementaryMath.degreesToRadians(group.dAngle * (index + group.offset) + group.dCategoryOffset);\r\n  }\r\n\r\n  startAngle() {\r\n    const group = this.group();\r\n    return ElementaryMath.degreesToRadians(group.dAngle * (group.items.length / 2 + group.offset) + group.dCategoryOffset);\r\n  }\r\n\r\n  end(index: number) {\r\n    const angle = this.endAngle(index);\r\n\r\n    return { x: this.ray() + (this.r - 10) * Math.cos(angle), y: this.ray() + (this.r - 10) * Math.sin(angle) };\r\n  }\r\n}\r\n","@for (item of group().items; track item) {\r\n  <svg:g\r\n    (click)=\"clicked.emit(item)\"\r\n  >\r\n    <g\r\n      obl-directional-connector\r\n      [start]=\"{ x: ray(), y: ray() }\"\r\n      [end]=\"end($index)\"\r\n      [startAngle]=\"startAngle()\"\r\n      [endAngle]=\"endAngle($index)\"\r\n      [color]=\"item.color\"\r\n    ></g>\r\n\r\n    <svg:g\r\n      obl-branch-item\r\n      [ray]=\"ray()\"\r\n      [angle]=\"group().dAngle * ($index + group().offset) + group().dCategoryOffset\"\r\n      [textLength]=\"textLength()\"\r\n      [item]=\"item\"\r\n    ></svg:g>\r\n  </svg:g>\r\n}\r\n","import { ItemModel } from './../../models/item.model';\r\nimport { GroupModel, GroupClass } from './../../models/group.model';\r\nimport { Component, effect, EventEmitter, input, model, Output } from '@angular/core';\r\n\r\nimport { ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors } from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'obl-circle-categories-tree',\r\n    templateUrl: './circle-categories-tree.component.html',\r\n    styleUrls: ['./circle-categories-tree.component.scss'],\r\n    providers: [\r\n        {\r\n            provide: NG_VALUE_ACCESSOR,\r\n            multi: true,\r\n            useExisting: CircleCategoriesTreeComponent\r\n        },\r\n        {\r\n            provide: NG_VALIDATORS,\r\n            multi: true,\r\n            useExisting: CircleCategoriesTreeComponent\r\n        }\r\n    ],\r\n    standalone: false\r\n})\r\nexport class CircleCategoriesTreeComponent implements ControlValueAccessor {\r\n  // Grouping model table\r\n  groups = model<GroupModel[]>([]);\r\n  // header text to display (if empty not display at all)\r\n  header = input<string>();\r\n  // emit when user click on specific item\r\n  @Output() clicked = new EventEmitter<ItemModel>();\r\n\r\n  protected total: number = 0;\r\n  // converted/prepared groups to display\r\n  protected groupsClasses: GroupClass[] = [];\r\n\r\n  constructor() {\r\n    effect(() => {\r\n      this.prepareGroups();\r\n    })\r\n  }\r\n\r\n  protected prepareGroups() {\r\n    this.total = this.groups().map(group => group.items.length).reduce((p, c) => (p += c, p), 0);\r\n    const dCategoryAngle = 1.5;\r\n    const dAngle = (360 - dCategoryAngle * this.groups().length) / (this.total || 1);\r\n    let offset = 0;\r\n\r\n    this.groupsClasses = this.groups().map((group, index) => {\r\n      const current = offset;\r\n      offset += group.items.length;\r\n      return new GroupClass(group, dAngle, current, dCategoryAngle * index);\r\n    });\r\n  }\r\n\r\n  onChange = (groups: GroupModel[]) => {\r\n  };\r\n\r\n  onTouched = () => { };\r\n\r\n  writeValue(groups: GroupModel[]): void {\r\n    this.groups.set(groups || []);\r\n    this.prepareGroups();\r\n  }\r\n\r\n  registerOnChange(onChange: any): void {\r\n    this.onChange = onChange;\r\n  }\r\n\r\n  registerOnTouched(onTouched: any): void {\r\n    this.onTouched = onTouched;\r\n  }\r\n\r\n  setDisabledState?(isDisabled: boolean): void {\r\n  }\r\n\r\n  validate(control: any): ValidationErrors | null {\r\n    return null;\r\n  }\r\n}\r\n","<svg viewBox=\"0 0 800 800\">\r\n  @for (group of groupsClasses; track $index) {\r\n    <g\r\n      obl-categories-branch\r\n      [group]=\"group\"\r\n      (clicked)=\"clicked.emit($event)\"\r\n    ></g>\r\n  }\r\n\r\n  @if (header()) {\r\n    <text x=\"50%\" y=\"50%\" text-anchor=\"middle\" class=\"border-header\">\r\n      {{ header() }}\r\n    </text>\r\n\r\n    <text x=\"50%\" y=\"50%\" text-anchor=\"middle\" class=\"header\">\r\n      {{ header() }}\r\n    </text>\r\n  }\r\n</svg>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CircleCategoriesTreeComponent } from './components/circle-categories-tree/circle-categories-tree.component';\r\nimport { CategoriesBranchComponent } from './components/categories-branch/categories-branch.component';\r\nimport { ConnectorsModule } from '@obliczeniowo/elementary/connectors';\r\nimport { BranchItemComponent } from './components/branch-item/branch-item.component';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    CircleCategoriesTreeComponent,\r\n    CategoriesBranchComponent,\r\n    BranchItemComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    ConnectorsModule\r\n  ],\r\n  exports: [\r\n    CircleCategoriesTreeComponent\r\n  ]\r\n})\r\nexport class CircleCategoriesTreeModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.BranchItemComponent","i1.CategoriesBranchComponent"],"mappings":"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"}