Angular Control marked dirty after Select2Data loaded

I have a couple of ng-select2 components where the data is coming from an observable.
When the observable returns the data and it’s mapped to Select2OptionData the Select2 data is updated.
This update to the data is causing the Angular control to mark as dirty even though the value isn’t actually changing.
Am I missing something or is this happening in error. It’s not happening for the Select2s I have that use hard-coded data as opposed to dynamic options.

mapSuppliersForSelect2(supplierList: GetSupplierDto[]) {
	this.supplierSelect2Data = [];
	if (supplierList.length > 0) {
		const supplierArray: Select2OptionData[] = supplierList.map(function (supplier) {
			return {
				id: supplier.supplierId.toString(),
				text: supplier.name,
				additional: {
					accountCode: supplier.referenceNumber
				}
			};
		});

		const alreadySeen = [];
		supplierArray.forEach(supplier => {
			if (alreadySeen[supplier.text]) {
				supplierArray.forEach(supplierInner => {
					if (supplierInner.text === supplier.text) {
						supplierInner.text = supplierInner.text + ' (' + supplierInner.additional.accountCode + ')';
					}
				});
			} else {
				alreadySeen[supplier.text] = true;
			}
		});
		return  supplierArray;
	}
}