diff --git a/.eslintrc.json b/.eslintrc.json index ce7a5da3cc..4a1fdf84d2 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -42,7 +42,8 @@ "@typescript-eslint/no-inferrable-types": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/ban-ts-comment": "off" + "@typescript-eslint/ban-ts-comment": "off", + "no-duplicate-imports": "error" } }, { diff --git a/libs/features/conditions/src/edit-conditions/conditions.component.ts b/libs/features/conditions/src/edit-conditions/conditions.component.ts index 73eb1403ab..843d016777 100644 --- a/libs/features/conditions/src/edit-conditions/conditions.component.ts +++ b/libs/features/conditions/src/edit-conditions/conditions.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CONDITION_DISTANCE_TO_CV3, CONDITION_HP_PCT_CV2, @@ -18,6 +18,12 @@ import { RANKMASK, TYPEMASK, } from '@keira/shared/acore-world-model'; +import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { FlagsSelectorBtnComponent, SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; +import { getEnumKeys } from '@keira/shared/utils'; +import { TranslateModule } from '@ngx-translate/core'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { ConditionsHandlerService } from '../conditions-handler.service'; import { CONDITION_TARGET_TOOLTIPS, @@ -28,14 +34,6 @@ import { SOURCE_GROUP_TOOLTIPS, } from './conditions-constants'; import { ConditionsService } from './conditions.service'; -import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { getEnumKeys } from '@keira/shared/utils'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/creature-equip-template/creature-equip-template.component.ts b/libs/features/creature/src/creature-equip-template/creature-equip-template.component.ts index 8f240d5356..ae92256b66 100644 --- a/libs/features/creature/src/creature-equip-template/creature-equip-template.component.ts +++ b/libs/features/creature/src/creature-equip-template/creature-equip-template.component.ts @@ -1,15 +1,12 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CreatureEquipTemplate } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { CreatureEquipTemplateService } from './creature-equip-template.service'; +import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { ItemSelectorBtnComponent } from '@keira/shared/selectors'; -import { IconComponent } from '@keira/shared/base-editor-components'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { CreatureEquipTemplateService } from './creature-equip-template.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/creature-loot-template/creature-loot-template.component.ts b/libs/features/creature/src/creature-loot-template/creature-loot-template.component.ts index 7508b0cc43..66c6dbc1fc 100644 --- a/libs/features/creature/src/creature-loot-template/creature-loot-template.component.ts +++ b/libs/features/creature/src/creature-loot-template/creature-loot-template.component.ts @@ -1,11 +1,10 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { LootTemplateIdComponent } from '@keira/shared/base-abstract-classes'; import { CreatureLootTemplate } from '@keira/shared/acore-world-model'; +import { LootTemplateIdComponent } from '@keira/shared/base-abstract-classes'; +import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { LootEditorComponent } from '@keira/shared/loot-editor'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureLootTemplateService } from './creature-loot-template.service'; -import { LootEditorComponent } from '@keira/shared/loot-editor'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.html b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.html index 13dfd1c201..55bdc8c9e0 100644 --- a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.html +++ b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.html @@ -47,18 +47,19 @@
- - + id="MaxStanding1" + [optionList]="FACTION_RANK" + >
- +
@@ -71,18 +72,19 @@
- - + id="MaxStanding2" + [optionList]="FACTION_RANK" + >
- +
@@ -100,7 +102,10 @@ placement="auto" [tooltip]="'CREATURE.ONKILL_REPUTATION.TEAM_DEPENDENT_TOOLTIP' | translate" > - +
diff --git a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.ts b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.ts index 03362604b8..8b543a8c14 100644 --- a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.ts +++ b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.component.ts @@ -1,16 +1,18 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CreatureOnkillReputation, FACTION_RANK } from '@keira/shared/acore-world-model'; +import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { + BooleanOptionSelectorComponent, + FactionSelectorBtnComponent, + GenericOptionSelectorComponent, + SingleValueSelectorBtnComponent, +} from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureOnkillReputationService } from './creature-onkill-reputation.service'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; -import { FactionSelectorBtnComponent } from '@keira/shared/selectors'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -27,6 +29,8 @@ import { TopBarComponent } from '@keira/shared/base-editor-components'; FactionSelectorBtnComponent, SingleValueSelectorBtnComponent, TooltipModule, + BooleanOptionSelectorComponent, + GenericOptionSelectorComponent, ], }) export class CreatureOnkillReputationComponent extends SingleRowEditorComponent { diff --git a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.integration.spec.ts b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.integration.spec.ts index 3e106ec642..66a29b83f7 100644 --- a/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.integration.spec.ts +++ b/libs/features/creature/src/creature-onkill-reputation/creature-onkill-reputation.integration.spec.ts @@ -1,17 +1,17 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; +import { CreatureOnkillReputation } from '@keira/shared/acore-world-model'; import { MysqlQueryService, SqliteQueryService, SqliteService } from '@keira/shared/db-layer'; import { EditorPageObject, TranslateTestingModule } from '@keira/shared/test-utils'; -import { CreatureOnkillReputation } from '@keira/shared/acore-world-model'; import { ModalModule } from 'ngx-bootstrap/modal'; import { ToastrModule } from 'ngx-toastr'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { of } from 'rxjs'; +import { instance, mock } from 'ts-mockito'; import { CreatureHandlerService } from '../creature-handler.service'; import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; import { CreatureOnkillReputationComponent } from './creature-onkill-reputation.component'; import Spy = jasmine.Spy; -import { instance, mock } from 'ts-mockito'; class CreatureOnkillReputationPage extends EditorPageObject {} @@ -112,10 +112,21 @@ describe('CreatureOnkillReputation integration tests', () => { it('changing all properties and executing the query should correctly work', () => { const expectedQuery = 'UPDATE `creature_onkill_reputation` SET ' + - '`RewOnKillRepFaction2` = 1, `MaxStanding1` = 2, `IsTeamAward1` = 3, `RewOnKillRepValue1` = 4, ' + - '`MaxStanding2` = 5, `IsTeamAward2` = 6, `RewOnKillRepValue2` = 7, `TeamDependent` = 8 WHERE (`creature_id` = 1234);'; + '`RewOnKillRepFaction2` = 1, `MaxStanding1` = 1, `IsTeamAward1` = 1, `RewOnKillRepValue1` = 4, ' + + '`MaxStanding2` = 1, `IsTeamAward2` = 1, `RewOnKillRepValue2` = 7, `TeamDependent` = 1 WHERE (`creature_id` = 1234);'; querySpy.calls.reset(); + const MaxStanding1 = page.getDebugElementByCss('#MaxStanding1 select').nativeElement; + const MaxStanding2 = page.getDebugElementByCss('#MaxStanding2 select').nativeElement; + const IsTeamAward1 = page.getDebugElementByCss('#IsTeamAward1 select').nativeElement; + const IsTeamAward2 = page.getDebugElementByCss('#IsTeamAward2 select').nativeElement; + const TeamDependent = page.getDebugElementByCss('#TeamDependent select').nativeElement; + page.setInputValue(MaxStanding1, '1: 1'); + page.setInputValue(MaxStanding2, '1: 1'); + page.setInputValue(IsTeamAward1, '1: 1'); + page.setInputValue(IsTeamAward2, '1: 1'); + page.setInputValue(TeamDependent, '1: 1'); + page.changeAllFields(originalEntity, ['VerifiedBuild']); page.expectDiffQueryToContain(expectedQuery); @@ -135,16 +146,17 @@ describe('CreatureOnkillReputation integration tests', () => { '(1234, 0, 1, 0, 0, 0, 0, 0, 0, 0);', ); - page.setInputValueById('IsTeamAward1', '3'); + const IsTeamAward1 = page.getDebugElementByCss('#IsTeamAward1 select').nativeElement; + page.setInputValue(IsTeamAward1, '1: 1'); page.expectDiffQueryToContain( - 'UPDATE `creature_onkill_reputation` SET `RewOnKillRepFaction2` = 1, `IsTeamAward1` = 3 WHERE (`creature_id` = 1234);', + 'UPDATE `creature_onkill_reputation` SET `RewOnKillRepFaction2` = 1, `IsTeamAward1` = 1 WHERE (`creature_id` = 1234);', ); page.expectFullQueryToContain( 'DELETE FROM `creature_onkill_reputation` WHERE (`creature_id` = 1234);\n' + 'INSERT INTO `creature_onkill_reputation` (`creature_id`, `RewOnKillRepFaction1`,' + ' `RewOnKillRepFaction2`, `MaxStanding1`, `IsTeamAward1`, `RewOnKillRepValue1`, ' + '`MaxStanding2`, `IsTeamAward2`, `RewOnKillRepValue2`, `TeamDependent`) VALUES\n' + - '(1234, 0, 1, 0, 3, 0, 0, 0, 0, 0);', + '(1234, 0, 1, 0, 1, 0, 0, 0, 0, 0);', ); }); diff --git a/libs/features/creature/src/creature-questitem/creature-questitem.component.ts b/libs/features/creature/src/creature-questitem/creature-questitem.component.ts index 507bf07a21..7dcc7d4456 100644 --- a/libs/features/creature/src/creature-questitem/creature-questitem.component.ts +++ b/libs/features/creature/src/creature-questitem/creature-questitem.component.ts @@ -1,17 +1,14 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CreatureQuestitem } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { CreatureQuestitemService } from './creature-questitem.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { ItemSelectorBtnComponent } from '@keira/shared/selectors'; -import { IconComponent } from '@keira/shared/base-editor-components'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; -import { AsyncPipe } from '@angular/common'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { CreatureQuestitemService } from './creature-questitem.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.html b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.html index ca1b63cd58..b30adae904 100644 --- a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.html +++ b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.html @@ -30,33 +30,27 @@
- - + id="bytes1" + [optionList]="CREATURE_ADDON_BYTES_1" + >
- - + id="bytes2" + [optionList]="CREATURE_ADDON_BYTES_2" + >
- - + id="emote" + [optionList]="EMOTE" + >
diff --git a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.ts b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.ts index e9ab5f3c16..f60647bcd4 100644 --- a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.ts +++ b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.component.ts @@ -1,16 +1,14 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CREATURE_ADDON_BYTES_1, CREATURE_ADDON_BYTES_2, CreatureSpawnAddon, EMOTE } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { CreatureSpawnAddonService } from './creature-spawn-addon.service'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { GenericOptionSelectorComponent, SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { CreatureSpawnAddonService } from './creature-spawn-addon.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -27,6 +25,7 @@ import { TopBarComponent } from '@keira/shared/base-editor-components'; TooltipModule, SingleValueSelectorBtnComponent, NgxDatatableModule, + GenericOptionSelectorComponent, ], }) export class CreatureSpawnAddonComponent extends MultiRowEditorComponent { diff --git a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.integration.spec.ts b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.integration.spec.ts index 047197d039..9b0e18adfe 100644 --- a/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.integration.spec.ts +++ b/libs/features/creature/src/creature-spawn-addon/creature-spawn-addon.integration.spec.ts @@ -1,17 +1,17 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; +import { CreatureSpawnAddon } from '@keira/shared/acore-world-model'; import { MysqlQueryService, SqliteService } from '@keira/shared/db-layer'; import { MultiRowEditorPageObject, TranslateTestingModule } from '@keira/shared/test-utils'; -import { CreatureSpawnAddon } from '@keira/shared/acore-world-model'; import { ModalModule } from 'ngx-bootstrap/modal'; import { ToastrModule } from 'ngx-toastr'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { of } from 'rxjs'; +import { instance, mock } from 'ts-mockito'; import { CreatureHandlerService } from '../creature-handler.service'; import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; import { CreatureSpawnAddonComponent } from './creature-spawn-addon.component'; import { CreatureSpawnAddonService } from './creature-spawn-addon.service'; -import { instance, mock } from 'ts-mockito'; class CreatureSpawnAddonPage extends MultiRowEditorPageObject {} @@ -75,9 +75,9 @@ describe('CreatureSpawnAddon integration tests', () => { expect(page.getInputById('guid').disabled).toBe(true); expect(page.getInputById('path_id').disabled).toBe(true); expect(page.getInputById('mount').disabled).toBe(true); - expect(page.getInputById('bytes1').disabled).toBe(true); - expect(page.getInputById('bytes2').disabled).toBe(true); - expect(page.getInputById('emote').disabled).toBe(true); + expect(page.getDebugElementByCss('#bytes1 select').nativeElement.disabled).toBe(true); + expect(page.getDebugElementByCss('#bytes2 select').nativeElement.disabled).toBe(true); + expect(page.getDebugElementByCss('#emote select').nativeElement.disabled).toBe(true); expect(page.getInputById('visibilityDistanceType').disabled).toBe(true); expect(page.getInputById('auras').disabled).toBe(true); expect(page.getEditorTableRowsCount()).toBe(0); diff --git a/libs/features/creature/src/creature-spawn/creature-spawn.component.html b/libs/features/creature/src/creature-spawn/creature-spawn.component.html index 8f18a8bf53..12c032c758 100644 --- a/libs/features/creature/src/creature-spawn/creature-spawn.component.html +++ b/libs/features/creature/src/creature-spawn/creature-spawn.component.html @@ -104,13 +104,11 @@
- - + id="MovementType" + [optionList]="MOVEMENT_TYPE" + >
diff --git a/libs/features/creature/src/creature-spawn/creature-spawn.component.ts b/libs/features/creature/src/creature-spawn/creature-spawn.component.ts index facfeda757..32872e10ee 100644 --- a/libs/features/creature/src/creature-spawn/creature-spawn.component.ts +++ b/libs/features/creature/src/creature-spawn/creature-spawn.component.ts @@ -1,5 +1,5 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CreatureSpawn, DYNAMIC_FLAGS, @@ -9,18 +9,20 @@ import { SPAWN_MASK, UNIT_FLAGS, } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { CreatureSpawnService } from './creature-spawn.service'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { + AreaSelectorBtnComponent, + FlagsSelectorBtnComponent, + GenericOptionSelectorComponent, + MapSelectorBtnComponent, + SingleValueSelectorBtnComponent, +} from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { AreaSelectorBtnComponent, MapSelectorBtnComponent, SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { CreatureSpawnService } from './creature-spawn.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -41,6 +43,7 @@ import { TopBarComponent } from '@keira/shared/base-editor-components'; SingleValueSelectorBtnComponent, EditorButtonsComponent, NgxDatatableModule, + GenericOptionSelectorComponent, ], }) export class CreatureSpawnComponent extends MultiRowEditorComponent { diff --git a/libs/features/creature/src/creature-spawn/creature-spawn.integration.spec.ts b/libs/features/creature/src/creature-spawn/creature-spawn.integration.spec.ts index 310ebc45c3..3ed84c3b75 100644 --- a/libs/features/creature/src/creature-spawn/creature-spawn.integration.spec.ts +++ b/libs/features/creature/src/creature-spawn/creature-spawn.integration.spec.ts @@ -1,17 +1,17 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; +import { CreatureSpawn } from '@keira/shared/acore-world-model'; import { MysqlQueryService, SqliteQueryService, SqliteService } from '@keira/shared/db-layer'; import { MultiRowEditorPageObject, TranslateTestingModule } from '@keira/shared/test-utils'; -import { CreatureSpawn } from '@keira/shared/acore-world-model'; import { ModalModule } from 'ngx-bootstrap/modal'; import { ToastrModule } from 'ngx-toastr'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { of } from 'rxjs'; +import { instance, mock } from 'ts-mockito'; import { CreatureHandlerService } from '../creature-handler.service'; import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; import { CreatureSpawnComponent } from './creature-spawn.component'; import Spy = jasmine.Spy; -import { instance, mock } from 'ts-mockito'; class CreatureSpawnPage extends MultiRowEditorPageObject {} @@ -87,7 +87,7 @@ describe('CreatureSpawn integration tests', () => { expect(page.getInputById('currentwaypoint').disabled).toBe(true); expect(page.getInputById('curhealth').disabled).toBe(true); expect(page.getInputById('curmana').disabled).toBe(true); - expect(page.getInputById('MovementType').disabled).toBe(true); + expect(page.getDebugElementByCss('#MovementType select').nativeElement.disabled).toBe(true); expect(page.getInputById('npcflag').disabled).toBe(true); expect(page.getInputById('unit_flags').disabled).toBe(true); expect(page.getInputById('dynamicflags').disabled).toBe(true); diff --git a/libs/features/creature/src/creature-template-addon/creature-template-addon.component.ts b/libs/features/creature/src/creature-template-addon/creature-template-addon.component.ts index 59f9bbda6f..dbdc7d61ba 100644 --- a/libs/features/creature/src/creature-template-addon/creature-template-addon.component.ts +++ b/libs/features/creature/src/creature-template-addon/creature-template-addon.component.ts @@ -8,15 +8,13 @@ import { EMOTE, } from '@keira/shared/acore-world-model'; import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; import { TranslateModule } from '@ngx-translate/core'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureTemplateAddonService } from './creature-template-addon.service'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; - @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'keira-creature-template-addon', diff --git a/libs/features/creature/src/creature-template-movement/creature-template-movement.component.ts b/libs/features/creature/src/creature-template-movement/creature-template-movement.component.ts index 5c00923f31..ded595cda0 100644 --- a/libs/features/creature/src/creature-template-movement/creature-template-movement.component.ts +++ b/libs/features/creature/src/creature-template-movement/creature-template-movement.component.ts @@ -1,14 +1,12 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CREATURE_TEMPLATE_MOVEMENT_TABLE, CreatureTemplateMovement } from '@keira/shared/acore-world-model'; +import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { TranslateModule } from '@ngx-translate/core'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureTemplateMovementService } from './creature-template-movement.service'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.html b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.html index b40a38646c..2e6eaf16a4 100644 --- a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.html +++ b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.html @@ -15,13 +15,11 @@
- - + id="School" + [optionList]="CREATURE_TEMPLATE_RESISTANCE_SCHOOL" + >
diff --git a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.ts b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.ts index 3cb82c6cc9..64870468f7 100644 --- a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.ts +++ b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.component.ts @@ -1,20 +1,17 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CREATURE_TEMPLATE_RESISTANCE_SCHOOL, CREATURE_TEMPLATE_RESISTANCE_TABLE, CreatureTemplateResistance, } from '@keira/shared/acore-world-model'; import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { GenericOptionSelectorComponent, SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureTemplateResistanceService } from './creature-template-resistance.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -30,6 +27,7 @@ import { TopBarComponent } from '@keira/shared/base-editor-components'; SingleValueSelectorBtnComponent, EditorButtonsComponent, NgxDatatableModule, + GenericOptionSelectorComponent, ], }) export class CreatureTemplateResistanceComponent extends MultiRowEditorComponent { @@ -37,7 +35,7 @@ export class CreatureTemplateResistanceComponent extends MultiRowEditorComponent return this.WIKI_BASE_URL + CREATURE_TEMPLATE_RESISTANCE_TABLE; } - readonly CREATURE_TEMPLATE_RESISTANCE_SCHOOL = CREATURE_TEMPLATE_RESISTANCE_SCHOOL; + protected readonly CREATURE_TEMPLATE_RESISTANCE_SCHOOL = CREATURE_TEMPLATE_RESISTANCE_SCHOOL; override readonly editorService = inject(CreatureTemplateResistanceService); readonly handlerService = inject(CreatureHandlerService); diff --git a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.integration.spec.ts b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.integration.spec.ts index 3b35620c6a..cc86ff41f5 100644 --- a/libs/features/creature/src/creature-template-resistance/creature-template-resistance.integration.spec.ts +++ b/libs/features/creature/src/creature-template-resistance/creature-template-resistance.integration.spec.ts @@ -1,15 +1,15 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; +import { CreatureTemplateResistance } from '@keira/shared/acore-world-model'; import { MysqlQueryService, SqliteService } from '@keira/shared/db-layer'; import { MultiRowEditorPageObject, TranslateTestingModule } from '@keira/shared/test-utils'; -import { CreatureTemplateResistance } from '@keira/shared/acore-world-model'; import { ModalModule } from 'ngx-bootstrap/modal'; import { ToastrModule } from 'ngx-toastr'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { of } from 'rxjs'; +import { instance, mock } from 'ts-mockito'; import { CreatureHandlerService } from '../creature-handler.service'; import { CreatureTemplateResistanceComponent } from './creature-template-resistance.component'; -import { instance, mock } from 'ts-mockito'; class CreatureTemplateResistancePage extends MultiRowEditorPageObject {} @@ -66,7 +66,7 @@ describe('CreatureTemplateResistance integration tests', () => { expect(page.formError.hidden).toBe(true); expect(page.addNewRowBtn.disabled).toBe(false); expect(page.deleteSelectedRowBtn.disabled).toBe(true); - expect(page.getInputById('School').disabled).toBe(true); + expect(page.getDebugElementByCss('#School select').nativeElement.disabled).toBe(true); expect(page.getInputById('Resistance').disabled).toBe(true); expect(page.getEditorTableRowsCount()).toBe(0); page.removeElement(); @@ -120,7 +120,9 @@ describe('CreatureTemplateResistance integration tests', () => { '(1234, 1, 0, 0);', ); - page.setInputValueById('School', '2'); + const select = page.getDebugElementByCss('#School select').nativeElement; + page.setInputValue(select, '1: 2'); + page.expectDiffQueryToContain( 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234) AND (`School` IN (2));\n' + 'INSERT INTO `creature_template_resistance` (`CreatureID`, `School`, `Resistance`, `VerifiedBuild`) VALUES\n' + @@ -137,7 +139,10 @@ describe('CreatureTemplateResistance integration tests', () => { it('adding a row changing its values and duplicate it should correctly update the queries', () => { const { page } = setup(true); page.addNewRow(); - page.setInputValueById('School', '2'); + + const select = page.getDebugElementByCss('#School select').nativeElement; + page.setInputValue(select, '1: 2'); + page.duplicateSelectedRow(); page.expectDiffQueryToContain( @@ -204,18 +209,19 @@ describe('CreatureTemplateResistance integration tests', () => { it('editing existing rows should correctly work', () => { const { page } = setup(false); page.clickRowOfDatatable(1); - page.setInputValueById('School', 111); + + page.setInputValueById('Resistance', '1'); page.expectDiffQueryToContain( - 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234) AND (`School` IN (2, 111));\n' + + 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234) AND (`School` IN (2));\n' + 'INSERT INTO `creature_template_resistance` (`CreatureID`, `School`, `Resistance`, `VerifiedBuild`) VALUES\n' + - '(1234, 111, 0, 0);', + '(1234, 2, 1, 0);', ); page.expectFullQueryToContain( 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234);\n' + 'INSERT INTO `creature_template_resistance` (`CreatureID`, `School`, `Resistance`, `VerifiedBuild`) VALUES\n' + '(1234, 1, 0, 0),\n' + - '(1234, 111, 0, 0),\n' + + '(1234, 2, 1, 0),\n' + '(1234, 3, 0, 0);', ); page.removeElement(); @@ -227,23 +233,25 @@ describe('CreatureTemplateResistance integration tests', () => { expect(page.getEditorTableRowsCount()).toBe(4); page.clickRowOfDatatable(1); - page.setInputValueById('School', 10); + const select = page.getDebugElementByCss('#School select').nativeElement; + page.setInputValue(select, '4: 5'); + expect(page.getEditorTableRowsCount()).toBe(4); page.deleteRow(2); expect(page.getEditorTableRowsCount()).toBe(3); page.expectDiffQueryToContain( - 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234) AND (`School` IN (2, 3, 10, 4));\n' + + 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234) AND (`School` IN (2, 3, 5, 4));\n' + 'INSERT INTO `creature_template_resistance` (`CreatureID`, `School`, `Resistance`, `VerifiedBuild`) VALUES\n' + - '(1234, 10, 0, 0),\n' + + '(1234, 5, 0, 0),\n' + '(1234, 4, 0, 0);', ); page.expectFullQueryToContain( 'DELETE FROM `creature_template_resistance` WHERE (`CreatureID` = 1234);\n' + 'INSERT INTO `creature_template_resistance` (`CreatureID`, `School`, `Resistance`, `VerifiedBuild`) VALUES\n' + '(1234, 1, 0, 0),\n' + - '(1234, 10, 0, 0),\n' + + '(1234, 5, 0, 0),\n' + '(1234, 4, 0, 0);', ); page.removeElement(); @@ -252,7 +260,8 @@ describe('CreatureTemplateResistance integration tests', () => { it('using the same row id for multiple rows should correctly show an error', () => { const { page } = setup(false); page.clickRowOfDatatable(2); - page.setInputValueById('School', 1); + const select = page.getDebugElementByCss('#School select').nativeElement; + page.setInputValue(select, '1: 2'); page.expectUniqueError(); page.removeElement(); diff --git a/libs/features/creature/src/creature-template-spell/creature-template-spell.component.html b/libs/features/creature/src/creature-template-spell/creature-template-spell.component.html index 3479cc1d87..2256e94a9e 100644 --- a/libs/features/creature/src/creature-template-spell/creature-template-spell.component.html +++ b/libs/features/creature/src/creature-template-spell/creature-template-spell.component.html @@ -16,10 +16,20 @@
- +
+
@@ -49,7 +59,12 @@ - + + + {{ row.Spell }} - + {{ sqliteQueryService.getSpellNameById(row.Spell) | async }} + +
diff --git a/libs/features/creature/src/creature-template-spell/creature-template-spell.component.ts b/libs/features/creature/src/creature-template-spell/creature-template-spell.component.ts index 4bce72a31d..746fb4c355 100644 --- a/libs/features/creature/src/creature-template-spell/creature-template-spell.component.ts +++ b/libs/features/creature/src/creature-template-spell/creature-template-spell.component.ts @@ -1,16 +1,16 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CREATURE_TEMPLATE_SPELL_TABLE, CreatureTemplateSpell } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { CreatureTemplateSpellService } from './creature-template-spell.service'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { SqliteQueryService } from '@keira/shared/db-layer'; +import { SpellSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { CreatureTemplateSpellService } from './creature-template-spell.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -26,6 +26,9 @@ import { TopBarComponent } from '@keira/shared/base-editor-components'; TooltipModule, EditorButtonsComponent, NgxDatatableModule, + SpellSelectorBtnComponent, + IconComponent, + AsyncPipe, ], }) export class CreatureTemplateSpellComponent extends MultiRowEditorComponent { @@ -33,6 +36,9 @@ export class CreatureTemplateSpellComponent extends MultiRowEditorComponent {} @@ -26,7 +26,10 @@ describe('CreatureTemplateSpell integration tests', () => { CreatureTemplateSpellComponent, TranslateTestingModule, ], - providers: [{ provide: SqliteService, useValue: instance(mock(SqliteService)) }], + providers: [ + { provide: SqliteService, useValue: instance(mock(SqliteService)) }, + { provide: SqliteQueryService, useValue: instance(mock(SqliteQueryService)) }, + ], }).compileComponents(); })); @@ -55,6 +58,10 @@ describe('CreatureTemplateSpell integration tests', () => { fixture.autoDetectChanges(true); fixture.detectChanges(); + const sqliteQueryService = TestBed.inject(SqliteQueryService); + const mockIntermediateResult = 'some result'; + spyOn(sqliteQueryService, 'getDisplayIdBySpellId').and.returnValue(of(mockIntermediateResult)); + return { handlerService, queryService, querySpy, fixture, component, page }; } @@ -120,7 +127,7 @@ describe('CreatureTemplateSpell integration tests', () => { '(1234, 0, 0, 0);', ); - page.setInputValueById('Index', '1'); + page.setInputValueById('Index', '1: 1'); page.expectDiffQueryToContain( 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234) AND (`Index` IN (1));\n' + 'INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES\n' + @@ -137,7 +144,7 @@ describe('CreatureTemplateSpell integration tests', () => { it('adding a row and changing its values should correctly update the queries', () => { const { page } = setup(true); page.addNewRow(); - page.setInputValueById('Index', '1'); + page.setInputValueById('Index', '1: 1'); page.duplicateSelectedRow(); page.expectDiffQueryToContain( @@ -204,18 +211,18 @@ describe('CreatureTemplateSpell integration tests', () => { it('editing existing rows should correctly work', () => { const { page } = setup(false); page.clickRowOfDatatable(1); - page.setInputValueById('Index', 111); + page.setInputValueById('Spell', '3'); page.expectDiffQueryToContain( - 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234) AND (`Index` IN (1, 111));\n' + + 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234) AND (`Index` IN (1));\n' + 'INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES\n' + - '(1234, 111, 0, 0);', + '(1234, 1, 3, 0);', ); page.expectFullQueryToContain( 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234);\n' + 'INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES\n' + '(1234, 0, 0, 0),\n' + - '(1234, 111, 0, 0),\n' + + '(1234, 1, 3, 0),\n' + '(1234, 2, 0, 0);', ); page.removeElement(); @@ -227,23 +234,23 @@ describe('CreatureTemplateSpell integration tests', () => { expect(page.getEditorTableRowsCount()).toBe(4); page.clickRowOfDatatable(1); - page.setInputValueById('Index', 10); + page.setInputValueById('Index', '7: 7'); expect(page.getEditorTableRowsCount()).toBe(4); page.deleteRow(2); expect(page.getEditorTableRowsCount()).toBe(3); page.expectDiffQueryToContain( - 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234) AND (`Index` IN (1, 2, 10, 3));\n' + + 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234) AND (`Index` IN (1, 2, 7, 3));\n' + 'INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES\n' + - '(1234, 10, 0, 0),\n' + + '(1234, 7, 0, 0),\n' + '(1234, 3, 0, 0);', ); page.expectFullQueryToContain( 'DELETE FROM `creature_template_spell` WHERE (`CreatureID` = 1234);\n' + 'INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES\n' + '(1234, 0, 0, 0),\n' + - '(1234, 10, 0, 0),\n' + + '(1234, 7, 0, 0),\n' + '(1234, 3, 0, 0);', ); page.removeElement(); @@ -252,7 +259,7 @@ describe('CreatureTemplateSpell integration tests', () => { it('using the same row id for multiple rows should correctly show an error', () => { const { page } = setup(false); page.clickRowOfDatatable(2); - page.setInputValueById('Index', 0); + page.setInputValueById('Index', '0: 0'); page.expectUniqueError(); page.removeElement(); diff --git a/libs/features/creature/src/creature-text/creature-text.component.html b/libs/features/creature/src/creature-text/creature-text.component.html index 12b0a50335..ee9a46ebd4 100644 --- a/libs/features/creature/src/creature-text/creature-text.component.html +++ b/libs/features/creature/src/creature-text/creature-text.component.html @@ -25,13 +25,11 @@
- - + id="Type" + [optionList]="TEXT_TYPE" + >
@@ -51,14 +49,12 @@
- - +
@@ -82,13 +78,11 @@
- - + id="TextRange" + [optionList]="TEXT_RANGE" + >
diff --git a/libs/features/creature/src/creature-text/creature-text.component.ts b/libs/features/creature/src/creature-text/creature-text.component.ts index 769567cf68..48bfa0ea36 100644 --- a/libs/features/creature/src/creature-text/creature-text.component.ts +++ b/libs/features/creature/src/creature-text/creature-text.component.ts @@ -3,7 +3,12 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { CreatureText, EMOTE, TEXT_RANGE, TEXT_TYPE } from '@keira/shared/acore-world-model'; import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; import { EditorButtonsComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; -import { LanguageSelectorBtnComponent, SingleValueSelectorBtnComponent, SoundEntriesSelectorBtnComponent } from '@keira/shared/selectors'; +import { + GenericOptionSelectorComponent, + LanguageSelectorBtnComponent, + SingleValueSelectorBtnComponent, + SoundEntriesSelectorBtnComponent, +} from '@keira/shared/selectors'; import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; @@ -27,6 +32,7 @@ import { CreatureTextService } from './creature-text.service'; SingleValueSelectorBtnComponent, LanguageSelectorBtnComponent, SoundEntriesSelectorBtnComponent, + GenericOptionSelectorComponent, ], }) export class CreatureTextComponent extends MultiRowEditorComponent { diff --git a/libs/features/creature/src/creature-text/creature-text.integration.spec.ts b/libs/features/creature/src/creature-text/creature-text.integration.spec.ts index 3d53458a00..07793a5e0a 100644 --- a/libs/features/creature/src/creature-text/creature-text.integration.spec.ts +++ b/libs/features/creature/src/creature-text/creature-text.integration.spec.ts @@ -1,16 +1,16 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { RouterTestingModule } from '@angular/router/testing'; +import { CreatureText } from '@keira/shared/acore-world-model'; import { MysqlQueryService, SqliteService } from '@keira/shared/db-layer'; import { MultiRowEditorPageObject, TranslateTestingModule } from '@keira/shared/test-utils'; -import { CreatureText } from '@keira/shared/acore-world-model'; import { ModalModule } from 'ngx-bootstrap/modal'; import { ToastrModule } from 'ngx-toastr'; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { of } from 'rxjs'; +import { instance, mock } from 'ts-mockito'; import { CreatureHandlerService } from '../creature-handler.service'; import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; import { CreatureTextComponent } from './creature-text.component'; -import { instance, mock } from 'ts-mockito'; class CreatureTextPage extends MultiRowEditorPageObject {} describe('CreatureText integration tests', () => { @@ -68,14 +68,14 @@ describe('CreatureText integration tests', () => { expect(page.getInputById('GroupID').disabled).toBe(true); expect(page.getInputById('ID').disabled).toBe(true); expect(page.getInputById('Text').disabled).toBe(true); - expect(page.getInputById('Type').disabled).toBe(true); + expect(page.getDebugElementByCss('#Type select').nativeElement.disabled).toBe(true); expect(page.getInputById('Language').disabled).toBe(true); expect(page.getInputById('Probability').disabled).toBe(true); - expect(page.getInputById('Emote').disabled).toBe(true); + expect(page.getDebugElementByCss('#Emote select').nativeElement.disabled).toBe(true); expect(page.getInputById('Duration').disabled).toBe(true); expect(page.getInputById('Sound').disabled).toBe(true); expect(page.getInputById('BroadcastTextId').disabled).toBe(true); - expect(page.getInputById('TextRange').disabled).toBe(true); + expect(page.getDebugElementByCss('#TextRange select').nativeElement.disabled).toBe(true); expect(page.getInputById('comment').disabled).toBe(true); expect(page.getEditorTableRowsCount()).toBe(0); }); diff --git a/libs/features/creature/src/npc-trainer/npc-trainer.component.html b/libs/features/creature/src/npc-trainer/npc-trainer.component.html index 2ec5a05c10..d0409e513d 100644 --- a/libs/features/creature/src/npc-trainer/npc-trainer.component.html +++ b/libs/features/creature/src/npc-trainer/npc-trainer.component.html @@ -74,7 +74,11 @@ - + + + + + {{ sqliteQueryService.getSpellNameById(row.SpellID) | async }} diff --git a/libs/features/creature/src/npc-trainer/npc-trainer.component.ts b/libs/features/creature/src/npc-trainer/npc-trainer.component.ts index 7f8a4e7e77..25a20c60f5 100644 --- a/libs/features/creature/src/npc-trainer/npc-trainer.component.ts +++ b/libs/features/creature/src/npc-trainer/npc-trainer.component.ts @@ -1,19 +1,16 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NpcTrainer } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { NpcTrainerService } from './npc-trainer.service'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { SqliteQueryService } from '@keira/shared/db-layer'; +import { SkillSelectorBtnComponent, SpellSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { SkillSelectorBtnComponent } from '@keira/shared/selectors'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { SpellSelectorBtnComponent } from '@keira/shared/selectors'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; -import { AsyncPipe } from '@angular/common'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; -import { SqliteQueryService } from '@keira/shared/db-layer'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { NpcTrainerService } from './npc-trainer.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -33,6 +30,7 @@ import { SqliteQueryService } from '@keira/shared/db-layer'; EditorButtonsComponent, NgxDatatableModule, AsyncPipe, + IconComponent, ], }) export class NpcTrainerComponent extends MultiRowEditorComponent { diff --git a/libs/features/creature/src/npc-vendor/npc-vendor.component.ts b/libs/features/creature/src/npc-vendor/npc-vendor.component.ts index e84a7f070c..321684220c 100644 --- a/libs/features/creature/src/npc-vendor/npc-vendor.component.ts +++ b/libs/features/creature/src/npc-vendor/npc-vendor.component.ts @@ -1,18 +1,15 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NpcVendor } from '@keira/shared/acore-world-model'; -import { CreatureHandlerService } from '../creature-handler.service'; -import { NpcVendorService } from './npc-vendor.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { ItemExtendedCostSelectorBtnComponent, ItemSelectorBtnComponent } from '@keira/shared/selectors'; -import { IconComponent } from '@keira/shared/base-editor-components'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; -import { AsyncPipe } from '@angular/common'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { CreatureHandlerService } from '../creature-handler.service'; +import { NpcVendorService } from './npc-vendor.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/creature/src/sai-creature/sai-creature.component.ts b/libs/features/creature/src/sai-creature/sai-creature.component.ts index 3eb8748239..b52fe273eb 100644 --- a/libs/features/creature/src/sai-creature/sai-creature.component.ts +++ b/libs/features/creature/src/sai-creature/sai-creature.component.ts @@ -1,17 +1,13 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SaiEditorComponent } from '@keira/shared/sai-editor'; -import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; -import { SaiCreatureEditorService } from './sai-creature-editor.service'; -import { TimedActionlistComponent } from '@keira/shared/sai-editor'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { EditorButtonsComponent, QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { SaiEditorComponent, SaiTopBarComponent, TimedActionlistComponent } from '@keira/shared/sai-editor'; +import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; import { TranslateModule } from '@ngx-translate/core'; - -import { SaiTopBarComponent } from '@keira/shared/sai-editor'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { SaiCreatureHandlerService } from '../sai-creature-handler.service'; +import { SaiCreatureEditorService } from './sai-creature-editor.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/gameobject-loot-template/gameobject-loot-template.component.ts b/libs/features/gameobject/src/gameobject-loot-template/gameobject-loot-template.component.ts index 62d0bc7013..b63c15997f 100644 --- a/libs/features/gameobject/src/gameobject-loot-template/gameobject-loot-template.component.ts +++ b/libs/features/gameobject/src/gameobject-loot-template/gameobject-loot-template.component.ts @@ -1,13 +1,12 @@ import { ChangeDetectionStrategy, Component, inject, OnInit } from '@angular/core'; -import { LootTemplateIdComponent } from '@keira/shared/base-abstract-classes'; import { GameobjectLootTemplate } from '@keira/shared/acore-world-model'; +import { LootTemplateIdComponent } from '@keira/shared/base-abstract-classes'; +import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { LootEditorComponent } from '@keira/shared/loot-editor'; +import { TranslateModule } from '@ngx-translate/core'; import { QueryError } from 'mysql2'; import { GameobjectHandlerService } from '../gameobject-handler.service'; import { GameobjectLootTemplateService } from './gameobject-loot-template.service'; -import { LootEditorComponent } from '@keira/shared/loot-editor'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/gameobject-questitem/gameobject-questitem.component.ts b/libs/features/gameobject/src/gameobject-questitem/gameobject-questitem.component.ts index 42d085a209..fc5e4bb550 100644 --- a/libs/features/gameobject/src/gameobject-questitem/gameobject-questitem.component.ts +++ b/libs/features/gameobject/src/gameobject-questitem/gameobject-questitem.component.ts @@ -1,17 +1,14 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { GameobjectQuestitem } from '@keira/shared/acore-world-model'; -import { GameobjectHandlerService } from '../gameobject-handler.service'; -import { GameobjectQuestitemService } from './gameobject-questitem.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, IconComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { ItemSelectorBtnComponent } from '@keira/shared/selectors'; -import { IconComponent } from '@keira/shared/base-editor-components'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; -import { AsyncPipe } from '@angular/common'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { GameobjectHandlerService } from '../gameobject-handler.service'; +import { GameobjectQuestitemService } from './gameobject-questitem.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/gameobject-spawn-addon/gameobject-spawn-addon.component.ts b/libs/features/gameobject/src/gameobject-spawn-addon/gameobject-spawn-addon.component.ts index 954836eb24..8147e17f8a 100644 --- a/libs/features/gameobject/src/gameobject-spawn-addon/gameobject-spawn-addon.component.ts +++ b/libs/features/gameobject/src/gameobject-spawn-addon/gameobject-spawn-addon.component.ts @@ -1,16 +1,14 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { GameobjectSpawnAddon, INVISIBILITY_TYPE } from '@keira/shared/acore-world-model'; -import { GameobjectHandlerService } from '../gameobject-handler.service'; -import { GameobjectSpawnAddonService } from './gameobject-spawn-addon.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { GameobjectHandlerService } from '../gameobject-handler.service'; +import { GameobjectSpawnAddonService } from './gameobject-spawn-addon.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/gameobject-spawn/gameobject-spawn.component.ts b/libs/features/gameobject/src/gameobject-spawn/gameobject-spawn.component.ts index dcce2344be..a976bb7825 100644 --- a/libs/features/gameobject/src/gameobject-spawn/gameobject-spawn.component.ts +++ b/libs/features/gameobject/src/gameobject-spawn/gameobject-spawn.component.ts @@ -1,17 +1,14 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { GameobjectSpawn, PHASE_MASK, SPAWN_MASK } from '@keira/shared/acore-world-model'; -import { GameobjectHandlerService } from '../gameobject-handler.service'; -import { GameobjectSpawnService } from './gameobject-spawn.service'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; import { AreaSelectorBtnComponent, FlagsSelectorBtnComponent, MapSelectorBtnComponent } from '@keira/shared/selectors'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { GameobjectHandlerService } from '../gameobject-handler.service'; +import { GameobjectSpawnService } from './gameobject-spawn.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/gameobject-template-addon/gameobject-template-addon.component.ts b/libs/features/gameobject/src/gameobject-template-addon/gameobject-template-addon.component.ts index eea952e15f..aaa7c678ce 100644 --- a/libs/features/gameobject/src/gameobject-template-addon/gameobject-template-addon.component.ts +++ b/libs/features/gameobject/src/gameobject-template-addon/gameobject-template-addon.component.ts @@ -1,16 +1,13 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { GAMEOBJECT_FLAGS, GameobjectTemplateAddon } from '@keira/shared/acore-world-model'; +import { SingleRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { FactionSelectorBtnComponent, FlagsSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { GameobjectHandlerService } from '../gameobject-handler.service'; import { GameobjectTemplateAddonService } from './gameobject-template-addon.service'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { FactionSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gameobject/src/sai-gameobject/sai-gameobject.component.ts b/libs/features/gameobject/src/sai-gameobject/sai-gameobject.component.ts index 8ce67b3dc2..8bdf996945 100644 --- a/libs/features/gameobject/src/sai-gameobject/sai-gameobject.component.ts +++ b/libs/features/gameobject/src/sai-gameobject/sai-gameobject.component.ts @@ -1,16 +1,13 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { SaiEditorComponent } from '@keira/shared/sai-editor'; -import { SaiGameobjectHandlerService } from '../sai-gameobject-handler.service'; -import { SaiGameobjectEditorService } from './sai-gameobject-editor.service'; -import { TimedActionlistComponent } from '@keira/shared/sai-editor'; -import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { EditorButtonsComponent, QueryOutputComponent } from '@keira/shared/base-editor-components'; +import { SaiEditorComponent, SaiTopBarComponent, TimedActionlistComponent } from '@keira/shared/sai-editor'; +import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; import { TranslateModule } from '@ngx-translate/core'; -import { SaiTopBarComponent } from '@keira/shared/sai-editor'; +import { NgxDatatableModule } from '@siemens/ngx-datatable'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; +import { SaiGameobjectHandlerService } from '../sai-gameobject-handler.service'; +import { SaiGameobjectEditorService } from './sai-gameobject-editor.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/gossip/src/gossip-menu/gossip-menu.component.ts b/libs/features/gossip/src/gossip-menu/gossip-menu.component.ts index 9f969de1ce..9195084464 100644 --- a/libs/features/gossip/src/gossip-menu/gossip-menu.component.ts +++ b/libs/features/gossip/src/gossip-menu/gossip-menu.component.ts @@ -1,18 +1,16 @@ +import { AsyncPipe } from '@angular/common'; import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { GossipMenu } from '@keira/shared/acore-world-model'; -import { GossipHandlerService } from '../gossip-handler.service'; -import { GossipMenuService } from './gossip-menu.service'; +import { MultiRowEditorComponent } from '@keira/shared/base-abstract-classes'; +import { EditorButtonsComponent, QueryOutputComponent, TopBarComponent } from '@keira/shared/base-editor-components'; +import { MysqlQueryService } from '@keira/shared/db-layer'; +import { NpcTextSelectorBtnComponent } from '@keira/shared/selectors'; +import { TranslateModule } from '@ngx-translate/core'; import { NgxDatatableModule } from '@siemens/ngx-datatable'; -import { EditorButtonsComponent } from '@keira/shared/base-editor-components'; import { TooltipModule } from 'ngx-bootstrap/tooltip'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { QueryOutputComponent } from '@keira/shared/base-editor-components'; -import { TranslateModule } from '@ngx-translate/core'; -import { AsyncPipe } from '@angular/common'; -import { TopBarComponent } from '@keira/shared/base-editor-components'; -import { NpcTextSelectorBtnComponent } from '@keira/shared/selectors'; -import { MysqlQueryService } from '@keira/shared/db-layer'; +import { GossipHandlerService } from '../gossip-handler.service'; +import { GossipMenuService } from './gossip-menu.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/item/src/item-loot-template/item-loot-template.component.ts b/libs/features/item/src/item-loot-template/item-loot-template.component.ts index 08aa8bae85..4393df2a2e 100644 --- a/libs/features/item/src/item-loot-template/item-loot-template.component.ts +++ b/libs/features/item/src/item-loot-template/item-loot-template.component.ts @@ -1,11 +1,10 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { LootTemplateComponent } from '@keira/shared/base-abstract-classes'; import { ItemLootTemplate } from '@keira/shared/acore-world-model'; +import { LootTemplateComponent } from '@keira/shared/base-abstract-classes'; +import { TopBarComponent } from '@keira/shared/base-editor-components'; +import { LootEditorComponent } from '@keira/shared/loot-editor'; import { ItemHandlerService } from '../item-handler.service'; import { ItemLootTemplateService } from './item-loot-template.service'; -import { LootEditorComponent } from '@keira/shared/loot-editor'; - -import { TopBarComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/features/smart-scripts/src/sai-search-entity/sai-search-entity.component.ts b/libs/features/smart-scripts/src/sai-search-entity/sai-search-entity.component.ts index ffcd2172c6..5b1728b5af 100644 --- a/libs/features/smart-scripts/src/sai-search-entity/sai-search-entity.component.ts +++ b/libs/features/smart-scripts/src/sai-search-entity/sai-search-entity.component.ts @@ -1,8 +1,7 @@ import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; -import { FormControl, FormGroup, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms'; import { SAI_TYPES, SmartScripts } from '@keira/shared/acore-world-model'; -import { GameobjectSelectorBtnComponent } from '@keira/shared/selectors'; -import { CreatureSelectorBtnComponent } from '@keira/shared/selectors'; +import { CreatureSelectorBtnComponent, GameobjectSelectorBtnComponent } from '@keira/shared/selectors'; import { SaiHandlerService } from '@keira/shared/sai-editor'; import { getEnumKeys, ModelForm } from '@keira/shared/utils'; diff --git a/libs/features/spell/src/spell-dbc/base/spell-dbc-base.component.ts b/libs/features/spell/src/spell-dbc/base/spell-dbc-base.component.ts index dd610d12d6..864d085c94 100644 --- a/libs/features/spell/src/spell-dbc/base/spell-dbc-base.component.ts +++ b/libs/features/spell/src/spell-dbc/base/spell-dbc-base.component.ts @@ -2,8 +2,8 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms'; import { DISPEL_TYPE, - SPELL_DBC_CAST_TIME, SPELL_DBC_CASTER_AURA_STATE, + SPELL_DBC_CAST_TIME, SPELL_DBC_DAMAGE_CLASS, SPELL_DBC_POWER_TYPE, SPELL_DBC_PREVENTION_TYPE, @@ -12,11 +12,10 @@ import { SPELL_SCHOOL_MASK, SpellDbc, } from '@keira/shared/acore-world-model'; +import { FlagsSelectorBtnComponent, SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; import { ModelForm } from '@keira/shared/utils'; -import { FlagsSelectorBtnComponent } from '@keira/shared/selectors'; -import { SingleValueSelectorBtnComponent } from '@keira/shared/selectors'; -import { TooltipModule } from 'ngx-bootstrap/tooltip'; import { TranslateModule } from '@ngx-translate/core'; +import { TooltipModule } from 'ngx-bootstrap/tooltip'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/shared/selectors/src/selectors/boolean-option-selector/boolean-option-selector.component.spec.ts b/libs/shared/selectors/src/selectors/boolean-option-selector/boolean-option-selector.component.spec.ts index b04d870a9c..7bbae565d3 100644 --- a/libs/shared/selectors/src/selectors/boolean-option-selector/boolean-option-selector.component.spec.ts +++ b/libs/shared/selectors/src/selectors/boolean-option-selector/boolean-option-selector.component.spec.ts @@ -55,16 +55,12 @@ describe('BooleanOptionSelectorComponent', () => { const { page, host } = setup(); const select = page.getDebugElementByCss('select').nativeElement; - select.value = '1: 1'; - select.dispatchEvent(new Event('change')); - page.detectChanges(); + page.setInputValue(select, '1: 1'); expect(host.mockFormControl.value).toEqual(1); expect(select.selectedOptions[0].innerText).toEqual('1 - SELECTORS.ENABLED'); - select.value = '0: 0'; - select.dispatchEvent(new Event('change')); - page.detectChanges(); + page.setInputValue(select, '0: 0'); expect(host.mockFormControl.value).toEqual(0); expect(select.selectedOptions[0].innerText).toEqual('0 - SELECTORS.DISABLED'); diff --git a/libs/shared/selectors/src/selectors/generic-option-selector/generic-option-selector.component.spec.ts b/libs/shared/selectors/src/selectors/generic-option-selector/generic-option-selector.component.spec.ts index 62d7569ca9..9369792013 100644 --- a/libs/shared/selectors/src/selectors/generic-option-selector/generic-option-selector.component.spec.ts +++ b/libs/shared/selectors/src/selectors/generic-option-selector/generic-option-selector.component.spec.ts @@ -57,16 +57,12 @@ describe('GenericOptionSelectorComponent', () => { const { page, host } = setup(); const select = page.getDebugElementByCss('select').nativeElement; - select.value = '1: 1'; - select.dispatchEvent(new Event('change')); - page.detectChanges(); + page.setInputValue(select, '1: 1'); expect(host.mockFormControl.value).toEqual(1); expect(select.selectedOptions[0].label).toEqual('1 - The Burning Crusade'); - select.value = '0: 0'; - select.dispatchEvent(new Event('change')); - page.detectChanges(); + page.setInputValue(select, '0: 0'); expect(host.mockFormControl.value).toEqual(0); expect(select.selectedOptions[0].label).toEqual('0 - Classic'); diff --git a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-btn.component.ts b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-btn.component.ts index b9710173a7..5311f32e53 100644 --- a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-btn.component.ts +++ b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-btn.component.ts @@ -1,7 +1,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; -import { ItemExtendedCostSelectorModalComponent } from './item-extended-cost-selector-modal.component'; import { BaseSelectorBtnComponent } from '../base-selector/base-selector-btn.component'; +import { ItemExtendedCostSelectorModalComponent } from './item-extended-cost-selector-modal.component'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.html b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.html index daecfe53c3..f36a70de64 100644 --- a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.html +++ b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.html @@ -123,15 +123,50 @@ - + + + @if (row.reqItemId1 !== 0) { + + } + {{ row.reqItemId1 }} + + - + + + @if (row.reqItemId2 !== 0) { + + } + {{ row.reqItemId2 }} + + - + + + @if (row.reqItemId3 !== 0) { + + } + {{ row.reqItemId3 }} + + - + + + @if (row.reqItemId4 !== 0) { + + } + {{ row.reqItemId4 }} + + - + + + @if (row.reqItemId5 !== 0) { + + } + {{ row.reqItemId5 }} + +
diff --git a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.ts b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.ts index bc08069783..d8cc8590db 100644 --- a/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.ts +++ b/libs/shared/selectors/src/selectors/item-extended-cost-selector/item-extended-cost-selector-modal.component.ts @@ -7,14 +7,14 @@ import { ItemExtendedCostSearchService } from '../../search/item-extended-cost-s import { SearchSelectorModalComponent } from '../base-selector/search-selector-modal.component'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { HighlightjsWrapperComponent } from '@keira/shared/base-editor-components'; +import { HighlightjsWrapperComponent, IconComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'keira-item-extended-cost-selector-modal', templateUrl: './item-extended-cost-selector-modal.component.html', standalone: true, - imports: [FormsModule, ReactiveFormsModule, HighlightjsWrapperComponent, NgxDatatableModule, TranslateModule], + imports: [FormsModule, ReactiveFormsModule, HighlightjsWrapperComponent, NgxDatatableModule, TranslateModule, IconComponent], }) export class ItemExtendedCostSelectorModalComponent extends SearchSelectorModalComponent { protected entityIdField = ITEM_EXTENDED_COST_ID; diff --git a/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.html b/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.html index a434277270..23deebe4ed 100644 --- a/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.html +++ b/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.html @@ -41,7 +41,11 @@ {{ row.ID }} - + + + {{ row.spellName }} + +
} diff --git a/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.ts b/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.ts index 9480c06f30..67b0bdf5a5 100644 --- a/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.ts +++ b/libs/shared/selectors/src/selectors/spell-selector/spell-selector-modal.component.ts @@ -7,14 +7,14 @@ import { SpellSearchService } from '../../search/spell-search.service'; import { SearchSelectorModalComponent } from '../base-selector/search-selector-modal.component'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { HighlightjsWrapperComponent } from '@keira/shared/base-editor-components'; +import { HighlightjsWrapperComponent, IconComponent } from '@keira/shared/base-editor-components'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'keira-spell-selector-modal', templateUrl: './spell-selector-modal.component.html', standalone: true, - imports: [FormsModule, ReactiveFormsModule, HighlightjsWrapperComponent, NgxDatatableModule, TranslateModule], + imports: [FormsModule, ReactiveFormsModule, HighlightjsWrapperComponent, NgxDatatableModule, TranslateModule, IconComponent], }) export class SpellSelectorModalComponent extends SearchSelectorModalComponent { protected entityIdField = SPELL_ID;