When selecting a new value on the select, the valueChanged event is emitted twice:
One time on the ngAfterViewInit() via
this.element.on('select2:select select2:unselect', (e: any) => {...}
The other on the ngOnChanges(changes: SimpleChanges) via
if (changes['value'] && changes['value'].previousValue !== changes['value'].currentValue) {...}
When selecting a new value on the select, the valueChanged event is emitted twice: One time on the ngAfterViewInit() via
this.element.on('select2:select select2:unselect', (e: any) => {...}
The other on the ngOnChanges(changes: SimpleChanges) viaif (changes['value'] && changes['value'].previousValue !== changes['value'].currentValue) {...}