journal-inventory.component.html 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <div class="inventory-container">
  2. <!-- ITEMS -->
  3. <div class="item-container">
  4. <div class="tab-row">
  5. <button
  6. class="tab-button"
  7. (click)="active = 1"
  8. [class]="active === 1 ? 'active' : ''"
  9. >
  10. Waffen und Rüstungen
  11. </button>
  12. <button
  13. class="tab-button"
  14. (click)="active = 2"
  15. [class]="active === 2 ? 'active' : ''"
  16. >
  17. Sonstiges
  18. </button>
  19. </div>
  20. <div class="heading-row">
  21. <div class="heading">Name</div>
  22. <div class="heading">Wert</div>
  23. <div class="heading">Gewicht</div>
  24. <div class="heading">Anzahl</div>
  25. </div>
  26. @switch(active) { @case(1){
  27. <ng-container [ngTemplateOutlet]="weaponTemplate"></ng-container>
  28. } @case(2){
  29. <ng-container [ngTemplateOutlet]="miscTemplate"></ng-container>
  30. }}
  31. <div class="footer">
  32. <button (click)="addItem('items')">Eintrag hinzufügen</button>
  33. </div>
  34. </div>
  35. <div class="right-column">
  36. <!-- FOOD -->
  37. <div class="food-container">
  38. <div class="tab-row">
  39. <button
  40. class="tab-button"
  41. (click)="foodActive = 1"
  42. [class]="foodActive === 1 ? 'active' : ''"
  43. >
  44. Nahrung
  45. </button>
  46. <button
  47. class="tab-button"
  48. (click)="foodActive = 2"
  49. [class]="foodActive === 2 ? 'active' : ''"
  50. >
  51. Verbrauchsgegenstände
  52. </button>
  53. </div>
  54. <div class="heading-row">
  55. <div class="heading">Name</div>
  56. <div class="heading">
  57. {{ foodActive === 1 ? "Verzehrfertig" : "Wert" }}
  58. </div>
  59. <div class="heading">Gewicht</div>
  60. <div class="heading">Anzahl</div>
  61. </div>
  62. @switch(foodActive) { @case(1){
  63. <ng-container [ngTemplateOutlet]="foodTemplate"></ng-container>
  64. } @case(2){
  65. <ng-container [ngTemplateOutlet]="consumablesTemplate"></ng-container>
  66. } }
  67. <div class="footer">
  68. <button (click)="addItem('consumables')">Eintrag hinzufügen</button>
  69. </div>
  70. </div>
  71. <!-- MONEY -->
  72. <div class="money-container" (change)="updateMoney()">
  73. <div class="money-box">
  74. <div class="money-input-box">
  75. <img src="assets/icons/UIIcons/platinum.svg" class="money-icon" />
  76. <input
  77. class="money-input"
  78. type="number"
  79. [(ngModel)]="money.platinum"
  80. />
  81. </div>
  82. </div>
  83. <div class="money-box">
  84. <div class="money-input-box">
  85. <img src="assets/icons/UIIcons/gold.svg" class="money-icon" />
  86. <input class="money-input" type="number" [(ngModel)]="money.gold" />
  87. </div>
  88. </div>
  89. <div class="money-box">
  90. <div class="money-input-box">
  91. <img src="assets/icons/UIIcons/silver.svg" class="money-icon" />
  92. <input class="money-input" type="number" [(ngModel)]="money.silver" />
  93. </div>
  94. </div>
  95. <div class="money-box">
  96. <div class="money-input-box">
  97. <img src="assets/icons/UIIcons/copper.svg" class="money-icon" />
  98. <input class="money-input" type="number" [(ngModel)]="money.copper" />
  99. </div>
  100. </div>
  101. </div>
  102. <!-- WEIGHT -->
  103. <div class="weight-container">
  104. <div style="font-size: 1.5rem; font-weight: bold">Gesamtlast:</div>
  105. <div class="weight-box">{{ totalWeight }} / {{ maximumWeight }} lb.</div>
  106. </div>
  107. </div>
  108. <!-- TEMPLATES -->
  109. <!-- WEAPONS -->
  110. <ng-template #weaponTemplate>
  111. <div
  112. cdkDropList
  113. class="item-list table-content"
  114. (cdkDropListDropped)="drop($event, weaponsAndArmor, 'weaponsAndArmor')"
  115. >
  116. @for (item of weaponsAndArmor; let index = $index; track item) {
  117. <div
  118. class="item"
  119. cdkDrag
  120. (click)="openItemsDetails(weaponsAndArmor, index, 'weaponsAndArmor')"
  121. >
  122. <div class="item-property">{{ item.name }}</div>
  123. <div class="item-property">{{ item.value }} Gold</div>
  124. <div class="item-property">{{ item.weight }} lb.</div>
  125. <div class="item-property">{{ item.quantity }}</div>
  126. </div>
  127. } @empty {
  128. <div class="empty-list">Kein Eintrag</div>
  129. }
  130. </div>
  131. </ng-template>
  132. <!-- MISCELLANEOUS -->
  133. <ng-template #miscTemplate>
  134. <div
  135. cdkDropList
  136. class="item-list table-content"
  137. (cdkDropListDropped)="drop($event, miscellaneous, 'miscellaneous')"
  138. >
  139. @for (item of miscellaneous; let index = $index; track item) {
  140. <div
  141. class="item"
  142. cdkDrag
  143. (click)="openItemsDetails(miscellaneous, index, 'miscellaneous')"
  144. >
  145. <div class="item-property">{{ item.name }}</div>
  146. <div class="item-property">{{ item.value }} Gold</div>
  147. <div class="item-property">{{ item.weight }} lb.</div>
  148. <div class="item-property">{{ item.quantity }}</div>
  149. </div>
  150. } @empty {
  151. <div class="empty-list">Kein Eintrag</div>
  152. }
  153. </div>
  154. </ng-template>
  155. <!-- CONSUMABLES -->
  156. <ng-template #consumablesTemplate>
  157. <div
  158. cdkDropList
  159. class="item-list table-content"
  160. (cdkDropListDropped)="drop($event, consumables, 'consumables')"
  161. >
  162. @for (item of consumables; let index = $index; track item) {
  163. <div
  164. class="item"
  165. cdkDrag
  166. (click)="openItemsDetails(consumables, index, 'consumables')"
  167. >
  168. <div class="item-property">{{ item.name }}</div>
  169. <div class="item-property">{{ item.value }} Gold</div>
  170. <div class="item-property">{{ item.weight }} lb.</div>
  171. <div class="item-property">{{ item.quantity }}</div>
  172. </div>
  173. } @empty {
  174. <div class="empty-list">Kein Eintrag</div>
  175. }
  176. </div>
  177. </ng-template>
  178. <!-- FOOD -->
  179. <ng-template #foodTemplate>
  180. <div
  181. cdkDropList
  182. class="item-list table-content"
  183. (cdkDropListDropped)="drop($event, food, 'food')"
  184. >
  185. @for (item of food; let index = $index; track item) {
  186. <div class="item" cdkDrag (click)="openFoodDetails(index)">
  187. <div class="item-property">{{ item.name }}</div>
  188. <div class="item-property">@if(item.isReady){Ja} @else {Nein}</div>
  189. <div class="item-property">{{ item.weight }} lb.</div>
  190. <div class="item-property">{{ item.quantity }}</div>
  191. </div>
  192. } @empty {
  193. <div class="empty-list">Kein Eintrag</div>
  194. }
  195. </div>
  196. </ng-template>
  197. </div>