journal-spellcards.component.html 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <div class="journal-content">
  2. <div class="header-row">
  3. <h1>{{ "spellcards.prepared" | translate }}</h1>
  4. <div class="button-container">
  5. <button class="top-button" (click)="openFavoritesModal()">
  6. <img src="assets/icons/UIIcons/favorites.svg" />
  7. {{ "spellcards.favorites" | translate }}
  8. </button>
  9. <button class="top-button" (click)="navigateToSpellbook()">
  10. <img src="assets/icons/UIIcons/book.svg" />
  11. {{ "spellcards.spellbook" | translate }}
  12. </button>
  13. </div>
  14. </div>
  15. <divider></divider>
  16. <div cdkDropListGroup class="t-075">
  17. @for (
  18. level of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
  19. track level;
  20. let index = $index
  21. ) {
  22. <div class="example-container">
  23. <div
  24. [class]="showSpellList[index] ? 'level-row' : 'level-row collapsed'"
  25. (click)="toggleSpellList(index)"
  26. >
  27. <div class="level-flex">
  28. <icon
  29. [size]="'l'"
  30. [type]="'UI'"
  31. [icon]="showSpellList[index] ? 'visible' : 'hidden'"
  32. [class]="'pointer'"
  33. class="inline"
  34. ></icon>
  35. <div class="heading-2 inline">
  36. @if (index === 0) {
  37. {{ "spellcards.cantrips" | translate }}
  38. } @else {
  39. Level {{ index }}
  40. }
  41. </div>
  42. </div>
  43. </div>
  44. <div
  45. cdkDropList
  46. cdkDropListOrientation="horizontal"
  47. [cdkDropListData]="getSpellList(index)"
  48. class="spell-list"
  49. (cdkDropListDropped)="drop($event)"
  50. [class]="showSpellList[index] ? '' : 'hidden'"
  51. >
  52. @for (
  53. spell of getSpellList(index);
  54. let spellIndex = $index;
  55. track spell
  56. ) {
  57. <spellcard
  58. cdkDrag
  59. [id]="spellIndex"
  60. (cdkDragStarted)="dragStart(index)"
  61. (cdkDragReleased)="dragEnd($event)"
  62. [spell]="spell"
  63. (click)="showFullSpellcard(spell, level, spellIndex)"
  64. ></spellcard>
  65. }
  66. @if (draggingIndex === index) {
  67. <div class="removal-card" [id]="'deletion' + index">
  68. {{ "spellcards.delete" | translate }}
  69. </div>
  70. } @else {
  71. <add-card
  72. [level]="index"
  73. [alreadyUsedSpells]="getUsedIDs(index)"
  74. (onSpellSelected)="addSpell($event, index)"
  75. ></add-card>
  76. }
  77. </div>
  78. </div>
  79. }
  80. </div>
  81. </div>