Skip to content

Commit 93edcd4

Browse files
committed
Fix some circular dependencies breaking standlone components with angular
1 parent 53b1b1e commit 93edcd4

15 files changed

+155
-134
lines changed

frontend/src/app/action/index.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
11
export * from './nhbk-action.model';
2-
3-
export * from './nhbk-action-editor-dialog.component';
4-
export * from './nhbk-action.component';

frontend/src/app/action/nhbk-action-editor-dialog.component.ts

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,19 @@ import {
1111
} from './nhbk-action.model';
1212
import {Observable} from 'rxjs';
1313

14-
import {ActiveStatsModifier, AutocompleteValue, MiscService} from '../shared';
15-
16-
import {ItemTemplate} from '../item-template';
17-
import { MAT_DIALOG_DATA, MatDialogRef, MatDialogTitle, MatDialogContent, MatDialogClose } from '@angular/material/dialog';
18-
import {Effect} from '../effect';
19-
import { CdkScrollable } from '@angular/cdk/scrolling';
20-
import { MatFormField, MatPrefix, MatSuffix } from '@angular/material/form-field';
21-
import { MatSelect } from '@angular/material/select';
22-
import { FormsModule } from '@angular/forms';
23-
import { MatOption } from '@angular/material/autocomplete';
24-
import { MatCheckbox } from '@angular/material/checkbox';
25-
import { AutocompleteInputComponent } from '../shared/autocomplete-input.component';
26-
import { MatInput } from '@angular/material/input';
27-
import { StatModifierEditorComponent } from '../effect/stats-modifier-editor.component';
28-
import { ActiveEffectEditorComponent } from '../effect/active-effect-editor.component';
29-
import { MatCardActions } from '@angular/material/card';
30-
import { MatButton } from '@angular/material/button';
14+
import {ActiveStatsModifier, AutocompleteInputComponent, AutocompleteValue} from '../shared';
15+
16+
import {ItemTemplate, ItemTemplateService} from '../item-template';
17+
import {MAT_DIALOG_DATA, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle} from '@angular/material/dialog';
18+
import {ActiveEffectEditorComponent, Effect, StatModifierEditorComponent} from '../effect';
19+
import {MatFormField, MatPrefix, MatSuffix} from '@angular/material/form-field';
20+
import {MatSelect} from '@angular/material/select';
21+
import {FormsModule} from '@angular/forms';
22+
import {MatOption} from '@angular/material/autocomplete';
23+
import {MatCheckbox} from '@angular/material/checkbox';
24+
import {MatInput} from '@angular/material/input';
25+
import {MatCardActions} from '@angular/material/card';
26+
import {MatButton} from '@angular/material/button';
3127

3228
export interface NhbkActionEditorDialogData {
3329
action?: NhbkAction
@@ -36,7 +32,7 @@ export interface NhbkActionEditorDialogData {
3632
@Component({
3733
styleUrls: ['./nhbk-action-editor-dialog.component.scss'],
3834
templateUrl: './nhbk-action-editor-dialog.component.html',
39-
imports: [MatDialogTitle, CdkScrollable, MatDialogContent, MatFormField, MatSelect, FormsModule, MatOption, MatCheckbox, AutocompleteInputComponent, MatInput, MatPrefix, MatSuffix, StatModifierEditorComponent, ActiveEffectEditorComponent, MatCardActions, MatButton, MatDialogClose]
35+
imports: [MatDialogTitle, MatDialogContent, MatFormField, MatSelect, FormsModule, MatOption, MatCheckbox, AutocompleteInputComponent, MatInput, MatPrefix, MatSuffix, StatModifierEditorComponent, ActiveEffectEditorComponent, MatCardActions, MatButton, MatDialogClose]
4036
})
4137
export class NhbkActionEditorDialogComponent {
4238
action: NhbkAction = NhbkActionFactory.createFromType(NhbkActionType.addEv, {ev: 1});
@@ -56,7 +52,7 @@ export class NhbkActionEditorDialogComponent {
5652
public selectedItemTemplate: ItemTemplate;
5753

5854
constructor(
59-
private readonly miscService: MiscService,
55+
private readonly itemTemplateService: ItemTemplateService,
6056
private readonly dialogRef: MatDialogRef<NhbkActionEditorDialogComponent, NhbkAction>,
6157
@Inject(MAT_DIALOG_DATA) public data: NhbkActionEditorDialogData
6258
) {
@@ -92,7 +88,7 @@ export class NhbkActionEditorDialogComponent {
9288
}
9389

9490
updateAutocompleteItem(filter: string): Observable<AutocompleteValue[]> {
95-
return this.miscService.searchItem(filter).pipe(map(
91+
return this.itemTemplateService.searchItem(filter).pipe(map(
9692
list => list.map(e => new AutocompleteValue(e, e.name))
9793
));
9894
}
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
1-
import {ActiveStatsModifier} from '../../shared';
21
import {Guid} from '../shared/util';
32
import {SpecialityResponse} from './speciality-response';
43

54
export interface CharacterLevelUpResponse {
6-
newModifiers: ActiveStatsModifier[];
5+
newModifiers: ActiveStatsModifierResponse[];
76
newSkillIds: Guid[];
87
newSpecialities: SpecialityResponse[];
98
newLevel: number;
109
}
10+
11+
export type ActiveStatsModifierResponse = {
12+
// FIXME: when needed
13+
}
14+

frontend/src/app/effect/effect.model.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import {StatModifier} from '../shared';
1+
import {IEffect, StatModifier} from '../shared';
22
import {IDurable} from '../api/shared';
33
import {DurationType} from '../api/shared/enums';
4-
import {EffectSubCategoryResponse, EffectResponse, EffectTypeResponse} from '../api/responses';
4+
import {EffectResponse, EffectSubCategoryResponse, EffectTypeResponse} from '../api/responses';
55

66
export type EffectSubCategoryDictionary = { [id: number]: EffectSubCategory };
77

@@ -46,7 +46,7 @@ export class EffectType {
4646
}
4747
}
4848

49-
export class Effect implements IDurable {
49+
export class Effect implements IDurable, IEffect {
5050
id: number;
5151
name: string;
5252
subCategory: EffectSubCategory;

frontend/src/app/home-database/home-database.routes.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ import {Routes} from '@angular/router';
33
import {SkillListComponent} from '../skill';
44
import {OriginListComponent} from '../origin';
55
import {JobListComponent} from '../job';
6-
import {EditItemTemplateDialogComponent, ItemTemplateListComponent} from '../item-template';
76
import {MonsterListComponent} from '../monster';
87
import {EffectListComponent} from '../effect';
98
import {QuestListComponent} from '../quest';
109
import {HomeDatabaseComponent} from './home-database.component';
1110
import {DatabaseSectionsComponent} from './database-sections.component';
1211
import {AptitudeListComponent} from '../aptitude/aptitude-list.component';
1312
import {AptitudeGroupComponent} from '../aptitude/aptitude-group.component';
13+
import {EditItemTemplateDialogComponent} from '../item-template/edit-item-template-dialog.component';
14+
import {ItemTemplateListComponent} from '../item-template/item-template-list.component';
1415

1516
export const routes: Routes = [
1617
{

frontend/src/app/home-gm/home-gm.routes.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
import {Routes} from '@angular/router';
2-
import {CreateCharacterComponent} from '../character';
3-
import {CharacterListComponent} from '../character';
4-
import {CharacterComponent} from '../character';
5-
import {CharacterResolve} from '../character';
6-
import {GroupComponent} from '../group';
2+
import {CharacterComponent, CharacterListComponent, CharacterResolve, CreateCharacterComponent} from '../character';
3+
import {CreateGroupComponent, GroupComponent, GroupListComponent} from '../group';
74
import {SkillListComponent} from '../skill';
85
import {OriginListComponent} from '../origin';
96
import {JobListComponent} from '../job';
10-
import {ItemTemplateListComponent} from '../item-template';
117
import {EffectListComponent} from '../effect';
128
import {MonsterListComponent} from '../monster';
139
import {QuestListComponent} from '../quest';
14-
import {CreateGroupComponent} from '../group';
15-
import {GroupListComponent} from '../group';
1610
import {AuthGuard} from '../user/auth-guard';
1711
import {HomeGmComponent} from './home-gm.component';
12+
import {ItemTemplateListComponent} from '../item-template/item-template-list.component';
1813

1914
export const routes: Routes = [
2015
{

frontend/src/app/item-template/index.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,3 @@ export * from './item-template.model';
22

33
export * from './item-template.service';
44

5-
export * from './add-item-template-editor-module-dialog.component';
6-
export * from './autocomplete-search-item-template.component';
7-
export * from './create-item-template-dialog.component';
8-
export * from './edit-item-template-dialog.component';
9-
export * from './item-template-list.component';
10-
export * from './item-template-editor-module.component';
11-
export * from './item-template-editor.component';
12-
export * from './item-template.component';

frontend/src/app/item-template/item-template-editor-module.component.ts

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,35 @@
11
import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
22
import {OverlayRef} from '@angular/cdk/overlay';
3-
import { Portal, CdkPortal } from '@angular/cdk/portal';
3+
import {CdkPortal, Portal} from '@angular/cdk/portal';
44

5-
import {God, NhbkDialogService, removeDiacritics} from '../shared';
6-
import {Skill} from '../skill';
7-
import {NhbkAction, NhbkActionEditorDialogComponent, NhbkActionEditorDialogData} from '../action';
5+
import {God, NhbkDialogService, removeDiacritics, StatRequirementsEditorComponent} from '../shared';
6+
import {Skill, SkillModifiersEditorComponent} from '../skill';
7+
import {NhbkAction} from '../action';
88
import {LoginService} from '../user';
99

1010
import {ItemSlot, ItemTemplate} from './item-template.model';
1111
import {ItemTemplateService} from './item-template.service';
1212
import {itemTemplateModulesDefinitions} from './item-template-modules-definitions';
1313
import {ItemTypeResponse} from '../api/responses';
1414
import {NhbkMatDialog} from '../material-workaround';
15-
import { MatCard, MatCardHeader, MatCardTitle, MatCardContent, MatCardSubtitle, MatCardActions } from '@angular/material/card';
16-
import { NgSwitch, NgSwitchCase, NgFor, NgIf, NgSwitchDefault } from '@angular/common';
17-
import { MatIconButton, MatButton } from '@angular/material/button';
18-
import { MatIcon } from '@angular/material/icon';
19-
import { MatFormField, MatLabel, MatSuffix, MatPrefix } from '@angular/material/form-field';
20-
import { MatInput } from '@angular/material/input';
21-
import { FormsModule } from '@angular/forms';
22-
import { NhbkActionComponent } from '../action/nhbk-action.component';
23-
import { MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';
24-
import { MatSelect } from '@angular/material/select';
25-
import { MatOption } from '@angular/material/autocomplete';
26-
import { MatDivider } from '@angular/material/list';
27-
import { MatCheckbox } from '@angular/material/checkbox';
28-
import { DurationSelectorComponent } from '../date/duration-selector.component';
29-
import { ModifiersEditorComponent } from '../effect/modifiers-editor.component';
30-
import { StatRequirementsEditorComponent } from '../shared/stat-requirements-editor.component';
31-
import { MatRadioGroup, MatRadioButton } from '@angular/material/radio';
32-
import { SkillModifiersEditorComponent } from '../skill/skill-modifiers-editor.component';
33-
import { MatExpansionPanelActionRow } from '@angular/material/expansion';
15+
import {MatCard, MatCardActions, MatCardContent, MatCardHeader, MatCardSubtitle, MatCardTitle} from '@angular/material/card';
16+
import {NgFor, NgIf, NgSwitch, NgSwitchCase, NgSwitchDefault} from '@angular/common';
17+
import {MatButton, MatIconButton} from '@angular/material/button';
18+
import {MatIcon} from '@angular/material/icon';
19+
import {MatFormField, MatLabel, MatPrefix, MatSuffix} from '@angular/material/form-field';
20+
import {MatInput} from '@angular/material/input';
21+
import {FormsModule} from '@angular/forms';
22+
import {MatMenu, MatMenuItem, MatMenuTrigger} from '@angular/material/menu';
23+
import {MatSelect} from '@angular/material/select';
24+
import {MatOption} from '@angular/material/autocomplete';
25+
import {MatDivider} from '@angular/material/list';
26+
import {MatCheckbox} from '@angular/material/checkbox';
27+
import {DurationSelectorComponent} from '../date';
28+
import {ModifiersEditorComponent} from '../effect';
29+
import {MatRadioButton, MatRadioGroup} from '@angular/material/radio';
30+
import {MatExpansionPanelActionRow} from '@angular/material/expansion';
31+
import {NhbkActionEditorDialogComponent, NhbkActionEditorDialogData} from '../action/nhbk-action-editor-dialog.component';
32+
import {NhbkActionComponent} from '../action/nhbk-action.component';
3433

3534
@Component({
3635
selector: 'item-template-editor-module',

frontend/src/app/item-template/item-template-editor.component.html

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,45 @@
117117
<mat-icon>add</mat-icon> Ajouter un module
118118
</button>
119119

120-
<item-template [jobsName]="jobsName"
121-
[originsName]="originsName"
122-
[godsByTechName]="godsByTechName"
123-
[itemTemplate]="itemTemplate">
124-
</item-template>
125-
120+
<mat-card>
121+
@if (itemTemplate.source === 'community') {
122+
<mat-card-subtitle style="display: flex; align-items: center">
123+
<mat-icon>group</mat-icon>Object communautaire@if (itemTemplate.sourceUser) {
124+
<span>&nbsp;créé par {{itemTemplate.sourceUser}}</span>
125+
}
126+
</mat-card-subtitle>
127+
}
128+
@if (itemTemplate.source === 'private') {
129+
<mat-card-subtitle style="display: flex; align-items: center">
130+
<mat-icon>lock</mat-icon> Object privé
131+
</mat-card-subtitle>
132+
}
133+
<mat-card-header>
134+
<icon matCardAvatar [enchanted]="itemTemplate.data.enchantment !== undefined" [icon]="itemTemplate.data.icon" [size]="'40px'"></icon>
135+
<mat-card-title>
136+
{{itemTemplate.name}}
137+
@if (itemTemplate.data.enchantment !== undefined) {
138+
<span>(Ench. {{itemTemplate.data.enchantment}})</span>
139+
}
140+
</mat-card-title>
141+
<mat-card-subtitle>
142+
@if (itemTemplate.data.enchantment !== undefined) {
143+
<span>Enchanté </span>
144+
}
145+
@if (itemTemplate.data.requireLevel) {
146+
<span>Niveau {{itemTemplate.data.requireLevel}} </span>
147+
}
148+
@if (itemTemplate.data.relic) {
149+
<span>Relique </span>
150+
}
151+
</mat-card-subtitle>
152+
<span class="padding"></span>
153+
</mat-card-header>
154+
<mat-card-content>
155+
<app-item-template-details [itemTemplate]="itemTemplate"
156+
[jobsName]="jobsName"
157+
[godsByTechName]="godsByTechName"
158+
[originsName]="originsName">
159+
</app-item-template-details>
160+
</mat-card-content>
161+
</mat-card>

frontend/src/app/item-template/item-template-editor.component.ts

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,35 @@
11
import {forkJoin} from 'rxjs';
22
import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';
33

4-
import {God, IconSelectorComponent, IconSelectorComponentDialogData, MiscService, NhbkDialogService} from '../shared';
4+
import {God, IconComponent, IconSelectorComponent, IconSelectorComponentDialogData, MiscService, NhbkDialogService} from '../shared';
55
import {LoginService} from '../user';
66
import {Skill, SkillService} from '../skill';
77
import {JobService} from '../job';
88
import {OriginService} from '../origin';
99

10-
import {
11-
ItemSlot,
12-
ItemTemplate,
13-
ItemTemplateGunData,
14-
ItemTemplateInstrumentData,
15-
ItemTemplateSection
16-
} from './item-template.model';
10+
import {ItemSlot, ItemTemplate, ItemTemplateGunData, ItemTemplateInstrumentData, ItemTemplateSection} from './item-template.model';
1711
import {ItemTemplateService} from './item-template.service'
1812
import {IconDescription} from '../shared/icon.model';
1913
import {AddItemTemplateEditorModuleDialogComponent} from './add-item-template-editor-module-dialog.component';
2014
import {ItemTypeResponse} from '../api/responses';
2115
import {NhbkMatDialog} from '../material-workaround';
22-
import { MatCard, MatCardContent, MatCardHeader, MatCardTitle } from '@angular/material/card';
23-
import { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';
24-
import { MatInput } from '@angular/material/input';
25-
import { FormsModule } from '@angular/forms';
26-
import { IconComponent } from '../shared/icon.component';
27-
import { MatIconButton, MatButton } from '@angular/material/button';
28-
import { MatTooltip } from '@angular/material/tooltip';
29-
import { MatIcon } from '@angular/material/icon';
30-
import { MatSelect } from '@angular/material/select';
31-
import { MatOption } from '@angular/material/autocomplete';
32-
import { ItemTemplateEditorModuleComponent } from './item-template-editor-module.component';
33-
import { ItemTemplateComponent } from './item-template.component';
16+
import {MatCard, MatCardAvatar, MatCardContent, MatCardHeader, MatCardSubtitle, MatCardTitle} from '@angular/material/card';
17+
import {MatFormField, MatLabel, MatSuffix} from '@angular/material/form-field';
18+
import {MatInput} from '@angular/material/input';
19+
import {FormsModule} from '@angular/forms';
20+
import {MatButton, MatIconButton} from '@angular/material/button';
21+
import {MatTooltip} from '@angular/material/tooltip';
22+
import {MatIcon} from '@angular/material/icon';
23+
import {MatSelect} from '@angular/material/select';
24+
import {MatOption} from '@angular/material/autocomplete';
25+
import {ItemTemplateEditorModuleComponent} from './item-template-editor-module.component';
26+
import {ItemTemplateDetailsComponent} from './item-template-details.component';
3427

3528
@Component({
3629
selector: 'item-template-editor',
3730
styleUrls: ['./item-template-editor.component.scss'],
3831
templateUrl: './item-template-editor.component.html',
39-
imports: [MatCard, MatCardContent, MatFormField, MatLabel, MatInput, FormsModule, IconComponent, MatIconButton, MatTooltip, MatIcon, MatSelect, MatOption, MatSuffix, MatCardHeader, MatCardTitle, ItemTemplateEditorModuleComponent, MatButton, ItemTemplateComponent]
32+
imports: [MatCard, MatCardContent, MatFormField, MatLabel, MatInput, FormsModule, IconComponent, MatIconButton, MatTooltip, MatIcon, MatSelect, MatOption, MatSuffix, MatCardHeader, MatCardTitle, ItemTemplateEditorModuleComponent, MatButton, ItemTemplateDetailsComponent, MatCardAvatar, MatCardSubtitle]
4033
})
4134
export class ItemTemplateEditorComponent implements OnInit, OnChanges {
4235
@Input() itemTemplate: ItemTemplate;

0 commit comments

Comments
 (0)