diff --git a/projects/common/ui-elements/drop-list-simple/drop-list-simple.ts b/projects/common/ui-elements/drop-list-simple/drop-list-simple.ts index c04b847eae99e3678090664c45b368c67aeac788..ddea3cee204c7d585211c1d16124c39de055b526 100644 --- a/projects/common/ui-elements/drop-list-simple/drop-list-simple.ts +++ b/projects/common/ui-elements/drop-list-simple/drop-list-simple.ts @@ -1,4 +1,5 @@ import { + DragNDropValueObject, FontElement, FontProperties, InputElement, @@ -7,6 +8,7 @@ import { UIElement } from '../../models/uI-element'; import { initFontElement, initSurfaceElement } from '../../util/unit-interface-initializer'; +import { IdService } from '../../../editor/src/app/services/id.service'; export class DropListSimpleElement extends InputElement implements FontElement, SurfaceElement { connectedTo: string[] = []; @@ -25,10 +27,16 @@ export class DropListSimpleElement extends InputElement implements FontElement, delete this.label; - this.value = serializedElement.value as string[] || []; + this.value = serializedElement.value as DragNDropValueObject[] || []; this.height = serializedElement.height || 100; this.surfaceProps.backgroundColor = serializedElement.surfaceProps?.backgroundColor as string || '#eeeeec'; + + this.value?.forEach((valueElement: DragNDropValueObject) => { + if (IdService.getInstance() && IdService.getInstance().isIdAvailable(valueElement.id)) { + IdService.getInstance().addID(valueElement.id); + } + }); } } diff --git a/projects/common/ui-elements/drop-list/drop-list.ts b/projects/common/ui-elements/drop-list/drop-list.ts index d81ae8e1dcb00f751cefc4762c482f29720f686d..108f56d3dc0229f54f606b12f7fbecd70f482057 100644 --- a/projects/common/ui-elements/drop-list/drop-list.ts +++ b/projects/common/ui-elements/drop-list/drop-list.ts @@ -9,6 +9,7 @@ import { UIElement } from '../../models/uI-element'; import { initFontElement, initPositionedElement, initSurfaceElement } from '../../util/unit-interface-initializer'; +import { IdService } from '../../../editor/src/app/services/id.service'; export class DropListElement extends InputElement implements PositionedElement, FontElement, SurfaceElement { onlyOneItem: boolean = false; @@ -43,6 +44,12 @@ export class DropListElement extends InputElement implements PositionedElement, '#f4f4f2'; this.handleBackwardsCompatibility(serializedElement); + + this.value?.forEach((valueElement: DragNDropValueObject) => { + if (IdService.getInstance() && IdService.getInstance().isIdAvailable(valueElement.id)) { + IdService.getInstance().addID(valueElement.id); + } + }); } handleBackwardsCompatibility(serializedElement: Partial<UIElement>): void { diff --git a/projects/editor/src/app/services/unit.service.ts b/projects/editor/src/app/services/unit.service.ts index cdd9c032c81f743276eb00027ce8d15b919ebc4a..abecaa6e7003adbd8761f3e9df2bcf532cd0acfe 100644 --- a/projects/editor/src/app/services/unit.service.ts +++ b/projects/editor/src/app/services/unit.service.ts @@ -50,25 +50,9 @@ export class UnitService { loadUnitDefinition(unitDefinition: string): void { if (unitDefinition) { this.unit = new Unit(JSON.parse(unitDefinition)); - this.readExistingIDs(); } } - private readExistingIDs(): void { - this.unit.pages.forEach((page: Page) => { - page.sections.forEach((section: Section) => { - section.elements.forEach((element: UIElement) => { - this.idService.addID(element.id); - if (element.type === 'drop-list') { - element.value?.forEach((valueElement: DragNDropValueObject) => { - this.idService.addID(valueElement.id); - }); - } - }); - }); - }); - } - addPage(): void { this.unit.addPage(); this.veronaApiService.sendVoeDefinitionChangedNotification();